From f242d2b0dff0d520c94014bca4577b25926929d5 Mon Sep 17 00:00:00 2001 From: Dimitri Lozeve Date: Tue, 12 Nov 2024 21:43:32 +0100 Subject: [PATCH] Initial commit --- 2017/.gitignore | 3 + 2017/01/day1.hs | 18 + 2017/01/day1.scm | 19 + 2017/01/digits.txt | 1 + 2017/02/day2.hs | 20 + 2017/02/day2.scm | 27 + 2017/02/input.txt | 16 + 2017/03/day3.hs | 49 + 2017/04/day4.hs | 29 + 2017/04/input.txt | 512 ++++++++ 2017/05/day5.hs | 36 + 2017/05/input.txt | 1003 +++++++++++++++ 2017/06/day6.hs | 35 + 2017/06/input.txt | 1 + 2017/07/day7.hs | 60 + 2017/07/input.txt | 1241 ++++++++++++++++++ 2017/07/test.txt | 13 + 2017/08/day8.hs | 85 ++ 2017/08/input.txt | 1000 +++++++++++++++ 2017/08/test.txt | 4 + 2017/09/day9.hs | 38 + 2017/09/input.txt | 1 + 2017/10/day10.hs | 41 + 2017/10/input.txt | 1 + 2017/11/day11.hs | 56 + 2017/11/input.txt | 1 + 2017/12/day12.hs | 39 + 2017/12/input.txt | 2000 +++++++++++++++++++++++++++++ 2017/12/test.txt | 7 + 2017/13/day13.hs | 31 + 2017/13/input.txt | 43 + 2017/14/day14.hs | 41 + 2017/15/day15.hs | 29 + 2017/16/day16.hs | 112 ++ 2017/16/input.txt | 1 + 2017/17/day17.hs | 26 + 2017/17/day17.scm | 25 + 2017/20/day20.hs | 70 + 2017/20/input.txt | 1000 +++++++++++++++ 2017/README.org | 3 + 2018/.gitignore | 1 + 2018/day01/day01.dyalog | 7 + 2018/day01/day01.ss | 23 + 2018/day01/input.txt | 1029 +++++++++++++++ 2018/day02/day02.dyalog | 4 + 2018/day02/day02.ss | 39 + 2018/day02/input.txt | 250 ++++ 2018/day03/day03.dyalog | 12 + 2018/day03/day03.ss | 30 + 2018/day03/input.txt | 1307 +++++++++++++++++++ 2018/day04/day04.ss | 77 ++ 2018/day04/input.txt | 1088 ++++++++++++++++ 2018/day05/day05.ss | 28 + 2018/day05/input.txt | 1 + 2018/day07/day07.ss | 35 + 2018/day07/input.txt | 101 ++ 2018/day08/day08.ss | 46 + 2018/day08/input.txt | 1 + 2018/day09/day09.ss | 61 + 2018/day09/input.txt | 1 + 2018/day10/day10.ss | 51 + 2018/day10/input.txt | 379 ++++++ 2018/day11/day11.ss | 75 ++ 2019/.gitignore | 3 + 2019/README.org | 10 + 2019/day01/day01.dyalog | 4 + 2019/day01/day01.lisp | 16 + 2019/day01/input.txt | 100 ++ 2019/day02/day02.dyalog | 5 + 2019/day02/day02.lisp | 32 + 2019/day02/day02.rkt | 34 + 2019/day02/input.txt | 1 + 2019/day03/day03.dyalog | 7 + 2019/day03/input.txt | 2 + 2019/day04/day04.dyalog | 14 + 2019/day05/day05.lisp | 61 + 2019/day05/day05.rkt | 22 + 2019/day05/input.txt | 1 + 2019/day06/day06.rkt | 23 + 2019/day06/input | 1514 ++++++++++++++++++++++ 2019/day06/test | 11 + 2019/day06/test2 | 13 + 2019/day07/day07.lisp | 87 ++ 2019/day07/day07.rkt | 51 + 2019/day07/input.txt | 1 + 2019/day08/day08.dyalog | 4 + 2019/day08/input.txt | 1 + 2019/day09/day09.rkt | 29 + 2019/day09/input | 1 + 2019/day10/day10.rkt | 87 ++ 2019/day10/input | 30 + 2019/day10/test | 5 + 2019/day11/day11.rkt | 58 + 2019/day11/input | 1 + 2019/day12/day12.rkt | 64 + 2019/day12/input | 4 + 2019/day12/test | 4 + 2019/day12/test2 | 4 + 2019/day13/day13.rkt | 74 ++ 2019/day13/input | 1 + 2019/day14/day14.rkt | 81 ++ 2019/day14/input | 60 + 2019/day14/test1 | 6 + 2019/day14/test2 | 7 + 2019/day14/test3 | 9 + 2019/day14/test4 | 12 + 2019/day14/test5 | 17 + 2019/day15/day15.rkt | 64 + 2019/day15/input | 1 + 2019/day16/day16.rkt | 73 ++ 2019/day16/input | 1 + 2019/day17/day17.rkt | 105 ++ 2019/day17/input | 1 + 2019/day19/day19.rkt | 29 + 2019/day19/input | 1 + 2019/day21/day21.rkt | 43 + 2019/day21/input | 1 + 2019/day22/day22.rkt | 117 ++ 2019/day22/input | 100 ++ 2019/day22/test1 | 3 + 2019/day22/test2 | 3 + 2019/day22/test3 | 3 + 2019/day22/test4 | 10 + 2019/day23/day23.rkt | 30 + 2019/day23/input | 1 + 2019/day24/day24.rkt | 66 + 2019/day24/input | 5 + 2019/day24/test | 5 + 2019/intcode.rkt | 158 +++ 2020/.gitignore | 4 + 2020/README.org | 34 + 2020/day01/day01.c | 49 + 2020/day01/day01.dyalog | 6 + 2020/day01/day01.rkt | 37 + 2020/day01/input | 200 +++ 2020/day01/test | 6 + 2020/day02/day02.c | 45 + 2020/day02/day02.dyalog | 3 + 2020/day02/day02.rkt | 61 + 2020/day02/input | 1000 +++++++++++++++ 2020/day02/test | 3 + 2020/day03/day03.c | 79 ++ 2020/day03/day03.dyalog | 5 + 2020/day03/day03.rkt | 52 + 2020/day03/input | 323 +++++ 2020/day03/test | 11 + 2020/day04/day04.rkt | 99 ++ 2020/day04/input | 1069 +++++++++++++++ 2020/day04/invalid | 13 + 2020/day04/test | 13 + 2020/day04/valid | 12 + 2020/day05/day05.c | 60 + 2020/day05/day05.dyalog | 4 + 2020/day05/day05.rkt | 38 + 2020/day05/input | 965 ++++++++++++++ 2020/day06/day06.c | 58 + 2020/day06/day06.dyalog | 4 + 2020/day06/day06.rkt | 37 + 2020/day06/input | 2232 ++++++++++++++++++++++++++++++++ 2020/day06/test | 15 + 2020/day07/day07.dyalog | 9 + 2020/day07/day07.rkt | 52 + 2020/day07/input | 594 +++++++++ 2020/day07/test | 9 + 2020/day07/test2 | 7 + 2020/day08/day08.c | 165 +++ 2020/day08/day08.rkt | 75 ++ 2020/day08/input | 641 +++++++++ 2020/day08/test | 9 + 2020/day09/day09.c | 98 ++ 2020/day09/day09.dyalog | 6 + 2020/day09/day09.rkt | 65 + 2020/day09/input | 1000 +++++++++++++++ 2020/day09/test | 20 + 2020/day10/day10.c | 63 + 2020/day10/day10.dyalog | 10 + 2020/day10/day10.rkt | 49 + 2020/day10/input | 95 ++ 2020/day10/test1 | 11 + 2020/day10/test2 | 31 + 2020/day11/day11.dyalog | 4 + 2020/day11/day11.rkt | 119 ++ 2020/day11/input | 98 ++ 2020/day11/test | 10 + 2020/day12/day12.c | 119 ++ 2020/day12/day12.rkt | 66 + 2020/day12/input | 776 +++++++++++ 2020/day12/test | 5 + 2020/day13/day13.c | 89 ++ 2020/day13/day13.dyalog | 18 + 2020/day13/day13.rkt | 42 + 2020/day13/input | 2 + 2020/day13/test | 2 + 2020/day14/day14.c | 123 ++ 2020/day14/day14.rkt | 82 ++ 2020/day14/input | 592 +++++++++ 2020/day14/test | 4 + 2020/day14/test2 | 4 + 2020/day14/uthash.h | 1143 +++++++++++++++++ 2020/day15/day15.c | 34 + 2020/day15/day15.rkt | 39 + 2020/day16/day16.rkt | 88 ++ 2020/day16/input | 260 ++++ 2020/day16/test1 | 12 + 2020/day16/test2 | 11 + 2020/day17/day17.c | 144 +++ 2020/day17/day17.rkt | 58 + 2020/day17/input | 8 + 2020/day17/test | 3 + 2020/day18/day18.dyalog | 4 + 2020/day18/day18.rkt | 63 + 2020/day18/input | 380 ++++++ 2020/day19/day19.rkt | 64 + 2020/day19/input | 587 +++++++++ 2020/day19/test | 12 + 2020/day19/test2 | 47 + 2020/day20/day20.rkt | 107 ++ 2020/day20/input | 1728 +++++++++++++++++++++++++ 2020/day20/test | 107 ++ 2020/day21/day21.rkt | 59 + 2020/day21/input | 36 + 2020/day21/test | 4 + 2020/day22/day22.rkt | 59 + 2020/day22/input | 53 + 2020/day22/test | 13 + 2020/day23/day23.c | 133 ++ 2020/day23/day23.rkt | 71 + 2020/day24/day24.rkt | 80 ++ 2020/day24/input | 561 ++++++++ 2020/day24/test | 20 + 2020/day25/day25.c | 51 + 2020/day25/day25.rkt | 36 + 2020/day25/input | 2 + 2021/.gitignore | 4 + 2021/README.md | 3 + 2021/day01/day01.bqn | 5 + 2021/day01/day01.c | 23 + 2021/day01/day01.scm | 13 + 2021/day01/day01_golf.c | 7 + 2021/day01/day01_r7rs.scm | 25 + 2021/day01/input | 2000 +++++++++++++++++++++++++++++ 2021/day02/day02.awk | 6 + 2021/day02/day02.c | 32 + 2021/day02/day02.scm | 30 + 2021/day02/day02_golf.c | 1 + 2021/day02/input | 1000 +++++++++++++++ 2021/day03/day03.bqn | 3 + 2021/day03/day03.c | 35 + 2021/day03/day03.scm | 47 + 2021/day03/input | 1000 +++++++++++++++ 2021/day05/day05.scm | 55 + 2021/day05/input | 500 ++++++++ 2021/day05/test | 10 + 2021/day06/day06.scm | 36 + 2021/day06/input | 1 + 2021/day07/day07.scm | 35 + 2021/day07/input | 1 + 2021/day09/day09.scm | 65 + 2021/day09/input | 100 ++ 2021/day09/test | 5 + 2021/day10/day10.scm | 53 + 2021/day10/input | 94 ++ 2021/day10/test | 10 + 2021/day12/day12.scm | 59 + 2021/day12/input | 23 + 2021/day12/test1 | 7 + 2021/day12/test2 | 10 + 2021/day12/test3 | 18 + 2021/day13/day13.scm | 52 + 2021/day13/input | 941 ++++++++++++++ 2021/day13/test | 21 + 2021/day14/day14.scm | 58 + 2021/day14/input | 102 ++ 2021/day14/test | 18 + 2021/day15/day15.scm | 72 ++ 2021/day15/input | 100 ++ 2021/day15/test | 10 + 2021/day16/day16.scm | 127 ++ 2021/day16/input | 1 + 2021/day17/day17.scm | 59 + 2021/day17/input | 1 + 2021/day17/test | 1 + 2021/day20/day20.scm | 87 ++ 2021/day20/input | 102 ++ 2021/day20/test | 7 + 2021/day21/day21.scm | 46 + 2021/day21/input | 2 + 2021/day21/test | 2 + 2022/.gitignore | 1 + 2022/README.org | 1 + 2022/day01/day01.bqn | 7 + 2022/day01/day01.jl | 3 + 2022/day01/day01.py | 3 + 2022/day01/day01.rkt | 25 + 2022/day01/input | 2254 ++++++++++++++++++++++++++++++++ 2022/day01/test | 14 + 2022/day02/day02.bqn | 6 + 2022/day02/day02.rkt | 52 + 2022/day02/input | 2500 ++++++++++++++++++++++++++++++++++++ 2022/day02/test | 3 + 2022/day03/day03.bqn | 4 + 2022/day03/day03.rkt | 28 + 2022/day03/input | 300 +++++ 2022/day03/test | 6 + 2022/day04/day04.bqn | 4 + 2022/day04/input | 1000 +++++++++++++++ 2022/day04/test | 6 + 2022/day05/day05.bqn | 22 + 2022/day05/input | 513 ++++++++ 2022/day05/test | 9 + 2022/day06/day06.bqn | 3 + 2022/day06/day06.py | 4 + 2022/day06/input | 1 + 2022/day07/day07.rkt | 78 ++ 2022/day07/input | 988 ++++++++++++++ 2022/day07/test | 23 + 2022/day08/day08.bqn | 12 + 2022/day08/input | 99 ++ 2022/day08/test | 5 + 2022/day09/day09.bqn | 17 + 2022/day09/input | 2000 +++++++++++++++++++++++++++++ 2022/day09/test1 | 8 + 2022/day09/test2 | 8 + 2022/day10/day10.bqn | 5 + 2022/day10/day10.py | 6 + 2022/day10/input | 140 ++ 2022/day10/test1 | 3 + 2022/day10/test2 | 146 +++ 2022/day11/day11.bqn | 28 + 2022/day11/day11.rkt | 75 ++ 2022/day11/input | 55 + 2022/day11/test | 27 + 2022/day12/day12.bqn | 33 + 2022/day12/input | 41 + 2022/day12/test | 5 + 2022/day13/day13.bqn | 27 + 2022/day13/day13.rkt | 65 + 2022/day13/input | 449 +++++++ 2022/day13/test | 23 + 2023/README.md | 1 + 2023/day01/day01.bqn | 17 + 2023/day01/input | 1000 +++++++++++++++ 2023/day01/test | 7 + 2023/day02/day02.bqn | 19 + 2023/day02/day02.py | 43 + 2023/day02/day02.ts | 57 + 2023/day02/input | 100 ++ 2023/day02/test | 5 + 2023/day03/day03.bqn | 12 + 2023/day03/input | 140 ++ 2023/day03/test | 10 + 2023/day04/day04.bqn | 11 + 2023/day04/input | 201 +++ 2023/day04/test | 6 + 2023/day05/day05.bqn | 14 + 2023/day05/input | 277 ++++ 2023/day05/test | 33 + 2023/day06/day06.bqn | 17 + 2023/day06/input | 2 + 2023/day06/test | 2 + 2023/day07/day07.bqn | 17 + 2023/day07/input | 1000 +++++++++++++++ 2023/day07/test | 5 + 2023/day08/day08.bqn | 16 + 2023/day08/input | 768 +++++++++++ 2023/day08/test1 | 9 + 2023/day08/test2 | 5 + 2023/day08/test3 | 10 + 2023/day09/day09.bqn | 7 + 2023/day09/input | 200 +++ 2023/day09/test | 3 + 2023/day10/day10.bqn | 57 + 2023/day10/input | 140 ++ 2023/day10/input.png | Bin 0 -> 8308 bytes 2023/day10/input.pnm | 421 ++++++ 2023/day10/input_color.png | Bin 0 -> 19827 bytes 2023/day10/input_color.pnm | 2 + 2023/day10/test1 | 5 + 2023/day10/test2 | 5 + 2023/day10/test3 | 10 + 2023/day10/test3.png | Bin 0 -> 235 bytes 2023/day10/test3.pnm | 31 + 2023/day10/test4 | 10 + 2023/day11/day11.bqn | 15 + 2023/day11/input | 140 ++ 2023/day11/test | 10 + 2023/day12/day12.bqn | 6 + 2023/day12/input | 1000 +++++++++++++++ 2023/day12/test | 6 + 2023/day13/day13.bqn | 5 + 2023/day13/input | 1325 +++++++++++++++++++ 2023/day13/test | 15 + 2023/day14/day14.bqn | 15 + 2023/day14/input | 100 ++ 2023/day14/test | 10 + 2023/day15/day15.bqn | 29 + 2023/day15/input | 1 + 2023/day15/test | 1 + 2023/day16/.gitignore | 1 + 2023/day16/Makefile | 10 + 2023/day16/anim.gif | Bin 0 -> 64585 bytes 2023/day16/day16.bqn | 29 + 2023/day16/input | 110 ++ 2023/day16/test | 10 + 2023/day17/day17.bqn | 28 + 2023/day17/input | 141 ++ 2023/day17/test | 13 + 2023/day17/test2 | 5 + 2023/day18/day18.bqn | 13 + 2023/day18/input | 690 ++++++++++ 2023/day18/test | 14 + 2023/day19/day19.bqn | 25 + 2023/day19/input | 714 ++++++++++ 2023/day19/test | 17 + 2023/day21/day21.bqn | 21 + 2023/day21/input | 131 ++ 2023/day21/test | 11 + 2023/day22/day22.bqn | 23 + 2023/day22/input | 1323 +++++++++++++++++++ 2023/day22/test | 7 + 420 files changed, 62521 insertions(+) create mode 100644 2017/.gitignore create mode 100644 2017/01/day1.hs create mode 100644 2017/01/day1.scm create mode 100644 2017/01/digits.txt create mode 100644 2017/02/day2.hs create mode 100644 2017/02/day2.scm create mode 100644 2017/02/input.txt create mode 100644 2017/03/day3.hs create mode 100644 2017/04/day4.hs create mode 100644 2017/04/input.txt create mode 100644 2017/05/day5.hs create mode 100644 2017/05/input.txt create mode 100644 2017/06/day6.hs create mode 100644 2017/06/input.txt create mode 100644 2017/07/day7.hs create mode 100644 2017/07/input.txt create mode 100644 2017/07/test.txt create mode 100644 2017/08/day8.hs create mode 100644 2017/08/input.txt create mode 100644 2017/08/test.txt create mode 100644 2017/09/day9.hs create mode 100644 2017/09/input.txt create mode 100644 2017/10/day10.hs create mode 100644 2017/10/input.txt create mode 100644 2017/11/day11.hs create mode 100644 2017/11/input.txt create mode 100644 2017/12/day12.hs create mode 100644 2017/12/input.txt create mode 100644 2017/12/test.txt create mode 100644 2017/13/day13.hs create mode 100644 2017/13/input.txt create mode 100644 2017/14/day14.hs create mode 100644 2017/15/day15.hs create mode 100644 2017/16/day16.hs create mode 100644 2017/16/input.txt create mode 100644 2017/17/day17.hs create mode 100644 2017/17/day17.scm create mode 100644 2017/20/day20.hs create mode 100644 2017/20/input.txt create mode 100644 2017/README.org create mode 100644 2018/.gitignore create mode 100644 2018/day01/day01.dyalog create mode 100644 2018/day01/day01.ss create mode 100644 2018/day01/input.txt create mode 100644 2018/day02/day02.dyalog create mode 100644 2018/day02/day02.ss create mode 100644 2018/day02/input.txt create mode 100644 2018/day03/day03.dyalog create mode 100644 2018/day03/day03.ss create mode 100644 2018/day03/input.txt create mode 100644 2018/day04/day04.ss create mode 100644 2018/day04/input.txt create mode 100644 2018/day05/day05.ss create mode 100644 2018/day05/input.txt create mode 100644 2018/day07/day07.ss create mode 100644 2018/day07/input.txt create mode 100644 2018/day08/day08.ss create mode 100644 2018/day08/input.txt create mode 100644 2018/day09/day09.ss create mode 100644 2018/day09/input.txt create mode 100644 2018/day10/day10.ss create mode 100644 2018/day10/input.txt create mode 100644 2018/day11/day11.ss create mode 100644 2019/.gitignore create mode 100644 2019/README.org create mode 100644 2019/day01/day01.dyalog create mode 100644 2019/day01/day01.lisp create mode 100644 2019/day01/input.txt create mode 100644 2019/day02/day02.dyalog create mode 100644 2019/day02/day02.lisp create mode 100644 2019/day02/day02.rkt create mode 100644 2019/day02/input.txt create mode 100644 2019/day03/day03.dyalog create mode 100644 2019/day03/input.txt create mode 100644 2019/day04/day04.dyalog create mode 100644 2019/day05/day05.lisp create mode 100644 2019/day05/day05.rkt create mode 100644 2019/day05/input.txt create mode 100644 2019/day06/day06.rkt create mode 100644 2019/day06/input create mode 100644 2019/day06/test create mode 100644 2019/day06/test2 create mode 100644 2019/day07/day07.lisp create mode 100644 2019/day07/day07.rkt create mode 100644 2019/day07/input.txt create mode 100644 2019/day08/day08.dyalog create mode 100644 2019/day08/input.txt create mode 100644 2019/day09/day09.rkt create mode 100644 2019/day09/input create mode 100644 2019/day10/day10.rkt create mode 100644 2019/day10/input create mode 100644 2019/day10/test create mode 100644 2019/day11/day11.rkt create mode 100644 2019/day11/input create mode 100644 2019/day12/day12.rkt create mode 100644 2019/day12/input create mode 100644 2019/day12/test create mode 100644 2019/day12/test2 create mode 100644 2019/day13/day13.rkt create mode 100644 2019/day13/input create mode 100644 2019/day14/day14.rkt create mode 100644 2019/day14/input create mode 100644 2019/day14/test1 create mode 100644 2019/day14/test2 create mode 100644 2019/day14/test3 create mode 100644 2019/day14/test4 create mode 100644 2019/day14/test5 create mode 100644 2019/day15/day15.rkt create mode 100644 2019/day15/input create mode 100644 2019/day16/day16.rkt create mode 100644 2019/day16/input create mode 100644 2019/day17/day17.rkt create mode 100644 2019/day17/input create mode 100644 2019/day19/day19.rkt create mode 100644 2019/day19/input create mode 100644 2019/day21/day21.rkt create mode 100644 2019/day21/input create mode 100644 2019/day22/day22.rkt create mode 100644 2019/day22/input create mode 100644 2019/day22/test1 create mode 100644 2019/day22/test2 create mode 100644 2019/day22/test3 create mode 100644 2019/day22/test4 create mode 100644 2019/day23/day23.rkt create mode 100644 2019/day23/input create mode 100644 2019/day24/day24.rkt create mode 100644 2019/day24/input create mode 100644 2019/day24/test create mode 100644 2019/intcode.rkt create mode 100644 2020/.gitignore create mode 100644 2020/README.org create mode 100644 2020/day01/day01.c create mode 100644 2020/day01/day01.dyalog create mode 100644 2020/day01/day01.rkt create mode 100644 2020/day01/input create mode 100644 2020/day01/test create mode 100644 2020/day02/day02.c create mode 100644 2020/day02/day02.dyalog create mode 100644 2020/day02/day02.rkt create mode 100644 2020/day02/input create mode 100644 2020/day02/test create mode 100644 2020/day03/day03.c create mode 100644 2020/day03/day03.dyalog create mode 100644 2020/day03/day03.rkt create mode 100644 2020/day03/input create mode 100644 2020/day03/test create mode 100644 2020/day04/day04.rkt create mode 100644 2020/day04/input create mode 100644 2020/day04/invalid create mode 100644 2020/day04/test create mode 100644 2020/day04/valid create mode 100644 2020/day05/day05.c create mode 100644 2020/day05/day05.dyalog create mode 100644 2020/day05/day05.rkt create mode 100644 2020/day05/input create mode 100644 2020/day06/day06.c create mode 100644 2020/day06/day06.dyalog create mode 100644 2020/day06/day06.rkt create mode 100644 2020/day06/input create mode 100644 2020/day06/test create mode 100644 2020/day07/day07.dyalog create mode 100644 2020/day07/day07.rkt create mode 100644 2020/day07/input create mode 100644 2020/day07/test create mode 100644 2020/day07/test2 create mode 100644 2020/day08/day08.c create mode 100644 2020/day08/day08.rkt create mode 100644 2020/day08/input create mode 100644 2020/day08/test create mode 100644 2020/day09/day09.c create mode 100644 2020/day09/day09.dyalog create mode 100644 2020/day09/day09.rkt create mode 100644 2020/day09/input create mode 100644 2020/day09/test create mode 100644 2020/day10/day10.c create mode 100644 2020/day10/day10.dyalog create mode 100644 2020/day10/day10.rkt create mode 100644 2020/day10/input create mode 100644 2020/day10/test1 create mode 100644 2020/day10/test2 create mode 100644 2020/day11/day11.dyalog create mode 100644 2020/day11/day11.rkt create mode 100644 2020/day11/input create mode 100644 2020/day11/test create mode 100644 2020/day12/day12.c create mode 100644 2020/day12/day12.rkt create mode 100644 2020/day12/input create mode 100644 2020/day12/test create mode 100644 2020/day13/day13.c create mode 100644 2020/day13/day13.dyalog create mode 100644 2020/day13/day13.rkt create mode 100644 2020/day13/input create mode 100644 2020/day13/test create mode 100644 2020/day14/day14.c create mode 100644 2020/day14/day14.rkt create mode 100644 2020/day14/input create mode 100644 2020/day14/test create mode 100644 2020/day14/test2 create mode 100644 2020/day14/uthash.h create mode 100644 2020/day15/day15.c create mode 100644 2020/day15/day15.rkt create mode 100644 2020/day16/day16.rkt create mode 100644 2020/day16/input create mode 100644 2020/day16/test1 create mode 100644 2020/day16/test2 create mode 100644 2020/day17/day17.c create mode 100644 2020/day17/day17.rkt create mode 100644 2020/day17/input create mode 100644 2020/day17/test create mode 100644 2020/day18/day18.dyalog create mode 100644 2020/day18/day18.rkt create mode 100644 2020/day18/input create mode 100644 2020/day19/day19.rkt create mode 100644 2020/day19/input create mode 100644 2020/day19/test create mode 100644 2020/day19/test2 create mode 100644 2020/day20/day20.rkt create mode 100644 2020/day20/input create mode 100644 2020/day20/test create mode 100644 2020/day21/day21.rkt create mode 100644 2020/day21/input create mode 100644 2020/day21/test create mode 100644 2020/day22/day22.rkt create mode 100644 2020/day22/input create mode 100644 2020/day22/test create mode 100644 2020/day23/day23.c create mode 100644 2020/day23/day23.rkt create mode 100644 2020/day24/day24.rkt create mode 100644 2020/day24/input create mode 100644 2020/day24/test create mode 100644 2020/day25/day25.c create mode 100644 2020/day25/day25.rkt create mode 100644 2020/day25/input create mode 100644 2021/.gitignore create mode 100644 2021/README.md create mode 100644 2021/day01/day01.bqn create mode 100644 2021/day01/day01.c create mode 100644 2021/day01/day01.scm create mode 100644 2021/day01/day01_golf.c create mode 100644 2021/day01/day01_r7rs.scm create mode 100644 2021/day01/input create mode 100644 2021/day02/day02.awk create mode 100644 2021/day02/day02.c create mode 100644 2021/day02/day02.scm create mode 100644 2021/day02/day02_golf.c create mode 100644 2021/day02/input create mode 100644 2021/day03/day03.bqn create mode 100644 2021/day03/day03.c create mode 100644 2021/day03/day03.scm create mode 100644 2021/day03/input create mode 100644 2021/day05/day05.scm create mode 100644 2021/day05/input create mode 100644 2021/day05/test create mode 100644 2021/day06/day06.scm create mode 100644 2021/day06/input create mode 100644 2021/day07/day07.scm create mode 100644 2021/day07/input create mode 100644 2021/day09/day09.scm create mode 100644 2021/day09/input create mode 100644 2021/day09/test create mode 100644 2021/day10/day10.scm create mode 100644 2021/day10/input create mode 100644 2021/day10/test create mode 100644 2021/day12/day12.scm create mode 100644 2021/day12/input create mode 100644 2021/day12/test1 create mode 100644 2021/day12/test2 create mode 100644 2021/day12/test3 create mode 100644 2021/day13/day13.scm create mode 100644 2021/day13/input create mode 100644 2021/day13/test create mode 100644 2021/day14/day14.scm create mode 100644 2021/day14/input create mode 100644 2021/day14/test create mode 100644 2021/day15/day15.scm create mode 100644 2021/day15/input create mode 100644 2021/day15/test create mode 100644 2021/day16/day16.scm create mode 100644 2021/day16/input create mode 100644 2021/day17/day17.scm create mode 100644 2021/day17/input create mode 100644 2021/day17/test create mode 100644 2021/day20/day20.scm create mode 100644 2021/day20/input create mode 100644 2021/day20/test create mode 100644 2021/day21/day21.scm create mode 100644 2021/day21/input create mode 100644 2021/day21/test create mode 100644 2022/.gitignore create mode 100644 2022/README.org create mode 100644 2022/day01/day01.bqn create mode 100644 2022/day01/day01.jl create mode 100644 2022/day01/day01.py create mode 100644 2022/day01/day01.rkt create mode 100644 2022/day01/input create mode 100644 2022/day01/test create mode 100644 2022/day02/day02.bqn create mode 100644 2022/day02/day02.rkt create mode 100644 2022/day02/input create mode 100644 2022/day02/test create mode 100644 2022/day03/day03.bqn create mode 100644 2022/day03/day03.rkt create mode 100644 2022/day03/input create mode 100644 2022/day03/test create mode 100644 2022/day04/day04.bqn create mode 100644 2022/day04/input create mode 100644 2022/day04/test create mode 100644 2022/day05/day05.bqn create mode 100644 2022/day05/input create mode 100644 2022/day05/test create mode 100644 2022/day06/day06.bqn create mode 100644 2022/day06/day06.py create mode 100644 2022/day06/input create mode 100644 2022/day07/day07.rkt create mode 100644 2022/day07/input create mode 100644 2022/day07/test create mode 100644 2022/day08/day08.bqn create mode 100644 2022/day08/input create mode 100644 2022/day08/test create mode 100644 2022/day09/day09.bqn create mode 100644 2022/day09/input create mode 100644 2022/day09/test1 create mode 100644 2022/day09/test2 create mode 100644 2022/day10/day10.bqn create mode 100644 2022/day10/day10.py create mode 100644 2022/day10/input create mode 100644 2022/day10/test1 create mode 100644 2022/day10/test2 create mode 100644 2022/day11/day11.bqn create mode 100644 2022/day11/day11.rkt create mode 100644 2022/day11/input create mode 100644 2022/day11/test create mode 100644 2022/day12/day12.bqn create mode 100644 2022/day12/input create mode 100644 2022/day12/test create mode 100644 2022/day13/day13.bqn create mode 100644 2022/day13/day13.rkt create mode 100644 2022/day13/input create mode 100644 2022/day13/test create mode 100644 2023/README.md create mode 100644 2023/day01/day01.bqn create mode 100644 2023/day01/input create mode 100644 2023/day01/test create mode 100644 2023/day02/day02.bqn create mode 100644 2023/day02/day02.py create mode 100644 2023/day02/day02.ts create mode 100644 2023/day02/input create mode 100644 2023/day02/test create mode 100644 2023/day03/day03.bqn create mode 100644 2023/day03/input create mode 100644 2023/day03/test create mode 100644 2023/day04/day04.bqn create mode 100644 2023/day04/input create mode 100644 2023/day04/test create mode 100644 2023/day05/day05.bqn create mode 100644 2023/day05/input create mode 100644 2023/day05/test create mode 100644 2023/day06/day06.bqn create mode 100644 2023/day06/input create mode 100644 2023/day06/test create mode 100644 2023/day07/day07.bqn create mode 100644 2023/day07/input create mode 100644 2023/day07/test create mode 100644 2023/day08/day08.bqn create mode 100644 2023/day08/input create mode 100644 2023/day08/test1 create mode 100644 2023/day08/test2 create mode 100644 2023/day08/test3 create mode 100644 2023/day09/day09.bqn create mode 100644 2023/day09/input create mode 100644 2023/day09/test create mode 100644 2023/day10/day10.bqn create mode 100644 2023/day10/input create mode 100644 2023/day10/input.png create mode 100644 2023/day10/input.pnm create mode 100644 2023/day10/input_color.png create mode 100644 2023/day10/input_color.pnm create mode 100644 2023/day10/test1 create mode 100644 2023/day10/test2 create mode 100644 2023/day10/test3 create mode 100644 2023/day10/test3.png create mode 100644 2023/day10/test3.pnm create mode 100644 2023/day10/test4 create mode 100644 2023/day11/day11.bqn create mode 100644 2023/day11/input create mode 100644 2023/day11/test create mode 100644 2023/day12/day12.bqn create mode 100644 2023/day12/input create mode 100644 2023/day12/test create mode 100644 2023/day13/day13.bqn create mode 100644 2023/day13/input create mode 100644 2023/day13/test create mode 100644 2023/day14/day14.bqn create mode 100644 2023/day14/input create mode 100644 2023/day14/test create mode 100644 2023/day15/day15.bqn create mode 100644 2023/day15/input create mode 100644 2023/day15/test create mode 100644 2023/day16/.gitignore create mode 100644 2023/day16/Makefile create mode 100644 2023/day16/anim.gif create mode 100644 2023/day16/day16.bqn create mode 100644 2023/day16/input create mode 100644 2023/day16/test create mode 100644 2023/day17/day17.bqn create mode 100644 2023/day17/input create mode 100644 2023/day17/test create mode 100644 2023/day17/test2 create mode 100644 2023/day18/day18.bqn create mode 100644 2023/day18/input create mode 100644 2023/day18/test create mode 100644 2023/day19/day19.bqn create mode 100644 2023/day19/input create mode 100644 2023/day19/test create mode 100644 2023/day21/day21.bqn create mode 100644 2023/day21/input create mode 100644 2023/day21/test create mode 100644 2023/day22/day22.bqn create mode 100644 2023/day22/input create mode 100644 2023/day22/test diff --git a/2017/.gitignore b/2017/.gitignore new file mode 100644 index 0000000..07069cf --- /dev/null +++ b/2017/.gitignore @@ -0,0 +1,3 @@ +*\~ +*.hi +*.o diff --git a/2017/01/day1.hs b/2017/01/day1.hs new file mode 100644 index 0000000..f088cc4 --- /dev/null +++ b/2017/01/day1.hs @@ -0,0 +1,18 @@ +#!/usr/bin/env stack +-- stack --resolver lts-9.14 script + +sumMatchingOffset :: Int -> [Int] -> Int +sumMatchingOffset k xs = + foldr (\x acc -> if fst x == snd x then acc + fst x else acc) 0 xs' + where n = length xs + xs' = zip xs (take n . drop k . cycle $ xs) + +toDigits :: String -> [Int] +toDigits = map (read . (:"")) + +main :: IO () +main = do + digitsStr <- getLine + let digits = toDigits digitsStr + putStrLn . show $ sumMatchingOffset 1 digits + putStrLn . show $ sumMatchingOffset (length digits `div` 2) digits diff --git a/2017/01/day1.scm b/2017/01/day1.scm new file mode 100644 index 0000000..8471d07 --- /dev/null +++ b/2017/01/day1.scm @@ -0,0 +1,19 @@ +#!/usr/bin/csi -script + +(use extras) +(use srfi-1) +(use list-comprehensions) + +(define (sum-matching-offset k xs) + (let* ((n (length xs)) + (newxs (zip xs (take (drop (concatenate ((repeat 3) xs)) k) n))) + (f (lambda (x acc) (if (= (first x) (second x)) (+ acc (first x)) acc)))) + (foldr f 0 newxs))) + +(define (main) + (let* ((digits-str (read-line)) + (digits (map string->number (map string (string->list digits-str))))) + (print (sum-matching-offset 1 digits)) + (print (sum-matching-offset (/ (length digits) 2) digits)))) + +(main) diff --git a/2017/01/digits.txt b/2017/01/digits.txt new file mode 100644 index 0000000..037cd73 --- /dev/null +++ b/2017/01/digits.txt @@ -0,0 +1 @@ +8231753674683997878179259195565332579493378483264978184143341284379682788518559178822225126625428318115396632681141871952894291898364781898929292614792884883249356728741993224889167928232261325123447569829932951268292953928766755779761837993812528527484487298117739869189415599461746944992651752768158611996715467871381527675219481185217357632445748912726487669881876129192932995282777848496561259839781188719233951619188388532698519298142112853776942545211859134185231768952888462471642851588368445761489225786919778983848113833773768236969923939838755997989537648222217996381757542964844337285428654375499359997792679256881378967852376848812795761118139288152799921176874256377615952758268844139579622754965461884862647423491918913628848748756595463191585555385849335742224855473769411212376446591654846168189278959857681336724221434846946124915271196433144335482787432683848594487648477532498952572515118864475621828118274911298396748213136426357769991314661642612786847135485969889237193822718111269561741563479116832364485724716242176288642371849569664594194674763319687735723517614962575592111286177553435651952853878775431234327919595595658641534765455489561934548474291254387229751472883423413196845162752716925199866591883313638846474321161569892518574346226751366315311145777448781862222126923449311838564685882695889397531413937666673233451216968414288135984394249684886554812761191289485457945866524228415191549168557957633386991931186773843869999284468773866221976873998168818944399661463963658784821796272987155278195355579386768156718813624559264574836134419725187881514665834441359644955768658663278765363789664721736533517774292478192143934318399418188298753351815388561359528533778996296279366394386455544446922653976725113889842749182361253582433319351193862788433113852782596161148992233558144692913791714859516653421917841295749163469751479835492713392861519993791967927773114713888458982796514977717987598165486967786989991998142488631168697963816156374216224386193941566358543266646516247854435356941566492841213424915682394928959116411457967897614457497279472661229548612777155998358618945222326558176486944695689777438164612198225816646583996426313832539918 diff --git a/2017/02/day2.hs b/2017/02/day2.hs new file mode 100644 index 0000000..5bd0121 --- /dev/null +++ b/2017/02/day2.hs @@ -0,0 +1,20 @@ +#!/usr/bin/env stack +-- stack --resolver lts-9.14 script + +range :: (Ord a, Num a) => [a] -> a +range l = maximum l - minimum l + +divisors :: (Integral a) => [a] -> a +divisors [] = 0 +divisors (x:xs) = + case filter (\y -> (x `mod` y == 0) || (y `mod` x == 0)) xs of + [] -> divisors xs + y:_ -> if y > x then y `div` x + else x `div` y + +main :: IO () +main = do + contents <- getContents + let numbers = map (map read . words) $ lines contents :: [[Int]] + putStrLn . show $ sum $ map range numbers + putStrLn . show $ sum $ map divisors numbers diff --git a/2017/02/day2.scm b/2017/02/day2.scm new file mode 100644 index 0000000..08510d3 --- /dev/null +++ b/2017/02/day2.scm @@ -0,0 +1,27 @@ +#!/usr/bin/csi -script + +(use extras) + +(define (range xs) + (- (apply max xs) (apply min xs))) + +(define (find-divisors x xs) + (cond ((null? xs) 0) + ((= 0 (remainder x (car xs))) (/ x (car xs))) + ((= 0 (remainder (car xs) x)) (/ (car xs) x)) + (else (find-divisors x (cdr xs))))) + +(define (divisors xs) + (if (null? xs) 0 + (let* ((y (car xs)) + (ys (cdr xs)) + (first-divisor (find-divisors y ys))) + (if (= 0 first-divisor) (divisors ys) first-divisor)))) + +(define (main) + (let* ((contents (read-lines)) + (numbers (map (lambda (x) (map string->number x)) (map string-split contents)))) + (print (apply + (map range numbers))) + (print (apply + (map divisors numbers))))) + +(main) diff --git a/2017/02/input.txt b/2017/02/input.txt new file mode 100644 index 0000000..965c592 --- /dev/null +++ b/2017/02/input.txt @@ -0,0 +1,16 @@ +790 99 345 1080 32 143 1085 984 553 98 123 97 197 886 125 947 +302 463 59 58 55 87 508 54 472 63 469 419 424 331 337 72 +899 962 77 1127 62 530 78 880 129 1014 93 148 239 288 357 424 +2417 2755 254 3886 5336 3655 5798 3273 5016 178 270 6511 223 5391 1342 2377 +68 3002 3307 166 275 1989 1611 364 157 144 3771 1267 3188 3149 156 3454 +1088 1261 21 1063 1173 278 1164 207 237 1230 1185 431 232 660 195 1246 +49 1100 136 1491 647 1486 112 1278 53 1564 1147 1068 809 1638 138 117 +158 3216 1972 2646 3181 785 2937 365 611 1977 1199 2972 201 2432 186 160 +244 86 61 38 58 71 243 52 245 264 209 265 308 80 126 129 +1317 792 74 111 1721 252 1082 1881 1349 94 891 1458 331 1691 89 1724 +3798 202 3140 3468 1486 2073 3872 3190 3481 3760 2876 182 2772 226 3753 188 +2272 6876 6759 218 272 4095 4712 6244 4889 2037 234 223 6858 3499 2358 439 +792 230 886 824 762 895 99 799 94 110 747 635 91 406 89 157 +2074 237 1668 1961 170 2292 2079 1371 1909 221 2039 1022 193 2195 1395 2123 +8447 203 1806 6777 278 2850 1232 6369 398 235 212 992 7520 7304 7852 520 +3928 107 3406 123 2111 2749 223 125 134 146 3875 1357 508 1534 4002 4417 diff --git a/2017/03/day3.hs b/2017/03/day3.hs new file mode 100644 index 0000000..8a7b749 --- /dev/null +++ b/2017/03/day3.hs @@ -0,0 +1,49 @@ +#!/usr/bin/env stack +-- stack --resolver lts-9.14 script + +import qualified Data.Map.Strict as Map +import Data.Maybe + +right, up, left, down :: (Int,Int) -> (Int,Int) +right (a,b) = (a+1,b ) +up (a,b) = (a ,b+1) +left (a,b) = (a-1,b ) +down (a,b) = (a ,b-1) + +spiral :: [(Int, Int)] +spiral = scanl (flip ($)) (0,0) directions + where directions = concat $ + zipWith replicate (concat (map (replicate 2) [1..])) $ + cycle [right, up, left, down] + +shortestPathLength :: Int -> Int +shortestPathLength n = + let (x,y) = spiral !! (n-1) in + (abs x) + (abs y) + +neighbours :: (Int,Int) -> [(Int,Int)] +neighbours (a,b) = + [(a+k,b+l) | k <- [-1..1], l <- [-1..1]] + + +insertCell :: (Int,Int) -> Map.Map (Int,Int) Int -> Map.Map (Int,Int) Int +insertCell (a,b) m = + Map.insert (a,b) (fromJust sumNeighbours) m + where sumNeighbours = fmap sum $ sequence . (filter isJust) $ fmap (\k -> Map.lookup k m) (neighbours (a,b)) + +spiralSum :: Int -> Map.Map (Int,Int) Int +spiralSum n = foldl (flip insertCell) (Map.singleton (0,0) 1) (take n (tail spiral)) + +spiralSumValues :: Int -> [Int] +spiralSumValues n = fromJust . sequence $ fmap (\x -> Map.lookup x (spiralSum n)) (take n spiral) + +firstValueLarger :: Int -> Int +firstValueLarger n = head $ filter (> n) (spiralSumValues (n `div` 1000)) + +main :: IO () +main = do + input <- getLine + let n = read input :: Int + putStrLn . show $ shortestPathLength n + putStrLn . show $ firstValueLarger n + diff --git a/2017/04/day4.hs b/2017/04/day4.hs new file mode 100644 index 0000000..5f2bfb0 --- /dev/null +++ b/2017/04/day4.hs @@ -0,0 +1,29 @@ +#!/usr/bin/env stack +-- stack --resolver lts-9.14 script + +import Data.List + +testDuplicates :: [String] -> Bool +testDuplicates xs = length (nub xs) /= (length xs) + +countLinesWithDuplicates :: [String] -> Int +countLinesWithDuplicates = sum . map (fromEnum . testDuplicates . words) + +isAnagram :: String -> String -> Bool +isAnagram s1 s2 = sort s1 == sort s2 + +testAnagrams :: [String] -> Bool +testAnagrams [] = True +testAnagrams (x:xs) = + if or (map (isAnagram x) xs) + then False + else testAnagrams xs + +countValidLines :: [String] -> Int +countValidLines = sum . map (fromEnum . testAnagrams . words) + +main :: IO () +main = do + contents <- getContents + putStrLn . show . (\xs -> length xs - countLinesWithDuplicates xs) . lines $ contents + putStrLn . show . countValidLines . lines $ contents diff --git a/2017/04/input.txt b/2017/04/input.txt new file mode 100644 index 0000000..61150ac --- /dev/null +++ b/2017/04/input.txt @@ -0,0 +1,512 @@ +sayndz zfxlkl attjtww cti sokkmty brx fhh suelqbp +xmuf znkhaes pggrlp zia znkhaes znkhaes +nti rxr bogebb zdwrin +sryookh unrudn zrkz jxhrdo gctlyz +bssqn wbmdc rigc zketu ketichh enkixg bmdwc stnsdf jnz mqovwg ixgken +flawt cpott xth ucwgg xce jcubx wvl qsysa nlg +qovcqn zxcz vojsno nqoqvc hnf gqewlkd uevax vuna fxjkbll vfge +qrzf phwuf ligf xgen vkig elptd njdm gvqiu epfzsvk urbltg dqg +sfpku viwihi fje umdkwvi ejzhzj qrbl sfpku sad nawnow ksnku +nzhj mfudick ueaa jnhz kpy pzk +euiin xvl elaoelu wbdd xlv jtm nohtq gfdbgdg gdfggdb edtym +xfmkn wyww woe hwysuh gjw dtk utryasc dela eluk vmmun +nmag qfwe cwslmgd nlhf hpf +ifs sszo iod isf jna +pjptwg wreera leyb hmlbpf qcrbma ylgue +rwlpo jhla rprxvgs quguh pyybwgl qqvcb +rxtcpdy wmpci mpcwi vwvdzdn nfpnj rcsxinl itatg ycy hrctg ron wveju +zmkfn wip pyiz pyiz tnyg dvftf elks ezhotbj wip +sgmtfdd xdl sch sch yaxzh wphgksh knzrixp yaxzh etm czqbaa jldta +gnbr rnpd upe eeb sbq sbq oxc rwvugoj +cshk thcc emfxx emfxx pbtcf jpim vltkqar czy iudkac jhpcc nqs +uzbvx fkiuyk izxdiu yutntvn dixuzi hkyfnud oyz ynutntv +ewl mfns idy fphu yqccb pte unukirt unukirt fdx +lzn tin fgena qbql qycbdw gbtn lctlysx adhjfq blu aiv +ites ites pbxzunl vljzh lqgerta pbxzunl +vmk wjfzvhn pqkidze qfwh +tqprmc exypl caf kwikh mdyyljc pbo hhxxo skna +sqxgejb ejc fvup hpesvs luz fcxqwhr ypxof fxlcp pxyk xiczjri +vjg qcw fsyqaoj mxf jha feclqqr vzdqnk verw mvmvm pvdqtcd xsfu +fwwn ktvdh aecfv acfve yjozxwo cnujw bcgde lphnk knlph bqwlqju +uwwapm dlln uwwapm uwwapm +huupab ewetcte huupab ewetcte +wjs zipivpd klwafr ipcczg wbv uujstsw hykn +mgojdyh hlm xruta lbmaxit pabqrnp vkyigd ptpzr glin gfau pbo +tbwx baqxq vtz jwex tvz tzv +efopwx wfknzb ogaxln tqzrh jne zugd zpxikma +rdjsa arjds hqdldw fjrtl midt qjv jfrlt +dggqohj bidaaty iah lgmug wwmlbc lggmu laonaoq erkqrb tqolnns iygv qnonlst +msc glwn xjfnij itt pka irrafjd euazydj silo +zsyut znsht ldky zsyut dzcdft znsht +iit cyteu pib fgvrs iux ffctql pib zuzp zsbb ieoi +xxtwlu kqfxjhq isj xqjhfkq dohrs haovzc cgfwfrt munqon vuyexz nouqnm +eptpqgi uiflvd acj livzq ejtt bniud cjdh jkrcken lspfy tpxri zibj +zxme dpo fumup gly bkdcwxn lsly eglhe +uoshw ijoyiql rcskaa vjbqv roiinzi fppqdu +xuw vdbxie oypcx khxq xebjt oypcx uitqep vdbxie hoz +lrjv tdksk uebo wktebvx nlapmp udhhxh uliqbm cklyyf jlzw xrmdlvx +fosspck fosspck fosspck qyidyur hxnxmb dkpj +rmrvlms susvos idw hzy idw tjgxbc lhgqxr tjgxbc uuq +etjmbdr hwqe lnfwzni lnfwzni good eisci etjmbdr +yqde bmlcc yuel vpyplss vyvhho kslgiu lllhc jtkijdj uclz hfbqsf +tlohlvv tlohlvv bdqahw tlohlvv qavcqrn penia saafy +lvtzyt qffe eaikhv eaikhv wbnl mdkg mdkg utfrm +luowwk magp luowwk oyao oyao hsb yms +gnxply vsdqum nprf jik axdp ariqjpc hjqcc +izbo nkqkb xpqg pgxq qpxg gpm jxbkvu resj +hsgyxar hvsl ner zzmcn lcpdvqn ern +rfjlhu xkyh hafs cvvk drg vjsk mymc iab ycmlubx kpwemiw +wlci qhhpr vhpr oyrili cnynh sivdso ldjya wilc ioiyrl +cdfwd mbtk sienxui jsmxzo yxbeyl bybtc covxaq yuxn ktbvztl ktbvztl rcekjhk +ptenhqv tzdt phetqvn mfkdz +hmezeak pqvqld amsih jxqacc uferfyh nfqjsz rtuqdzz pohcx qia cpxho hgpqs +iygny dluc uxqz nlujm xkdtlm xbdgepg jwn ohl wpfll +lnqf pcxy cpit enp zpj lqfn oowgw yoxdff ohvcfcf fuvz qkpmb +oydu jlscilm pzxen nmtdngu tslcupx ntdgmun uztpx nlhh jqn llsv +euyx epn gyvg cwtoe ruyap yaurp uryap obbl ovo +pgo irm ksrxe qotuygd afwh qfhzfsr wafh dqjbwce dzfo hew skrxe +dpvel dpvel ipljjxs vrrsob iakey uheuu swxu qmnmn mpjkb jqrwfmv jozj +sempz plzxqe qvyg sempz fejux +cqgqvg zhqir rqzih vyu fmb mfb +uejl kjh ayz dzimg yzafvg dem vlogg +htfkd htfkd hwykmm htfkd +oxvgq wtai rkyyxya ldkecdv +lvlrsu rsullv pptnrwi slvulr vxrk dpzti +gde ixwoz nnsx nhc nzi +dsadkj qtgya wco psyondq jayad crc lswwm purrad pof +nocibgs hxqdejv nlqxdpu dvzd +jfaws aiwnjm tqjpgs fuiobz gwnemv hjevs xkbbgiq sakgv zmwpkuq grjllw +xrr jwhtchs boaqkg wjhdr xrr +vyapct tgw juzgwkz odddvof juzgwkz +unuu kubdd dxr drwg +qpefzz iemo fwa vhdcxx +hseqy copss gytzub lxi mrxtwc hxqqdfx ijt kcy tafjs jit +uevse rrq zmwyjfe xljx lhgnyzt rngvwqd +gfvpyhq xpdhind eocgpiz ebs pcmsgjy swni iwns thspnh yvbzxz fgb +hxr ehw ekfd ncxcs gxjmd oqszdjp fgu gwuoafw zumenf qltbw whzuxov +wfc pawqo pim jxgt dtiwzil hdptivc slkazm htafjih hzheez rkk amy +mgoatiy pkec ddvwyni zuya aqrcjes ubkaeus nuhhad upe qfem bpcc +rmyeg qfq bia lzk fusqfb ltvgry vggr xaxi avwdkbg zhlzt +zkjoeee dyi sxdwfqa irqljmw gek dgdb mrakr ddaznn zlh ajzzacf juv +kmqcy pohbej hujdgao rsxfkn vlu +scnpa hvl cybql lvh lbcyq msw deqqb yjpsndq +ndhjooo dpf ziey jtjlc eesag ldhgoif +tysbae wkpst kjz stpkw sil yetsba +ghvlfq flhvgq tgkjie gqlvfh +oimn vlmsljl ocala vokhrs odyv msn dzly wcky +cfjwmh rpsdor bttnkg jxenm mwdk mer jgsusdz cslf +ialvxk bvc qjfikr caw puhmmfl xpmsx +tyoey egcf dijg vywd enued uxkshz nav bdrn hjugffi iobqwiy +eykhxck shpfjhk vlqg alkenz kuj okxs oeth mqbr nfvqvkv xfvyi mboo +zbw curcajm mel jxqcw mpdscxq rhadty zrddeh wmedc wkcwt yvwm +iee hzeofmh pqlkkb azlam fpj hzeofmh ripi +sawaqek oyoiwtb npq pisadk nnd bzgo wiqme lxnvn +obqx ffiegn obxq for xobq +zwway wwazy aqxg gaxq +ebssilw nuscati mofyc sogyacc yujmdwu ehxsx qcaf udvoo nlcfaz eov +vnbe wtzzjn bczyxt crmvas zujy kukq zujy kukq +gvltk kgltv kglvt zflikic +hby pium gut fjqn sksoqyq kcliapa +tbonrr prf vga jqgw ulze ukfig +zafixw hia omgwoi noeiox fqbket iviidgp bebune kwcuotp slvy wcx +fjq cyecn fhxvj byv kojvj iaqd aaxva rkogp +vqbbt sjmr mxu mxu rlfj yqhtzv cuar yde yrs sjmr +iyxiyp auepgw dtpbyvu thuoai fpsfkpn bemgbsk lni ozy jogp xldyvvx fpsfkpn +jtha ibn ahbkh xzxkei tql mycvmyh ioyw +mpsc pvdiuu wqixxlo cqwmlrw cttoz lad +srl xxlnofu dqf snxd zjlp htxzd +fkv berlbyh kyna wkme qjzgh thpw frup +irhreaj udkpbza qmgp ormlipa lbyuc +empizc apcb ossmtj awk ttsgi bfoymzd ftx jkicph qqjv tywp fwzfe +zaqkd ysn zaluvs rljdk ast fjp amjqr uabrya ufswzjg vcldkxt hzsmrbl +qvy tqgnwj akibr tfjevhv vav +mhe sxg hacoa emh kasf hid jklfy ijk dih +qvwbenk akdctm jztmsx aqvpodu vmknns nck letcrk poba +lhve kkvff iiixid vtsun uvgte mmlxk pgd +gktphd aaoqwz lrvsuw ofcyvmi suvwrl dpqiol wjgj uqigjx +tbp xoc lmz dyzlvp bjleh pxj xjp xbil +gpzgvj tctszm tctszm pnp upqtmm rribg tctszm sllsbr +hpm qvjnd lyqg bybpwn etz pwfigbg uqgrvpg cvniubo +tpowus bdncyxg gmm ebfg zwoue izgkwtx gmtfeg xvudp xgmjp atrvn aqgl +wlrxvo wvonohi owxlvr owhnvoi +knyo aiixyi sjtqb kukhgv qkj qiuefb syhfc aoana okmot tdsmnoj eyzqjn +szhto szhto szhto fxpsavu dtcz hnwqdvk iza +poykme rboczge tuyiw sxr +lpgbp bpmf aiqy exzqt gxdoow yjp fxwdmt eoklc jnps zbnbiwr ppvl +huecy jjhyz pwcea ffofmj tts +ahbmkw brz xdenmw mwexnd ncdxgf gcxnfd +yhfnra vqljz bkyxzt vhtsyde ysaxt qbw +gqhiej rofhmp soeebdp rcuiblb rcuiblb rrnh nses +pxrwe suil iihzf lhcgmfm mqasxh ttpp kqitdyf cuabaa +cxl cwsp qyseogj dimvv igsoxu ncrexla ubrvpp oum usluv +rkmo jqqcdjb mobqcta pbcmoi afjlh mork +nmohoeq fezpxh fezpxh yec +yxlncrt ivi dajo tjpim tjpim +hzhy rcjs uhyvwz tdpxlqw itoiyf +ded apfmhe stfk ugyujv drwks zagqnw mbbzmvc aoupemq +iezre wivdwif xzytxe xwytd vpnol pljx aot phln ztncw +ozblu asda tkxh xqe pvijnl qwwh uvp bdhtgjt uynwtav cdz uqmvp +eukgtsy kdfb bdfk tnv dfkb ewdemb +rsf cxnk cid qsa zwk oetnggn +fpq oim zetbmlk fpq oim xgv cbaj cjrqm +phgldt fhmkc efkztj qidri vsv bvjf lfwfgm wfuoln toamg wfuoln idrs +iuc rrdnk rrdnk asqhnz qxkigmo eeoim mmdtgif akk +rfvsyy kopfhmd tnv ibo demeqm gxrxw hwk ukorln bep +ialo eogif sxlj xfegx nanch egoif eymwt +kttrpjq gbnyiat kptg oarewx vkmt gbnyiat szyokf +tjll xviodi tjll efc rliugl wfbbpq wsqvdli jur tjll bguqyu +uecm yzjhn vqf labnc xyaksj +hjtef zzq ellr wtrodcg drwqo ernt uzx sqiokam +izmh ddutl bdzft jvfthh +ecr xqrp qlxstu kgprd gqvtwni mkughf bulabe bvoxkx +jwsna vjwq swkycg cpp dvmyal xotxviy qkiva ffa eakwp fww yirri +ufnl lpuxw rjki nggh ajdkpvo oeuaemy bjisma vsjzc +ctxu aavlw rap fzxtcp msufn fzxtcp sdlaom vgvdvpc +rftw cyf twyxi orifavd +ogiht ertz wcw jnqdup phvp lbw +tplpyq jeh aobamqe bvaim qptac gssi mkjbaj +nmklyg iitx iczojzr vjspqb uooky uooky hjk +ggnekbb bnebggk sepzjd fvqfgr +wnfwrn yaiogv mbusuy cpbcgs thjea +atndjc dbjgdz guedeay rasa kfhame pusuu dbjgdz +xivzyml xivzyml eqsykxo bshvz xivzyml +nfe ayx gscy ylyp oqyl isatnpx poaelm zsrw dpd eyrdjpq yllk +feqktz mlm jhi yxigeu xzqa qwv yquxw emken jgqsp rojfcu +ruvfcud poubal xswer hfhpyp guf pzgzoq pzgzoq jwgxafi guf kqzzlu apg +rxwcsdc rxwcsdc ywu rxwcsdc +dmgsey xrtx wldwyxz avi +yxnqv ewlx fvif ozfcbxb zqapa yudqksk wlxe mjpvgz +ozoa ozoa hwkbp ozoa +qcv drtqn uqv kcsavgn ybzs tkw +njmloq wapa srm srm ifurca +ezm ccj rub yuaww xhee liikjee kcabgic sbgqx vrpyo pzmesdp ksvv +hycyne raaksm nylsc lcpgn akasrm vxwoaum +zhugs pqquitv bae lyozb fhij pcdcc bae rygsgm pqquitv pizz +oxx bzk grpis qiqljwh svkn +qcq qqc fzgn sqg +lclad motw ukz zghp +glr okzfs zgv ygsvv sauuog glr amxr vvmwmu khy eyh +ukpxpy rgnqyaw ncm coeblf +qdbr ortzo spvnrnq uomtj vffbeva +miwar bidfxp eibo qyee +yldec ghwj mxlemvi imac klkvmg fekxhp kevlzfr fcgnoq fncgqo +hlm vlol qdic rltij nlzxfys rzpoh +krpwspb yrosr hioqla dbpgzgu dvkvvc vvdckv lcjzb qbsbr acbi rtnk +iqtvk jcldzuv smly whmnte mdwlse mkxw mfnkv mkxw kes owkfh +iwcjmkt rnb bjcdjl furhzuu exs +kjwu iuaj ixkujoa jzeau whpn +tvj zrdy fwsbagh zrdy czuzum lxotprx wbohaai +crsyzod jouf osxntw iwzzie bodu scze gjxn vgxvqo gjxn mmthykb +dabjfb vjqz cvr gsymwoe qzpusj twvwhw gyvlqd kdrdkzm bdljp cvr +vmswdz lgjsvxz yjkgqkg tzmjkfp uzbmwxe kuqa dzomt hep jjlibs oxvpvq cix +iqgd btwdjd ncdrovj ltxqc orwhdlo orwhdlo +nxro uxj ovgha elvzl xmlzssr wonimvb urecfx dbfn kope +tbes cgyh fypswue fgxjqtd dxdrfm pzhnaeu kugspa +eouzw qrpokyb fyhpb bcvfvze brdwey gpaa fpqutw pbqkroy axtc egamku gxk +xdrovpt peeww wkcin suir gvrbix +hgsjks juvod jtii iijt +yaw hzifa wpagkd tgvmc iru yyeuy mgcvt fhiza +lsk lks kls edypaxo +tjz qjs mgoyd gomyd ztjbex nprwk vvw rtjsq quvf vuziqtb oygdm +kftodz xua lyxt zfadf fgdwt zfadf xua ehwykd wniahd mqoarg +qgiapb xptk iscyf zfspn qvrpva egufqte zfspn hksw xwxrs dkdruku vegfs +wqifs wfsevg iwnjjpi oajju tkvhpl lemuw +rzbmhso pbvb lfgpq fzjwxxh pqlgf rbhsomz +ufi aiyd gxozgx hygjp dtma uughdc ojumcf yuadt +caami tqzkvor tqzkvor tqzkvor +vhtnvyx myxdywi mwpwq hjxadd qkcj vvytxnh dmbea +jvjtcjg mbiwyad cup xkrfk puz uxpmutf rjxyxyn mfchc +ocrak zprfbgu pjjzl zoehfkm xqn qki uxq tcv emknqjp wvmkas +nxg myr myr vnfzpoy +gwu ezt kbmeouj sxue cxax gcquz ieegnal xecusia vxf +xermi xermi qporwc mzemns ticltnz ddpsstr ddpsstr slgbn +xnujwtw bvzv xjwntuw unxwtjw +tipo akp fkmcls wglmjq fnrtsv +fan dfbya qrp lcvxqqu ldpm gucmeky mrzy fixaph rygneb ocm pjh +ovtrqs ujmbnal geihpe mijhy eewuic toaxbp ipy tvb evlmrtd lbujmna +lsmbwwd hvurk ihbuek hvoyq erzomhn gue lpq dihon dgzvst +fuoshq hfrzeu zfrhue ufqohs +icgwnbi gmhogxu gmguohx toixb hfwj haxlav hbe jdpxeyi xtgfi +vfakk ioil hddqu sdztx hduqd bmiuyr vmas +mcvjjhf sfgt sfgt lambvp dnqc pfecquk +xgr omy bmoadg afbna mar nicpazd iveku zdioyo +rpipon dwg wgd pironp +fkyx wjefuy mfesst ztlf gnnceb rsbvuk ckilt kliqnm iuifcvu +lmgzx oknwr wmttry luipa vcttj nuqdmy +iota efrxkk daqzm certtoi nnvqrwz qrqgza tllwp efrxkk +alde wqmdjy erh txrtqm zuljg hspbnrd pvsnebh bkue pvsnebh txrtqm txtthn +hgggm rswwfpj uctzrv bylqeen dpbnw ostsjwn jtjiyuh ofxu mmmqlg ayhza opbgdrv +qmhkh orbeokv agosach lhujcju jzpp wmxtcy jcxglu iuwmzrv xwkgz sxlzld +dzcdm lwal xpujjm xpujjm lpfojz lqqcon qmqrg +gmwugq ceslt rxcogaq jwkraq +joxr brdy yixlou brdy lnr lnr +wbut pxlsclt igigapq zeacg jxiezn hvws wwz ujpbl fdjtfjw opod kea +tsodswf pufo zqrt zvcpu +nyy mrqmg zkt tslzsf zkt +hxywv lbmogd hhv npyzgjy whfvv mlfqjr ggjz owijo zmesslo gtvizw +xzz dvpzxbd wxwlp cye rcqpgrr gynzo nhy gzpk fpfmb +nhaakbv iazpdc yadqbe kmqm dffq lidnh cegjosw kgd hwivd wijj +cwmdyf huoy awihev qav cwmdyf rdwck hahj pesfyk uoju zrirjdu +qabl vwcwbb phnd xnp huuzwxl rukbp kod sfu ngcvgrt buncnfw +regyd gjzfwf hpuv zmm vphu gwffjz +rdf emo crsoeo bksetj aqfzm pphny +opbmboi iakvj ymjwm vxoq qvox yafk zkch adlusz +qhm jul zasv xhu qnhjwzx +mjmyvd mezfuls upbdpzw awc qxta bzrx tjpjmj dxfyewc zorm +bko kfokm htcpoqc liuvj xhmpcu ccqphot dthvo pfj dtxpmu xoocm cmxoo +kxv eenns qhpfsvo gqoyv jzjho aoscl fetug agxmfea aygpt +javmegf jlmt epdwy egfs hwv uszcqvn foixpz iukh dbuhqgs zgb +zrex zrex xtx ydan maomp hqdhh mfvan broh wvwhqbu +phatsot joipm pmniq arqzmbe vurl bgy iwbwk oyhngcv vnzbzgm bgy +xprufgn vhca nrs abuh zwsxmhk mqrj tyslsij ojkdzom wepxg koodzv ypvyy +vop nnpz mcod mlli ntyhz laqztb kauqkla gmrfte pcuhaci +vrenj lypors prknc djbdkzv amofdx +lgig lojnrw obusoc fkwe ggnv pydcraq bvdivl vev mrojjs rxa +qeg tap jocwlsm vqxa lmjscow +gptlrgq vdasm erdc oparmw +rgbsa nacqhvm pczf anupcp upudwgp +jbnobi ifhzrd ihrkkf osw wos lrnwv +aiuntpl fcxpmz fplacs fplacs tipm gfotkx +fsbnd qoc ozmbi rqv fmbxh tuso kfoxvjn ocja zzs jwplx +muaklvq ghozoxh nwxbh mgoou ufptl ouhh reyuf jougckd dgprag +gwbnqwv dtrd mkzxinl erxl zmfa skuu crxmp wwao wwvdpk nxbn lglzy +qeejk wvnypc yfzyfcr eeqkj +nmcp fmkgfyi grfthau azw +kkallxz rjke ukbt ixkhfb bktu jkre +pxj mnwe djrjde gpsc enqz pdbydx cktfs jjeddr +mgplj yyunujc vis odee ccesa yyg yjcnuyu doo utse +flyy juvxomm vcdcyva lfyy ozxnuzw bmgns +kmsypi zpbyiv rrycnb qos sslwyeo jgbyv njltzt fuwk nwfb ozcf xqnf +sdcvgmy sdcvgmy hzv uyq sdcvgmy +fyox vmgxahj ywaxbmm ugy ruwc mys yrjwr ozsxb vaq +gjpyc sgdn kgm fbvq cziui nzy bwu ezjkkus jrag +kxcr tgjxss xkcr bembjv rbbiw bwbri +dcz rrhvdc zbonfzy ubjt +rvq yjnzswt vatkopb xlj dwxig dqlt qts iva +lylclc jptz rbidu lbt byxk +lwre vwriwh afixsi vwriwh +kmvbflr nfptw fbglxh pyas dxmn hemf segaz zrs +dvbey zmj xfoi bma udtxhb +yryng geiwgz bbrvjp ala +olzicp olzicp qhhslry olzicp +exf xdmwh xdwhm nhjsssn rmlkdb excguia fex +xkwgeso htys sjdk jizciy gjjl phgqdjh wzdb izew zcrumu llxfp +frkohf oifsm aisebkt ijsfkot ukk +koqf xvoior tpe erfpnp npnx +sneysk nsxki wpmhd mdor akrpvgz moicncj sbsj owfhj exw +oqqbvk xztx gtxlms icmo +lfy ltq dlzqlvi ovbrsa gzm nhcjq umbtgm nhcjq +iuopdzq cqaeuu xuzngq kxlx laml slvvr frtml tvioiez vyoomw xickbqh +ckahov mepeku gtaf gtaf +tlto cnnz kzsbkjo kzsbkjo +kqf comkf dvrkyl jdsqi rnwvb vxvd pok +hncq xcx yuykfs egrruvw yqh smcou +tywyq xeq cix yywqt jhzptci hybcoe +zsw zsgot wnu sumd azmuos qawjaz rpf zkxgwdu iom igh +vmxmelt gll ysbbt yboqoyz ykdglk cnypf otn owsz ipn epfeka bkmy +wxjpce etzyavi whb sxzft bfu dgwnbgc nfw sxcteis qqpk +kofv dgoyme vlza oxhbo lrqt uic tvfqiyy iaqm afnk +nsmpg wkibdcz dxbw tlxzm zgwe nqwjji eacbhn blk +shlgws eencr rtufah kjyvqw transt ecsq otbf +obs xsjceex ffqj sob djpq jcda zlskve +rfqtle klarp mtzrx rasr eisqovk rpt vymibt zwrif ilsnd +ldu ffd ldu tizfexr fwpmyan +flxso tzec pzn flxso kzdouon tkvkj +tvd arh qywql uev btvnpm +wtwx kzafvk ybyzmhv mdbrphy vamlvr gbxhod tyulba krcqj ikotmla qfhpa +bnfin ebngj agfdfzu rhjtj aaqzh fsyp nilar uwurjnu hhmso hhmso +uanmesj vshh syosjdt xkormf syosjdt ifvytwl qnw vshh jkg +epyzcn pgdxgye lecnx nebg jzdhvge hfy imiyft +zonbcnv vuvg sxtuty zdhmiow lmud cuegzg +bxgft mxhzrh unqd pqpsnce khykn qlb oujdxpq pxrd jzxjuxr tij +qss mqirowz ijjswjm jjer utwn kuedqxx bxshuok qkfag dmfwcr +jgln zdohd xitfbge xbokj xxeuv wqhvhjo erg cua fhc mhwy +euo ousht ipxt tpzq vnbmlo wvbjpb yjg bwpjbv nzvsea aerhsqv +axhmi bcf zdx vplso xhmai qsk psolv +ydnpmyo pfba zmo nat ykwxvm ydnpmyo rtd uuvqqr hcfccbd rtd +ytp guw ydmyf rww oucmpf gemhpj labc +edpbefn awgg qzpe aat cupig +mmi ghdaoh ibx fbyj gge vmmssen nplt mmqcra omcvm uwa fxypxfc +kjaw mtijne cfmsigd zwcjjd ajxjlqr tbp bnilc +fse ele vcsyiv bfe udny vznrao mgrjfgw +hadl nikvvpf gmdg bkmgt ugj +xkis qmr cgz nresp gms zrii coxkke vfsqiil +wmicbf bkk wcwklfg vpcbeg kfmjab vabc dax tnao tnao fvvzeyq fqm +bct tvj tra soo stqao kqua ikupoy wulcu nauxkkb pvqxy bfu +wpz txdduxq gaehfki kxo lvjzpxu iqon swr eyihl nbbec +fuphnbj bdtz huwu zdtb ilgzpa uyaut vpy viff tuuya +cvusbh bgy apsao qsupha +jtzlbd ljfvh wkjrw xsah sef jygb pqym zbcwok zdmug qpym +hbibuax iorqc dqjrs daeb iorqc qiw sagyt rkc sagyt khbr +shz mgn pqrdbm jvace gfhnq ann zosq wdwzmuf kswsg dzt brlavyo +qiw cdvwds dckpruy pybjra lfvgfn cwj bajtud pojehb rzrzvwe +txfyk zkgeeu zkgeeu zkgeeu wskcv nccoz +eettnxq gbgr uiqonyz wqtgs ozfjbn gbgr +svd thmmr rbbtxn sxkq isxlnhf tamdlbe bqrgvu nmpvlkc spko +qmn rspbjme ikjddkq kdb ugpegi egipgu +ufffijo revqpep zfw kwd pnya blqo rnntzx anpy +piaeyf vbeye uuqd vbeye +hamd hap ekk lgla twto +isniinr crz sjpmfxn uskwj +lzeofk tavbq ijcglqy lvy jliqcyg lwlip +uhyyyw itlrf tdc iabeocv jzwnjh vqxll nefze pyrxmx eispxnm hzlksce +ucuh mlam bhyej rgzkew ctbo iswqnvg +ytmb toppqgp ytmb gqgpr gqgpr vps ebv +eavn atkqltv bjvojs kaskr vqltakt uiktr xglc eyb rkkas fhnf eaorqm +jmfipc ujggeh hdxpfa xtab ydkibi ycxn ujggeh icheh vpznael oprbf +xazqxg khlemu awh uwz vhnixk vdcty hkk +gcl kayi hfozask grpseyn zviy tzoum qywnr wqkhq +ctrrcpw wqfbylp wqfbylp wqfbylp +gtk lqohf hqeaku mdj zrfkmxn bcqgf msing +luhpel kexokpx vojap ldaexs bbbtz +oimnqb esg zyjmbfh dfyhcf khpo zjtgm yelztbs ugj zjtgm mxro xyfxpk +dgtsu vvk wwfugbx aai zlxab beyxcg bpx chc bnxui +irrwbo orwibr lqt qtl tqknh +ihjsg ihjsg powwy pycyqo ihjsg +xdcu outh fnqrc eihkss bdylm sjunib eihkss +jpnw ycimse rffu ismyce uhxl feai +yyodnh dvwshkx vulh pvxj ydhyno hyodny +vuuweg pfguvyu orhei orhei wrm amkr xecja lmnveth +wriwe xgtnvj tdmxf gadtqh bezjvz lifu +euft tchbm xmtlwji tchbm +cfi zudn zludl pwiu axe psed +dbtfwf ajxcudj uaxdjcj dxuajjc zouyy +fmycmej bqhe jyfecmm kkrv kcdvjoy +grtb uzs rkxzt hivhic brtg hwyc lsl iivhch qbcp +ymn xfpka hqm sldz dblvsoe +qrcapma hntgmy difrkpk difrkpk xlsph +flvqh akcw boxrz ywhq boxrz esnxzv boxrz +zrvh jskaw mfs fkj +abveb qxfnlfq abveb kbwiyvd abveb +pgarl nbfrenx rnxgx bdlkix liltdm dzcokeg fubupcg iwp xfayp obfaz nevfw +nuhvaci blyv fcsp adlanka sjy syj ysxl +avwakn dkoya yzuszuk lqrr oqfyd dmgbhd lqrr +pxa mcvtoug nlweso yffqc dtuagcd ovvrkz ggfhw wnlseo bpqbn ohxzs rxzo +djkcl kbgyfir ogquot uoqotg jtmyd ohudvle xrnbt yvsln wykqt hntc xlrhqrb +ykt tkxfmd exas kty +zebstke msbbndq itmli ubexmht vekvd xbmb iajbj wac sta +ptdg oftwo goiulah tfmsrqs jffxvnv ozaluj qlhqjy wyffa +xeq ezmlpw xgno xorvfo yzq vwif wsi +hdove hqbzhu pjrxlj uafuh rizlb advmkca +jzk ddoisdh tfjh yuvikps ixpkf hnu +kixa djx uksr ogxty dxj clda ukrs +xgiy diwbvn vphdbg qnelyz tqptqig lenyzq ecsswj +alx awj fpasmmg zukuh qaanvb too nvskuk too gnria +suo suo brw nazq suo dqv +tan uxiz oqa xyezcd lsaicjr bosiak rmmh +bidpomf dimcj qekero wbrc lewt kmgmlao +bciacj eye lxfpef cbdshd dhdsbc qwnhil iuokc +zduefht lrgfjn nclksm wpjpjr hkeqd oprsjcw +chhdr bram swdfjr yikqra xkzsloc otptp agec hhdrc uofljf toppt wpbyrwo +bwlpb nishr knnrysj bvr ftnb iedskch weo +czo hsfp wblh cru kzalun intt +jvob rppz rkwv hgyhrqg +sgo hued jnygge izf ztan kjgpcn fagff jsi ijcxzoi tgqjjp tgqjjp +ltjq zidjy rfmy yevuaa nlhfyg xytdtle wsqvzzx wfflboo nawhv golhf xhsti +bmtzlml xcbsquq vnfsux voep lkss ioim +ntfffh gcncwu mmymn wkwlswa gcncwu iaeyumz +kcgdm rbaau cwsoya pznnnn xzz zbbdlhw zxuelq xzz pjeq +xrmnuct kwvykx khxr ioua xnmtrcu xrnctum ujq imnt ecee +xjsgx fby fby fby ggtpgdm jqvuj qshewki tkml ymsazcq +sdbyhwg kewtrte novhdcp wbuaoh dtytgtx zez whygbds hpg +tjvaqo yrycda yrycda ldbp yrycda +kloi tmsocmx dza sqtxc wgevs zlevs vtm +ftnx drvdm ryjfdgw nerynh cwfjpa mddvr +wsqjyn svg ncw aesn hvuq vybajti aesn bql atxhp ipu +eye romgxj gumuke jwi jrf dtt kcj wmg waw +ptltud oymklv fgnmbc ete apanovb vpt vyospi +clkguhu rbxs lxtnmy ferdx qbmrpg pvojnj zbcffbp +itngp dvtlq fzxp cxrf gbxxqp aafls pfe bpxgxq +nmikrui ddsq srfilr gnuvghu mwnacz nlbdm zcjm uylgev umzu mftz nmikrui +bow jmnxyen bow hvz +lksibxk lefzh lksibxk nkxsi nkxsi pldvhk +osjlzns pihvr zpeu zxjgjb xplykfk xplykfk +hajmfss cardd kaddjw uicfde taue +rgwdjra sgifh ggt mpzx usghkos oob fvzx ghnyxr sblcif +dtu gnihpry kjdpiny xvax itmluk fxvgaap bei xuq wzcy rhb hailtgo +wwob ueldq ueldq glxc umimwv onu dxhmhis ebottoa lnysfiu +zfbyi eyq etaj idpbkf +qshcfjb ozzqigv raztm ymcv sgivwoc kightf dcaglk udah fdm +jmxr jrcnck enffwfl jycc jmxr cylnigo enffwfl +bkslhv tykqw tykqw mbeqrbt tykqw +vogf nhqltpt nhqltpt vogf kpc +ryayz ddktu rfhkmx xok xninjcm ijcrw fxu +cmezfj zaamjrs whlcuoo mug lcaqhkb ymkdci qexa onhgk pgy +hcrcok qri fki wbiog ptj pmgtdt +xsl mpfxwbz bmzxpwf hrysu bmfxwzp xfja +gybzho ktokndy rzkbr jcnp ahicq weccg pgrodkt che vaglyn omhmpo +vdv bngjox srs faymg xrmf enseu aygfm gvsd +nuzi xodkbag eevovl bfjuv nuzi xmejqn +kcswegw bpa dgil insf insf +stg tklrut poi knurfpf +pcs dgirfie yep lvkfk ype hntt athvad clfybsq ofjhegj epy qwawns +wjtpgd wjtpgd vxnapp mwyfsm vxnapp rvcswcs jksa +ckzslrg wdzeimw cqhp nfgk zgukvd yyt tra erkx wdzeimw +hsww avl vkmzej hsww +mum oczj jfew rag zjoc wjfe yqynjqt cbkcsgo mri +vjhfqdi vjhfqdi npfa pzdmy utlyw bwvbfm nqdv iiap ygpky bwvbfm eocya +ewkqi ckb yviuro mqz vtrdam yzkqzv ppbj lhmj blkafo juxvwke lvewc +ljrewgx sutnb hfsavbu jofr ltml mjzkzz nmjii sutnb eonegt +cxzv nepyrb wmejdo vwqi aeqys +sbx fmne obzdz rdnfb gmb sbx ykcae hbzom ncwju rhpiao obzdz +lsgfun cbmfjwk fya ktzxbwt +ica bpsk bwjwkp obloxdx uwoqdo bnnhjuc tlsx qtaacp bdooxxl jamy ade +psus wmtkg ikvfx fkvesj upqlhfs ueje nyt abxvo +adlbl hzskbrp ooht nps +wtcgnvy nvqtvx tvgnycw ntvcygw kkxcp zyjmpbh +xfxww xsddqe ewvmgw qxqwy wpabtz ppe zuiw zubcc onaqii +kkaeec xhcakul wrrvi dtlqfy ahqdilw bnt gwimw espaivx nam yfv +lxz jtc nkwgz nbgsao olsck emtltf xidwcvm lcjxq +eav dzh hnbp hnbp yeg +egaq yvat kavsige csar zsi sptai +pofijc ibdnoe caoazp azlnjk dqp chik lowll iby gpvjv ohm +ors lexk zcneaj rmesx jman uqkb kvkq zfufmn +qgsyzxd hlm juerg ortfzw hxjzg +fxwy lcoc fyxw pzhynp yfn zdzrz +datmws ckwghgr gbtyf lqrpfgl mbgpd dyjilr fgybt hxpg +mxw facxdnu wxm urltwtf qfo wtpwrj +esa srypq jauwv dpm wdgqq hrke icvudq bdmubb ellhfjh ttpjjd gxmg +gvwvqwj cbzzuvj eckube adqinpa djutlue wcpw vrt ucqwu ekruwsn +fhj fst zmtb yhwk dxlbozs fcb vjvuxin dxlbozs rixdvu +egfoep cvq icd prwj icyg +aojaa ezmcuf udreyi bja cyrtpl wjl +gjeka bsbufp tbqqq vbmnqg sfqtgac odhq xzsxt +yse gujdr ugjdr sye +tax hntqw phf eixjwfh qkylnu nkyuql ugsuj +wyh egum zizhfc jrq htbyug lop dsu +exh vfdoosj ajrna jbiaz lqsgvks xklqgjv abtmdud +juqc ormfa sab tucsfln detqfo feg kifsion juqc ovhra +hvcrh oddhme omzmu vmy she xulvfa fecmgi +ayo gspge nkmy yblsj lrsre nkmy pwocjz gdexqqx ovovm +acy sqcz ijl htt yjsi rly vea bck +bniafe yore xnh rkcfd hxfuzw xlr nkzmmcs ekwggiu kgoboi wfuzxh hwfxuz +weq crkeq cccphe dtozviy kzkkdr yku cephcc ctq zbau dewpi +vfla rzpl bnmx uvggon foivrb fval +ziaove lawkpdn ddwl sxj krroj rqmffxv babb +bdw dsifr kuueet hugddwt piz dwb sjixveg kmsoknq +czl feyxf soyvbj tnmpjn kklwi akx nqepntc +nrmhc tkkn jrxgc jrxgc tkkn +ufzn mrhiapi qrme kjlf qrme xpp qrme loyzizz xqm coli +qvaoye mysv ydfxr iixrw +dql tqarux fxqfn haoinu lyati xml +kyve obatly dgfjt fjz sqrz xlbst lgwlt zovih aepy otrpl oifid +ymawam afgye lcnpkmv feilfws vonseh rxrdco +tqij kuawg dmova slds imdtb sjsafo ffkzzl pxxenva wuakg efbgx +yrwoaos vpw ijjpua jnbxl sev yvgdxzr mpqa vpe lboh sev +krwdtd uglxtcz mljcgdk lqj fgpfle nuui cqk exr nuu oyn +dwd nwt idhclm vgkh rpubq wybhapp +hskhgpy gzvz jztbr jwv vcx vdjmnjr jrsp +ikml ceuhcng biu zoo gra bnnforx abzan hwsmd lmki tsl yvogo +kqfc younaz azvgfz gesajr tmwxvyb vmcdu dclwh rfjwhic slfym +pbrhjml rsacryg jga qvgks neh fcq qmi mwb juezk mjteeg alkb +pcj ujstl fkrqm eeczrle hbkcvm upbo mrb qrspjt +jbq rrk xjl rgokbnx hor ogg szxqu hysy vqj piorq wtrtrdk +bnq ntvhcrf vrm puer kde xaxkja sfxgjf +pgcicus hqeqkkx xqekqhk qqkxhke +puquxi hmeaehh oxe tasipw qzyg hyvy wcmpwe +hvs fxq wvfy zjepsl dvrfxnc xnvg +xle crcuc qkhnv crcuc oedez bjw pmwq +xzzpiy cjwss jwscs apb bpa +ydjhhf yeltadb lwi cjdcb ovaox xrdm vkxub +zax xza admbc lvpzfeh auxn rwasj +kebx eild nrskdr meja jxczomh gcne diff --git a/2017/05/day5.hs b/2017/05/day5.hs new file mode 100644 index 0000000..d2944a1 --- /dev/null +++ b/2017/05/day5.hs @@ -0,0 +1,36 @@ +#!/usr/bin/env stack +-- stack --resolver lts-9.14 script + +jump :: Int -> [Int] -> [Int] -> Maybe ([Int], [Int]) +jump n back front = + if n == 0 then + Just (back, front) + else if n > 0 then + case front of + [] -> Nothing + x:xs -> jump (n-1) (x:back) xs + else + case back of + [] -> Nothing + x:xs -> jump (n+1) xs (x:front) + +countJumps :: Int -> [Int] -> [Int] -> Int +countJumps count back [] = count +countJumps count back (x:xs) = + case jump x back ((x+1):xs) of + Nothing -> count + 1 + Just (back', front') -> countJumps (count+1) back' front' + +countJumps2 :: Int -> [Int] -> [Int] -> Int +countJumps2 count back [] = count +countJumps2 count back (x:xs) = + case jump x back (newx:xs) of + Nothing -> count + 1 + Just (back', front') -> countJumps2 (count+1) back' front' + where newx = if x >= 3 then x-1 else x+1 + + +main :: IO () +main = do + front <- map read <$> lines <$> getContents + putStrLn . show $ countJumps2 0 [] front diff --git a/2017/05/input.txt b/2017/05/input.txt new file mode 100644 index 0000000..e867882 --- /dev/null +++ b/2017/05/input.txt @@ -0,0 +1,1003 @@ +1 +1 +1 +1 +0 +0 +0 +-4 +-1 +0 +-3 +-4 +0 +-9 +-3 +2 +-14 +0 +-17 +-12 +-15 +-7 +0 +-7 +-12 +-3 +-17 +-11 +-24 +-10 +-16 +-15 +-28 +-13 +-28 +-15 +-28 +-29 +-20 +0 +-10 +-30 +-13 +-24 +-34 +-42 +-25 +-36 +-38 +-35 +-23 +-11 +-4 +-16 +-15 +-10 +-31 +0 +-16 +-21 +-50 +-26 +-31 +-36 +-53 +-54 +-12 +-28 +1 +-16 +-65 +-69 +-4 +-47 +1 +-42 +-33 +-55 +-72 +-29 +-2 +-62 +-40 +-28 +0 +-42 +-78 +2 +-23 +-86 +-75 +-17 +-15 +-9 +0 +-24 +-36 +-91 +-64 +-65 +-98 +-30 +-21 +-80 +0 +-88 +-105 +-103 +-32 +-54 +-62 +-105 +-68 +-101 +-73 +-26 +-112 +-96 +-66 +-115 +-53 +-69 +-99 +-84 +-46 +-105 +-16 +-18 +-104 +-19 +-16 +-9 +-45 +-40 +-40 +-11 +-105 +-105 +-72 +-89 +-3 +-119 +-74 +-124 +-111 +-128 +-79 +-145 +-138 +-147 +-92 +-44 +-115 +-51 +-139 +-15 +-72 +-116 +-149 +-38 +-55 +-63 +-62 +-3 +-48 +-115 +-33 +-56 +-51 +-28 +-8 +-15 +-162 +-7 +-24 +-72 +-104 +-7 +-23 +-16 +-25 +-169 +-157 +-53 +-123 +-183 +-127 +-98 +-133 +-180 +-96 +-56 +-57 +-123 +-123 +0 +-35 +-174 +-91 +-167 +-121 +-67 +-47 +-201 +0 +-111 +-158 +-36 +-62 +-111 +-114 +-183 +-139 +-108 +-74 +-154 +-12 +-18 +-182 +-217 +-199 +-68 +-212 +-183 +-126 +-56 +-112 +-211 +-203 +-223 +-40 +0 +-225 +-101 +-24 +-91 +-94 +-80 +-190 +-6 +-234 +-2 +-222 +-208 +-46 +-163 +-136 +-45 +-17 +-141 +-18 +-67 +-224 +-39 +-135 +-91 +-91 +-146 +-158 +-70 +-33 +-232 +-54 +-45 +-80 +-124 +-221 +-130 +-236 +-112 +-238 +-11 +-34 +-110 +-198 +-15 +-252 +-230 +-118 +-230 +-193 +-119 +-162 +-214 +-206 +-158 +-199 +-141 +-167 +-9 +-140 +-185 +-126 +-106 +-293 +-142 +-290 +-78 +-137 +-274 +-186 +-88 +-167 +-287 +-218 +-300 +-5 +-81 +-108 +-287 +-276 +-235 +-189 +-116 +-16 +-232 +-32 +-189 +-78 +-8 +-72 +-219 +-12 +-63 +-7 +-114 +-170 +-125 +-162 +-19 +-140 +-152 +-3 +-127 +-314 +-158 +-301 +-153 +-62 +-7 +-94 +-182 +-61 +-6 +-285 +-260 +-123 +-298 +-131 +-66 +-155 +-347 +-181 +-71 +-143 +-232 +-146 +-100 +0 +-101 +-315 +-53 +-348 +-209 +-320 +-212 +-358 +-108 +-101 +-188 +-218 +-309 +-290 +-245 +-253 +-111 +-188 +-104 +-296 +-14 +-306 +-335 +-87 +-284 +-14 +-117 +-143 +-386 +-367 +-292 +-251 +-289 +-340 +-41 +-85 +-52 +-236 +-265 +-265 +-341 +-395 +-110 +-311 +-391 +-79 +-262 +-214 +-395 +-205 +-50 +-318 +-198 +-199 +-44 +-153 +-403 +-261 +-290 +-55 +-321 +-407 +-17 +-30 +-342 +-321 +-37 +-197 +-5 +-305 +-394 +-373 +-297 +-40 +-114 +-240 +-218 +-164 +-334 +-337 +-38 +-124 +-362 +-209 +-79 +-208 +-277 +-341 +-345 +-112 +-137 +-306 +-90 +-10 +-50 +-447 +-445 +-50 +-327 +-374 +-441 +-197 +-231 +-31 +-361 +-444 +-109 +-294 +-452 +-327 +-411 +-137 +-326 +-201 +-217 +-277 +-245 +-263 +-111 +-286 +-265 +-298 +-107 +-204 +-395 +-299 +-175 +-158 +-94 +-34 +2 +-55 +-113 +-278 +-74 +-380 +-167 +-429 +-261 +-57 +-95 +-215 +-392 +-121 +-460 +-250 +-393 +-41 +-183 +-123 +-367 +-387 +-66 +-431 +-399 +-295 +-449 +-10 +-461 +-392 +-277 +-302 +-460 +-197 +-307 +-229 +-296 +-415 +-313 +-334 +-172 +-303 +-439 +-479 +-364 +-156 +-287 +-315 +-265 +-153 +-134 +-238 +-88 +1 +-306 +-399 +-197 +-363 +-156 +-370 +-313 +-365 +-510 +-91 +-464 +-177 +-550 +-95 +-49 +-108 +-24 +-289 +-229 +-547 +0 +-538 +-164 +-202 +-190 +-92 +-302 +-416 +-42 +-148 +-192 +-246 +-118 +-144 +-264 +-497 +-276 +-350 +-318 +-219 +-301 +-398 +-12 +-292 +-395 +-565 +-102 +-118 +-424 +-3 +-473 +-94 +-413 +-145 +-38 +-97 +-485 +-363 +-309 +-250 +-506 +-345 +-346 +-447 +-319 +-330 +-198 +-255 +-353 +-260 +-370 +-22 +-91 +-345 +-333 +-315 +-593 +-450 +-37 +-380 +-543 +-5 +-556 +-164 +-135 +-513 +-56 +-166 +-474 +-14 +-84 +-561 +-596 +-454 +-429 +-457 +-69 +-59 +-597 +-598 +-391 +-260 +-596 +-384 +-267 +-34 +-158 +-531 +-243 +-495 +-165 +-190 +-466 +-574 +-344 +-365 +-277 +-329 +-64 +-616 +-123 +-551 +-537 +-412 +-333 +-589 +-212 +-376 +-290 +-366 +-363 +-477 +-39 +-37 +-495 +-317 +-554 +-675 +-442 +-427 +-407 +-515 +-169 +-113 +-395 +-561 +-358 +-214 +-20 +-424 +-74 +-311 +-110 +-353 +-112 +-217 +-181 +-496 +-336 +-311 +-585 +-407 +-383 +-663 +-266 +-591 +-235 +-266 +-406 +-347 +-268 +-281 +-449 +-569 +-8 +-178 +-62 +-139 +-89 +-72 +-487 +-352 +-164 +-244 +-640 +-139 +-639 +-330 +-348 +-390 +-260 +-632 +-171 +-343 +-700 +-21 +-653 +-250 +-20 +-587 +-357 +-151 +-536 +-287 +-614 +-582 +-564 +-136 +-613 +-130 +-717 +-54 +-35 +-205 +-49 +-711 +-538 +-342 +-222 +-579 +-300 +-641 +-240 +-198 +-76 +-550 +-73 +-528 +-465 +-485 +-327 +-433 +-325 +-441 +-575 +-661 +-126 +-588 +-315 +-651 +-692 +-189 +-656 +-533 +-627 +-459 +-244 +-737 +-422 +-647 +-324 +-759 +-592 +-305 +-281 +-360 +-79 +-271 +-52 +-129 +-416 +-39 +-497 +-147 +-755 +-398 +-382 +-217 +-301 +-581 +-345 +-310 +-68 +-90 +-128 +-303 +-416 +-348 +-745 +-204 +-795 +-482 +-537 +-315 +-662 +-432 +-464 +-239 +-19 +-216 +-230 +-240 +-612 +-129 +-655 +-197 +-369 +-89 +-573 +-180 +-229 +-264 +-268 +-401 +-820 +-412 +-99 +-666 +-360 +-814 +-348 +-755 +-772 +-296 +-851 +-818 +-394 +-161 +-77 +-109 +-362 +-273 +-688 +-574 +-50 +-137 +-550 +-380 +-462 +-851 +-611 +-237 +-853 +-11 +-383 +-767 +-349 +-170 +-389 +-747 +-247 +-462 +-839 +-87 +-852 +-672 +-796 +-839 +-788 +-78 +-151 +-507 +-414 +-363 +-750 +-521 +-468 +-418 +-251 +-803 +-802 +-269 +-766 +-520 +-301 +-156 +-488 +-130 +-100 +-191 +-45 +-352 +-774 +-506 +-306 +-517 +-220 +-62 +-523 +-111 +-157 +-516 +-541 +-888 +-514 +-223 +-902 +-159 +-255 +-699 +-901 +-893 +-273 +-602 +-850 +-382 +-207 +-528 +-566 +-834 +-695 +-25 +-166 +-650 +-569 +-667 +-771 +-809 +-922 +-858 +-53 +-703 +-552 +-584 +-190 +-193 +-146 +-218 +-503 +-252 +-432 +-93 +-180 +-277 +-250 +-610 +-194 +-415 +-67 +-793 +-413 +-930 +-785 +-890 +-417 +-501 +-109 +-839 +-916 +-860 +-467 +-741 +-645 +-795 +-769 +-665 +-974 +-318 +-334 +-963 +-674 +-432 +-402 +-702 +-724 +-524 +-753 +-146 +-719 +-953 diff --git a/2017/06/day6.hs b/2017/06/day6.hs new file mode 100644 index 0000000..1ef6f6a --- /dev/null +++ b/2017/06/day6.hs @@ -0,0 +1,35 @@ +#!/usr/bin/env stack +-- stack --resolver lts-9.14 script + +import Data.List + +distribute :: Int -> Int -> [Int] +distribute _ 0 = [] +distribute n len = + map (+1) (take k baselist) ++ (drop k baselist) + where baselist = replicate len (n `div` len) + k = n `mod` len + +redistribute :: [Int] -> [Int] +redistribute xs = + zipWith (+) d xs' + where n = maximum xs + (a,_:b) = span (< n) xs + xs' = a ++ (0:b) + d = let l = distribute n (length xs) + k = length xs - length a - 1 + in (drop k l) ++ (take k l) + +findCycle :: [Int] -> (Int, Int) +findCycle xs = + aux 0 [] xs + where aux k acc xs = + case elemIndex xs' acc of + Nothing -> aux (k+1) (xs':acc) xs' + Just i -> (k+1, i + 1) + where xs' = redistribute xs + +main :: IO () +main = do + xs <- map read . words <$> getLine + putStrLn . show $ findCycle xs diff --git a/2017/06/input.txt b/2017/06/input.txt new file mode 100644 index 0000000..177ae3d --- /dev/null +++ b/2017/06/input.txt @@ -0,0 +1 @@ +5 1 10 0 1 7 13 14 3 12 8 10 7 12 0 6 diff --git a/2017/07/day7.hs b/2017/07/day7.hs new file mode 100644 index 0000000..d017c4d --- /dev/null +++ b/2017/07/day7.hs @@ -0,0 +1,60 @@ +#!/usr/bin/env stack +-- stack --resolver lts-9.14 script + +{-# LANGUAGE OverloadedStrings #-} + +import Data.Attoparsec.Text +import Data.Text (Text) +import qualified Data.Text as T +import Data.List +import Data.Maybe + +data Program = Program + { programName :: Text + , programWeight :: Int + , programChildren :: [Text] + } deriving (Show, Eq) + +parseProgram :: Parser Program +parseProgram = do + name <- many1 letter + skipSpace + char '(' + weight <- decimal + char ')' + option "" $ count 4 anyChar + children <- many' (option "" (string ", ") *> many1 letter) + return $ Program (T.pack name) weight (map T.pack children) + +findRoots :: [Program] -> [Program] +findRoots xs = + filter (\x -> programName x `notElem` l) xs + where l = concat $ map programChildren xs + +totalWeight :: [Program] -> Program -> Int +totalWeight _ (Program _ w []) = w +totalWeight xs (Program _ w cs) = + w + (sum $ totalWeight xs <$> (filter (\x -> programName x `elem` cs) xs)) + +childrenWeights :: [Program] -> Program -> [Int] +childrenWeights xs (Program _ _ children) = + totalWeight xs <$> (filter (\x -> programName x `elem` children) xs) + +isUnbalanced :: [Int] -> Bool +isUnbalanced [] = False +isUnbalanced weights = + not . and $ map (== head weights) (tail weights) + +main :: IO () +main = do + contents <- T.lines . T.pack <$> getContents + let programs = map (parseOnly parseProgram) contents + --mapM_ (mapM_ (putStrLn . show)) $ programs + putStrLn "Root: " + mapM_ (mapM_ (putStrLn . show)) $ findRoots <$> sequence programs + putStrLn "Unbalanced: " + let Right programs' = sequence programs + let weights = zip programs' $ childrenWeights programs' <$> programs' + let unbalanced = filter (isUnbalanced . snd) weights + mapM_ (putStrLn . show) unbalanced + diff --git a/2017/07/input.txt b/2017/07/input.txt new file mode 100644 index 0000000..cd0fc4a --- /dev/null +++ b/2017/07/input.txt @@ -0,0 +1,1241 @@ +bqyqwn (68) -> wscqe, cwxspl, syogw, xnxudsh +ddswb (34) +hnkvw (320) +ibqmynm (252) -> oglcdgs, tkjofj, upurae, oypvhy, bzfkt, hdvcz, cfwxyl +rkerea (87) +lcmlbj (66) +vtccvv (69) +nachvlp (20) +tmkli (66) +exuyuk (82) +ojzogs (79) +egkiqcp (37) -> rxjnad, psetts +xadjes (10) +fivkqxx (121) -> acvzsbe, kkmax, qcmwsvm +krgtrdn (53) +mxemqqb (267) -> iuuouds, qqmvd +iwwqvoa (24) +yyecrv (59) +zjpkoar (40) +ilsgqdw (37) +bmlfd (43) +nxqwag (81) +ubbwvvl (44) +khfzis (48) -> ztxcc, bvejguc +gvtcy (39) +xbxxe (173) -> bzjxil, amklj +qejgaf (25) +uunpyb (82) +dmidur (57) +fklfgd (65) +vcjfe (22) +rkjfx (33) +ioglbe (88) +tymkixg (36) +qbhhtw (90) +afbrhy (79) +nswcez (47) +wzjonl (16) +xviqup (95) +claolm (312) -> ndmkbul, rpjfkh +qhlhfk (387) -> iwwqvoa, rmshk, ftezz +vtokttx (55) +boalcdm (13) +angpy (62) -> fitha, itxgz, pyiexlj, wqshh, rloxobx +gwcdf (32) +jpscxfh (46) -> qsakd, exuyuk, dqdmie, kjwfeoj +qkzpcyy (96) +fifams (415) +yseezd (11) +qcmwsvm (37) +hfnhd (152) -> vdcfh, ufrhi +wfgzr (82) +sjoov (6) +fonrb (7531) -> xohxq, cmsqe, jefsr +pyhof (21) +pplis (9) +fosdh (90) +pjkyydd (15) +wvmtyez (46) +bzfkt (66) -> rauho, xctuhbx +zyqssjb (13) -> olebdv, byahs, xajzwdh +wotus (119) -> dndrnc, tebkmhi, qejgaf +rusndcc (39) -> xcfxvd, kvylxr, vwkegak, oiuztx +stofi (16) +mgqil (66) -> noibcw, nptqxtu +qjzss (31) +hawhqex (71) +kjjee (174) -> lltgjo, gwcdf +gdamb (99) +diqdy (183) -> gackyrq, vcjfe, lcnsf +sfwzqk (54) -> rkuzg, ewvvb +vktjns (45) +urwaex (59) +nyouzhg (17) -> lofybs, baedi +mklqpn (9) +iktget (33) +gxtfu (57) +xkymbld (37) -> mqgbif, ptxfk +qjeuqe (92) +benqzp (92) -> wvmtyez, gmveehb +rkctaq (20) +sbwoye (50) +bujufb (148) -> tduxvx, lxzvkpk, jllqymn, csrpy +cwfydbh (369) -> qcmtgvr, tyvjs +cjjytkr (305) -> trszl, fgzgfc +qsakd (82) +domway (2464) -> kgphv, pjujovx, hrdggo +mrpji (61) +kzrgfb (92) +hocazx (818) -> bmukspb, mgbwxw, gyirkcj, kgxfc +bobvssz (25) -> srvqt, alhghui, wnjaw, qhlhfk, lsbvzaf, qjkfys, nnncfl +rrzyzq (76) +eaufvn (78) -> dtazpb, nlajc +tduix (18) +yzcez (62) -> rlxto, vkaxa +uvpuko (91) +xtnmps (95) -> ptatzl, bujufb, oybbzr, zwopz, phqpwkw +ibeis (54) +ofkvpq (500) -> auvuxv, stqmwk, dptekr +pmolg (166) -> uuunqk, uolqt +byedxex (180) -> gsaqlad, ebwubc +aicjff (67) +vtcxw (860) -> ezlfnhs, aizdt, ylbftp +nzuswm (80) -> ojzogs, qfopwo +hgwbg (89) +sflonq (190) -> gppwsbp, mpvgy +pqiuhyp (52) -> xbtjl, jykseco, aftnyad, xaden, urdgg, ijkpfv, ejekn +ccgjf (99) +devsz (38) +vmmtsr (33) +ebwubc (70) +mgcnohi (69) +klege (92) +jtlqxy (66) +ofbqk (148) +ewluica (22) +mulvwn (290) -> ubbwvvl, jmuqp, dnovxt +trlcj (245) +uezwz (20) +bbtnj (170) -> xvwok, rqyxzn +ndticx (54) -> rbtco, bobvssz, umtxk, domway, wugia, ubvttg, ydpemw +lxwkpqh (325) -> xoigv, fqsjaz +mpvgy (35) +ujgeml (94) +jkoir (6) +kemkz (98) +dtqgdc (90) +girxc (147) -> zylotoh, qtxmjwm +olawkuc (79) -> earmfdp, wnowypb +umrqldb (99) +oyurlfq (57) +flgpg (188) -> jimltsw, xhgza +wawtrk (80) +nlajc (85) +ewqcktv (1364) -> hfnhd, amqvr, ntxcpwl +dmvyuf (35) +vtdbov (50) +xnszvs (65) +mjrktxe (50) -> eoxwp, jgsmitm, isrgei, rnbgz, kymbvpp, ktjdpt, mgzocpe +zicvok (81) +tkmfbk (93) -> ffhsg, kynezb +vlwvot (84) +oybbzr (1007) -> qstlv, nayvvrh, izxpf, habni, ckfefl, fjdlcbh, thhakxn +qiksfr (44) +wowxv (92) +fmdba (44) +zgxbjj (96) +jncjxue (66) +xquhgig (190) -> rqhfxty, maftysp +habni (27) -> xwknab, xukfcd, scvhl, tcbgf +iftcnc (50) +dqdmie (82) +otlvq (40) -> hjsrvj, rtbcch, vpirde +mgzocpe (51) -> zkwajbd, mrpji +fkzxb (89) +jlsmm (32) +igdkn (43) -> dgtxjuj, jxyakll, kptdem +rftuf (43) +uolqt (9) +rtwlo (78) -> wgbvle, npttye, claolm, ydffzgu, mgbgb, jwjuth, mulvwn +nrgzcge (132) -> bywbrk, vazoq, eaufvn +juoaena (94) +wfsaglg (54) -> nlfdps, tdkdiqe +jfsgqq (100) -> crslvc, esized +mcucysr (49) +tcbgf (28) +mlalrpt (166) -> jtbrjm, fyaxzl +srvqt (155) -> jyftx, dtijfqc, phcqntb, uyhrcfl +xohxq (1457) -> czbydf, wgdnyy +lqbmor (230) -> rkjfx, vmmtsr +jjsyexg (38) +ynvesz (88) -> rqaxn, afntec +ibbxb (194) -> imiimt, llikz +ktasnia (49) -> thkjz, cjgtra, tzngdx, cqjsqh, vtjtyp, lyzaead, xrtzs +vsjjq (30) +yjnzgl (67) +mcrhiy (6559) -> mkgafux, gugxitg, tymmo +nlgymop (139) -> tymkixg, crchwpb +ybosi (18) +rhqfb (179) -> okurp, gpwbcg, invqsb +kzjozhi (90) +ixncawy (28) +ooczbeh (36) +ubvttg (796) -> wuuvnlz, donzb, bwgimi, rywtmt, rusndcc, ceagctk +ohcoit (6) +exrud (176) -> hpziqqg, abxglwt, gozhrsf, oqjqu, vhkodl +opvrgh (79) +blyms (46) +vfrylx (10) -> qhkniqm, bmcwbsi +ndmkbul (55) +mohey (86) -> tbmyue, ibeis +wktzh (93) +ystgyng (50) +jclntv (87) +dsjcqpn (133) -> slufzy, gbbpqj, jxawk +fitha (68) -> faqngn, xguqqao, athuly, fmdsfus +xyang (225) -> njxrb, mfwuqb +acjedny (49) +mfwuqb (60) +ayuma (81) +qqmchoq (7) +yzjhmqq (171) -> dinpz, upozls +qfopwo (79) +srypr (64) +tvwmzal (236) -> cpujsn, ewluica +umtxk (2942) -> jyazs, scnhwcs, fmpvv, aahqvqy +gkwyfz (49) +dodrbx (227) -> uhtnl, vxnsova +sfdclf (238) +kksizqf (44) +dfofyir (236) -> ddswb, grxdbx +qakiz (37) +ceagctk (255) -> bwvlnlt, rkazlp, vbejzc, njhlrtm +hnjszii (284) -> zkdwz, bwlit +gbbpqj (34) +bvaoy (114) -> mogwbda, rodntl +vkihn (36) +symdxo (8) +nduildw (30) +nxhfgx (18) +chgfb (16) +gugaaiq (40) +euvrdg (79) +ckzaj (67) +jupzgjm (90) +llalaql (27) +qdnghwn (16) +iffluz (515) -> bbbvmxo, reomle, vspqi +nvrjzg (214) -> nzfko, qqmchoq +xvwok (34) +enmjipp (95) +jtbrjm (18) +rlxto (83) +xpotznx (41) +lslhph (59) +vhkodl (221) -> otlvq, fioegdo, rreidgp, fivkqxx, xahvbm +mncivb (88) +hbhfdlh (89) +mkgafux (688) -> admjq, tqtut, emkgc +tymmo (22) -> uxjaa, nlgymop, dcvfkk, yzjhmqq, iqjqlfq, faopk +vxslvq (37) -> jmvcgo, ioglbe +rxjnad (80) +ejdxula (92) -> kviiza, uqmaluk, nasbs +xvzoy (35) +vukpdsr (162) -> gumncu, mlzmimg, vjobpzv +xoigv (10) +iuehdsr (21) +jzgvab (9) +odxpup (89) +vwkegak (92) +bsvgagj (41) +mxwgu (310) -> yeyxf, qdnghwn +jynmg (1140) -> wotus, mohey, fiynyre +qftwuv (36) +veabcj (67) +zaargo (30) -> ytrsmfx, jtlqxy +xfbfvuu (65) +gpwbcg (5) +elysbb (81) +engpslr (85) +tqbtvqc (31) +faqngn (98) +jykseco (166) -> xawzbz, fsdoohr +nfywcyp (62) +rreidgp (168) -> vfupn, xyvnk +obmcr (89) +spnllx (76) +mbbuqoi (35) +wjxgg (177) -> symdxo, dsptf, yaxeloo, yxrhis +chcjswk (89) +anamgt (346) -> ywwxi, rnbvid +zjwqc (26) +wxgoew (1481) -> hnjszii, ygqxl, xhkwrs +dydcy (76) -> drnki, uxolsws, lrcstqr +npttye (42) -> wkrgvo, jhydv, enmjipp, hnyjyga +yjwvnhl (219) +fykgs (43) +vrmqym (97) -> lrmnb, nvigovl +gkfdg (226) -> ohcoit, jkoir +ictsk (122) -> devsz, jjsyexg +gixezcy (37) +rywtmt (158) -> nevrtrs, sybvdj, qcorw +pwhtvdh (40) +yapfoe (59) +xnnbqju (90) -> xzsmw, petvm, xyxidwf +vxiwms (99) +htaszsq (87) +mgbwxw (52) -> afbrhy, jrsfu +rdzsisf (59) +qvxanzu (262) -> nxhfgx, vvzmdr, inddon, ybosi +ysbhsn (181) -> wleavrv, kmvvxon +tirifqs (6489) -> ofbqk, iqdiez, kspsz, kejph +rnkbli (84) +bjbndbg (169) -> oqsdzpe, sbwoye, yhukqf +dndrnc (25) +oxzhz (86) -> bcbftl, hjzgzoe +ufrhi (68) +gsyeaes (26) +kgbzu (180) -> wzczb, bzqjb +dgtxjuj (97) +xulgx (5) +wleavrv (16) +qnhbmzp (118) -> wktzh, zodwdpq +csrpy (62) -> zmoxc, ccgjf, umrqldb, gdamb +ldqyt (50) +btwmd (54) +volompq (96) +qmshniw (443) +lrmnb (98) +yijwaf (32) +paoxff (98) +ulbute (95) +lyzaead (939) -> jfqddfd, ucpkpfb, sbmwazv +rodntl (60) +tykcvi (9) +aftnyad (188) -> rfqddq, recxxj +zdelqb (155) -> jaasf, snqnh +akwcv (65) +nszqngg (44) +eavas (45) -> ytsmc, mrxdp, prjpkm, nzawh +fqvbdq (96) -> tzimies, jduij +mabcqcb (194) -> itutdol, vtokttx +trvtkqj (49) +ynlzggk (36) +pggjo (19) +jajdx (19) +ackyirz (16) +gtiopzn (49) +idvnxqp (5) +njsjq (273) -> vptdap, eteyvz +qkjdjpe (44) +dzfon (61) -> wksjlix, zicvok, utiwem +nxmhned (166) -> pekohn, xnszvs +pnqycz (43) -> gkkit, khyca, yudzxoa +lvkeqm (192) -> lneyu, uopxjn +qvrvcu (19) +hvwyae (23) +ocgbpez (114) -> gjgrhw, bvtgvu +mehuxr (53) +pmdcajx (7) +ybixf (299) -> xvhgvw, ooczbeh, ksbwlir, pkzwosb +inlft (36) +hshafy (65) +nzfko (7) +vcnael (95) +nxuer (13) +pulql (59) -> akwcv, uijffti, ysxvzdu, xfbfvuu +hlbotz (13) +zhrdezs (28) +aqxaecv (297) +ppjapn (27) +bbbvmxo (21) -> rceksnv, uhnlse, rswnjx, ogcmm +ikvzux (44) +hdvcz (156) -> zisdcf, keurs, bjops +ytsmc (22) +jiwfia (13) +jthpj (44) +dtijfqc (76) +vgfhpwb (99) +sjmhuxn (11) -> aceyee, iohigm, zildb, vrmqym, pxxabj, gjjfx +byahs (65) +qllime (202) -> dspkk, wgtnepi +ksbwlir (36) +hzawlq (16) +kgwftu (87) +qtzelhq (62) +wabzx (209) -> sfazwz, lnndami +dyazidi (219) +resoi (25) +hgwkyu (91) +urdgg (166) -> srypr, fnayjx +hsfhqhe (17) +metif (68) +ifxzdfy (96) -> ssnpxj, ejhojmh +jefsr (477) -> fqvbdq, xsygbj, rcluk, dcero, lfgqgs +oglcdgs (140) -> dmvyuf, xvzoy +jrhzmbj (45) +mlvhqpe (91) -> qsstg, tnrrui, utsnke, gxtfu +iffxdk (87) +xboqv (17) +hppxlu (174) -> lkjhmiq, kntwy, auhnyn +pralyx (191) -> dmkfnm, xcmzg +osnkrr (53) +nhvyso (77) +mogwbda (60) +rqaxn (96) +vxnsova (5) +xsxnizc (50) +hskhxx (36) +ogcmm (57) +drnki (25) +ecjxs (197) +dnniv (16) +wnjaw (369) -> brvxyyg, hsvmept, praagwp +xjcxk (24) +aahqvqy (74) +hpwaux (97) +sadyx (59) +dptekr (112) -> xiqthw, ihtfo +mlmhe (4563) -> uwxjkq, uqals, ofkvpq, pyxdkm +yytmc (66) +hmbuu (16) +ezzpr (94) +zpxgfq (118) -> tqplqn, fysxwmd +hgkmod (75) +earmfdp (83) +mxpgmte (5) +kcfgbv (73) -> fdeowqq, pbzvjg, tzrqwt +jtxjj (120) -> hiuviy, sadyx +dsptf (8) +dsezlbe (54) +onzind (245) -> wayzzn, ystgyng +pjndde (422) -> yseezd, cseckdt +rnbgz (131) -> iuehdsr, xgzluhk +yswonja (195) -> gachtig, bjadb, gtiopzn +piizso (59) +msqxo (47) +jacmj (29) +hjsrvj (64) +prcxksh (20) +aceyee (219) -> gixezcy, zqwqcnq +pkipy (95) +czbydf (75) +bpguivk (32) +utapoe (84) +qjdou (87) +njhlrtm (38) +pkzwosb (36) +wpphwjv (83) +teqej (66) +lneyu (64) +dicalia (44) +opzxu (46) +gasejp (15) +llikz (22) +uhtnl (5) +kntwy (25) +wzbewii (157) -> myetb, dhwakp, vqtalpm +vkaxa (83) +kwnqw (49) +uhnlse (57) +zqamk (37518) -> mflijpx, ikzap, wzimze, agjpn +fnnykbh (91) -> nxqwag, tpcbt, elysbb, xlaqpg +ytrsmfx (66) +pyiexlj (92) -> oozbxqb, kzrgfb, klege, csfjt +yaxeloo (8) +tzbmy (71) +pjecv (56) +gsaqlad (70) +gmzcjo (76) +cuscn (114) -> fmdba, ikvzux +rbzmniw (52959) -> tespoy, tirifqs, exrud +jzoxv (52) +egizyey (78) -> metif, towuup +uxolsws (25) +twyhx (86) +nqjydpi (44) -> rpgzp, nszqngg, jthpj, qiksfr +avecfoq (95) +wltax (21) +xfyqx (20) +tnrrui (57) +gmveehb (46) +kymbvpp (67) -> qzvobt, osnkrr +xbccghy (66) +iqdiez (134) -> wkkmvcn, nkzgse +pmopji (128) -> gpcyq, qsdyww +cfwxyl (210) +khzqqwi (12) +wjrhp (992) -> nyouzhg, ccxff, qmifv, oonpy, vutdji, owukmji +yvlajs (35) +hkltivy (26) +vylzag (33) +mieynp (21) +jppbvbo (929) -> ynvesz, tvwmzal, mbwaxn +yxxgd (296) +utiwem (81) +ihvefep (110) -> ffzzzc, ckzaj, zfyqzi +vfupn (32) +jhydv (95) +vspqi (201) -> wzjonl, dnniv, pdazlob +iohigm (248) -> icxzod, mclqrmw, pjkyydd +hzehjo (43) +kwhgtnk (78) +npxexv (66) +lycfbo (89) +vezhmd (47) +amqvr (274) -> aditjen, xvdmeo +vbqpp (35) +upurae (33) -> rdzsisf, lslhph, urwaex +uvkwg (88) +wapknj (2443) -> xulgx, idvnxqp +mvgmf (105) -> dicalia, qhkhuow, phnuqn +qmifv (163) -> hzawlq, ackyirz +xlacmu (87) +aesiz (86) +jjiikvt (25) +prjpkm (22) +rbtco (1110) -> dfofyir, qnhbmzp, dzfon, zmdkea, valby, mabcqcb, mifwbmm +greav (20) +dmkfnm (30) +ftezz (24) +iuuouds (14) +jwjuth (390) -> hmbuu, oxlzlor +gzwrv (212) -> efqjc, gasejp, qqooh +wgdnyy (75) +rqhfxty (53) +qhpvuzi (75) +cvxqnh (53) +stqmwk (96) -> vcnael, dhobx +wuuvnlz (206) -> pznkdcr, ucfipvi, jfhzgp +nnyws (190) +bbbhx (5) +qdfvw (69) -> hgwkyu, uvpuko, wclnx +inddon (18) +gyirkcj (138) -> inlft, vkihn +lrtzi (53) +pjlxc (62) +slufzy (34) +zkdwz (20) +tigvdj (44217) -> xtnmps, ylnobx, mlmhe +vptdap (23) +aemkbp (35) -> dwrtbo, rkerea, iffxdk +dpngy (17) +nzhbfc (207) -> hvgozl, hsfhqhe +wayzzn (50) +myhnuu (66) +jrsfu (79) +gqeiy (257) -> opvrgh, sibvtz +xgzluhk (21) +fiynyre (156) -> mieqogh, zpaivc +vqtalpm (26) +thkjz (437) -> insleik, ayjse, sgovqnf, wjxgg, euwab +ylbftp (82) -> epcjds, gsyeaes +ndikjqv (22) +tqplqn (36) +aifpxqv (89) +hjbfr (20) +lltgjo (32) +picnycy (33) +kplvk (24) +ptatzl (314) -> sfdclf, ibbxb, slzpby, kjjee, bbtnj, gkfdg, nzuswm +qtxmjwm (7) +ckudisa (78) +opskc (35) +qhkniqm (96) +rqyxzn (34) +vdcfh (68) +hpziqqg (637) -> ypqkl, nmazby, hxswr +vrfme (20) +ozdnanh (34) +qcmtgvr (12) +gvdlvgg (20) +krnbkr (82) -> qladcl, tefdmi, ocdpr +fyxttac (39) +hbbpp (95) +hjzgzoe (38) +hjqsj (85) +asevk (44) -> hpwaux, byojhfr +fgzgfc (44) +ejtdhx (57) +ntxcpwl (36) -> kerjk, nggubzz, utapoe +fqsjaz (10) +hxswr (74) -> bixxpzd, htaszsq +dinpz (20) +yxxdal (44) +wozakri (251) -> mgcpbp, omslcm +dhwakp (26) +kvylxr (92) +lsbvzaf (75) -> ibqrz, cokvree, volompq, zgxbjj +bixxpzd (87) +xbtjl (294) +dyfzj (95) +utsnke (57) +sxjlr (91) +ckfefl (115) -> khzqqwi, fzwzr +ezlfnhs (62) -> qftwuv, ynlzggk +xguqqao (98) +jazqb (7378) -> xadcuw, hocazx, cqvdpy +dsmjo (32) +gpcyq (55) +dhvsrt (7) +jllqymn (110) -> dzwfsix, paeel, jclntv, qjdou +zkgdtp (90) +mjqkaqs (50) +nzcqte (140) -> wkkdc, pwhtvdh, gugaaiq +woypnze (91) +dcriqom (79) +zppujp (34) +aqacmr (18) +rkazlp (38) +fysxwmd (36) +mzutqi (571) -> qdfvw, mxwgu, yswonja +zfyqzi (67) +wqshh (460) +rztur (86) +bdlnohy (584) -> dodrbx, qwotm, cbavt, mvgmf, igcmpn +qqmvd (14) +uwxge (94) +ijkpfv (218) -> rxcgwd, steez +slzpby (136) -> nxxlbnt, ozdnanh, zppujp +dzuqljn (7) -> spnllx, fpeiss, hjzkjuw, pjoqde +dporud (50) +hrdggo (152) -> agztuz, mehuxr +kigyp (65) -> hjqsj, ijtis, engpslr +qcorw (83) +cmsqe (12) -> njsjq, zqpxn, pulql, fkttd, wozakri +keurs (18) +pyxdkm (872) -> xnnbqju, oxzhz, zaargo +pjhpwh (35) +vdlbwyo (24) +ocdpr (44) +gacseeh (89) +xzsmw (24) +liujmc (41) +myetb (26) +xawzbz (64) +qmyfg (114) -> weipv, woypnze +heisrl (36) +mlzmimg (24) +ayjse (75) -> veabcj, aicjff +htitjjt (203) -> nswcez, msqxo +xhkwrs (324) +tdkdiqe (87) +ukgbdva (65) +qmcphv (32) +fmhfnhv (24) +nhjtvk (47) +sbmqxu (25) +ewobo (25) +hvgozl (17) +ysxvzdu (65) +sfazwz (68) +hlwesdc (24) +wgbvle (422) +ugzmeb (77) +hbptt (138) -> uezwz, gbckkh, gvdlvgg +auezw (95) +lkuwf (95) +cneno (190) -> uwjobru, jeadxth +wkrgvo (95) +koxzeku (79) +vehziv (67) +codkti (71) -> tqbtvqc, oausk +kjwfeoj (82) +dcvfkk (111) -> uahcz, xsxnizc +lcnsf (22) +zzwmn (40) +bywbrk (80) -> rnkbli, vlwvot +jpmrs (94) +lfgqgs (187) -> vbjpz, hlbotz, boalcdm +xbnmg (48) -> aesiz, tqelui +pcvfgti (29) +ucpkpfb (181) +blkewbk (64) -> jlsryou, idokb, avecfoq, ozyqew +mbwaxn (240) -> nachvlp, prcxksh +wgsgaj (17) +fzwzr (12) +mgcpbp (34) +jxyakll (97) +fdeowqq (77) +zxmwy (35) +yudzxoa (84) +wwbebbr (95) +wgtnepi (66) +wkkdc (40) +xlccnkv (13) +yxrhis (8) +uwjobru (22) +csfzl (64) +dspkk (66) +xwknab (28) +fmdsfus (98) +vpirde (64) +nulax (10) +ymkgx (23) +psetts (80) +ucfipvi (67) +hsdym (340) -> onjqcrh, eitdb, ycuuwxa, mxemqqb, pnqycz, wexncjl +wqojj (22) +xiiqh (98) +cqjsqh (360) -> bzmqg, jpscxfh, ercxmph +wnowypb (83) +snqnh (95) +mifwbmm (114) -> tfezflv, qxrspl +fcgkmq (68) -> thftfut, svtqdbd +gachtig (49) +qxnvoh (214) +ihtfo (87) +qxrspl (95) +nnciip (95) +ercxmph (318) -> ixncawy, zhrdezs +iqmpc (53) +rnbvid (49) +xukfcd (28) +bjadb (49) +niifkl (90) +kxrbd (20) +lrcstqr (25) +gackyrq (22) +cbavt (161) -> qvrvcu, uhuees, pggjo, jajdx +mahlbe (6) +llpbev (29) +efqjc (15) +efvqwzi (7) +epqowm (45) +fjdlcbh (139) +csfjt (92) +zrnlkl (63) -> dyfzj, xviqup, atrzkqf, ulbute +xsygbj (130) -> vdlbwyo, ciquv, msdcz, kplvk +cdfmatu (80) +xeihyok (81) -> uunpyb, wfgzr +ssnpxj (56) +wclnx (91) +nnncfl (335) -> sgytd, nreuwh +cdjxwb (99) -> buznuv, hkltivy +aditjen (7) +auhnyn (25) +nvigovl (98) +yeyxf (16) +uwxjkq (905) -> jblwph, cdjxwb, dydcy +lkjhmiq (25) +teygd (170) -> llpbev, nrxyk +jaasf (95) +dwrtbo (87) +hwgwzv (57) -> qqqbf, fnslg +alhghui (279) -> qbhhtw, ltytvpb +mjqzvuu (195) -> hvwyae, tmzxl +wzczb (61) +ciquv (24) +gozhrsf (762) -> ifxzdfy, uuxpvxf, zyqssjb +khyca (84) +atrzkqf (95) +psjec (97) +xyxidwf (24) +esized (69) +towuup (68) +trszl (44) +fkttd (141) -> hbhfdlh, hgwbg +olvztw (21) +tebkmhi (25) +ltytvpb (90) +msdcz (24) +csdap (27) +vqinar (2904) -> qhbrmur, nrgxdmx, angpy, gcswiam +yxbaldn (122) -> vxiwms, syvza +swgjx (6) +mflijpx (75) -> oxypy, rtwlo, vwnvlh +pygrhr (144) -> rdorrx, pjecv +alneot (25) +wdbmakv (42933) -> ktasnia, mxnaq, mcrhiy +fjticim (35) +rsfxf (123) -> yjnzgl, glrmew +tyvjs (12) +gbckkh (20) +dgqfrv (35) +oozbxqb (92) +oypvhy (140) -> yvlajs, pjhpwh +fnslg (52) +vhzfut (96) -> obzrtar, qtzelhq +iqjqlfq (59) -> gmzcjo, rrzyzq +amklj (23) +tvbgr (80) +qsrxouy (96) +rauho (72) +tzrqwt (77) +pdazlob (16) +uhuees (19) +qebqgxd (94) +ffhsg (79) +hzuyh (50) +oiuztx (92) +wjdeth (5) +bjops (18) +bwvlnlt (38) +baedi (89) +irokors (39) -> xiiqh, paoxff +zvtfm (41) +aizdt (54) -> zjpkoar, zzwmn +ffzzzc (67) +oxoul (12) -> fkzxb, chcjswk +dcero (34) -> ssvfbfs, nxbec +rloxobx (421) -> jiwfia, nxuer, xfcktep +foznw (146) -> dpngy, wgsgaj, xboqv +buznuv (26) +tduxvx (326) -> iktget, vylzag, picnycy, lfdery +hiuviy (59) +dtazpb (85) +oxlzlor (16) +bvejguc (68) +uwjkolt (52) -> tvxvtce, igdkn, rteyxil, qvxanzu, qllime +rvqopbu (67) +owukmji (195) +pbzvjg (77) +agztuz (53) +zpaivc (19) +nofpmh (290) -> efvqwzi, pmdcajx +mhnnmp (8) -> qbaosu, pjndde, anamgt, bcesxba, blkewbk +zfqmic (67) -> lkuwf, pkipy +tespoy (5) -> bdlnohy, jppbvbo, fgsmzi, sjmhuxn +qhbrmur (1450) -> kcfgbv, dyomhm, nofpmh +lkdyq (57) +fuaio (16) +ccxff (53) -> cgveph, tzbmy +fioegdo (140) -> opzxu, blyms +bgnfpcr (75) +bmukspb (106) -> jzoxv, gqvmeg +sbmwazv (39) -> arrvxtj, hawhqex +xqwfgy (1496) -> cywvxf, bjbndbg, mlvhqpe +jfqddfd (64) -> ewgadin, fyxttac, gvtcy +empixc (142) -> hlwesdc, xjcxk, fmhfnhv +zmdkea (154) -> bgnfpcr, hgkmod +jeadxth (22) +ucilvib (40) -> ddgnyfo, koxzeku +rteyxil (334) +clqfbvi (66) +lfdery (33) +ijtis (85) +rmshk (24) +kptdem (97) +ropdc (226) -> usevjww, agthzo +talptwp (77) +bzqjb (61) +idokb (95) +kynezb (79) +tvxvtce (52) -> ujgeml, jpmrs, lpsaav +athuly (98) +vazoq (248) +rxcgwd (38) +tfezflv (95) +cywvxf (279) -> greav, kybtla +lfliwg (65) +qjkfys (353) -> bjhxuqc, cvxqnh +vvzmdr (18) +gwuixj (31) +svtqdbd (61) +nqfqgj (22) -> niifkl, fosdh +lxzvkpk (458) +gewpohj (16410) -> cvqbwem, uzljl, zlhpt, vtcxw, iffluz +bggovyb (144) -> supjxi, mieynp, wltax, pyhof +pbdafpz (236) -> wjdeth, zacwh, mxpgmte, wjgjhc +pqrpkmd (34) +maftysp (53) +qqqbf (52) +fpeiss (76) +qsstg (57) +oqeam (128) -> qjzss, gwuixj +brvxyyg (30) +oqmxlu (39) +tlpfhx (147) -> heisrl, hskhxx +icush (877) -> rsfxf, zfqmic, axzszf, gzwrv, cujuai +jagajrh (93) +kejph (98) -> alneot, jjiikvt +acvzsbe (37) +gqvmeg (52) +olebdv (65) +tqtut (74) -> ykitsi, wxvjyn +tzngdx (486) -> pvyrkg, hppxlu, eovobtl, diqdy +vmsoc (61) -> euvrdg, dcriqom +qiznqk (77) +kspsz (112) -> tduix, aqacmr +kybtla (20) +ktjdpt (23) -> tdmirp, qhpvuzi +jmvcgo (88) +hjzkjuw (76) +qinne (35) +ypqkl (64) -> qjeuqe, wowxv +epcjds (26) +mrxdp (22) +pznkdcr (67) +kmvvxon (16) +xlaqpg (81) +nhtfal (23) +bxqqvue (5668) -> zqbpucs, mhnnmp, ewqcktv +ipnvjje (80) +noibcw (95) +pywtg (16) +omslcm (34) +sxdngcn (6) +insleik (209) +wxvjyn (63) +ntezb (25) +klkwsa (57) +figvamv (32) +phqpwkw (1192) -> egkiqcp, ecjxs, foznw, tokyi +onjqcrh (67) -> lkdyq, tptqtpq, dmidur, klkwsa +igytdcp (160) -> vtdbov, dporud +vrtgae (66) +bwgimi (242) -> eohjrft, ankrgg, kvvkbhi +bzjxil (23) +ankrgg (55) +okurp (5) +rndvcf (39) +rkgoovn (104) -> qyfsc, lytrpo +thftfut (61) +jduij (65) +invra (180) -> sxdngcn, mahlbe, swgjx +wkkmvcn (7) +igcmpn (55) -> bcadp, sxjlr +pgaiut (90) -> vtccvv, mgcnohi +iytvm (15) -> juoaena, qebqgxd, uwxge +glrmew (67) +uqmaluk (70) +qstlv (75) -> qmcphv, bpguivk +gtbgp (234) -> ilsgqdw, qakiz, zesfmu +rziopi (57) -> flgpg, nqjydpi, xbnmg, xxdcgas, vhzfut, sfwzqk, kirnt +rdorrx (56) +oxypy (1992) -> sflonq, igytdcp, nzcqte, sjbfmfa +pekohn (65) +praagwp (30) +qqooh (15) +nzawh (22) +ywwxi (49) +phnuqn (44) +ylnobx (5204) -> rziopi, mzutqi, lcitl +gumncu (24) +cjgtra (900) -> nfkfex, rhqfb, oyyctv +gjgrhw (94) +paeel (87) +xiqthw (87) +ogowst (176) -> pdzooh, xlccnkv +mevujmj (83) +tlqjsb (994) -> odxpup, znagag, obmcr +ejoxsy (38) -> lxwkpqh, zdelqb, xyang, gtbgp, onzind, wabzx, kzjtb +agthzo (15) +xyvnk (32) +crchwpb (36) +pjoqde (76) +fgcajp (50) +tefdmi (44) +xctuhbx (72) +tokyi (79) -> yapfoe, yyecrv +njxrb (60) +qotyaq (7) +dnbejx (70) +uhrdeol (171) -> qinne, opskc, zxmwy, dgqfrv +cwxspl (12) -> nnciip, hbbpp +nggubzz (84) +uuunqk (9) +lxttas (133) +xvdmeo (7) +gkkit (84) +wexncjl (295) +jgsmitm (173) +pxxabj (33) -> wgupfl, lpdhdvy, lfliwg, fklfgd +ruedk (146) -> kgwftu, xlacmu +ydpemw (3192) -> ymkgx, nhtfal +ibqrz (96) +oyyctv (34) -> ipnvjje, tvbgr +xfcktep (13) +jblwph (81) -> lxexhp, vbqpp +steez (38) +xnxudsh (78) -> pjlxc, nfywcyp +rxjly (133) -> rftuf, hzehjo +eteyvz (23) +eohjrft (55) +wqilo (32) +tbmyue (54) +nkwwia (1405) -> dsjcqpn, irokors, wzbewii +oausk (31) +rpjfkh (55) +mxnaq (3937) -> glcsinj, icush, wjrhp +kviiza (70) +anggtqq (86) +uuxpvxf (114) -> nhjtvk, vezhmd +yrolq (64) +tkjofj (60) -> mjqkaqs, lnfjj, nakli +nasbs (70) +usevjww (15) +valby (106) -> vgfhpwb, xtnvc +zxygmaq (10) +tdmirp (75) +zodwdpq (93) +uyhrcfl (76) +mqgbif (73) +oqjqu (67) -> xbxxe, yjwvnhl, vmsoc, tlpfhx, rxjly, dyazidi +euwab (49) -> cdfmatu, wawtrk +admjq (40) -> qvaayfl, uqynzy +petvm (24) +zqpxn (196) -> himyt, zvtfm, xpotznx +nxxlbnt (34) +kpbawoe (26) +zlhpt (74) -> zvbqni, iytvm, htitjjt, aqxaecv +kkmax (37) +recxxj (53) +ejhojmh (56) +dnovxt (44) +crslvc (69) +fnayjx (64) +lytrpo (47) +auvuxv (242) -> wqojj, ndikjqv +zesfmu (37) +cnffplo (166) -> fuaio, pywtg +dfmjy (399) -> isxysg, dxlpr +xcfxvd (92) +xznhz (54) +mclqrmw (15) +cqvdpy (62) -> yzcez, nvrjzg, sebvkw, pgaiut, bggovyb, wfsaglg, teygd +fewgct (90) +xaden (108) -> jagajrh, fucxhz +xvhgvw (36) +ejekn (98) -> kemkz, souqntk +hsvmept (30) +zwopz (60) -> byedxex, yxbaldn, hnkvw, lvkeqm, kigyp, ruedk +uqynzy (80) +axzszf (167) -> iiuqtqw, vktjns +gugxitg (553) -> trlcj, olawkuc, xeihyok +wugia (2689) -> temju, xkymbld, ntlrkw +lxexhp (35) +scnhwcs (74) +yhukqf (50) +upozls (20) +qladcl (44) +wjgjhc (5) +fucxhz (93) +nayvvrh (25) -> ejtdhx, oyurlfq +oonpy (15) -> wyryqvy, zkgdtp +xowkw (41) +zildb (116) -> umjcr, pinqp, piizso +hrrld (1802) -> pqiuhyp, nkwwia, exsmez, rarkt, hsdym +lzojty (214) +uzljl (710) -> pmolg, benqzp, khfzis +vyinb (154) -> fzyim, vrfme, hjbfr +syogw (36) -> mevujmj, wpphwjv +qyfsc (47) +wvvivob (6) +wksjlix (81) +reomle (191) -> jacmj, amcixd +fzyim (20) +zfipnh (21) +uopxjn (64) +gaxdd (25) +dzwfsix (87) +nrxyk (29) +vbjpz (13) +kgxfc (30) -> kzjozhi, dtqgdc +nfkfex (134) -> vsjjq, nduildw +cpujsn (22) +weipv (91) +wjceo (184) -> resoi, gaxdd +unkkoph (119) -> myhnuu, lcmlbj +lnfjj (50) +bmmzqxb (81) +gzocw (110) -> qkjdjpe, yxxdal +uxjaa (131) -> coapfqs, kxrbd, rkctaq, xfyqx +jimltsw (16) +nptqxtu (95) +rpwdig (10) +xflhoc (20092) -> bqyqwn, hycgb, nrgzcge +jfofam (6042) -> gewpohj, ndticx, xflhoc +syvza (99) +whrinsh (34) +coapfqs (20) +souqntk (98) +rpgzp (44) +wgupfl (65) +jxawk (34) +zeolg (214) +qzvobt (53) +nmazby (120) -> yijwaf, idmqvse, dsmjo, wqilo +yuiyjpc (862) -> eavas, lxttas, codkti +rkuzg (83) +gdvuw (179) -> vrtgae, teqej +pinqp (59) +xtnvc (99) +gppwsbp (35) +exsmez (1357) -> pralyx, tkmfbk, unkkoph +ewvvb (83) +nlfdps (87) +jmuqp (44) +mieuhe (97) +donzb (407) +igbzlxl (27) +invqsb (5) +xxdcgas (30) -> auezw, wwbebbr +qhkhuow (44) +sgytd (62) +ikzap (5388) -> mjrktxe, tlqjsb, yuiyjpc +kvvkbhi (55) +xahvbm (222) -> udgssh, bbbhx +iiuqtqw (45) +isrgei (173) +ntlrkw (36) -> gkwyfz, acjedny, mcucysr +qxugs (31) -> iqmpc, lrtzi, krgtrdn +sebvkw (214) -> qotyaq, dhvsrt +gcswiam (1183) -> vahmn, cwfydbh, cjjytkr +ncuzpin (39) +sybvdj (83) +obzrtar (62) +thhakxn (103) -> pplis, tykcvi, mklqpn, jzgvab +vtjtyp (152) -> dhisacj, zpxgfq, oqeam, fcgkmq, nnyws, qxugs, oxoul +icxzod (15) +nakli (50) +bzmqg (374) +dhisacj (73) -> rndvcf, oqmxlu, ncuzpin +pdzooh (13) +pvyrkg (51) -> yytmc, clqfbvi, tmkli +scvhl (28) +qwotm (169) -> pqrpkmd, whrinsh +dcpzwz (87) -> wxgoew, xqwfgy, hrjlzxr, wapknj, ejoxsy +qsdyww (55) +puvmdie (41) +umjcr (59) +himyt (41) +tptqtpq (57) +zkwajbd (61) +vutdji (31) -> bsvgagj, puvmdie, liujmc, xowkw +lpsaav (94) +bmcwbsi (96) +rtbcch (64) +nadbegy (66) +jyazs (74) +xcmzg (30) +abxglwt (191) -> pmopji, jtxjj, asevk, yznmd, jfsgqq +tzimies (65) +jfhzgp (67) +wyryqvy (90) +kirnt (134) -> bmlfd, fykgs +xhgza (16) +xajzwdh (65) +tpcbt (81) +zmoxc (99) +bcbftl (38) +arrvxtj (71) +imiimt (22) +tqelui (86) +sibvtz (79) +pchfpqp (86) +faopk (147) -> figvamv, jlsmm +wscqe (14) -> ezzpr, chyun +emkgc (142) -> lcrbt, pcvfgti +nreuwh (62) +vahmn (49) -> twyhx, rztur, pchfpqp, anggtqq +eourjv (204) -> kpbawoe, zjwqc +ssvfbfs (96) +dxlpr (8) +sgovqnf (69) -> kzsoasg, dnbejx +eoxwp (133) -> zxygmaq, xadjes, nulax, rpwdig +ydffzgu (380) -> olvztw, zfipnh +byojhfr (97) +nlwakg (161) +ztxcc (68) +zisdcf (18) +itutdol (55) +cseckdt (11) +zqwqcnq (37) +fhqhu (188) -> igbzlxl, llalaql, ppjapn, csdap +kzsoasg (70) +cvqbwem (92) -> wjceo, gqqsfsr, vukpdsr, cneno, bvaoy +pjujovx (96) -> ayuma, bmmzqxb +vjobpzv (24) +kerjk (84) +qvaayfl (80) +bcesxba (444) +hnyjyga (95) +gjjfx (131) -> btwmd, xznhz, dsezlbe +idmqvse (32) +ygqxl (16) -> nhvyso, talptwp, qiznqk, ugzmeb +ozyqew (95) +itxgz (370) -> epqowm, jrhzmbj +afntec (96) +cgveph (71) +isxysg (8) +cqlvkj (65) +ykitsi (63) +bjhxuqc (53) +uahcz (50) +vbejzc (38) +cujuai (157) -> ldqyt, fgcajp +kgphv (246) -> wvvivob, sjoov +gqqsfsr (78) -> ckudisa, kwhgtnk +dofou (44) +uijffti (65) +nkzgse (7) +xrtzs (96) -> ictsk, invra, rkgoovn, gzocw, hbptt, ucilvib, cnffplo +zvbqni (105) -> qkzpcyy, qsrxouy +zqbpucs (568) -> dfmjy, fnnykbh, gqeiy, fifams +lnndami (68) +rcluk (156) -> fjticim, mbbuqoi +zylotoh (7) +phcqntb (76) +amcixd (29) +jlsryou (95) +rceksnv (57) +vwnvlh (1534) -> krnbkr, egizyey, empixc, lzojty, vyinb, zeolg, qxnvoh +chyun (94) +hrjlzxr (1124) -> ybixf, qmshniw, zrnlkl +bwlit (20) +grxdbx (34) +eqgvf (9) -> wdbmakv, zqamk, hvecp, rbzmniw, jfofam, tigvdj +uqals (78) -> ropdc, pbdafpz, mgqil, pygrhr, eourjv +veuzidj (49) -> kmhug, yrolq, csfzl +eovobtl (149) -> hzuyh, iftcnc +udgssh (5) +nxbec (96) +dyomhm (40) -> npxexv, xbccghy, jncjxue, nadbegy +fsdoohr (64) +lcrbt (29) +rarkt (1387) -> mjqzvuu, nzhbfc, veuzidj +temju (53) -> qpzszp, cqlvkj +nrgxdmx (1352) -> mlalrpt, nqfqgj, cuscn, ogowst, vfrylx +tlpfggk (25) +wzimze (4005) -> uwjkolt, jynmg, ibqmynm +ddgnyfo (79) +fyaxzl (18) +qpzszp (65) +eitdb (197) -> trvtkqj, kwnqw +fgsmzi (525) -> dzuqljn, ihvefep, uhrdeol, gdvuw +nevrtrs (83) +jyftx (76) +lcitl (1114) -> nlwakg, hwgwzv, girxc +kzjtb (78) -> gacseeh, lycfbo, aifpxqv +zacwh (5) +glcsinj (90) -> aemkbp, yxxgd, fhqhu, xquhgig, nxmhned, lqbmor, qmyfg +rswnjx (57) +cokvree (96) +ewgadin (39) +oqsdzpe (50) +yznmd (62) -> uvkwg, mncivb +lpdhdvy (65) +kmhug (64) +bvtgvu (94) +hycgb (237) -> zmciyk, ysbhsn, vxslvq +ycuuwxa (161) -> vehziv, rvqopbu +mieqogh (19) +xadcuw (1626) -> chgfb, stofi +supjxi (21) +rfqddq (53) +qbaosu (314) -> hshafy, ukgbdva +ptxfk (73) +lofybs (89) +agjpn (8265) -> ocgbpez, ejdxula, kgbzu +mgbgb (334) -> kksizqf, dofou +izxpf (39) -> ewobo, ntezb, sbmqxu, tlpfggk +znagag (89) +zmciyk (19) -> mieuhe, psjec +dhobx (95) +hvecp (90) -> hrrld, jazqb, fonrb, dcpzwz, vqinar, bxqqvue +sjbfmfa (80) -> fewgct, jupzgjm +fmpvv (74) +bcadp (91) +tmzxl (23) diff --git a/2017/07/test.txt b/2017/07/test.txt new file mode 100644 index 0000000..8a41324 --- /dev/null +++ b/2017/07/test.txt @@ -0,0 +1,13 @@ +pbga (66) +xhth (57) +ebii (61) +havc (66) +ktlj (57) +fwft (72) -> ktlj, cntj, xhth +qoyq (66) +padx (45) -> pbga, havc, qoyq +tknk (41) -> ugml, padx, fwft +jptl (61) +ugml (68) -> gyxo, ebii, jptl +gyxo (61) +cntj (57) diff --git a/2017/08/day8.hs b/2017/08/day8.hs new file mode 100644 index 0000000..4e6fe30 --- /dev/null +++ b/2017/08/day8.hs @@ -0,0 +1,85 @@ +#!/usr/bin/env stack +-- stack --resolver lts-9.17 script + +{-# LANGUAGE OverloadedStrings #-} + +import Data.Attoparsec.Text +import Data.Text (Text) +import qualified Data.Text as T +import qualified Data.Map.Strict as Map +import Control.Applicative +import Data.List + +type Register = Text + +data Order = L | LEQ | EEQ | GEQ | G | NEQ + deriving (Show, Eq) + +data Operation = Inc | Dec + deriving (Show, Eq) + +data Instruction = Instruction + { register :: Register + , op :: Operation + , value :: Int + , condition :: (Register, Order, Int) + } deriving (Show, Eq) + +parseOperation :: Parser Operation +parseOperation = + (string "inc" >> return Inc) <|> (string "dec" >> return Dec) + +parseOrder :: Parser Order +parseOrder = + (string ">=" >> return GEQ) + <|> (string ">" >> return G) + <|> (string "<=" >> return LEQ) + <|> (string "<" >> return L) + <|> (string "==" >> return EEQ) + <|> (string "!=" >> return NEQ) + +parseInstruction :: Parser Instruction +parseInstruction = do + reg <- many1 letter + skipSpace + op <- parseOperation + skipSpace + val <- signed decimal + skipSpace + string "if" + skipSpace + condReg <- many1 letter + skipSpace + condOrd <- parseOrder + skipSpace + condVal <- signed decimal + return $ Instruction (T.pack reg) op val ((T.pack condReg), condOrd, condVal) + +executeInstruction :: Map.Map Register Int -> Instruction -> Map.Map Register Int +executeInstruction map i = + if cond then + case op i of + Inc -> Map.insertWith (+) (register i) (value i) map + Dec -> Map.insertWith (+) (register i) (-(value i)) map + else map + where (condReg, condOrd, condVal) = condition i + curCondVal = Map.findWithDefault 0 condReg map + cond = case condOrd of + L -> curCondVal < condVal + LEQ -> curCondVal <= condVal + EEQ -> curCondVal == condVal + GEQ -> curCondVal >= condVal + G -> curCondVal > condVal + NEQ -> curCondVal /= condVal + +executeInstructions :: [Instruction] -> [Map.Map Register Int] +executeInstructions = scanl' executeInstruction Map.empty + +main :: IO () +main = do + contents <- T.lines . T.pack <$> getContents + let Right instructions = sequence $ parseOnly parseInstruction <$> contents + --mapM_ (putStrLn . show) instructions + let maps = executeInstructions instructions + putStrLn . show . maximum . Map.elems . last $ maps + putStrLn . show . maximum . concat $ Map.elems <$> maps diff --git a/2017/08/input.txt b/2017/08/input.txt new file mode 100644 index 0000000..56f2ae5 --- /dev/null +++ b/2017/08/input.txt @@ -0,0 +1,1000 @@ +q inc -541 if c != 4 +s inc -555 if o > -5 +px dec -84 if x >= -4 +y dec -822 if txk > -1 +wdc inc -731 if tup < -5 +ug dec -943 if s != -551 +rz inc 468 if j > 1 +rz dec 628 if j >= -3 +zeq inc -801 if gr >= 7 +jb dec 592 if px > 80 +q inc -151 if rz <= -628 +l dec -423 if b <= 7 +vhu inc 904 if q >= -700 +b dec 438 if kyh == 0 +o inc 491 if vhu < 908 +l inc 761 if tup >= 8 +kq inc -790 if kyh > -9 +tup dec 171 if vhu != 909 +y dec 473 if px != 81 +kq inc 689 if jb < -590 +vhu inc -802 if o > 488 +jb inc 165 if l >= 418 +kps inc 49 if s >= -564 +kps dec 508 if ug == 943 +txk dec 352 if djl > -2 +axi dec -4 if y <= 347 +rz inc -40 if x <= -4 +xhe inc -538 if l < 428 +l dec 396 if kq < -97 +djl inc -462 if rz < -619 +xhe dec -173 if vhu > 98 +ug dec 227 if jb < -417 +x dec 754 if q == -692 +kps inc 671 if gr < 10 +ug inc 722 if o > 490 +o inc 743 if s == -562 +rz inc -427 if mp >= -2 +s dec -630 if j < 0 +vhu inc -413 if kyh > -8 +kyh dec -389 if djl != -458 +wdc inc 593 if ug >= 1432 +o inc 988 if kq != -101 +b inc -550 if c > -5 +c inc -390 if q != -701 +axi inc 450 if wdc <= 586 +xhe dec 840 if kyh > 385 +mp inc -789 if vhu > -313 +wdc dec -387 if j <= 1 +kps dec 625 if wdc != 980 +q inc 40 if b <= -979 +gr inc 164 if b > -982 +ug inc 124 if kyh == 389 +rz inc -893 if axi != 8 +b dec 428 if x <= -757 +vhu dec -205 if o != 500 +ug inc -375 if q < -644 +djl inc -954 if jb >= -434 +px inc 170 if kyh <= 396 +jb dec -844 if mp > -796 +px dec -473 if c != -390 +rz dec 480 if x > -759 +kyh inc -698 if l <= 32 +q dec -185 if x <= -753 +c dec -765 if kps > 210 +mp dec 207 if l < 28 +l inc -870 if kyh <= -309 +kyh inc -323 if s <= -559 +x dec 805 if axi == 0 +q inc 376 if kq == -101 +x inc 550 if s < -550 +x dec 647 if kps == 212 +zeq inc -839 if rz >= -2436 +djl dec -759 if l > -850 +tup inc -551 if o > 481 +vhu inc 12 if kq != -101 +kq dec -953 if px == 254 +c inc 523 if djl >= -657 +kyh dec -524 if c == 898 +tup dec 478 if px == 254 +xhe inc 301 if q == -91 +kyh dec -638 if y == 350 +l inc -412 if rz <= -2421 +ug dec 548 if kps > 207 +djl dec -830 if mp <= -997 +tup inc 367 if gr <= 0 +ug dec 997 if tup < -824 +mp dec -253 if txk >= -356 +kq inc 204 if jb >= 415 +px inc 567 if jb < 410 +kps dec 306 if txk == -353 +kps dec -171 if kyh > 222 +djl inc -833 if xhe <= -902 +kyh dec 648 if vhu >= -114 +djl inc -903 if kq < 1051 +kps inc -940 if djl < -1489 +y dec -408 if j <= -10 +mp dec -886 if o == 491 +rz inc 571 if l >= -1246 +s dec -178 if kq < 1062 +kq dec 718 if jb < 421 +axi dec 587 if kps <= -721 +jb inc -879 if j != 0 +tup dec 632 if zeq > -843 +tup dec -673 if s != -378 +kq dec -88 if vhu > -114 +jb dec 74 if o <= 492 +ug inc -716 if s <= -387 +rz inc 265 if zeq > -842 +axi inc -995 if l != -1246 +px inc 481 if gr <= -1 +x dec -811 if axi < -1590 +y inc 375 if s != -386 +wdc dec -484 if tup < -790 +c inc -335 if xhe == -908 +c inc -80 if px == 254 +c inc 263 if kq == 426 +gr inc 259 if kq > 429 +tup dec -749 if txk == -356 +jb inc 399 if wdc >= 1455 +mp inc -334 if axi <= -1577 +b inc 442 if zeq <= -836 +px inc -890 if xhe >= -912 +zeq inc -41 if o != 488 +ug dec 781 if x >= -1654 +wdc dec 246 if px > -645 +gr dec -707 if djl <= -1482 +wdc dec -90 if y <= 730 +y inc 674 if o != 491 +j dec -911 if vhu <= -102 +jb dec 575 if y == 724 +rz dec -10 if c <= 1088 +axi dec 272 if axi != -1586 +gr dec -678 if s != -377 +kyh inc -768 if gr == 707 +s inc 499 if mp > -195 +zeq inc 574 if wdc <= 1317 +axi dec -339 if x != -1647 +o dec -884 if xhe >= -905 +mp inc 718 if c >= 1073 +l inc 101 if px == -636 +djl dec -7 if y != 723 +wdc dec 997 if b != -537 +gr dec -155 if jb >= 176 +tup dec -403 if kyh < -1201 +kps dec -240 if djl <= -1480 +c dec -786 if mp > 525 +px inc -452 if ug >= -365 +x inc -527 if vhu >= -113 +zeq inc 524 if b != -552 +djl inc -429 if mp != 528 +c dec -667 if o >= 1368 +o inc 724 if x >= -2185 +gr dec 568 if kyh < -1195 +axi inc -571 if j <= 904 +px inc 423 if b >= -547 +txk inc -561 if q <= -87 +tup dec 382 if kps < -487 +gr dec 18 if px > -674 +xhe dec -981 if y > 721 +tup dec -68 if txk > -908 +q inc 583 if axi < -1508 +gr dec -404 if s != 122 +ug inc 743 if c == 2534 +xhe inc 985 if c <= 2537 +axi dec -258 if b != -538 +o dec 994 if gr >= 113 +vhu inc -278 if tup != -1181 +djl inc 489 if djl == -1912 +axi dec 580 if kps <= -490 +ug dec -803 if xhe >= 1055 +kps inc 156 if mp != 526 +zeq inc 214 if mp >= 518 +vhu inc 830 if mp < 536 +b dec 249 if b > -549 +o inc -626 if rz == -2153 +jb dec -220 if x > -2193 +djl dec -546 if j >= 902 +px dec 964 if px >= -669 +tup dec -719 if kps > -326 +gr inc -555 if s >= 132 +j dec -922 if o >= 485 +j dec -112 if q != 482 +tup inc -463 if s <= 118 +jb dec -195 if o >= 472 +x dec -973 if gr == 121 +x inc 253 if axi == -1247 +o inc 818 if wdc == 311 +gr dec 687 if tup != -1171 +s inc -869 if vhu <= 450 +vhu dec 288 if l < -1149 +rz dec 703 if xhe != 1067 +rz dec 700 if o >= 1293 +txk inc -983 if zeq >= 440 +kq inc -364 if q != 492 +kq inc 789 if x == -1201 +px dec 560 if x <= -1208 +wdc inc 562 if s == -741 +j inc -665 if kyh != -1198 +s inc 332 if kps >= -333 +mp dec 411 if rz < -3552 +axi dec 504 if wdc != 311 +kps dec 56 if ug > 1182 +jb inc 497 if px > -2191 +axi dec -364 if q < 501 +kq dec -308 if x < -1211 +zeq dec 304 if q >= 489 +kyh dec -957 if x >= -1211 +tup dec -670 if l > -1145 +jb dec -166 if o <= 1297 +l dec -900 if s <= -406 +txk inc 917 if px >= -2182 +rz inc 426 if y == 724 +kyh inc -993 if j > 353 +y dec -513 if kq != 425 +zeq inc 329 if l >= -251 +kps dec 460 if mp < 121 +wdc dec 492 if xhe != 1062 +djl dec -945 if gr <= -560 +px inc 368 if wdc == 311 +zeq inc 250 if y != 1247 +wdc dec 182 if y < 1237 +txk dec 577 if rz <= -3128 +b inc -252 if l < -247 +j dec 173 if px == -1821 +djl inc -858 if px == -1821 +mp dec 609 if wdc != 321 +wdc inc -723 if kyh != -1230 +kyh dec -172 if kyh < -1229 +wdc dec -702 if ug < 1187 +px inc -276 if jb <= 1245 +l dec -208 if txk > -1483 +y dec 319 if kps < -850 +kyh inc -597 if kps != -848 +c dec 161 if tup == -1170 +kps inc 320 if o <= 1302 +rz inc 972 if px == -2097 +kyh dec 483 if rz >= -2165 +kps dec -845 if q <= 494 +kyh dec 268 if o == 1301 +jb dec 835 if ug >= 1192 +kq inc 93 if vhu != 158 +vhu inc -693 if q != 490 +x dec -75 if txk <= -1484 +jb dec 419 if jb >= 1243 +b dec -84 if x >= -1137 +xhe inc -156 if kq <= 424 +s dec 653 if o >= 1297 +kyh inc 880 if c >= 2530 +wdc inc 295 if xhe > 1061 +y dec 140 if xhe != 1062 +txk dec 28 if wdc == -117 +kps dec 640 if rz >= -2166 +x dec 369 if y > 1232 +kps inc 232 if l >= -255 +b dec 89 if gr < -566 +wdc inc -217 if b <= -954 +vhu inc -29 if zeq <= 385 +kyh inc 861 if zeq <= 370 +rz inc 425 if jb == 826 +ug inc -857 if ug >= 1189 +mp inc -418 if x != -1505 +jb dec -815 if kq == 426 +ug inc -584 if xhe >= 1055 +kyh dec 216 if y <= 1240 +txk inc 106 if s <= -1064 +gr inc -775 if xhe > 1063 +o inc 647 if l == -254 +djl inc -461 if kq == 426 +s dec 962 if x >= -1512 +s dec -721 if y < 1230 +rz dec 289 if vhu == -567 +kq inc 651 if kq < 432 +px inc 371 if vhu <= -564 +axi dec -325 if kq > 1071 +b inc -971 if s != -2030 +c dec -526 if zeq >= 380 +zeq dec 239 if jb <= 1643 +kq inc -757 if kps != -87 +q dec 436 if y < 1241 +kq dec -557 if kps < -81 +s dec 115 if y >= 1236 +s inc -134 if c < 2543 +q inc -304 if txk <= -1407 +xhe dec 975 if rz == -1733 +tup dec 814 if rz >= -1742 +l inc 969 if ug == 604 +vhu dec 625 if wdc < -333 +xhe inc -406 if zeq != 136 +xhe inc 448 if jb >= 1640 +c dec -894 if q > -249 +b dec -778 if axi == -568 +zeq inc 966 if o <= 1953 +zeq dec 148 if wdc <= -334 +mp inc 812 if zeq <= 958 +zeq inc -295 if kyh != -878 +j dec -719 if axi >= -574 +tup inc -59 if c > 3425 +txk inc 538 if jb == 1641 +zeq dec 854 if jb <= 1644 +mp dec 735 if o <= 1949 +axi dec 750 if c >= 3421 +gr dec 633 if axi >= -1321 +x dec 626 if mp >= -827 +xhe inc 138 if txk <= -872 +axi inc -838 if txk < -866 +px inc 571 if tup >= -2045 +jb dec 793 if px >= -1730 +l inc -759 if zeq == -202 +kyh inc -923 if kq <= 881 +tup dec 903 if b <= -181 +o dec -958 if l != 707 +xhe inc 814 if x == -1504 +o inc 454 if o != 2906 +djl inc 469 if jb == 848 +mp dec -114 if q != -240 +y dec -393 if djl < -776 +ug inc -365 if mp > -713 +tup dec -254 if gr == -1199 +rz dec 587 if gr > -1203 +px dec -611 if b > -191 +txk inc -488 if kyh <= -1800 +axi dec 834 if c <= 3437 +tup inc -946 if gr <= -1199 +x inc -225 if wdc < -342 +j inc 526 if s < -2273 +ug dec -654 if c != 3427 +mp dec -521 if s <= -2274 +vhu dec -319 if txk >= -1352 +c inc 615 if gr > -1203 +vhu inc -464 if zeq == -192 +ug inc 469 if txk > -1367 +l dec 541 if px >= -1106 +s dec 632 if s <= -2282 +djl dec 289 if q <= -245 +xhe dec -816 if b >= -189 +kps dec -166 if rz != -2326 +txk inc -207 if txk == -1362 +o inc -566 if kq < 879 +ug dec 662 if kyh == -1807 +s inc -147 if vhu != -1653 +djl dec -675 if mp >= -200 +c inc 734 if zeq < -191 +y dec 440 if x < -1503 +tup dec 267 if zeq == -192 +o dec 971 if tup == -3909 +c dec -880 if x > -1510 +o dec 75 if s == -2279 +jb dec 956 if c < 5659 +txk dec -95 if c > 5655 +wdc inc -521 if jb > -113 +djl dec -798 if xhe <= 1901 +vhu inc 711 if jb <= -104 +jb dec -44 if tup < -3906 +kyh inc 57 if wdc != -860 +jb dec -817 if xhe <= 1902 +x inc 91 if rz <= -2313 +txk dec -604 if kps != 69 +vhu inc -714 if xhe != 1894 +txk inc 590 if rz <= -2318 +tup dec -557 if vhu > -1649 +wdc inc 621 if c == 5657 +q inc -39 if ug <= 1067 +s inc 947 if jb > 752 +rz inc 974 if xhe != 1902 +kq dec 787 if tup < -3913 +px dec 41 if djl != 399 +q dec 618 if kyh >= -1758 +kq inc -265 if xhe != 1906 +kps dec 748 if zeq >= -188 +s dec 78 if q != -908 +c inc 10 if px >= -1160 +j inc 526 if djl < 411 +s dec -329 if vhu == -1653 +l inc 922 if px < -1149 +y dec 546 if o >= 1738 +tup dec 505 if rz >= -1347 +zeq dec 983 if px < -1149 +j inc -997 if txk < -275 +rz inc 216 if xhe >= 1890 +jb inc -616 if vhu >= -1664 +kps dec 357 if wdc == -234 +jb inc 241 if zeq >= -1184 +djl dec -907 if kps < -285 +xhe dec 699 if y < 650 +x inc 319 if tup <= -4415 +l dec -715 if x != -1419 +tup dec -13 if rz > -1133 +vhu dec -127 if mp > -209 +kps inc 907 if mp < -196 +kyh dec -953 if vhu >= -1530 +gr dec 47 if mp >= -196 +wdc dec 462 if px != -1164 +wdc dec 441 if zeq > -1184 +s dec 846 if ug > 1057 +djl inc 418 if s >= -2260 +tup inc -428 if ug == 1065 +djl inc -471 if ug >= 1065 +x dec 580 if tup < -4825 +o dec 825 if kps < 619 +s inc -901 if tup <= -4823 +c dec -641 if xhe >= 1200 +j inc -966 if gr > -1205 +px dec 141 if zeq < -1173 +kyh inc -244 if gr < -1192 +j inc 759 if zeq < -1166 +xhe dec -129 if axi >= -2999 +gr inc 567 if axi == -2990 +x inc 856 if axi <= -2993 +kq dec -151 if djl < 351 +kps dec -397 if q != -907 +axi inc -714 if jb > 370 +y inc -630 if tup > -4834 +o dec 610 if y <= 16 +ug inc -172 if jb > 380 +gr dec -531 if s == -3157 +s dec -860 if o > 1126 +djl inc 584 if j >= 745 +tup inc 861 if c < 5677 +axi inc 562 if px < -1290 +axi inc 55 if txk > -271 +djl inc -747 if gr < -100 +ug inc 601 if q > -896 +x inc -77 if b < -175 +l dec 448 if txk > -289 +gr inc 469 if axi <= -3135 +jb inc -627 if q < -913 +s dec 830 if kps > 1020 +l dec -386 if j <= 760 +c dec -119 if axi != -3149 +djl inc 960 if x == -2070 +kq dec 326 if mp != -197 +s inc -453 if y == 17 +gr inc 386 if j == 752 +q inc -147 if ug == 1065 +s dec 657 if px <= -1303 +b dec 810 if c < 5781 +b inc -918 if q < -1051 +zeq inc 342 if px > -1300 +o inc 54 if kps >= 1018 +j inc 239 if zeq <= -827 +ug dec 428 if y < 23 +ug inc -433 if mp <= -203 +jb inc -356 if txk <= -286 +ug dec -760 if j <= 989 +djl inc -770 if axi >= -3142 +wdc inc -880 if wdc != -1140 +b dec -461 if o != 1184 +mp inc 319 if px >= -1301 +txk dec -110 if o <= 1196 +s dec -752 if wdc < -2007 +vhu dec 278 if zeq <= -825 +px dec -505 if b == -642 +ug dec -184 if kq > 430 +kyh dec 507 if kps <= 1024 +l inc -115 if kq > 445 +q inc -359 if s > -2375 +kq dec -35 if o >= 1193 +l dec -610 if vhu <= -1810 +xhe dec 124 if x <= -2064 +txk inc 167 if ug <= 828 +y inc 684 if q > -1058 +xhe dec 706 if c > 5777 +vhu inc -533 if rz > -1137 +ug inc 140 if s >= -2379 +kyh dec -93 if l <= 2294 +jb inc -112 if axi < -3139 +ug dec 987 if x < -2060 +zeq dec 828 if axi > -3146 +jb dec -573 if ug >= -31 +gr inc -56 if o != 1190 +txk dec 752 if xhe > 494 +c dec 616 if l != 2289 +tup inc 474 if tup < -3961 +l dec -950 if mp != 125 +zeq inc 516 if j == 991 +l inc 313 if x >= -2071 +rz inc 545 if djl > 370 +txk inc 268 if o <= 1190 +kq dec -484 if vhu >= -2330 +s dec 241 if kq > 442 +xhe inc -956 if kyh != -1456 +mp dec 315 if mp == 120 +wdc dec 925 if vhu >= -2345 +y dec -789 if vhu < -2336 +tup dec 281 if j != 990 +s dec 899 if vhu == -2340 +c dec 308 if j < 999 +l inc 982 if s == -3274 +axi inc 374 if gr >= 692 +vhu dec 586 if kyh > -1465 +mp dec 73 if xhe <= -457 +o inc -210 if zeq >= -1154 +vhu inc -484 if txk == -487 +rz inc -481 if gr >= 689 +q inc 882 if djl < 379 +s inc -771 if xhe > -466 +zeq inc 804 if c < 4871 +djl inc -899 if kq <= 441 +axi inc -29 if ug == -26 +jb inc -562 if txk != -495 +j inc 921 if q <= -168 +s inc -148 if y != 1478 +j inc -277 if xhe >= -468 +txk dec 210 if jb != 277 +zeq dec -86 if vhu > -3419 +ug inc -330 if x <= -2062 +xhe dec -893 if c != 4859 +gr dec -290 if j == 1635 +zeq dec -98 if b < -647 +kps inc 954 if ug >= -357 +wdc dec -497 if o != 974 +q dec -882 if o > 969 +axi inc -65 if kq <= 446 +wdc inc -492 if wdc > -2455 +vhu inc 704 if gr > 987 +x dec 672 if j > 1626 +kyh inc -785 if jb == 268 +ug dec 0 if djl < -514 +jb inc -706 if txk >= -487 +mp inc -786 if y > 1485 +px dec -734 if j == 1635 +jb dec 43 if c <= 4869 +rz inc -239 if tup <= -3775 +kyh dec -694 if djl != -531 +l dec -520 if txk <= -483 +q dec 499 if jb > -474 +l dec -452 if c > 4858 +b dec -583 if axi > -2867 +txk inc 556 if s != -4193 +j inc 590 if c == 4860 +y dec -309 if q >= 204 +xhe inc 9 if s < -4197 +xhe inc 92 if y == 1796 +gr dec 184 if rz == -1304 +jb inc 213 if zeq != -251 +xhe dec -784 if q < 217 +q inc -117 if xhe <= 1312 +axi dec 140 if c <= 4870 +gr inc 915 if ug <= -351 +px dec -135 if djl > -523 +rz inc 475 if kyh <= -756 +mp inc 216 if jb < -249 +q dec 337 if wdc > -2938 +wdc inc 288 if kyh <= -757 +jb inc -395 if ug == -356 +c dec 747 if rz < -827 +jb inc 930 if px > -60 +tup inc -581 if jb > 285 +px inc 340 if djl < -525 +kps inc 973 if q < -243 +vhu dec 753 if xhe <= 1313 +o dec -284 if s >= -4199 +xhe dec 196 if q == -241 +l inc 818 if x == -2742 +txk inc 917 if rz != -837 +kps dec 247 if ug >= -361 +zeq inc -944 if txk >= 431 +axi dec 700 if j <= 1643 +x inc 958 if x >= -2751 +axi dec 413 if tup >= -3782 +y dec -569 if x == -1784 +mp inc 838 if q <= -237 +jb inc -736 if wdc < -2645 +q inc -755 if s <= -4189 +gr dec 489 if tup < -3774 +s inc 185 if tup < -3783 +y dec 708 if l != 6327 +kyh dec 738 if zeq < -253 +wdc dec 483 if c != 4110 +q inc -994 if txk < 421 +px dec 942 if tup >= -3779 +s dec 740 if djl > -527 +q dec 924 if y >= 1655 +vhu dec -383 if xhe == 1114 +b dec -285 if kyh != -1499 +zeq inc -594 if ug < -351 +mp dec 349 if kps < 1733 +gr inc -329 if gr < 1416 +ug inc -423 if l > 6323 +s inc 681 if jb > -470 +o inc 802 if s <= -4258 +kyh inc 979 if kps <= 1738 +kq dec -48 if mp < -348 +kyh dec 602 if b <= -58 +zeq dec -844 if wdc != -3141 +gr inc -725 if zeq < -4 +px dec -295 if px >= -1005 +kq inc -756 if s >= -4259 +jb inc 775 if tup >= -3777 +axi inc 181 if zeq != -6 +txk dec 397 if c <= 4123 +gr inc 518 if s >= -4246 +rz dec 497 if c != 4107 +l dec -579 if wdc == -3132 +zeq inc 56 if kq < -269 +wdc dec -268 if l <= 6906 +zeq dec 241 if c >= 4106 +djl dec 866 if j < 1629 +txk dec 546 if vhu >= -3081 +kyh inc -667 if xhe < 1122 +o dec 759 if o == 1262 +vhu inc -288 if rz != -1324 +rz inc 355 if djl < -521 +x inc 126 if rz == -972 +djl dec 845 if l == 6904 +vhu inc 551 if mp == -349 +o dec -327 if axi == -3934 +s inc 121 if mp < -349 +djl inc 87 if q == -1920 +zeq dec -157 if x != -1659 +c dec -953 if j > 1635 +ug inc -247 if mp >= -351 +q dec 408 if l < 6914 +rz dec 610 if axi >= -3936 +jb dec 90 if kq <= -270 +o dec -899 if ug > -1027 +c dec 985 if j <= 1638 +vhu dec 684 if c != 3130 +s dec -392 if axi == -3934 +tup inc 528 if kps != 1724 +kyh dec 200 if j != 1635 +gr dec -288 if wdc != -2865 +j inc 253 if b > -64 +c inc 102 if zeq < -26 +q dec 415 if q >= -2336 +l dec -913 if tup >= -3251 +c inc 678 if px <= -705 +b inc -887 if wdc != -2864 +gr dec -710 if axi >= -3936 +kyh inc -871 if q != -2749 +j inc 262 if l <= 7821 +tup dec -906 if o <= 1736 +j dec -191 if jb > 218 +mp dec 296 if tup >= -2342 +j inc 582 if ug == -1026 +y dec -480 if c == 3910 +tup inc 184 if mp < -635 +rz inc 825 if tup != -2162 +q inc 931 if tup != -2153 +b inc 223 if kyh <= -2657 +xhe inc -399 if jb > 216 +vhu dec -109 if kq > -276 +txk inc -925 if xhe != 714 +l inc -221 if axi <= -3934 +axi inc -226 if b != 160 +px inc 820 if vhu <= -2702 +rz inc 638 if mp <= -636 +axi inc -198 if x <= -1653 +y inc 259 if djl >= -1285 +j inc -665 if zeq <= -41 +axi dec 906 if y <= 2403 +axi inc -807 if px < 117 +zeq inc 372 if o >= 1723 +x inc -462 if s >= -3851 +rz inc -852 if gr < 1355 +y inc 698 if l >= 7606 +y inc -731 if o == 1729 +o inc 894 if l <= 7599 +x inc -722 if xhe <= 719 +kps inc -502 if b <= 165 +djl dec 847 if zeq <= 335 +s dec -400 if l >= 7594 +zeq dec 513 if ug >= -1021 +y inc 797 if wdc != -2864 +b inc 332 if b >= 158 +gr dec -59 if wdc <= -2860 +vhu inc -968 if zeq < 334 +wdc dec 100 if wdc == -2864 +s dec -862 if y <= 1672 +axi dec -319 if o >= 2632 +j dec -294 if kyh > -2670 +mp inc 342 if mp > -647 +ug inc 337 if mp < -311 +kq dec 702 if tup > -2163 +px inc -729 if px >= 119 +zeq dec 161 if xhe != 711 +jb inc -745 if kyh <= -2654 +txk inc 671 if djl < -1280 +y inc -974 if gr < 1425 +vhu inc 929 if gr == 1417 +djl inc -771 if vhu < -1765 +y dec 764 if vhu >= -1783 +axi inc 913 if kq >= -969 +y inc 428 if rz != -122 +j inc 44 if c > 3901 +wdc inc -219 if kyh == -2660 +rz dec -713 if wdc <= -3178 +jb dec -510 if kyh == -2660 +rz inc -835 if mp <= -306 +xhe inc 461 if tup <= -2152 +c dec -986 if ug < -1017 +wdc dec 838 if txk != -777 +xhe dec -402 if zeq != 186 +x inc -791 if tup < -2155 +o inc -453 if jb >= -12 +ug dec -531 if s <= -2591 +s inc -552 if b > 500 +vhu inc -780 if tup == -2157 +zeq inc -198 if l <= 7601 +ug dec 875 if vhu == -2555 +y inc -896 if j == 3261 +o dec -9 if kq >= -973 +ug inc 383 if c == 4896 +y dec 592 if l < 7601 +q dec -111 if px < 122 +l inc -845 if s < -2593 +tup dec -602 if zeq >= -12 +o dec -689 if ug > -997 +c dec -587 if ug < -984 +c dec -376 if mp >= -305 +px inc 159 if o > 2866 +txk dec -763 if rz < 597 +rz inc -403 if ug <= -983 +px dec 393 if l != 6759 +kq dec 65 if q >= -1707 +q dec 363 if gr <= 1407 +rz inc -205 if c >= 5856 +ug inc -810 if kyh < -2653 +px inc -11 if jb >= -19 +tup inc -997 if mp >= -297 +l inc 365 if kps <= 1219 +c dec 568 if txk <= 0 +x dec 704 if s != -2598 +gr inc 997 if gr != 1417 +djl dec -200 if j <= 3270 +vhu dec 534 if jb < -8 +px inc 726 if q == -1701 +mp dec -952 if wdc < -4016 +zeq dec 851 if axi < -6072 +rz dec -92 if djl <= -1849 +wdc dec 115 if y == -1133 +vhu dec -641 if mp < 652 +b inc -389 if y != -1126 +kps dec -429 if vhu <= -2440 +rz dec 242 if l < 6758 +axi dec -745 if jb > -16 +j inc 343 if gr > 1415 +x dec -733 if ug <= -1795 +axi dec 6 if txk != -4 +jb dec -438 if b == 107 +axi inc -488 if q <= -1699 +kq inc -648 if j <= 3610 +jb dec 270 if wdc != -4139 +txk dec 356 if axi >= -5819 +txk dec -620 if b <= 111 +l dec 394 if s == -2601 +o inc 128 if x <= -2433 +ug dec -749 if rz > -174 +zeq dec 374 if gr > 1410 +kyh dec -901 if mp != 647 +b inc -161 if tup != -2157 +txk inc -208 if o <= 3002 +ug dec 940 if y != -1126 +kyh inc -956 if tup == -2157 +xhe dec 457 if b >= 101 +mp inc -966 if c > 5290 +px inc -408 if djl <= -1844 +kps dec -599 if kq > -1683 +jb dec 798 if gr <= 1426 +wdc inc -749 if kq < -1685 +tup inc 254 if txk != 51 +b dec 841 if jb < -631 +o dec 961 if l > 6758 +wdc dec -597 if kq <= -1677 +px dec -414 if l < 6757 +kps inc 373 if px < 610 +xhe dec 887 if ug >= -1992 +kyh inc -715 if kyh > -2712 +l dec -919 if rz <= -164 +xhe dec -127 if l <= 7675 +x dec 483 if b <= -727 +jb inc 659 if ug >= -1997 +tup dec -278 if jb > 17 +jb dec 295 if c >= 5299 +kq dec 624 if q >= -1703 +xhe dec -771 if vhu != -2455 +c inc 809 if kyh > -2716 +djl inc 533 if mp < -307 +xhe inc -291 if q == -1701 +kyh inc -677 if x > -2928 +b inc 828 if txk <= 54 +s dec -989 if x > -2929 +txk dec -303 if x != -2930 +rz dec 462 if jb < 25 +tup dec 378 if mp < -308 +y dec -173 if xhe == 841 +tup inc -808 if l >= 7669 +s inc -185 if txk >= 347 +s dec -782 if txk < 361 +axi inc 551 if xhe >= 834 +kq dec -155 if tup > -2814 +rz inc -169 if gr >= 1422 +mp dec -938 if y == -960 +vhu dec 779 if zeq != -394 +rz dec -788 if zeq != -389 +djl dec 936 if kq != -2164 +x inc -767 if c != 6096 +xhe inc 425 if kyh <= -3394 +kq dec 653 if rz == 162 +ug dec -256 if kyh >= -3399 +djl dec 160 if kyh == -3392 +tup inc -748 if q != -1711 +kq dec -338 if axi < -5254 +o inc 223 if ug < -1723 +c dec -66 if q < -1699 +gr inc -340 if tup <= -3550 +txk inc 471 if s == -1012 +wdc dec 105 if y != -951 +gr dec -866 if tup < -3566 +kps dec 5 if wdc <= -4392 +wdc dec -614 if wdc != -4390 +l inc 511 if tup <= -3555 +y dec 479 if ug != -1732 +txk dec 712 if y != -960 +b dec -508 if wdc < -3776 +ug dec -573 if b != 609 +vhu inc -954 if kps > 2022 +gr dec -964 if djl >= -2412 +txk inc 533 if px != 595 +x inc 538 if gr < 1084 +j inc -31 if b != 602 +rz inc -934 if b != 600 +j dec 566 if wdc != -3788 +l dec 756 if l != 8189 +q inc -567 if zeq < -384 +rz inc -745 if wdc > -3788 +px dec 453 if tup > -3558 +ug inc -665 if l >= 7425 +tup inc 798 if ug != -1816 +ug inc 709 if jb == 23 +txk dec -173 if ug > -1822 +ug inc 501 if xhe < 850 +gr inc 90 if o != 3219 +tup inc -919 if kq <= -2461 +axi dec -83 if xhe == 841 +y dec 200 if wdc >= -3779 +wdc dec 424 if o != 3226 +zeq dec 253 if kq > -2473 +rz dec -281 if mp <= 629 +tup inc 760 if kps != 2031 +mp dec -248 if y >= -1161 +s dec 902 if djl <= -2408 +mp dec -498 if txk < 1359 +mp inc 996 if kyh == -3394 +jb inc 492 if px <= 604 +px dec 701 if mp >= 863 +s dec -957 if tup < -2912 +gr inc 214 if tup == -2920 +o inc -730 if jb > 508 +rz dec -646 if jb <= 513 +x dec -2 if x == -3150 +b inc -938 if l != 7420 +x inc -268 if j != 3048 +kq inc -589 if ug > -1317 +xhe inc 83 if kps <= 2027 +mp dec -962 if kyh <= -3383 +j inc 977 if djl == -2415 +axi dec 169 if mp <= 1831 +px dec -774 if px != -92 +kps dec 279 if px < 678 +j inc -731 if o <= 2489 +x inc -58 if c > 6167 +gr inc 610 if vhu <= -3398 +vhu inc 209 if kq > -2467 +txk inc 11 if jb == 511 +rz dec 341 if zeq >= -639 +djl dec 297 if q > -2263 +xhe dec -357 if o < 2496 +kyh dec -579 if b >= -330 +kps inc 186 if l < 7426 +kyh dec -25 if y == -1160 +djl inc 996 if djl >= -2416 +mp inc 773 if zeq < -637 +xhe inc 759 if tup > -2929 +s inc -122 if axi == -5349 +vhu dec -603 if l == 7425 +gr dec 741 if tup <= -2919 +djl dec -996 if mp < 2608 +kps dec -645 if vhu < -2793 +px dec -25 if djl < -416 +px dec -624 if djl > -429 +px dec -380 if kq > -2480 +mp dec -526 if xhe != 2031 +q dec -358 if zeq <= -639 +rz inc 218 if jb > 507 +q inc -54 if x >= -3420 +mp dec 140 if kps < 2581 +vhu inc 234 if vhu == -2799 +q dec -428 if b == -336 +mp dec 825 if wdc > -4209 +px dec 22 if x != -3416 +j dec -952 if axi > -5352 +y inc -551 if y > -1167 +djl inc -832 if txk >= 1364 +vhu inc -318 if px >= 1701 +o dec 783 if txk <= 1376 +o inc -479 if txk >= 1365 +j dec -924 if px > 1700 +ug dec -230 if ug == -1323 +q inc -572 if o > 1231 +xhe inc 266 if ug <= -1099 +y inc 810 if xhe >= 2035 +j inc 599 if tup == -2920 +xhe dec -795 if o <= 1232 +b inc -972 if vhu <= -2884 +q dec 715 if s != -1079 +vhu inc -143 if y <= -902 +wdc inc -704 if kq >= -2477 +wdc inc 718 if rz >= -372 +jb dec -224 if vhu != -2889 +kps inc -197 if ug <= -1092 +x inc -81 if x == -3416 +xhe dec 492 if tup < -2917 +px inc -853 if kq != -2470 +djl inc 881 if kq < -2462 +q inc 306 if j < 5768 +mp inc 618 if b <= -332 +s inc 651 if vhu >= -2889 +x dec 852 if ug == -1092 +x inc -61 if ug >= -1088 +tup inc -674 if mp > 2775 +j dec 656 if y < -892 +kps inc 314 if djl < -364 +txk inc -344 if x >= -3498 +c dec -768 if ug >= -1101 +mp dec -693 if axi != -5349 +zeq inc 495 if axi <= -5347 +b inc -944 if b <= -330 +x inc 790 if mp == 2783 +djl inc -776 if y > -911 +txk inc 156 if wdc == -4189 +x dec 929 if c < 6942 +q dec -922 if j >= 5103 +x dec 254 if ug <= -1089 +mp inc 781 if px >= 1697 +kps dec 639 if djl != -1141 +j dec -543 if rz == -372 +jb dec -961 if y <= -892 +djl inc 430 if o == 1237 +q dec -64 if o == 1227 +txk dec -438 if px >= 1702 +wdc inc -117 if x > -3894 +px dec -660 if b >= -1287 +tup inc 18 if o <= 1230 +jb inc 27 if vhu != -2883 +vhu inc 554 if x != -3890 +s inc -344 if xhe == 2343 +px dec 208 if axi < -5347 +px inc -859 if o <= 1233 +rz inc 717 if q > -242 +x dec 315 if y != -910 +vhu inc 846 if s == -779 +zeq dec -557 if x == -4205 +xhe inc -897 if txk < 1621 +y inc -130 if kq <= -2464 +c dec 430 if djl == -1150 +b dec -73 if kyh < -3363 +o inc -337 if kyh == -3367 +xhe inc 924 if l < 7417 +tup dec -126 if x == -4205 +j dec -967 if kps == 2054 +zeq inc -908 if mp == 3559 +j inc -501 if txk != 1619 +djl inc -810 if y >= -1033 +y dec 525 if djl <= -1960 +l inc 389 if x <= -4199 +gr inc 111 if jb > 1692 +x inc -206 if b > -1200 +o inc -928 if s <= -765 +l dec -372 if txk > 1612 +jb inc -937 if kq == -2470 +kq dec -296 if gr < 1276 +j dec -643 if rz > -378 +kps dec 412 if zeq >= 399 +o inc -224 if kq < -2172 +y inc -572 if jb == 759 +l inc -663 if j < 6760 +xhe inc -284 if l <= 7531 +kps dec 209 if y <= -2119 +tup inc 216 if mp != 3574 +px dec -421 if ug >= -1101 +wdc inc 854 if ug != -1095 +djl inc -860 if wdc > -3453 +j dec -541 if ug < -1087 +b dec -27 if q != -234 +kyh inc -345 if y == -2128 +o inc -84 if xhe > 1163 +b inc -512 if s > -782 +ug dec -772 if l >= 7516 +wdc inc -718 if wdc >= -3453 +tup inc 48 if rz == -375 +c inc 372 if kyh <= -3703 +tup dec 753 if b <= -1683 +l inc -573 if kps <= 1434 +kq inc -589 if axi == -5349 +q dec -905 if x >= -4213 +jb inc 716 if y >= -2137 +q dec -864 if gr <= 1278 +axi dec -402 if ug != -322 +px dec -442 if j <= 7300 diff --git a/2017/08/test.txt b/2017/08/test.txt new file mode 100644 index 0000000..1fb12cf --- /dev/null +++ b/2017/08/test.txt @@ -0,0 +1,4 @@ +b inc 5 if a > 1 +a inc 1 if b < 5 +c dec -10 if a >= 1 +c inc -20 if c == 10 diff --git a/2017/09/day9.hs b/2017/09/day9.hs new file mode 100644 index 0000000..e9ff986 --- /dev/null +++ b/2017/09/day9.hs @@ -0,0 +1,38 @@ +#!/usr/bin/env stack +-- stack --resolver lts-9.17 script + +import Data.List + +data Stream = Stream + { depth :: Int + , score :: Int + , ignoreNextChar :: Bool + , garbage :: Bool + , countGarbage :: Int + } deriving (Show, Eq) + +processChar :: Stream -> Char -> Stream +processChar stream c = + if ignoreNextChar stream then + stream { ignoreNextChar = False } + else if garbage stream then + case c of + '!' -> stream { ignoreNextChar = True } + '>' -> stream { garbage = False } + _ -> stream { countGarbage = countGarbage stream + 1 } + else if c == '}' then + stream { depth = depth stream - 1, score = score stream + depth stream } + else if c == '{' then + stream { depth = depth stream + 1 } + else if c == '<' then + stream { garbage = True } + else stream + +processStream :: String -> Stream +processStream = foldl' processChar (Stream 0 0 False False 0) + +main :: IO () +main = do + stream <- processStream <$> getContents + putStrLn . show $ score stream + putStrLn . show $ countGarbage stream diff --git a/2017/09/input.txt b/2017/09/input.txt new file mode 100644 index 0000000..4f1f220 --- /dev/null +++ b/2017/09/input.txt @@ -0,0 +1 @@ +{{{{{{!!!!!!">},{!!>}},{<},!,!!!>}e!!!>{!>{,i!!!>,<}>},{e'!!!>,!<'o'!!{au!{!>},<}!<>}},{{{!!!>!>!>,}}},{{{},{!>,},<}!!!>e>,{{,<,a,<'!o'!>!u{!!!>,<,!!!>>}}},{{{}{e!!o!!,o'{},{!!{a!!!><},{{<>}},{{{{<{!>},{{}}},{{},{<,!u!e!>},!!!>,!!!>!}}"{>}}},{}}}}}},{{{},<,!!}},{<'"!,!!!>},,oo">,<>},{{{},<''!>},,},},},{{},{,}},{{!!,!!iau!>""!>},e{i}>,<"!!>},{{<<}"!ou!!o,>}}}}},{{{{{'!!{!>,<>},},},"<,!!!>u'!>},a>},{{{<">},'e!>,<<{,!!a{!>},}}},{{{}},{{{},,>}},{{<"!"'!>,<!>},<>}}}},{{},!!i,!!ao!>,},<>}},{{{{},e",!i!>i,}!>!!!!!>!!!!!>>},{!!'!!!!!!!!!!!>,'i!!aau,!>!!>}}},{{},{<,!!!!,o!!!>},,},<",!!!>u!!'eou!>>,{{},{!"{},<}}>}}}}},{{{{{<>,},},},{{{<,!o!}>}},{{!!!>ui!>},,<',!o>},{},uiui"}!!}!!!>a}>}}},{{},o!>>},,!u>}}},{{{,,<,'e"{io!>!>ie>,},!!e!>!>,>},{{,},,<>},{}},{<>,,e{{}uu>}},{{{,<'!>,},e!!}!!!>}>},{,oo>}},{{{}},{!!!>'>,}},{{{<"!!!'!!,!>,<,!"!>},<{!!,}{!!}!>o!!u>},{{,},<,!!e}}},<>}},{{{{{{},{}},{<"!>,,,<{},},{}},{{<},},},}}}},{{{{{{{}},{}},{{},{{a!!i}}o!!!>!>,<<}a'!!!!!>},},},{!>,,},<<">}}}},{{{}},{<>,{}}}},{{'o},{{}}},{{<!!,,!!!!!>{"u!>}!a>}}},{{{},<'!>"}!>,>,{{},i}}},{{},{{},},},<<'!!i!!!!!o!!!>i},},}}},{{i{>,<{u,!!e!!{"'o!!!>,},,<>},{,<""!!!>!!!>!!!!e'!!!>!>},<}>,{{},{{<'e!!!}!!i}{a!!!>{!}!!!!!a>}}}},{,,<{>}}},{{<>},{{{<"!!!!,}}!!!{!>},,}}}}},{{,{},<"'>}},{{}},{{{{a!!a!!!>>,},i,}!!""!o!!!>>},<'!!}!>,<,i!{i!>,,<">}}},{{{{{},}}}},{,!!"<<>,<"!>},,},},{{{{}},ei!!'!>,<>},{}}}},{{{,<{!>},{}},{{{<'i>},!!o!}!!!>,<,a>}},{{},{{<{iu}"!>,}}}}},{{{!!!>!!!>,,,<"!!>},{}}}},{{{}},{{{},{}},{<'u!>},},,!!e>},{{{}},{,<"u!}a<}>,{{,{!!{!>,<},>},}}}},{{<'!>},},{,,}"{!!}>}}},{{{{{<}!u>},{oa{!!!!!>o{!!a!!!>!>,},<',!>{>}}}},{{{{{},<'"!!{,e>}},<<,!!!,!}i!!<',u>},{{{}},{!>},,!!!>!!!!!>!!!u!!>}},{{!>,,!!!>,e!><}!<>}}},{{},,{}}}}},{{,{}},{{},{uou""!>,},},}}}}}},{{{{{,!>},a!>},<"{eeu!a{!>,<>,>}}},{{{{>},<!,{'o!>},!!!>,},{{!>},},<}!!,!!a{ie{},{{{}},{{<>}}}}},{{<}i!!!>!>},<}"e!>,,{<'!>!!!>a!!{'oe}!!oo>}},{{,u!!!>!!!>},}},{<,}!!o!>,,!>},{,{!!o}>}},{{{!!!>!>a,,,!!oe,o!>!!'!!!>>,{<}"!!<"i!>,,}},{},<'>},{{<",!!!>!>,<,a!}<"}!>!!!>!>},,<>},,}},{{{{},{{{{},},<,o!!!>"!!!>!i>},{<<}oa!ae,},u!>!e"!!!!!>{u},,<>},{{},<>}},{{u},{!!!>,<{!>,},<u>,{}},<>},{{{{},{}},{!!!!!a!!!>!e,"!!!>>,{,},}},{{,<''!>,<,{<{!>,<u,e,!>!!!>},<>}}}},{},{{!!!>i{!!o!!iu,!!!>>},{{,<>}}}}},{{},},'!!i"uuu!>},<"{>}}},{{},{}},{{{}},{}},{{{{,<>}},{{{{{}},<>}}},{{,ai!!!>}>},},<'}e"<"''!>>}},{{{},,}},{{{{{},>}},!'!>o!io>}}},{{{!!!!ei}!>,<'!>,<,!>},<{!>!>},<{>}},{<{!>,!>,<>,,},<!>!>,,!!u!io>}}}}}}},{{<>},{{{<>}},{{,<,iea{>},{}}}}},{{<}<,},},<>,<}ii!!!>},<}},{{{!>,<,'!!<>,{{},<},<'a!!!>a!!>}},{,},<,a!!!!!>aau!>},},}},{{},i!!!>!!!>!!a!>,<}!!!>!!'!!>}},{{{{<,,oa!!!!!>u!!'ee!!!!!>""a{>},{}},{{,{},,,u"ou,{,>}}}}}},{{{,},e!>},'o!!!>!!{a!!!,>}},{{{{>}},{{},{{{,!!!!!>'i!!!!{,""!,iui!!!>>}},!!!>},},<"!>},,>}},{{{<<}u!{e>,{>}}}}},{},{}},{{>,{}}},{{<}>,{<},}},{{},{!e!>},,},},},<>}},{!>,<a!'!!o{!!,!>},},}}}},{{{{{!>,!><<"!u"!!!!!!{!!>},{}},{},{{o!!o",>,{!!!>},},{!>,<',!!!>ei!!!!>,{,,,<,i!!ei!>{!!!>}}}}},{{},{{},<>},{{<}!o!!!>u,u!>,,<>}}},{{{{{{{{i>}},{{!>},<,}},{<>,},<{>}},{{{{<"e!,<,!>},},{}},{{{{},<'!>,,{<{!><}a'!>,,<,!!!!,e!!i{<'!>,,{!>,<>}}},{,<}!!<",}}},<,{o!>!i!!oo"!>},},{{{},'{}!!!>,<{!!u,>},,},<{!>,<{!!i!>e>}},{{},{!e!>,},<>}},{{},{<{!"">}}},{{{{},},{}},{{{<>}},<""a"!>,!!}!>,>},{,{}}}},{{"e,<>}}},{}},{{{<"!>,},{}},{{{<">,{<>}},{!!<>}}},{!!!!!>ooa!!}!!!>,!>,}'!>},<>,,,u>}}}},{{{{},<,'i!>oe{!!!!}>},{{,<'!!!>!>},!!!>>,{!>!>},<>}}}}}},{{{},<,{'o!!o!>>},{},<>,{{{{{!!!>,},<}!>,!!,<'o!>},,}},{}}},{}}},{{{},<,<'u>}}},{{{},{},<}!!iau!!a}o!!!>,>},{{},'}!!{!!}i"'!a,!>},<}},{{},{{e>},{}}}},{{{},<>,},'o!{>},{{e!>,<,!!!>i!!!>{!{u'!>,<,"!>,},{{},{<,e!!{{!!u!>}!e!!i{ie}!>},}}},{{{},{},<'oe"o!>,<>}}}},{{},{}},{i!!{!>,,,<"{',{}}},{{,,},,,},},!>},,!!!>>},{},,o!!!!!>o},}}},{{{{<}!>,<}oi>},},},{{{>}}}},{{{},},<>,!!}!!!!!!{i!!a>},{}},{{},{{{,<{}}a!!!!!>iu!>!!ie,!!!>i!>,<{>}},{{{},<>},{,!!!>!!e}"!!>}}}},{{},{{o''"!>!ue}!>!!<"}!>!!!>!!{>}}}},{{{<"e>},{<'!i!>,,{},>}}},{<"<"}u,!>e!!u'{!>},},{}}},{{},<>},{}},{{{>}},{},{}i!>>,{!!!!eo}o,!}oia!!!>!!!>,}}}}},{{{{{<>},{}},{{{,!!},<>,<>},{{<}a!!!>",!>,!>,},},}},{},,>,{},,,}}}},{{{{,},,{,}}}},{,{}}},{{},{{<}uo!!{,'>},{,}}}},{{{<}<{>}},{{{<},!!u!>>},},<{"!>,},!>},,{e!>,<'oa!!!>u>},{{{},'ea'i>},ii!>},,},,},>}},{{},{o'!>!>""!i!!!!e!!!>!!!}i>,<},,,!!i{!}a!!!!!!!>>}}}}},{{{}},{{{}}},{{{},<<{e{i!>,,<,!u>},{{}}},{{},{{{{,!!!>!!{!},<,<","!!o>},{>}}},{{{<!>,},<{},<},{}}},{},,e'>,<"!!!>,,>}}},{{<"}!>!>},!>,!!'a!!!!!>"!!!!o!!{"!>},>,{!u!!!>!!{!>!aaa,>}},{<,ee!!i>},{{{}},{{},<{!!}!!!>,,,}!>,},<{,i",<>}},{{,},<!>},,!>,<>}}}}},{{{},{{{<'o"<',,e>}}},{{{"o!>},}},{{},u,!}!>,<>}}}}},{{{{,,<>}},{{,{}},{<,!!e!>},>}},{{{},<}>},<{a!>!ao!!!>},},{{,!>"'e{!!!>,<,!}au!>},},{{{<{',{}o!e!>,<>}}}}},{{{{}}},{{{{!<}>},{,!><,!>!!!>!!!>},<>}}},{{<{>},{,},'!>!!{!!!>}!!>}},{{<!',}e!"!!!>!!!>a!ie!!!!!!i>,{},>,{}}},},<,!>"'i>}},{{},{{},<"'aueu!!u>}}}},{{{{!{!>u'e'!!e,iu>},{<','!>,},<}u"ue>}}},{{},,,!"i!!o!!{!>,,<}iu!{ou!u'"!!}!!<,!o"{>},{,<}!>a!!!>!>,,},<>,,'!!!a"'!!,<{!>,,},{{{{>}},{{},<}{}!!!>!!!!!>},e>},{<}u'<<",!e!>},,}},{{{},{}},{}}}},{{{,<"!!!>ea!>!!}!>oa!!!>,},},},<}!uii!!i!>},,,},{},{},<'u{u!!<'!!!>e}}},{{{{{{}},{!!},<'!!o>},{},{<}!!o!!!!u!!!"o{!!}!!{!>,,<'>}},{{<>},{{>},{},<>,{}},{{u!>},,},i!ou!>},<>},a!!!>}!!!!!!>}}},{}},{{<'u!oi}!!!>!>},},<>,},,},{{},},}},{{!!o"!!'i!>,e!>,<{!!!>"'o>,{}},{{},{<{}io}}!o!!!>},>}}},{{{<"!>{!!{!!!>!!!>{oa}'u!>},},<'!u!>!>u"'!e}!!!>'!!!!ee!!!!!!!!!!<>},{{,,<'<"o!!!>i!>!"!!i>,{}},{},},!!!>i!"u>}}}},{{{},{{!>,<{!!!>}>},{'!>,!!i!!!>,,<"!>a!>},<">}},{{u!!}>}}}}},{{{{{<!!!!>},{<>,},{{<>}}}},{{{}},{},,,,{,oa!>>}},{{!!!!{'<},e>}}}},{{{{{{},},},>},{{!>aa,<<}i!!e{a>,{,<},,<}a!>e!!!>!>,,<>}}},{{<'i{ea<<{>},{<{!!!>,>}}}},{{{{<{!>},,<<>},{,},!!<'!!oae<'>,{{,<">}}},{<},<>}}}}},{{{{{!>,},<}},!>,<<>},{!!},,!!{"!!!!"eo>}},{{{{,!!"{{u>}},{{<>,>}}}}},{{{a!>},!>,<{{!>},{>},{{{{,},<>},<>},{{!>!!i!>!>,<>},{<'<}}}}}},{{},{{<}},{<,">}},{{{!!!>{,!{,!!>},{{{{},e!>"}>},<,"!!{eu!!,>}},{}},{},{{{{{},>},<{{!>!!!"i!!e'!>},!!!>!!>},{{,<ii!!u!>,!>},},},{<{a!>},<>}},{{{!,<,!"e}}u>},{{{{<,>},{}},{{{{},<'>},,!>,,<,<,!!o!>}!!,!>},>}}}}},{{!o!>},'u>,},,'>},{{{{{{},<<"!>e!>,<,}u"!u{!>>},{<>}},{<'!>},<{""'{u,>}},{o!!!>,,"'!!!>},},,<}<>},{{{{{,,}},{,u!!a>,,!>!!>}},{{}},{}},{{{},<,},<,!!!>!!<>},{o"!>},<}!!!>!i"{!>},<,,!>!>,<>}}},{{'!!!>},ui{"{,a!!!,i!!u'!!>,{auo!!!>!>},,!>,<',<,o>}},{{{{,!!!>a>}},<},!!!>!!ae!!!e"!!}!!!>!!{!>,<>},{}},{{},}}}},{{},{{!!!>!>},},}}}}}}},{{{{{<}>,{<{!>!>,>}}},{{,<,>,{}}},{}},{{{<'!>},,!!{!>!>!>},u!{!>},<{<>}},{{io,>},}},{{!>o"!!"i<>},},,,<>}},{{{{}},},<,<<>},{{}},{{}}}}}}},{{<"!a!>},},}a<}uuo>},{{}},{{}}},{{'e'u!>!>},,<}!!!{!>,<>},{<"e'",e!e!o!!{>,{,}}},{{'u!!,u>},{!!}!!{!u}!>,},<>,{<,!!o{"!>,<}"a>}},{{"e!>{},i,}ue!!!>{{}!>>},<}i!>>}}},{}},{{{},{}},{{{!>,},},,},,<}},{{}}},{{,!aia!>},<{>,{<<,o!!}ao!>,,}},{<,!!!>!>},,},>},{,>,{<{!!"!i!e!!!u'!!e!>,<>}}},{{{{{,<{!!i!!o!a"ueo!}"!>a,}},{,{}}},{{!!!!!>aa!>},<>,{<>}}}},{o!>,},,{{},<}}{!o!e!!!},!>,<>},!!!!!>o}!>e!!>}},{},<{a{>}}},{{{,},!>!>},,>},{<{i,u!!!>,>,{}},{o!>},},}},{{},{<},{{{<,!}{!>,<}!!},<'>}},{{},!>,,<'!!!>,<,!>},<'{!!{}'>}}},{{{{{,,>}},{!>},>,{},},}}}},{}}},{{{<}'!!!!>,<<}'!!'{''!!>},{{{},!!!!!>u!!,e!"i!!!>>}},,!>},},{!>,<>},{!!{>,<"!!!>}},{{{{}},{{},{},>}},{{},{!>!>},<}u!>},<>,{{<}'{!>,}}}}}},{{{{}}},{{{},{<>}},{},{{}}},{}}}},{{{{{},,},{{<{!>,<},{{{{},{}}},{i!!a,!>,},a<{>,{}},{{{<>},,>},{<,o!!{,<}"u>}}},{{}}}},{{<>,<"',"<,!>},!!!>!!e}!!!>>},{!>},<"u!!!>>,,>},{{<"e{!e!>!>,!>},<,!>"'!!!!i!>!!'>}}},{{{{{{},{{<{e!!!>!>>}}},{{}}},{{},{<>}},{{},<'a!!!}{!!!>o,!ui!},,<'!>,<">},{<'}!>},<<>}}},{<"!>u!u},{{},},eu!',!!aui!!"<>},{{,,,!!"{o>},{<"!>,,<}u}!>},<>}}}},{{{<{{"!!!>!!!>!>,},<'uu!>!!!}{u,a!>,},<>},{{{},{{},{{!a'{u!!!!!u!!,!>,}}}}}},{{<},,!!!!!>!>},o!!!>!>},<''e!!<>}},{{!>},},{{{<{},!>},},<"!!!!'ou!!!>eu>}},{!>},<'!>},,{i>,{<{{{'!>ai'!!!>iie!<}!!!>!!!!!>},<}!!>}}},{{{{},},"i!>!!!!,!>,,u,,>},{}o{o!''o!!!>>}},{{!>>},}!!!>}},{}}}},{{{,<'u!i>}},{<>,<,}!>,<a''e!u}e!>},>},{}}}}},{{{{{},!!}u!>,<{,!!!>e!!},},},{{<'!!a!!,o'o!>,}},{<>,{{!>,e!!!>!!}i!!!{!!"!,,<>},{<>,{{}}}}}},{{i!!'>},{},{!}}!>a!a!>},<{!!!!!!,u!u>,{{<}'!!u!!!>',,!>,},<,<,io>}}},{{{{,!>,!!}!>,,},}},!ue}>},{<,!>},,,,<'>}}},{{{{,,},<{'a!!}!>,},<<>}}}},{{{{{{<"!!!>!!ue'"<'!>!>},,,<}>},},,}},{{<}oa>,<}},{{{{<"!!!!!>e,!!"!!!{!},,<{!!{>},{}}}},{}},{{{{{<,o!!!>!u!!!!iei!>},}},{<'{ai}ui!!u!>},<,}},{{{,},>},,,}!!!>{!>!>,{!>,<'e}>}}}},{{{{{},{{,!>,,},<<"!!!!!!!!!!!>{<>}}}},{{u!!i"!!u!!!>{a}oa{!a!>},<>}},{{{{},<"!!!>},<""a'!!o"ioa"}'>}},{}},{{}},{{},},}}}},{{{{,<>},{{},{{<>}}}},{{}},{{},{{},{{!'!!!>}{!>},}}}}},{{{},,!!a!!!o!>!>,},},,>},{{<,}!,e!>,,u<"!"!!>}}},{,}!!ea!,!>,!>,},},!>,,<>,<>},{{,!"e'<>},{},{<"{{iu,!>e!!!!,!>},!!!!!>,>}}},{{{}}},{{<>},{{}}}},{{{,,!!}}'",i!>{,<>},{!!ae,",},<>}}}},{{{{},{},<}o"!!!!!o!>,<,iu!!!!"!!'}}},{{{{}},{<<"}!!!>,},>}},{{{},},!!>!i!!'>},{},<}ee!uuu!!,!>},}}},{,<>,{!!!>,!>,<,,!!!>'!o"!<>}}},{{{}}}},{{{{{{<'o!!!>},<>,{}}},{},{{},}}}},{{{<}!o!!{"!'!!!>},aa"!!!>ieao>}}}},{{{{},uia!!!>!>,,u''io{>,{}},{,},o}!!iaa!>},<>}},{{,},<{ea!>!!!!!>>}},{{{},{ee!!i!!!>i!!!>,,!>,<>},{{<}u}',iai!>,<',!!au!>>},!>},!>,}},{{<>,},<,'!>",{o!!!>,}},{!>,<",oi}!!,<'>,{,},<{i!!,"!!e}!>!!!aao>,<}!!'>}}},{{!i!e},o,!>,,<,!i!>"<>,<"u}>},{{{{u!!!>e!!!,{{{}},{},<'{!a!>ue!!!>!>,<>}}}},,}!!!!!>,}},{{}}}},{{{<"u}!!!>!!!>o{!!!!{io!!!>e!,{,},<}"!!<"''e!!ao>}},!o!i!>,e!o>},{e!'o'<>,{iui!>!!o!>,},<>}},{{,},!!!!!>},},<'!>,,{!e',!",>}},{{{{>,,},},},},},{o!!!!!!o!!e>}},{{<>}}},{{{},},<"!o!!!>i!!!>!!e!!!>,!!!!!>ia<<'>}}},{},{{{},{{,!>,<,}}},{{{{}},{}}}},{{{{{<'!>a!!!!!>"!!!!!>},!!!>>}},{}},{,<,!>,<"!!!>u!!!!!>!!!>!>!<{>,<"!!!>,,<}'!!e!!'!!!!!>u!>"u>},{{},{},},!!!>},<>}}},{{{{{}},!!>},{{<,,o!!'!>},<>,{e>}}}},{,!>,<>,}},{{,a!>,,,a'!>,,<>}},{{{,,},<>,<"i}{!!!o'{,i!!,!>"u>}},{{,!!!>ea},}}}}}},{{{{}},{{{{}},{{{{,},<'>}},<}o}},{},,{}}},{{},{{{,'a!!!>'!!!!!>!>},<>}},<"e!>,},o!>},,>},{{,},<'},},,{}},{,!>},<>}}}},{{{{<}!>},!!>}},{{},,a!!>}},{{{i}'eeu!!!>!>'>}},{,<"!!!>,,},,{<{!i{e!>,ue!>},<{!>},<,!>,,{<,>}}},{{,<'!>},<}>}}},{{{{{<!!!>a!!ao!!!>,<>}}},{{,<>}},{{},},},,!>},!!'!>},,}}}},{{{{},},{{},<>},'{,!>,<<>}},{{{}},{{>}},{{<,i'o!!>},{,}}},{{i>},{>,{{u!!{!!{!>,!!>},{},}}},{{{{}},{{e!>},}},{{}}},{},{{!!a!>,,<{!!!>!!,!>',>}}}}}}} diff --git a/2017/10/day10.hs b/2017/10/day10.hs new file mode 100644 index 0000000..d9fd019 --- /dev/null +++ b/2017/10/day10.hs @@ -0,0 +1,41 @@ +#!/usr/bin/env stack +-- stack --resolver lts-9.17 script + +import Data.List +import Data.List.Split +import Data.Char +import Data.Bits +import Text.Printf + +twist :: [Int] -> Int -> Int -> [Int] +twist xs len skip = + end ++ start + where (knot, keep) = splitAt len xs + (start, end) = splitAt skip $ keep ++ reverse knot + +twists :: [Int] -> [Int] -> Int -> [Int] +twists list [] k = list +twists list (x:xs) k = twists (twist list x k) xs (k+1) + +hashRound :: Int -> [Int] -> [Int] +hashRound n lens = (drop rot list) ++ (take rot list) + where list = foldl' (\acc (x,k) -> twist acc x k) [0..(n-1)] $ zip lens (cycle [0..(n-1)]) + rot = n - (sum (zipWith (+) [0..] lens) `rem` n) + +sparseHash :: [Int] -> [Int] +sparseHash lengths = + hashRound 256 . concat . replicate 64 $ lengths ++ [17, 31, 73, 47, 23] + +denseHash :: [Int] -> [Int] +denseHash h = foldr xor 0 <$> chunksOf 16 h + +main :: IO () +main = do + line <- getLine + let lengths = map read . splitOn "," $ line + -- let a:b:_ = hashRound 5 [3,4,1,5] + -- putStrLn . show $ a*b + let a:b:_ = hashRound 256 lengths + putStrLn . show $ a*b + let h = denseHash . sparseHash . map ord $ line + putStrLn . concat . map (printf "%02x") $ h diff --git a/2017/10/input.txt b/2017/10/input.txt new file mode 100644 index 0000000..216967b --- /dev/null +++ b/2017/10/input.txt @@ -0,0 +1 @@ +192,69,168,160,78,1,166,28,0,83,198,2,254,255,41,12 diff --git a/2017/11/day11.hs b/2017/11/day11.hs new file mode 100644 index 0000000..12a2179 --- /dev/null +++ b/2017/11/day11.hs @@ -0,0 +1,56 @@ +#!/usr/bin/env stack +-- stack --resolver lts-9.17 script + +{-# LANGUAGE OverloadedStrings #-} + +import Data.Attoparsec.Text +import Data.Text (Text) +import qualified Data.Text as T +import Control.Applicative +import Data.List + +data Direction = N | NE | NW | S | SE | SW + deriving (Eq, Show) + +type Path = [Direction] + +type Coord = (Int, Int, Int) + +parseDirection :: Parser Direction +parseDirection = + (string "ne" >> return NE) + <|> (string "nw" >> return NW) + <|> (string "se" >> return SE) + <|> (string "sw" >> return SW) + <|> (string "n" >> return N) + <|> (string "s" >> return S) + +parsePath :: Parser Path +parsePath = do + path <- many' (option "" (string ",") *> parseDirection) + return path + +step :: Coord -> Direction -> Coord +step (x,y,z) dir = case dir of + N -> (x, y+1, z-1) + NE -> (x+1, y, z-1) + NW -> (x-1, y+1, z) + S -> (x, y-1, z+1) + SE -> (x+1, y-1, z) + SW -> (x-1, y, z+1) + +finalCoord :: Path -> Coord +finalCoord = foldl' step (0,0,0) + +allSteps :: Path -> [Coord] +allSteps = scanl' step (0,0,0) + +distance :: Coord -> Int +distance (x,y,z) = maximum $ map abs [x,y,z] + +main :: IO () +main = do + Right path <- parseOnly parsePath . T.pack <$> getLine + --putStrLn . show $ path + putStrLn . show . distance .finalCoord $ path + putStrLn . show . maximum . map distance . allSteps $ path diff --git a/2017/11/input.txt b/2017/11/input.txt new file mode 100644 index 0000000..ae57f5f --- /dev/null +++ b/2017/11/input.txt @@ -0,0 +1 @@ +s,sw,s,ne,s,se,s,s,s,se,se,se,se,ne,ne,n,ne,ne,ne,ne,ne,s,ne,ne,ne,ne,n,n,n,n,n,n,se,n,n,n,se,s,ne,n,n,nw,n,n,n,nw,n,s,n,n,n,n,s,s,nw,se,nw,s,n,nw,nw,nw,nw,ne,sw,nw,nw,nw,n,se,nw,nw,n,s,n,sw,sw,nw,sw,nw,nw,nw,se,ne,sw,n,sw,sw,sw,n,sw,sw,sw,ne,sw,sw,sw,sw,sw,sw,sw,sw,sw,sw,se,nw,sw,sw,s,sw,s,s,s,s,sw,sw,sw,se,s,sw,s,n,sw,ne,s,s,n,nw,s,s,s,s,s,s,se,s,sw,s,sw,sw,s,s,s,s,s,s,s,nw,s,se,se,s,se,s,s,s,se,n,nw,se,s,se,s,s,n,se,ne,s,s,s,s,s,s,ne,se,s,nw,se,s,s,nw,s,s,se,s,s,se,se,se,se,se,s,se,se,se,s,s,se,se,s,se,se,se,se,se,s,se,se,s,se,se,s,s,se,s,se,se,s,se,n,s,sw,se,se,se,se,se,ne,se,se,sw,nw,ne,se,se,ne,se,se,ne,ne,se,ne,se,se,ne,se,s,se,ne,se,se,ne,n,se,se,sw,ne,se,se,se,ne,se,ne,nw,ne,nw,se,ne,se,se,se,se,se,nw,se,ne,s,nw,se,ne,ne,ne,ne,n,se,s,nw,ne,se,ne,se,ne,ne,ne,ne,ne,ne,ne,nw,ne,ne,ne,ne,ne,n,se,sw,ne,se,se,ne,s,se,ne,ne,ne,ne,ne,ne,ne,s,ne,ne,n,ne,ne,ne,ne,ne,ne,ne,ne,sw,ne,n,ne,n,ne,ne,sw,n,ne,ne,ne,s,ne,ne,ne,ne,ne,ne,ne,n,ne,ne,n,sw,s,ne,n,ne,ne,nw,ne,ne,se,n,n,ne,n,ne,ne,ne,ne,n,nw,ne,ne,ne,ne,ne,n,ne,n,n,ne,sw,n,ne,ne,ne,n,n,n,sw,n,n,se,ne,n,ne,n,sw,n,n,ne,n,ne,n,n,n,ne,ne,nw,nw,ne,nw,s,se,n,n,n,n,n,ne,n,nw,n,n,sw,sw,se,se,ne,n,se,nw,sw,ne,n,nw,ne,n,n,n,se,se,ne,s,n,nw,n,se,n,ne,ne,se,ne,n,n,sw,ne,ne,n,n,n,n,n,se,sw,n,n,n,n,n,nw,n,n,n,n,s,n,sw,n,n,n,n,n,nw,sw,n,n,n,n,n,n,ne,n,ne,s,n,n,n,n,n,n,se,n,n,n,se,n,n,n,se,s,n,n,n,nw,n,n,n,n,n,nw,sw,n,n,n,n,n,n,nw,n,n,nw,n,nw,n,n,nw,se,n,sw,n,nw,nw,s,se,nw,nw,nw,nw,nw,sw,se,nw,n,nw,n,nw,n,nw,nw,n,nw,n,s,nw,s,n,nw,n,n,nw,n,n,nw,n,sw,n,nw,nw,n,nw,n,n,n,nw,n,nw,s,n,nw,n,sw,nw,n,nw,se,ne,nw,n,nw,n,nw,se,n,n,nw,se,nw,nw,n,s,n,n,nw,nw,sw,nw,nw,ne,nw,nw,n,nw,nw,nw,nw,nw,nw,n,n,nw,nw,nw,nw,ne,sw,nw,n,s,nw,nw,n,n,sw,nw,n,nw,s,s,n,n,nw,nw,nw,s,nw,nw,nw,s,nw,nw,nw,n,nw,n,nw,nw,nw,nw,nw,nw,ne,nw,se,nw,se,nw,nw,n,nw,nw,ne,nw,nw,se,sw,sw,s,nw,nw,nw,nw,nw,nw,nw,nw,nw,sw,nw,nw,nw,sw,nw,nw,s,nw,nw,nw,nw,ne,nw,nw,ne,s,nw,nw,nw,sw,nw,n,ne,nw,nw,sw,nw,nw,ne,nw,sw,sw,nw,nw,ne,sw,se,nw,nw,nw,n,nw,nw,sw,nw,s,sw,sw,nw,nw,nw,nw,nw,n,nw,nw,ne,sw,sw,nw,sw,nw,se,sw,nw,nw,nw,nw,nw,sw,nw,sw,nw,nw,sw,sw,nw,nw,nw,sw,nw,sw,sw,sw,ne,nw,nw,n,nw,sw,n,nw,ne,nw,s,nw,nw,sw,nw,n,nw,sw,nw,nw,sw,n,nw,sw,ne,sw,s,sw,sw,sw,sw,sw,nw,nw,nw,nw,se,sw,nw,sw,nw,sw,nw,nw,nw,sw,ne,nw,nw,nw,sw,nw,nw,ne,se,sw,nw,nw,nw,sw,sw,sw,nw,sw,sw,nw,sw,nw,sw,nw,nw,nw,nw,nw,s,sw,nw,nw,se,n,se,se,sw,nw,nw,nw,sw,nw,ne,nw,nw,sw,sw,n,nw,s,sw,sw,s,nw,sw,sw,nw,nw,sw,sw,nw,nw,nw,sw,ne,sw,se,ne,sw,nw,nw,sw,ne,sw,sw,sw,sw,se,sw,sw,sw,nw,sw,sw,nw,nw,sw,sw,sw,sw,se,sw,nw,sw,sw,n,sw,sw,nw,sw,sw,se,se,sw,sw,sw,sw,sw,sw,sw,sw,se,sw,sw,sw,s,sw,sw,se,sw,sw,sw,sw,sw,sw,sw,nw,sw,sw,sw,sw,sw,se,sw,sw,n,nw,sw,sw,sw,sw,s,sw,sw,sw,se,se,n,ne,sw,sw,sw,sw,sw,se,sw,sw,sw,sw,sw,ne,ne,s,sw,sw,n,nw,sw,se,sw,sw,sw,sw,sw,sw,sw,sw,sw,nw,sw,n,sw,nw,sw,s,sw,sw,sw,sw,sw,s,sw,sw,sw,sw,sw,sw,sw,sw,sw,s,sw,sw,nw,s,s,se,sw,sw,sw,sw,n,n,sw,s,s,sw,se,s,sw,sw,sw,n,n,sw,sw,nw,ne,nw,nw,s,sw,s,s,sw,sw,sw,se,sw,s,sw,sw,sw,s,sw,s,ne,sw,sw,s,sw,sw,sw,sw,ne,s,s,s,n,s,se,sw,sw,s,sw,sw,s,s,sw,nw,sw,sw,se,ne,s,s,sw,sw,ne,sw,sw,se,sw,s,sw,sw,sw,sw,s,n,sw,ne,sw,sw,s,sw,sw,sw,sw,se,s,s,sw,s,s,sw,sw,n,s,sw,s,sw,ne,s,sw,sw,s,sw,sw,s,s,sw,sw,sw,s,sw,se,s,s,sw,s,s,se,sw,s,s,sw,s,sw,sw,sw,s,s,s,s,ne,s,sw,sw,nw,n,sw,sw,sw,s,sw,sw,sw,n,s,se,s,sw,s,s,sw,ne,sw,s,s,nw,sw,s,n,nw,sw,sw,s,sw,s,sw,s,s,s,s,s,sw,sw,s,s,sw,sw,se,s,sw,se,sw,s,se,n,s,se,s,s,sw,s,sw,s,ne,sw,s,ne,s,sw,sw,s,sw,s,s,s,sw,ne,s,se,s,nw,s,s,sw,s,s,ne,sw,s,s,sw,sw,s,se,s,sw,sw,sw,sw,s,s,sw,nw,n,n,n,sw,s,sw,se,s,s,s,s,sw,ne,sw,s,sw,nw,s,s,sw,s,s,s,nw,s,sw,s,s,s,s,s,s,s,s,s,s,se,se,se,s,s,sw,s,s,n,s,ne,s,nw,se,s,s,nw,nw,n,s,s,s,sw,se,s,s,s,s,n,s,s,s,s,s,sw,s,s,s,s,s,s,s,s,ne,s,nw,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,nw,s,s,s,s,s,nw,s,s,s,sw,s,s,s,n,sw,s,s,s,s,s,se,s,s,s,s,s,s,s,s,sw,s,s,s,se,s,n,s,nw,s,s,n,sw,s,se,s,se,s,sw,n,s,s,s,s,s,s,s,s,n,s,s,s,s,s,se,s,nw,se,se,s,s,se,s,se,s,s,s,s,s,s,s,se,s,s,s,n,se,nw,s,se,s,s,s,s,nw,se,s,s,s,se,se,s,s,nw,s,s,n,s,s,se,n,se,s,s,se,s,ne,s,s,s,s,s,s,se,s,s,s,se,s,se,s,s,ne,s,s,s,s,s,s,s,s,se,s,s,se,s,se,s,s,s,s,se,s,se,s,se,n,s,se,se,s,s,s,s,s,s,s,se,ne,s,s,s,se,s,s,se,se,s,se,se,n,ne,s,se,se,s,se,se,se,se,se,ne,s,se,s,se,sw,sw,n,se,s,s,se,se,s,se,nw,s,s,s,se,se,s,s,s,s,se,s,s,se,s,s,se,s,se,se,s,se,s,se,se,nw,s,ne,se,se,s,se,ne,se,ne,se,s,nw,se,se,se,s,se,s,s,s,se,ne,se,se,se,se,s,s,se,se,se,se,s,se,n,nw,s,n,s,se,se,se,se,s,nw,s,s,s,se,n,s,se,nw,s,s,ne,se,se,se,s,s,sw,s,s,s,s,nw,sw,se,se,s,se,nw,s,s,se,s,n,s,s,se,s,ne,s,s,se,se,s,se,se,sw,se,s,s,s,se,se,ne,se,se,s,se,nw,s,se,n,se,se,s,se,se,s,se,ne,nw,s,s,se,se,sw,s,n,s,s,se,s,se,se,s,sw,se,s,ne,s,se,se,s,se,se,s,se,nw,se,s,se,se,s,s,se,s,nw,se,n,n,se,sw,n,n,se,se,s,s,se,se,se,n,se,nw,se,s,se,s,s,se,ne,s,se,se,nw,se,s,sw,nw,s,ne,se,se,nw,se,s,s,se,se,s,ne,s,se,s,se,sw,ne,sw,s,s,s,n,se,se,se,se,se,se,nw,ne,se,se,se,sw,se,s,se,se,nw,se,se,nw,nw,se,se,se,se,se,s,se,nw,nw,se,se,se,se,se,se,se,se,se,se,sw,n,nw,se,se,nw,n,se,se,se,s,se,sw,s,se,se,se,sw,se,nw,n,s,se,n,n,nw,se,se,se,nw,se,se,se,n,se,se,se,ne,se,sw,s,se,se,se,se,se,se,se,se,se,se,n,se,se,se,n,s,s,n,se,se,se,se,se,se,se,se,s,n,se,se,se,se,se,sw,se,se,se,se,n,se,se,se,sw,se,ne,se,se,sw,se,se,se,n,sw,se,sw,se,ne,se,se,se,se,se,se,se,se,ne,se,sw,se,se,se,se,se,se,se,nw,ne,se,se,se,s,se,se,se,se,se,se,s,se,nw,nw,se,nw,se,nw,se,se,se,se,se,se,se,se,se,s,se,s,se,se,se,se,se,se,se,nw,se,sw,se,se,n,se,se,se,s,se,se,se,se,se,se,se,s,ne,se,se,ne,se,se,se,ne,se,se,se,se,se,se,se,se,se,se,sw,se,ne,ne,se,se,se,se,se,se,nw,se,se,se,se,se,nw,se,sw,ne,se,se,se,se,se,se,se,ne,se,se,se,se,ne,s,se,se,se,se,se,se,nw,se,se,ne,se,se,se,se,se,ne,s,se,ne,se,se,se,se,se,se,se,ne,nw,ne,se,se,se,se,se,se,nw,se,se,nw,se,se,n,se,se,ne,se,se,se,se,se,se,se,se,nw,ne,se,se,se,se,ne,se,se,ne,se,ne,se,n,se,se,se,se,s,se,se,se,nw,ne,se,se,se,ne,se,ne,se,n,ne,s,sw,s,se,ne,s,se,s,ne,se,n,se,se,n,se,se,ne,ne,se,se,se,s,ne,se,se,ne,se,se,se,ne,ne,se,se,se,ne,se,se,se,se,ne,ne,ne,se,ne,se,n,ne,se,se,sw,se,se,se,ne,se,s,se,se,se,ne,se,se,se,se,se,n,ne,s,se,se,se,se,s,ne,se,ne,se,se,n,ne,ne,ne,se,se,se,se,ne,se,se,ne,se,s,se,se,s,ne,ne,se,se,se,se,ne,ne,se,ne,se,se,sw,ne,se,ne,ne,se,s,ne,n,ne,se,ne,se,se,se,se,se,se,se,ne,ne,ne,se,ne,se,ne,se,se,se,se,ne,ne,ne,ne,se,ne,ne,se,ne,sw,ne,ne,ne,se,se,nw,ne,se,se,ne,ne,se,n,sw,ne,se,ne,ne,ne,ne,se,nw,nw,se,ne,ne,se,sw,ne,s,ne,se,ne,se,ne,se,se,ne,ne,se,se,sw,n,n,ne,se,se,n,n,ne,se,se,se,n,se,n,se,ne,se,nw,se,ne,s,se,ne,se,se,se,se,se,se,se,se,se,se,ne,ne,sw,ne,se,ne,se,ne,ne,se,n,se,ne,ne,se,se,ne,ne,ne,ne,se,se,ne,nw,se,ne,se,sw,s,se,nw,se,se,se,se,se,ne,ne,nw,se,se,se,se,sw,ne,ne,se,s,se,ne,sw,se,sw,ne,sw,ne,ne,ne,s,se,ne,ne,ne,n,ne,nw,se,ne,ne,se,se,ne,n,n,sw,ne,se,se,ne,sw,s,ne,se,ne,ne,ne,se,sw,ne,se,s,ne,ne,n,ne,ne,se,nw,ne,n,ne,ne,se,ne,ne,nw,s,sw,nw,se,sw,s,ne,ne,s,s,ne,ne,sw,sw,se,ne,ne,ne,ne,se,ne,ne,sw,ne,sw,ne,ne,se,se,s,se,ne,s,ne,ne,ne,ne,ne,ne,ne,s,se,se,sw,nw,n,se,se,ne,ne,ne,ne,sw,ne,ne,ne,se,se,s,nw,nw,n,se,ne,s,ne,ne,ne,ne,n,se,ne,se,ne,ne,ne,se,ne,sw,ne,se,nw,ne,n,sw,ne,sw,ne,s,ne,ne,nw,sw,ne,ne,ne,s,n,se,ne,ne,sw,nw,ne,ne,ne,ne,ne,ne,ne,se,ne,ne,sw,ne,se,ne,n,ne,se,se,sw,s,se,ne,se,ne,ne,se,ne,ne,ne,s,nw,ne,ne,ne,se,ne,se,ne,ne,ne,nw,se,ne,ne,nw,se,ne,ne,nw,se,ne,ne,nw,se,ne,n,ne,ne,ne,ne,s,ne,se,se,se,ne,n,ne,ne,ne,sw,ne,ne,ne,ne,ne,ne,nw,ne,ne,ne,ne,ne,sw,ne,se,se,ne,ne,n,ne,ne,s,ne,ne,ne,ne,ne,nw,ne,sw,s,ne,ne,ne,ne,ne,n,ne,ne,ne,ne,ne,ne,n,ne,ne,ne,ne,ne,ne,nw,se,ne,se,ne,ne,se,se,nw,sw,ne,ne,ne,ne,ne,ne,ne,ne,ne,n,ne,ne,ne,s,n,ne,ne,ne,ne,ne,ne,sw,ne,ne,ne,ne,ne,se,ne,ne,ne,se,ne,nw,ne,ne,ne,nw,ne,ne,ne,ne,n,ne,sw,ne,ne,se,ne,n,ne,ne,ne,ne,se,ne,ne,sw,nw,n,ne,ne,nw,ne,ne,ne,ne,ne,ne,ne,ne,nw,ne,n,sw,ne,ne,ne,n,se,ne,ne,ne,ne,ne,ne,se,ne,n,ne,se,ne,n,n,ne,ne,ne,ne,ne,se,ne,ne,ne,nw,sw,ne,ne,ne,ne,ne,ne,ne,ne,ne,ne,ne,ne,ne,se,n,s,ne,ne,sw,ne,ne,ne,se,ne,ne,ne,se,ne,se,s,ne,ne,ne,ne,n,n,nw,ne,ne,ne,ne,ne,ne,ne,ne,sw,ne,ne,s,n,ne,n,ne,ne,ne,ne,ne,ne,n,ne,ne,ne,sw,n,ne,n,ne,ne,sw,ne,ne,ne,n,ne,ne,n,ne,ne,ne,ne,ne,s,ne,n,ne,ne,ne,ne,n,n,ne,ne,ne,ne,ne,n,se,ne,n,n,ne,s,ne,ne,ne,ne,ne,ne,ne,s,ne,nw,s,ne,n,ne,n,n,n,ne,ne,ne,ne,n,ne,ne,n,ne,ne,n,ne,ne,n,ne,n,n,ne,ne,n,se,se,ne,n,ne,n,s,n,ne,nw,ne,ne,ne,ne,ne,ne,ne,ne,s,ne,n,n,n,ne,ne,ne,ne,ne,n,n,ne,n,ne,n,n,n,ne,ne,ne,ne,ne,ne,s,n,n,sw,n,n,ne,ne,ne,ne,n,ne,ne,n,ne,n,ne,ne,n,nw,ne,n,ne,ne,n,ne,ne,ne,n,n,ne,ne,ne,ne,n,ne,ne,nw,n,n,ne,ne,n,sw,n,ne,sw,s,ne,se,ne,nw,ne,n,ne,n,ne,ne,n,ne,n,ne,ne,ne,ne,ne,ne,nw,ne,nw,n,sw,n,ne,s,nw,se,ne,ne,sw,ne,sw,ne,ne,sw,ne,ne,ne,ne,n,n,ne,ne,n,ne,ne,n,sw,ne,n,ne,ne,n,n,s,sw,nw,n,ne,n,se,n,ne,ne,n,s,sw,n,ne,s,n,ne,ne,ne,se,se,ne,n,ne,n,ne,ne,ne,n,se,n,ne,ne,ne,ne,s,ne,n,n,n,n,ne,n,ne,n,ne,se,ne,sw,ne,s,n,ne,n,n,n,n,sw,n,sw,ne,n,ne,sw,ne,ne,se,ne,ne,ne,ne,n,s,n,se,ne,ne,n,n,sw,ne,ne,ne,n,ne,se,n,ne,ne,ne,ne,ne,sw,ne,ne,n,nw,ne,n,ne,n,n,n,n,ne,n,n,n,ne,ne,n,ne,ne,n,n,ne,n,ne,sw,n,ne,n,n,n,ne,ne,ne,ne,n,n,ne,ne,n,ne,se,n,n,ne,sw,n,n,ne,s,se,n,nw,sw,n,ne,ne,n,nw,ne,se,n,ne,ne,nw,ne,n,ne,ne,ne,n,n,n,s,ne,n,n,s,n,se,n,n,n,sw,ne,sw,n,n,n,ne,n,ne,n,n,nw,n,n,se,ne,n,n,n,n,n,n,ne,n,ne,n,n,n,ne,ne,n,n,ne,ne,n,s,n,n,n,n,n,ne,n,ne,sw,n,n,n,n,ne,n,ne,ne,ne,ne,n,s,n,ne,n,n,ne,s,n,ne,sw,n,ne,ne,n,ne,ne,sw,n,s,n,ne,n,ne,ne,n,ne,ne,sw,ne,ne,ne,nw,n,n,s,n,n,nw,n,sw,n,n,n,ne,sw,ne,ne,n,n,n,sw,n,n,n,sw,ne,s,s,n,ne,ne,n,n,se,n,ne,nw,s,ne,ne,n,n,n,n,n,n,n,sw,se,n,ne,n,ne,n,ne,nw,ne,n,n,n,n,n,s,n,n,n,ne,ne,n,sw,ne,nw,ne,n,n,n,sw,s,ne,ne,ne,ne,s,n,n,n,n,n,nw,ne,sw,n,ne,ne,ne,n,n,ne,sw,n,ne,n,n,sw,n,ne,n,se,n,n,n,ne,n,sw,n,n,n,n,n,n,n,ne,nw,n,s,n,se,ne,se,n,n,n,n,sw,n,n,n,ne,n,ne,ne,n,se,ne,n,ne,n,n,n,s,n,n,ne,n,ne,n,n,n,se,ne,ne,ne,ne,n,ne,ne,n,se,ne,s,n,ne,n,n,n,n,s,ne,n,se,ne,n,n,n,ne,n,n,n,n,n,n,n,n,n,n,n,n,n,n,ne,n,n,ne,ne,n,s,s,ne,n,n,ne,ne,ne,sw,sw,ne,n,nw,ne,n,n,ne,n,n,n,se,n,n,n,n,ne,n,n,n,se,n,nw,n,ne,n,sw,n,ne,ne,s,n,s,nw,ne,n,ne,sw,n,n,se,nw,n,se,n,se,n,ne,n,s,n,ne,n,ne,se,n,n,n,n,n,n,nw,ne,n,ne,n,n,n,ne,se,ne,ne,n,n,n,n,se,n,n,n,ne,n,ne,n,sw,n,n,n,n,sw,n,n,se,n,n,sw,n,n,n,se,n,n,n,ne,s,n,ne,ne,n,sw,n,n,n,n,n,ne,n,ne,n,n,n,n,ne,s,n,n,ne,sw,n,ne,n,s,n,ne,nw,s,ne,s,ne,sw,n,n,ne,n,ne,n,n,n,n,n,n,n,n,n,sw,n,s,n,n,n,sw,n,n,n,sw,n,n,ne,n,n,ne,n,n,se,n,n,n,n,n,n,n,se,nw,n,n,n,se,n,n,ne,nw,n,ne,n,n,n,n,n,n,n,ne,sw,n,n,ne,n,n,n,n,n,n,n,n,s,s,ne,n,n,n,ne,n,ne,n,ne,ne,n,sw,n,s,n,sw,sw,sw,n,nw,n,n,n,ne,n,n,n,n,nw,nw,n,ne,n,n,n,n,n,n,n,n,n,s,n,n,n,s,n,ne,n,ne,n,nw,n,n,nw,n,ne,sw,n,n,n,n,n,n,n,nw,n,n,se,n,n,se,n,n,n,n,n,nw,n,s,n,n,n,n,n,nw,n,n,s,n,n,n,n,ne,n,nw,n,n,n,n,n,n,nw,n,n,n,n,n,nw,n,n,n,n,n,sw,nw,n,n,n,n,n,nw,s,n,n,n,sw,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,se,nw,n,n,n,nw,n,n,n,ne,n,n,n,se,n,n,n,n,se,n,n,nw,nw,n,n,sw,n,nw,n,n,n,n,n,nw,n,n,n,n,nw,n,n,sw,ne,se,nw,n,s,n,n,sw,n,sw,n,n,n,nw,n,n,n,s,n,n,n,n,n,n,sw,n,nw,sw,sw,n,s,n,n,n,n,n,s,n,n,n,n,n,nw,n,sw,nw,se,n,n,n,n,ne,se,n,n,nw,n,n,n,n,n,n,se,n,n,n,s,n,se,nw,n,nw,n,nw,n,nw,n,n,n,n,ne,n,s,n,s,n,n,ne,n,n,sw,n,n,n,n,n,n,ne,nw,n,n,n,n,nw,ne,n,n,n,n,n,n,n,n,n,sw,sw,n,n,n,nw,sw,n,n,n,n,n,n,n,n,n,n,n,n,se,n,n,n,n,se,n,n,ne,n,n,ne,nw,n,n,n,nw,n,n,n,n,nw,nw,n,n,n,nw,nw,n,n,s,n,n,nw,nw,n,n,nw,n,n,nw,n,nw,se,n,nw,n,s,n,n,ne,n,sw,se,n,n,n,nw,n,n,n,ne,n,s,nw,n,ne,ne,n,n,s,n,n,s,n,n,n,nw,sw,n,nw,n,s,nw,nw,nw,nw,ne,n,n,n,n,n,n,n,nw,nw,n,n,s,n,n,nw,n,n,n,nw,n,n,se,nw,n,s,nw,n,nw,n,n,ne,n,n,n,n,n,n,n,n,n,nw,nw,se,n,n,ne,nw,n,n,n,n,n,n,nw,n,nw,n,se,n,n,n,n,s,ne,ne,nw,n,n,n,n,nw,n,nw,n,n,s,n,nw,nw,n,ne,n,n,ne,nw,sw,nw,n,s,n,nw,n,n,n,sw,n,n,n,n,s,n,n,nw,ne,n,nw,se,nw,n,s,n,n,sw,n,n,n,n,sw,nw,nw,n,n,n,n,n,n,n,n,nw,n,nw,n,n,se,ne,nw,se,n,sw,n,nw,sw,n,s,sw,nw,nw,n,n,nw,n,n,nw,n,n,n,n,n,n,se,nw,n,n,nw,nw,s,n,se,n,n,nw,n,nw,nw,nw,se,nw,n,n,n,ne,nw,n,sw,n,n,n,nw,nw,nw,ne,nw,nw,n,n,n,nw,ne,n,nw,nw,n,nw,se,n,n,nw,nw,n,n,n,nw,n,n,n,n,se,n,n,n,n,n,n,nw,nw,nw,n,n,n,sw,n,n,n,s,n,n,s,s,nw,nw,n,se,se,n,nw,n,n,nw,sw,s,n,nw,nw,n,sw,n,n,ne,n,sw,nw,n,n,s,nw,nw,n,s,nw,s,n,nw,nw,n,sw,nw,nw,n,n,n,nw,n,n,n,nw,n,n,n,n,n,nw,nw,s,nw,nw,n,n,se,n,n,nw,n,n,n,se,n,n,n,n,nw,ne,n,n,ne,n,n,n,n,n,nw,n,nw,se,n,nw,n,nw,n,nw,se,n,n,se,nw,n,n,n,nw,sw,n,s,n,nw,n,n,n,n,n,n,n,s,s,n,nw,se,nw,se,nw,se,n,nw,nw,n,sw,n,n,nw,sw,ne,n,nw,nw,s,s,n,n,sw,nw,se,nw,nw,sw,n,se,nw,ne,sw,nw,nw,sw,nw,n,n,n,n,n,n,nw,n,n,n,n,nw,nw,n,n,sw,n,nw,nw,n,se,se,nw,nw,n,n,n,se,nw,nw,n,nw,nw,nw,ne,n,nw,nw,n,s,se,n,n,nw,nw,n,nw,nw,n,n,nw,nw,nw,sw,se,n,n,n,s,n,nw,nw,sw,n,nw,n,n,n,s,ne,nw,nw,s,n,n,nw,n,n,s,se,n,n,n,nw,n,nw,nw,nw,nw,nw,nw,n,nw,n,sw,nw,ne,nw,nw,n,s,nw,n,nw,nw,ne,nw,ne,nw,n,nw,nw,sw,n,nw,nw,s,s,ne,sw,n,se,nw,n,nw,nw,sw,nw,n,n,n,nw,n,nw,nw,n,nw,n,s,n,s,n,n,n,n,nw,nw,n,ne,n,se,nw,nw,nw,nw,n,nw,n,nw,nw,n,n,n,se,nw,s,nw,ne,n,n,n,nw,nw,nw,nw,ne,n,n,nw,nw,ne,n,nw,nw,nw,se,nw,nw,se,nw,n,n,nw,nw,s,n,se,nw,n,n,n,nw,n,nw,nw,nw,nw,n,nw,se,se,ne,nw,n,nw,n,se,sw,n,nw,nw,nw,nw,nw,nw,nw,n,nw,se,nw,nw,nw,se,n,nw,n,nw,s,nw,nw,se,nw,ne,nw,nw,n,nw,n,nw,n,nw,se,nw,sw,nw,nw,n,nw,n,n,ne,nw,sw,nw,ne,n,nw,nw,se,nw,nw,ne,s,n,n,nw,se,nw,nw,se,n,sw,nw,nw,ne,n,nw,s,n,se,n,nw,nw,nw,nw,n,nw,s,ne,nw,nw,sw,nw,nw,s,nw,s,nw,n,n,nw,n,s,nw,nw,nw,nw,nw,n,nw,n,nw,n,nw,nw,sw,nw,nw,se,n,n,nw,nw,nw,nw,nw,s,n,n,n,n,s,n,n,nw,nw,sw,n,nw,s,sw,nw,n,nw,se,s,nw,nw,nw,s,nw,nw,se,nw,nw,n,nw,nw,n,s,nw,n,nw,nw,nw,nw,nw,sw,nw,sw,n,n,nw,n,nw,nw,nw,nw,n,n,nw,nw,n,s,nw,n,nw,nw,nw,nw,sw,nw,nw,n,ne,se,nw,n,nw,n,n,n,s,nw,n,nw,nw,nw,nw,ne,nw,n,nw,n,nw,nw,nw,n,nw,nw,nw,nw,se,nw,n,n,nw,nw,se,nw,nw,nw,n,nw,nw,s,n,nw,s,ne,nw,ne,n,n,s,n,n,nw,nw,nw,nw,nw,nw,n,n,nw,nw,nw,s,nw,ne,nw,n,n,nw,nw,nw,nw,n,se,nw,nw,n,n,n,nw,nw,nw,nw,nw,nw,n,sw,nw,nw,nw,nw,nw,n,n,nw,nw,n,n,se,nw,nw,nw,nw,nw,s,n,sw,se,nw,ne,nw,n,nw,se,s,nw,n,nw,se,sw,nw,n,se,n,nw,nw,sw,nw,se,nw,nw,nw,nw,n,nw,sw,nw,nw,nw,nw,n,n,nw,nw,nw,se,se,sw,nw,n,n,n,sw,se,ne,nw,nw,sw,nw,n,se,nw,nw,nw,nw,se,sw,nw,nw,nw,nw,n,nw,n,n,n,s,nw,nw,nw,nw,n,ne,nw,n,sw,se,sw,n,nw,nw,nw,nw,sw,nw,nw,nw,ne,nw,nw,n,sw,nw,nw,nw,sw,n,nw,nw,n,nw,n,nw,n,nw,nw,sw,sw,nw,nw,sw,se,s,nw,nw,nw,s,se,nw,nw,nw,n,nw,nw,nw,nw,sw,nw,sw,nw,nw,nw,nw,nw,nw,nw,nw,nw,nw,nw,nw,nw,n,nw,nw,nw,nw,nw,nw,nw,nw,n,nw,sw,nw,sw,n,n,n,s,nw,nw,nw,nw,nw,nw,nw,nw,nw,nw,nw,nw,nw,s,nw,nw,nw,nw,nw,nw,n,nw,ne,nw,n,nw,n,nw,nw,nw,nw,nw,nw,nw,nw,nw,n,nw,nw,nw,sw,nw,se,nw,nw,nw,nw,nw,nw,s,nw,se,nw,nw,nw,sw,nw,ne,nw,nw,nw,nw,nw,nw,nw,nw,nw,nw,nw,nw,nw,nw,nw,sw,nw,nw,nw,nw,nw,nw,n,nw,nw,nw,nw,nw,sw,nw,s,nw,nw,nw,nw,nw,ne,nw,nw,n,nw,nw,nw,n,nw,nw,nw,nw,n,se,nw,nw,s,nw,sw,nw,nw,n,n,nw,nw,n,nw,nw,sw,nw,nw,nw,se,nw,nw,nw,se,nw,nw,sw,nw,nw,nw,sw,nw,nw,nw,n,n,nw,nw,nw,nw,nw,n,nw,nw,nw,nw,nw,nw,nw,nw,nw,nw,sw,se,nw,nw,nw,s,s,nw,nw,nw,nw,ne,nw,nw,nw,n,nw,ne,nw,se,se,se,s,s,s,s,s,s,s,sw,s,s,s,sw,n,sw,sw,sw,se,sw,n,sw,sw,sw,nw,sw,sw,nw,nw,n,nw,nw,sw,nw,nw,nw,nw,nw,n,nw,nw,n,nw,n,n,nw,sw,s,nw,ne,n,n,n,n,n,n,n,ne,n,n,n,n,n,n,ne,n,n,ne,ne,ne,n,ne,n,n,ne,ne,n,n,ne,n,s,ne,n,ne,ne,n,ne,ne,ne,ne,s,sw,ne,ne,n,sw,ne,ne,se,se,ne,ne,se,nw,ne,ne,ne,ne,ne,se,ne,se,ne,s,n,se,ne,se,sw,ne,ne,ne,s,se,se,se,se,se,se,se,se,se,se,se,se,sw,se,ne,ne,ne,se,se,se,sw,ne,se,se,se,se,se,sw,ne,se,se,n,se,se,n,se,n,sw,se,s,s,se,sw,se,nw,s,s,se,se,se,s,ne,s,s,se,se,se,s,s,s,n,se,se,s,nw,se,n,se,se,s,s,se,s,s,s,s,s,se,s,se,se,s,s,s,s,s,s,s,se,s,s,s,sw,s,s,sw,s,sw,s,n,se,s,nw,s,s,s,s,s,s,s,nw,nw,s,s,s,nw,s,s,sw,s,s,ne,sw,s,s,s,sw,s,s,s,s,s,s,s,s,sw,n,sw,s,sw,s,n,s,se,s,s,s,s,sw,n,se,s,s,sw,sw,s,nw,sw,sw,sw,s,sw,sw,s,sw,ne,sw,s,sw,sw,nw,sw,s,sw,sw,sw,s,nw,sw,sw,s,sw,s,s,sw,sw,s,sw,sw,se,n,s,sw,sw,sw,nw,sw,sw,sw,sw,sw,se,ne,sw,se,n,sw,sw,sw,se,nw,sw,se,sw,sw,sw,sw,nw,sw,nw,nw,sw,nw,sw,sw,nw,nw,n,sw,nw,sw,s,sw,sw,sw,sw,s,sw,sw,sw,sw,nw,sw,sw,nw,ne,sw,sw,sw,n,sw,sw,se,s,sw,sw,sw,sw,nw,sw,sw,nw,sw,sw,nw,nw,nw,se,sw,nw,nw,n,sw,nw,s,nw,nw,sw,sw,sw,sw,sw,s,nw,n,se,sw,sw,sw,nw,sw,nw,nw,nw,nw,sw,ne,sw,nw,nw,nw,n,sw,sw,nw,sw,nw,nw,nw,se,nw,ne,nw,nw,nw,nw,nw,nw,nw,nw,n,s,nw,nw,nw,nw,nw,nw,nw,nw,sw,nw,nw,sw,nw,nw,nw,nw,nw,se,s,nw,ne,nw,nw,nw,n,nw,n,nw,nw,nw,n,nw,nw,n,se,nw,se,nw,nw,s,nw,nw,nw,nw,s,nw,nw,n,s,sw,s,nw,nw,nw,nw,n,nw,ne,sw,nw,nw,n,nw,nw,n,n,nw,nw,s,nw,nw,nw,s,n,nw,nw,nw,se,sw,nw,nw,n,nw,nw,nw,n,ne,nw,n,nw,nw,s,n,nw,n,nw,nw,n,nw,n,ne,se,nw,n,nw,nw,n,ne,nw,s,n,nw,n,s,n,nw,s,nw,nw,nw,nw,nw,nw,n,n,nw,nw,nw,ne,n,se,nw,n,n,n,n,nw,se,nw,n,nw,nw,n,nw,sw,n,n,n,ne,s,sw,n,nw,n,s,nw,sw,nw,nw,n,nw,n,nw,n,nw,se,n,nw,n,n,n,n,n,nw,n,s,sw,n,n,n,s,n,ne,n,nw,n,se,n,n,n,s,n,nw,n,n,n,n,n,n,se,nw,nw,n,nw,n,n,n,n,n,ne,n,n,n,nw,nw,nw,n,s,n,n,n,nw,n,nw,n,n,n,n,nw,nw,n,n,se,nw,n,n,n,se,n,s,nw,n,n,n,n,sw,ne,nw,n,n,n,n,n,n,n,n,n,n,s,n,n,se,n,sw,se,n,n,se,n,n,n,se,n,n,n,n,n,se,n,nw,n,ne,sw,s,n,n,n,n,n,n,n,n,n,n,s,n,n,ne,n,n,n,se,ne,ne,n,n,nw,n,n,n,ne,ne,n,n,n,n,ne,n,se,n,ne,n,n,s,n,n,ne,ne,n,ne,n,ne,s,n,ne,ne,n,n,sw,n,s,ne,sw,n,ne,ne,se,ne,ne,n,n,ne,s,n,n,n,s,n,n,nw,n,n,ne,n,n,n,n,ne,se,ne,ne,n,n,n,ne,ne,ne,n,n,n,nw,ne,n,n,n,n,n,ne,n,ne,n,ne,n,ne,ne,n,n,ne,n,ne,n,ne,sw,nw,ne,ne,n,ne,n,n,n,n,ne,ne,ne,ne,ne,n,n,ne,sw,ne,sw,ne,ne,ne,ne,ne,sw,n,n,ne,ne,sw,sw,ne,ne,ne,ne,n,sw,ne,ne,ne,ne,se,ne,n,n,ne,n,sw,sw,n,ne,ne,ne,ne,ne,ne,ne,s,ne,s,ne,ne,ne,ne,s,n,n,ne,ne,ne,ne,ne,ne,se,s,n,ne,nw,s,n,s,ne,s,n,nw,ne,ne,ne,se,ne,ne,se,ne,ne,n,ne,n,s,ne,ne,ne,ne,ne,ne,ne,s,ne,ne,s,ne,ne,ne,ne,sw,sw,se,sw,ne,ne,sw,se,ne,s,ne,ne,ne,ne,ne,ne,ne,s,s,s,se,ne,ne,n,ne,ne,ne,n,sw,ne,nw,nw,ne,ne,ne,sw,sw,ne,ne,ne,ne,ne,ne,ne,ne,ne,ne,ne,ne,ne,ne,ne,ne,n,s,n,ne,n,s,n,ne,ne,ne,ne,se,se,ne,se,ne,ne,ne,ne,sw,ne,ne,n,ne,se,ne,ne,ne,nw,ne,ne,ne,ne,ne,nw,ne,se,se,ne,ne,ne,ne,ne,se,ne,ne,se,ne,ne,ne,s,ne,se,ne,n,ne,ne,nw,nw,se,ne,s,se,ne,ne,ne,ne,sw,nw,se,ne,ne,ne,ne,se,se,ne,ne,ne,ne,ne,ne,ne,se,ne,n,se,ne,s,ne,se,se,ne,se,ne,ne,ne,se,nw,s,se,ne,ne,nw,se,ne,ne,ne,nw,ne,se,sw,ne,se,ne,n,se,se,nw,se,ne,ne,se,ne,se,se,se,sw,se,se,ne,n,ne,s,ne,ne,ne,ne,nw,n,sw,ne,s,ne,ne,se,s,ne,se,se,ne,ne,se,ne,n,ne,se,se,se,se,se,ne,ne,ne,se,ne,se,ne,se,se,se,se,se,ne,ne,s,ne,ne,se,se,se,se,nw,se,ne,ne,ne,ne,se,s,ne,ne,ne,nw,nw,se,ne,s,ne,se,se,ne,se,se,se,ne,se,se,se,se,ne,ne,se,ne,n,sw,se,se,ne,se,se,sw,se,s,nw,se,ne,ne,s,n,se,s,se,ne,se,se,n,se,se,ne,se,se,se,se,ne,nw,ne,nw,se,se,se,n,ne,se,se,se,se,se,n,se,se,sw,se,ne,se,nw,se,s,sw,se,se,s,ne,ne,se,se,se,se,ne,se,ne,se,ne,ne,se,se,se,se,sw,se,ne,ne,ne,se,se,ne,se,se,se,se,se,se,nw,nw,se,se,n,n,nw,ne,se,se,se,se,sw,se,se,se,se,se,se,n,se,se,se,se,se,se,se,se,s,se,se,se,ne,se,se,se,sw,se,se,se,se,se,s,se,se,se,s,s,se,se,se,se,nw,sw,n,se,se,se,se,se,se,se,se,se,se,ne,se,se,nw,se,se,s,se,se,se,se,sw,se,n,se,se,se,s,se,se,se,se,se,s,n,ne,sw,se,s,se,s,se,se,se,n,se,sw,n,se,se,se,n,se,nw,se,se,s,se,se,se,se,se,se,se,n,se,se,nw,se,se,se,se,sw,se,se,sw,se,nw,se,se,sw,se,se,se,sw,nw,se,se,sw,se,se,se,se,se,se,nw,se,se,ne,se,se,s,se,s,se,se,se,se,se,sw,s,se,se,se,s,se,se,s,se,s,se,ne,se,nw,s,s,se,s,se,se,se,s,se,se,s,se,s,se,se,se,ne,se,se,se,se,se,se,nw,s,se,ne,s,se,n,se,se,ne,se,se,se,se,nw,s,nw,n,ne,s,se,se,n,s,s,se,se,s,sw,se,se,sw,n,se,se,se,se,se,se,s,s,s,se,s,n,se,se,se,se,sw,n,se,se,s,nw,se,s,se,s,se,se,se,se,se,se,se,s,ne,s,se,ne,ne,n,se,n,s,se,se,se,ne,se,n,se,s,se,se,s,sw,s,se,s,s,s,n,s,se,se,n,ne,s,se,n,se,s,se,s,n,sw,nw,n,se,ne,se,se,s,s,s,se,s,ne,se,s,se,s,se,se,se,s,s,n,ne,se,s,s,s,se,ne,s,se,se,se,se,n,n,se,n,sw,se,se,nw,s,s,se,s,se,ne,s,ne,se,se,se,s,s,se,s,s,se,s,s,s,s,s,s,se,ne,s,se,s,s,se,ne,s,se,se,s,se,se,s,s,s,se,s,nw,sw,se,s,se,se,nw,s,s,s,se,s,s,s,s,s,s,nw,s,se,se,s,s,n,s,se,s,se,se,se,s,s,s,se,n,se,se,se,se,se,s,ne,n,ne,s,se,se,s,se,s,se,s,n,s,s,n,s,s,nw,n,s,s,ne,ne,ne,s,s,s,se,s,sw,s,s,se,s,se,se,se,s,ne,s,se,se,se,s,s,s,se,s,se,s,sw,s,s,s,n,s,s,s,se,s,s,s,s,s,se,n,s,se,se,s,s,ne,s,se,s,s,s,n,se,nw,nw,s,s,n,s,ne,s,s,nw,s,s,s,s,s,s,s,se,s,s,s,n,s,s,s,s,se,se,s,s,nw,s,ne,s,sw,s,s,s,n,s,nw,sw,s,s,s,s,s,sw,s,s,s,ne,s,se,s,s,s,s,s,s,s,s,s,nw,s,s,s,se,s,s,s,s,s,se,nw,se,nw,s,n,s,s,s,s,s,s,sw,s,s,s,s,s,s,s,n,s,s,ne,n,s,s,s,s,nw,ne,s,s,s,s,s,s,nw,s,s,ne,s,ne,s,s,s,se,s,s,s,s,s,s,s,s,s,s,s,n,nw,s,s,s,s,s,sw,s,nw,s,s,sw,s,s,s,s,s,se,s,s,s,s,s,s,s,sw,s,s,s,se,s,s,nw,s,s,s,s,s,n,s,nw,s,s,sw,n,s,n,s,s,s,s,sw,nw,se,s,s,s,nw,s,s,sw,s,s,s,s,n,s,sw,s,se,s,sw,s,s,s,sw,s,sw,s,s,s,s,s,s,sw,ne,s,s,s,n,sw,s,s,s,s,s,s,s,s,s,s,s,s,s,sw,s,s,s,s,s,sw,s,s,sw,s,s,ne,se,se,sw,n,s,s,s,s,s,s,s,s,nw,s,ne,sw,se,s,s,sw,s,s,nw,se,s,s,sw,ne,s,sw,s,se,s,s,nw,se,sw,s,s,s,s,sw,sw,se,sw,sw,sw,s,s,s,sw,s,ne,se,se,ne,s,s,s,sw,s,s,sw,sw,s,sw,s,sw,s,s,s,s,sw,s,nw,s,sw,s,s,s,s,s,sw,n,s,se,s,sw,sw,sw,s,sw,s,sw,s,s,nw,n,sw,s,s,s,s,sw,s,s,s,s,sw,s,s,sw,n,s,s,nw,sw,ne,nw,s,s,s,sw,s,n,nw,sw,s,s,s,sw,s,sw,s,s,s,sw,s,s,s,sw,s,ne,sw,ne,s,sw,s,s,s,s,s,ne,sw,se,s,sw,sw,sw,s,sw,s,s,s,s,se,s,sw,s,sw,sw,s,sw,sw,sw,s,s,s,s,n,se,s,sw,s,s,sw,s,s,s,sw,sw,sw,s,sw,s,sw,ne,ne,s,s,s,sw,s,nw,nw,se,sw,s,s,s,s,sw,s,s,sw,se,s,ne,s,n,s,sw,sw,s,sw,ne,se,sw,s,s,s,ne,sw,s,sw,s,sw,s,n,sw,sw,s,sw,sw,s,nw,ne,s,nw,sw,s,sw,sw,s,s,n,sw,sw,s,s,s,n,sw,s,s,nw,s,sw,sw,s,sw,sw,se,s,s,s,s,s,s,s,sw,nw,sw,sw,se,s,s,se,sw,s,sw,se,nw,nw,s,nw,s,sw,ne,s,s,ne,s,sw,s,s,s,sw,sw,s,se,sw,n,sw,s,sw,sw,s,sw,sw,sw,s,s,s,se,sw,s,s,s,s,s,sw,sw,s,sw,se,sw,s,sw,sw,se,sw,sw,s,sw,sw,s,s,s,s,s,s,s,s,sw,sw,sw,sw,ne,ne,ne,ne,s,nw,se,s,s,sw,s,s,s,s,s,sw,sw,sw,s,s,sw,s,s,s,sw,sw,s,s,sw,sw,sw,sw,s,sw,sw,sw,s,sw,sw,sw,ne,sw,ne,s,sw,sw,ne,sw,se,sw,sw,sw,s,s,s,sw,se,s,sw,sw,sw,nw,s,sw,se,sw,sw,s,se,sw,se,sw,s,sw,sw,sw,s,sw,sw,sw,s,se,sw,s,s,sw,sw,s,s,sw,sw,sw,s,sw,sw,s,s,s,sw,sw,sw,s,sw,s,ne,se,sw,s,sw,sw,s,sw,sw,sw,se,sw,sw,sw,sw,n,s,sw,sw,se,ne,sw,sw,sw,s,sw,sw,sw,sw,sw,n,sw,s,s,se,sw,sw,sw,sw,s,sw,sw,s,sw,s,s,s,sw,sw,nw,s,sw,sw,sw,sw,sw,n,sw,sw,sw,sw,s,sw,sw,sw,sw,ne,sw,sw,sw,s,ne,sw,sw,s,sw,sw,sw,ne,s,ne,sw,se,s,sw,sw,s,s,sw,sw,se,sw,nw,sw,sw,sw,sw,sw,n,sw,se,nw,sw,sw,sw,sw,sw,n,sw,sw,sw,s,sw,sw,sw,sw,sw,se,sw,sw,sw,sw,se,sw,sw,sw,sw,sw,s,se,sw,sw,sw,ne,sw,sw,se,sw,s,sw,sw,ne,sw,sw,sw,sw,ne,ne,sw,ne,sw,sw,sw,s,sw,sw,sw,s,s,sw,sw,sw,sw,sw,sw,sw,sw,sw,sw,sw,sw,sw,sw,sw,se,sw,sw,nw,sw,sw,sw,nw,nw,sw,sw,sw,sw,n,sw,ne,se,s,sw,sw,sw,se,ne,sw,ne,se,sw,sw,sw,sw,sw,nw,sw,sw,sw diff --git a/2017/12/day12.hs b/2017/12/day12.hs new file mode 100644 index 0000000..e06add2 --- /dev/null +++ b/2017/12/day12.hs @@ -0,0 +1,39 @@ +#!/usr/bin/env stack +-- stack --resolver lts-9.18 script + +{-# LANGUAGE OverloadedStrings #-} + +import Data.Attoparsec.Text +import Data.Text (Text) +import qualified Data.Text as T +import Control.Applicative +import Data.List + +parseAdjacencyList :: Parser (Int, [Int]) +parseAdjacencyList = do + node <- decimal + skipSpace + string "<->" + skipSpace + neighbours <- many1 (option "" (string ", ") *> decimal) + return (node, neighbours) + +dfs :: [(Int, [Int])] -> [Int] -> Int -> [Int] +dfs graph visited vertex = + case lookup vertex graph of + Nothing -> vertex : visited + Just neighbours -> concat $ map f neighbours + where f n = if n `elem` visited then visited + else dfs graph (neighbours ++ visited) n + +main :: IO () +main = do + contents <- T.lines . T.pack <$> getContents + let Right graph = sequence $ parseOnly parseAdjacencyList <$> contents + -- mapM_ (putStrLn . show) graph + let cc0 = nub $ dfs graph [] 0 + -- putStrLn . show $ cc0 + putStrLn . show . length $ cc0 + let ccs = nub $ map (sort . nub . dfs graph []) (map fst graph) + -- putStrLn . show $ ccs + putStrLn . show . length $ ccs diff --git a/2017/12/input.txt b/2017/12/input.txt new file mode 100644 index 0000000..990a764 --- /dev/null +++ b/2017/12/input.txt @@ -0,0 +1,2000 @@ +0 <-> 659, 737 +1 <-> 1, 1433 +2 <-> 982, 1869 +3 <-> 306, 380, 1462, 1827 +4 <-> 1076 +5 <-> 794, 1451 +6 <-> 146, 1055 +7 <-> 834, 1557 +8 <-> 1333 +9 <-> 849, 906, 1863 +10 <-> 362, 505 +11 <-> 33, 938, 1896 +12 <-> 490, 913 +13 <-> 189, 690 +14 <-> 796 +15 <-> 56, 280, 1288, 1721 +16 <-> 16 +17 <-> 904 +18 <-> 150, 1394, 1458 +19 <-> 1773 +20 <-> 70 +21 <-> 993 +22 <-> 22 +23 <-> 285, 1004 +24 <-> 209, 727 +25 <-> 614, 1590 +26 <-> 113 +27 <-> 1321, 1341 +28 <-> 351, 730, 1037 +29 <-> 29, 1828 +30 <-> 1378, 1983 +31 <-> 705, 1035 +32 <-> 1042, 1519 +33 <-> 11, 886 +34 <-> 360, 1101, 1531, 1877 +35 <-> 971, 1652 +36 <-> 188 +37 <-> 1935 +38 <-> 38 +39 <-> 39, 1472 +40 <-> 84, 1110 +41 <-> 483, 895, 1035, 1864, 1919 +42 <-> 624, 813, 1484, 1517 +43 <-> 492 +44 <-> 947, 1572 +45 <-> 45, 1589, 1748, 1836 +46 <-> 1821 +47 <-> 123, 206, 239 +48 <-> 146 +49 <-> 235, 871 +50 <-> 172, 1672 +51 <-> 504 +52 <-> 585, 678, 878 +53 <-> 484, 543, 1282 +54 <-> 374, 723 +55 <-> 1956 +56 <-> 15 +57 <-> 583, 1159, 1596 +58 <-> 313, 580, 1101 +59 <-> 1529, 1788 +60 <-> 60 +61 <-> 1033, 1857 +62 <-> 874 +63 <-> 63, 1007, 1316, 1673 +64 <-> 1140 +65 <-> 1136 +66 <-> 1337, 1546 +67 <-> 67, 1468 +68 <-> 298, 951 +69 <-> 906 +70 <-> 20, 1977 +71 <-> 1956 +72 <-> 146, 1465 +73 <-> 911 +74 <-> 1345 +75 <-> 711 +76 <-> 732, 789, 1499, 1637 +77 <-> 1897 +78 <-> 78, 379 +79 <-> 96, 462, 847 +80 <-> 886, 907 +81 <-> 1564 +82 <-> 1362, 1680 +83 <-> 225, 916 +84 <-> 40, 1460 +85 <-> 330 +86 <-> 1370 +87 <-> 87, 640 +88 <-> 806, 1411 +89 <-> 1732 +90 <-> 603 +91 <-> 547, 904 +92 <-> 1106 +93 <-> 782 +94 <-> 401, 1039, 1148, 1356 +95 <-> 95, 344, 1092 +96 <-> 79 +97 <-> 1555, 1649 +98 <-> 133 +99 <-> 866 +100 <-> 116, 1183, 1450 +101 <-> 964 +102 <-> 521, 843 +103 <-> 1002 +104 <-> 675, 1752, 1760 +105 <-> 447 +106 <-> 625 +107 <-> 200, 923, 1573 +108 <-> 108, 1535 +109 <-> 1938, 1984 +110 <-> 992 +111 <-> 410, 436, 1789, 1985 +112 <-> 730, 1742 +113 <-> 26, 774, 1620 +114 <-> 891 +115 <-> 556, 980, 1502 +116 <-> 100, 405, 438 +117 <-> 1220, 1747 +118 <-> 417 +119 <-> 1671 +120 <-> 225 +121 <-> 215, 1414 +122 <-> 1421 +123 <-> 47, 488, 1390 +124 <-> 1750 +125 <-> 1020, 1456, 1645, 1811 +126 <-> 945, 988, 1558 +127 <-> 1562 +128 <-> 246, 419, 878, 1057 +129 <-> 198, 214, 526 +130 <-> 1572 +131 <-> 624 +132 <-> 1086 +133 <-> 98, 430, 1950 +134 <-> 1179 +135 <-> 1603 +136 <-> 136 +137 <-> 137, 248 +138 <-> 604 +139 <-> 1080, 1744, 1829 +140 <-> 786, 890, 1336 +141 <-> 819, 835 +142 <-> 142, 1657 +143 <-> 590, 670 +144 <-> 622 +145 <-> 182, 930, 1164, 1741 +146 <-> 6, 48, 72, 152 +147 <-> 1880 +148 <-> 1486 +149 <-> 1595 +150 <-> 18, 653 +151 <-> 1834 +152 <-> 146, 289, 1949 +153 <-> 1379 +154 <-> 694, 1025 +155 <-> 1143, 1469 +156 <-> 437, 1492, 1616 +157 <-> 1044 +158 <-> 410, 1391 +159 <-> 1327 +160 <-> 387, 892, 963, 1287 +161 <-> 964, 1017 +162 <-> 786, 1098, 1351, 1445, 1508 +163 <-> 415 +164 <-> 255, 790, 1410 +165 <-> 252, 425, 1186, 1662, 1838 +166 <-> 791, 1012 +167 <-> 167, 836, 1922 +168 <-> 1586, 1998 +169 <-> 679, 914 +170 <-> 1975 +171 <-> 672 +172 <-> 50 +173 <-> 614 +174 <-> 723 +175 <-> 246, 747 +176 <-> 400, 1338 +177 <-> 573, 1617, 1724 +178 <-> 473, 1572 +179 <-> 183 +180 <-> 200, 1380 +181 <-> 1394, 1657 +182 <-> 145, 1825 +183 <-> 179, 399, 955, 1236, 1295, 1840 +184 <-> 712 +185 <-> 185 +186 <-> 551, 1627 +187 <-> 1195 +188 <-> 36, 440, 1277, 1362 +189 <-> 13 +190 <-> 1111 +191 <-> 985, 1372 +192 <-> 496, 1137, 1283 +193 <-> 827, 1053 +194 <-> 610 +195 <-> 1231, 1497 +196 <-> 1960 +197 <-> 584, 1359 +198 <-> 129, 651, 714, 1663 +199 <-> 1047, 1805 +200 <-> 107, 180, 658, 1397 +201 <-> 1590 +202 <-> 1268, 1768 +203 <-> 1683 +204 <-> 567, 1848 +205 <-> 276 +206 <-> 47, 461, 1794 +207 <-> 207 +208 <-> 1248 +209 <-> 24, 1589 +210 <-> 1063, 1504 +211 <-> 907, 1815 +212 <-> 1948 +213 <-> 388 +214 <-> 129, 561, 793, 1569 +215 <-> 121, 252 +216 <-> 216, 1728 +217 <-> 761 +218 <-> 631, 816 +219 <-> 459, 807, 1008 +220 <-> 1231, 1447 +221 <-> 713, 1541 +222 <-> 856, 924, 1924 +223 <-> 1103 +224 <-> 1426, 1761 +225 <-> 83, 120, 242, 784 +226 <-> 311, 560 +227 <-> 587, 667, 984, 1091 +228 <-> 1852 +229 <-> 229, 1198, 1204 +230 <-> 1505, 1944 +231 <-> 1158, 1594, 1925 +232 <-> 232, 345, 1417 +233 <-> 828, 1677 +234 <-> 982 +235 <-> 49, 1012, 1254, 1956 +236 <-> 489, 893, 1545 +237 <-> 988, 1450 +238 <-> 1719, 1791 +239 <-> 47, 736, 1027 +240 <-> 1167, 1457 +241 <-> 270 +242 <-> 225, 814, 1873 +243 <-> 243, 282, 914 +244 <-> 302, 328, 559 +245 <-> 1753 +246 <-> 128, 175 +247 <-> 1230, 1660, 1824 +248 <-> 137, 537, 1423 +249 <-> 1209, 1391, 1749 +250 <-> 298 +251 <-> 799 +252 <-> 165, 215 +253 <-> 1437, 1741 +254 <-> 1356 +255 <-> 164 +256 <-> 310 +257 <-> 1267, 1821 +258 <-> 1177, 1876 +259 <-> 1257, 1432 +260 <-> 311, 1115 +261 <-> 1504 +262 <-> 1268 +263 <-> 565, 1023 +264 <-> 408, 1806 +265 <-> 1009, 1144 +266 <-> 599, 616 +267 <-> 1182 +268 <-> 1026, 1456, 1470, 1854 +269 <-> 269, 686 +270 <-> 241, 1445 +271 <-> 1232 +272 <-> 487, 863, 1286 +273 <-> 1614, 1748 +274 <-> 1332 +275 <-> 1010, 1334 +276 <-> 205, 478, 888, 1049 +277 <-> 277, 1330 +278 <-> 734, 1561 +279 <-> 535, 1190, 1913 +280 <-> 15 +281 <-> 1206 +282 <-> 243, 475, 1571 +283 <-> 283, 1936 +284 <-> 324, 702, 844, 1601 +285 <-> 23 +286 <-> 286, 1080, 1127 +287 <-> 295 +288 <-> 805 +289 <-> 152, 656, 691, 993 +290 <-> 595, 616, 1199 +291 <-> 1028, 1218, 1844 +292 <-> 1447 +293 <-> 378, 1771 +294 <-> 811, 1790 +295 <-> 287, 367, 693 +296 <-> 861, 1948, 1950 +297 <-> 1631 +298 <-> 68, 250, 641, 745 +299 <-> 299, 898, 1152, 1574 +300 <-> 353 +301 <-> 990, 1340, 1960 +302 <-> 244 +303 <-> 1645 +304 <-> 445, 448, 557, 1611 +305 <-> 1350, 1442 +306 <-> 3, 445 +307 <-> 567 +308 <-> 1799 +309 <-> 864 +310 <-> 256, 853, 1911 +311 <-> 226, 260, 970 +312 <-> 1308 +313 <-> 58 +314 <-> 1795 +315 <-> 1225, 1627, 1903 +316 <-> 1065, 1991 +317 <-> 317 +318 <-> 546, 1415 +319 <-> 1883 +320 <-> 417, 1040 +321 <-> 1927 +322 <-> 686 +323 <-> 1018, 1619 +324 <-> 284 +325 <-> 1114 +326 <-> 474, 872 +327 <-> 439 +328 <-> 244 +329 <-> 329 +330 <-> 85, 1868 +331 <-> 331, 680, 1224, 1243, 1291 +332 <-> 1748 +333 <-> 1673 +334 <-> 676, 1306 +335 <-> 809 +336 <-> 797, 1559, 1858 +337 <-> 978, 1874 +338 <-> 538, 1077 +339 <-> 432, 1033 +340 <-> 340 +341 <-> 1267, 1683 +342 <-> 587, 726 +343 <-> 1560, 1705 +344 <-> 95 +345 <-> 232, 1032 +346 <-> 581, 1992 +347 <-> 530 +348 <-> 667, 1479 +349 <-> 1620 +350 <-> 861, 998, 1069 +351 <-> 28 +352 <-> 352 +353 <-> 300, 1513 +354 <-> 1109, 1747 +355 <-> 950, 965, 1394, 1616 +356 <-> 1136 +357 <-> 1443, 1698 +358 <-> 973, 1814 +359 <-> 1662 +360 <-> 34, 921 +361 <-> 1418 +362 <-> 10, 668, 1656 +363 <-> 450, 766 +364 <-> 615, 1941 +365 <-> 1071 +366 <-> 749, 1375 +367 <-> 295, 1708, 1925 +368 <-> 383, 928 +369 <-> 369 +370 <-> 651, 1048 +371 <-> 665, 1460, 1686 +372 <-> 390, 958, 1682 +373 <-> 1559 +374 <-> 54, 1395, 1847 +375 <-> 799, 1061, 1383, 1773 +376 <-> 376 +377 <-> 1463 +378 <-> 293, 872, 917 +379 <-> 78, 449 +380 <-> 3, 1117 +381 <-> 1995 +382 <-> 846, 896, 1506, 1918 +383 <-> 368, 477 +384 <-> 1009, 1788 +385 <-> 1926 +386 <-> 1602 +387 <-> 160, 667 +388 <-> 213, 713 +389 <-> 586 +390 <-> 372, 1140 +391 <-> 863 +392 <-> 590, 1259, 1384 +393 <-> 645 +394 <-> 423, 1537 +395 <-> 782, 1496, 1893 +396 <-> 1497 +397 <-> 397 +398 <-> 847, 1265 +399 <-> 183, 743, 1564 +400 <-> 176 +401 <-> 94 +402 <-> 402 +403 <-> 558 +404 <-> 572 +405 <-> 116 +406 <-> 769, 1563 +407 <-> 1790 +408 <-> 264 +409 <-> 847 +410 <-> 111, 158, 1467, 1880, 1902 +411 <-> 1221 +412 <-> 858, 1088, 1848 +413 <-> 1589 +414 <-> 468, 637 +415 <-> 163, 415 +416 <-> 416, 817 +417 <-> 118, 320, 1671 +418 <-> 1029, 1987 +419 <-> 128, 765 +420 <-> 420, 1180 +421 <-> 1170, 1766 +422 <-> 563, 1400, 1904, 1926 +423 <-> 394 +424 <-> 730 +425 <-> 165, 478, 957 +426 <-> 1505 +427 <-> 1478, 1780 +428 <-> 1658 +429 <-> 650 +430 <-> 133 +431 <-> 469, 1491 +432 <-> 339 +433 <-> 667, 1549 +434 <-> 852 +435 <-> 435 +436 <-> 111 +437 <-> 156 +438 <-> 116, 874 +439 <-> 327, 1387 +440 <-> 188, 540 +441 <-> 441 +442 <-> 692 +443 <-> 1037, 1153 +444 <-> 758, 1064 +445 <-> 304, 306 +446 <-> 1072, 1495, 1890 +447 <-> 105, 1665 +448 <-> 304, 591 +449 <-> 379 +450 <-> 363, 450, 466 +451 <-> 1135 +452 <-> 990, 1344, 1604 +453 <-> 1390, 1755 +454 <-> 1853 +455 <-> 1199, 1735, 1852 +456 <-> 484 +457 <-> 457, 1973 +458 <-> 786 +459 <-> 219 +460 <-> 1655, 1777 +461 <-> 206, 753 +462 <-> 79, 668 +463 <-> 699 +464 <-> 1843 +465 <-> 829, 978, 1820 +466 <-> 450 +467 <-> 770, 1475 +468 <-> 414, 613, 1230 +469 <-> 431, 1470 +470 <-> 1292, 1659 +471 <-> 603 +472 <-> 719, 1398 +473 <-> 178, 1419 +474 <-> 326, 866 +475 <-> 282 +476 <-> 1512, 1669 +477 <-> 383 +478 <-> 276, 425 +479 <-> 1029 +480 <-> 603 +481 <-> 991, 1878 +482 <-> 1726, 1783 +483 <-> 41, 855 +484 <-> 53, 456 +485 <-> 1814 +486 <-> 1470 +487 <-> 272, 1693 +488 <-> 123 +489 <-> 236, 1155, 1793 +490 <-> 12, 1349, 1498 +491 <-> 913 +492 <-> 43, 1121, 1822 +493 <-> 1148 +494 <-> 619, 1528 +495 <-> 1960 +496 <-> 192 +497 <-> 497 +498 <-> 1185 +499 <-> 1933 +500 <-> 1948 +501 <-> 1364, 1433, 1826 +502 <-> 893, 933 +503 <-> 514 +504 <-> 51, 821, 1116 +505 <-> 10, 905 +506 <-> 506 +507 <-> 892 +508 <-> 508 +509 <-> 1078 +510 <-> 1716 +511 <-> 1197, 1900 +512 <-> 568, 1284, 1422 +513 <-> 1604, 1817, 1927 +514 <-> 503, 773, 1725, 1883 +515 <-> 1396 +516 <-> 542 +517 <-> 1299 +518 <-> 1562 +519 <-> 1622 +520 <-> 1254, 1868, 1881 +521 <-> 102, 1765 +522 <-> 1438, 1980 +523 <-> 1779 +524 <-> 1235, 1968 +525 <-> 1267, 1484 +526 <-> 129 +527 <-> 1211 +528 <-> 597, 1017 +529 <-> 529, 609 +530 <-> 347, 1737, 1890 +531 <-> 851, 1320 +532 <-> 709 +533 <-> 819, 1091 +534 <-> 856 +535 <-> 279, 535 +536 <-> 536 +537 <-> 248, 1317, 1763 +538 <-> 338, 1793 +539 <-> 539, 1485 +540 <-> 440, 1216 +541 <-> 541 +542 <-> 516, 1232, 1831 +543 <-> 53, 1234 +544 <-> 639, 1090 +545 <-> 1898 +546 <-> 318, 1208 +547 <-> 91 +548 <-> 569, 750, 1090 +549 <-> 1720 +550 <-> 660 +551 <-> 186 +552 <-> 642, 672, 723 +553 <-> 1927 +554 <-> 717, 1841, 1997 +555 <-> 1938 +556 <-> 115, 1453 +557 <-> 304, 904 +558 <-> 403, 1438 +559 <-> 244, 1046 +560 <-> 226 +561 <-> 214, 793, 1570 +562 <-> 1992 +563 <-> 422 +564 <-> 860 +565 <-> 263, 804 +566 <-> 566 +567 <-> 204, 307 +568 <-> 512, 1084 +569 <-> 548, 985, 1910 +570 <-> 665, 1844 +571 <-> 735 +572 <-> 404, 1026, 1111 +573 <-> 177, 1994 +574 <-> 846 +575 <-> 723, 738, 795, 802, 926, 1215 +576 <-> 1650, 1962, 1996 +577 <-> 1501, 1670 +578 <-> 1504 +579 <-> 1016, 1729 +580 <-> 58 +581 <-> 346, 581 +582 <-> 749 +583 <-> 57, 613, 1219, 1941 +584 <-> 197, 1366 +585 <-> 52, 1518 +586 <-> 389, 1597 +587 <-> 227, 342 +588 <-> 1408 +589 <-> 1229 +590 <-> 143, 392, 1044, 1078 +591 <-> 448, 1289 +592 <-> 592 +593 <-> 711 +594 <-> 770 +595 <-> 290, 1169 +596 <-> 1854 +597 <-> 528, 755, 1241, 1982 +598 <-> 663, 806 +599 <-> 266 +600 <-> 1065, 1694 +601 <-> 746 +602 <-> 827 +603 <-> 90, 471, 480, 1083 +604 <-> 138, 1003 +605 <-> 1703 +606 <-> 1289 +607 <-> 1309 +608 <-> 808, 1100 +609 <-> 529, 1621, 1943 +610 <-> 194, 610 +611 <-> 1337, 1609 +612 <-> 980, 1350 +613 <-> 468, 583 +614 <-> 25, 173, 1623, 1914 +615 <-> 364, 775 +616 <-> 266, 290 +617 <-> 1514 +618 <-> 1031 +619 <-> 494, 1761 +620 <-> 1126, 1150, 1221, 1513, 1712 +621 <-> 1770 +622 <-> 144, 1761 +623 <-> 1367 +624 <-> 42, 131 +625 <-> 106, 914 +626 <-> 1849 +627 <-> 1477 +628 <-> 1379 +629 <-> 969 +630 <-> 1114 +631 <-> 218, 1935, 1979 +632 <-> 1015, 1665, 1816, 1819 +633 <-> 1326, 1628 +634 <-> 1347, 1720 +635 <-> 816 +636 <-> 636 +637 <-> 414, 1566 +638 <-> 1668 +639 <-> 544, 824, 1542 +640 <-> 87 +641 <-> 298, 1196 +642 <-> 552, 1619 +643 <-> 972 +644 <-> 814 +645 <-> 393, 1148, 1205, 1302 +646 <-> 969 +647 <-> 935, 1575 +648 <-> 648, 1424 +649 <-> 1794 +650 <-> 429, 854, 1586, 1711 +651 <-> 198, 370 +652 <-> 996, 1996 +653 <-> 150, 1919 +654 <-> 654 +655 <-> 658 +656 <-> 289 +657 <-> 978, 1954 +658 <-> 200, 655 +659 <-> 0, 825, 1258, 1792 +660 <-> 550, 1232 +661 <-> 661, 1405 +662 <-> 662 +663 <-> 598 +664 <-> 1014 +665 <-> 371, 570, 1247 +666 <-> 989, 1778 +667 <-> 227, 348, 387, 433 +668 <-> 362, 462, 703, 1091 +669 <-> 1184 +670 <-> 143 +671 <-> 671, 901 +672 <-> 171, 552 +673 <-> 1865 +674 <-> 972, 1961 +675 <-> 104, 1581, 1800 +676 <-> 334, 1995 +677 <-> 1836 +678 <-> 52 +679 <-> 169 +680 <-> 331 +681 <-> 823 +682 <-> 921 +683 <-> 1800 +684 <-> 750, 1505 +685 <-> 722, 1338, 1993 +686 <-> 269, 322 +687 <-> 989, 1178 +688 <-> 1338 +689 <-> 1535 +690 <-> 13, 690 +691 <-> 289, 721 +692 <-> 442, 1014 +693 <-> 295 +694 <-> 154, 862 +695 <-> 1552, 1735 +696 <-> 1044 +697 <-> 993, 1793, 1801 +698 <-> 698 +699 <-> 463, 1022, 1399 +700 <-> 897, 1085 +701 <-> 1782, 1987 +702 <-> 284 +703 <-> 668, 1031 +704 <-> 704, 849 +705 <-> 31 +706 <-> 1909 +707 <-> 1276 +708 <-> 1301 +709 <-> 532, 1607 +710 <-> 1094 +711 <-> 75, 593, 1251, 1297 +712 <-> 184, 712 +713 <-> 221, 388, 713 +714 <-> 198 +715 <-> 1607 +716 <-> 1110 +717 <-> 554, 1819 +718 <-> 1755 +719 <-> 472, 1942 +720 <-> 1043, 1984 +721 <-> 691, 1641 +722 <-> 685, 1360, 1679 +723 <-> 54, 174, 552, 575 +724 <-> 1466 +725 <-> 1231 +726 <-> 342, 1023 +727 <-> 24 +728 <-> 1928 +729 <-> 975, 1759 +730 <-> 28, 112, 424, 1324 +731 <-> 731 +732 <-> 76, 1698 +733 <-> 1895 +734 <-> 278 +735 <-> 571, 1440 +736 <-> 239 +737 <-> 0, 1214, 1949 +738 <-> 575, 985 +739 <-> 1467 +740 <-> 740, 1449, 1885 +741 <-> 1243 +742 <-> 845, 1588, 1676, 1956, 1980 +743 <-> 399 +744 <-> 744, 1990 +745 <-> 298, 1966 +746 <-> 601, 1294, 1601 +747 <-> 175, 1106 +748 <-> 1433, 1565, 1795 +749 <-> 366, 582 +750 <-> 548, 684, 1210 +751 <-> 751, 1967 +752 <-> 765, 1297 +753 <-> 461 +754 <-> 754 +755 <-> 597, 1089 +756 <-> 756 +757 <-> 1350, 1936 +758 <-> 444, 1044, 1279 +759 <-> 996, 1310 +760 <-> 1943 +761 <-> 217, 1333 +762 <-> 1671 +763 <-> 1761 +764 <-> 1881 +765 <-> 419, 752 +766 <-> 363, 928, 1100 +767 <-> 1220, 1986 +768 <-> 1337 +769 <-> 406, 1307 +770 <-> 467, 594, 1707 +771 <-> 1624, 1782 +772 <-> 1230 +773 <-> 514, 1266, 1305 +774 <-> 113, 1198 +775 <-> 615, 1753 +776 <-> 1307 +777 <-> 1785 +778 <-> 778, 1776 +779 <-> 992 +780 <-> 1406 +781 <-> 781, 1272 +782 <-> 93, 395, 1207 +783 <-> 1544, 1729 +784 <-> 225, 1168, 1587 +785 <-> 1050 +786 <-> 140, 162, 458, 786, 1060 +787 <-> 1210 +788 <-> 1431 +789 <-> 76 +790 <-> 164, 882 +791 <-> 166, 1688 +792 <-> 792, 946 +793 <-> 214, 561 +794 <-> 5, 1561 +795 <-> 575, 1208, 1875 +796 <-> 14, 1205, 1427 +797 <-> 336, 1006, 1352 +798 <-> 1176, 1754 +799 <-> 251, 375 +800 <-> 840, 1471 +801 <-> 801, 1246, 1897 +802 <-> 575 +803 <-> 1692 +804 <-> 565, 859, 1978 +805 <-> 288, 1447 +806 <-> 88, 598 +807 <-> 219, 1579 +808 <-> 608 +809 <-> 335, 867, 1734, 1843 +810 <-> 1279 +811 <-> 294, 1043, 1560, 1583, 1600 +812 <-> 1487, 1527 +813 <-> 42, 1405 +814 <-> 242, 644, 1175, 1638 +815 <-> 1050, 1177 +816 <-> 218, 635, 1427 +817 <-> 416 +818 <-> 1765, 1999 +819 <-> 141, 533 +820 <-> 1238, 1393 +821 <-> 504, 1755 +822 <-> 1320, 1397 +823 <-> 681, 1120, 1798 +824 <-> 639 +825 <-> 659 +826 <-> 1722, 1834 +827 <-> 193, 602, 968 +828 <-> 233, 1835 +829 <-> 465 +830 <-> 951 +831 <-> 1606 +832 <-> 1619, 1964 +833 <-> 1109 +834 <-> 7, 962, 1869 +835 <-> 141 +836 <-> 167, 875, 1145 +837 <-> 1752 +838 <-> 838, 1146 +839 <-> 1247 +840 <-> 800 +841 <-> 1337 +842 <-> 1438, 1466 +843 <-> 102 +844 <-> 284 +845 <-> 742 +846 <-> 382, 574 +847 <-> 79, 398, 409 +848 <-> 959 +849 <-> 9, 704 +850 <-> 915, 1455, 1911, 1987 +851 <-> 531, 1001 +852 <-> 434, 1172 +853 <-> 310, 1533 +854 <-> 650 +855 <-> 483, 868, 1598 +856 <-> 222, 534, 1133 +857 <-> 857, 1249, 1923 +858 <-> 412, 1540, 1575, 1607 +859 <-> 804, 1655 +860 <-> 564, 1243 +861 <-> 296, 350, 1130, 1521 +862 <-> 694 +863 <-> 272, 391, 1558 +864 <-> 309, 1071, 1227 +865 <-> 1537, 1669, 1825 +866 <-> 99, 474 +867 <-> 809, 867, 1004 +868 <-> 855, 1539 +869 <-> 1550 +870 <-> 1885 +871 <-> 49 +872 <-> 326, 378, 1552 +873 <-> 1307 +874 <-> 62, 438 +875 <-> 836, 1056, 1326 +876 <-> 876 +877 <-> 1933 +878 <-> 52, 128, 1527 +879 <-> 879 +880 <-> 1292, 1561, 1770 +881 <-> 881, 981 +882 <-> 790, 882, 932 +883 <-> 1322, 1963 +884 <-> 1842 +885 <-> 885 +886 <-> 33, 80, 1765, 1959 +887 <-> 1012 +888 <-> 276 +889 <-> 1391 +890 <-> 140 +891 <-> 114, 891 +892 <-> 160, 507 +893 <-> 236, 502, 1602 +894 <-> 1525 +895 <-> 41 +896 <-> 382 +897 <-> 700 +898 <-> 299 +899 <-> 1797 +900 <-> 1736 +901 <-> 671, 944, 1147 +902 <-> 1597, 1940 +903 <-> 1283 +904 <-> 17, 91, 557, 1169, 1764 +905 <-> 505 +906 <-> 9, 69, 942 +907 <-> 80, 211, 1348 +908 <-> 1398 +909 <-> 909 +910 <-> 1683 +911 <-> 73, 911 +912 <-> 1929 +913 <-> 12, 491, 1591 +914 <-> 169, 243, 625, 1867 +915 <-> 850, 1538 +916 <-> 83 +917 <-> 378 +918 <-> 1438 +919 <-> 1951 +920 <-> 1814 +921 <-> 360, 682, 1952 +922 <-> 922 +923 <-> 107, 1161, 1254 +924 <-> 222 +925 <-> 1691 +926 <-> 575 +927 <-> 1165, 1270 +928 <-> 368, 766 +929 <-> 1707, 1914 +930 <-> 145, 1096, 1434, 1791 +931 <-> 931, 1983 +932 <-> 882 +933 <-> 502, 1921 +934 <-> 1297 +935 <-> 647, 1319 +936 <-> 1255 +937 <-> 1210 +938 <-> 11 +939 <-> 1348, 1666 +940 <-> 1408 +941 <-> 1440 +942 <-> 906 +943 <-> 1977 +944 <-> 901 +945 <-> 126 +946 <-> 792 +947 <-> 44, 1400 +948 <-> 948, 1045 +949 <-> 967 +950 <-> 355 +951 <-> 68, 830, 969 +952 <-> 1225, 1757, 1929 +953 <-> 1534, 1726 +954 <-> 1511, 1888 +955 <-> 183, 1418 +956 <-> 1702 +957 <-> 425 +958 <-> 372 +959 <-> 848, 1512 +960 <-> 1868 +961 <-> 1509 +962 <-> 834, 1678 +963 <-> 160 +964 <-> 101, 161 +965 <-> 355 +966 <-> 1740, 1866 +967 <-> 949, 1802 +968 <-> 827, 1534 +969 <-> 629, 646, 951 +970 <-> 311 +971 <-> 35, 1670 +972 <-> 643, 674, 1449 +973 <-> 358 +974 <-> 974 +975 <-> 729, 1955 +976 <-> 1495 +977 <-> 1603, 1889 +978 <-> 337, 465, 657, 1615, 1953 +979 <-> 1801 +980 <-> 115, 612, 1239 +981 <-> 881 +982 <-> 2, 234, 1411, 1511 +983 <-> 1970 +984 <-> 227, 984 +985 <-> 191, 569, 738 +986 <-> 1926 +987 <-> 987 +988 <-> 126, 237, 1894 +989 <-> 666, 687, 1079 +990 <-> 301, 452, 1903 +991 <-> 481, 1435 +992 <-> 110, 779, 1637 +993 <-> 21, 289, 697, 1675 +994 <-> 1151, 1639 +995 <-> 1090, 1798 +996 <-> 652, 759, 1229 +997 <-> 1253, 1380, 1553 +998 <-> 350, 1812 +999 <-> 1128 +1000 <-> 1566 +1001 <-> 851 +1002 <-> 103, 1229 +1003 <-> 604, 1156, 1232, 1420 +1004 <-> 23, 867 +1005 <-> 1085, 1174, 1899 +1006 <-> 797 +1007 <-> 63, 1282 +1008 <-> 219, 1008, 1977 +1009 <-> 265, 384, 1731 +1010 <-> 275, 1438, 1474 +1011 <-> 1289 +1012 <-> 166, 235, 887, 1342, 1471 +1013 <-> 1013, 1886 +1014 <-> 664, 692, 1229 +1015 <-> 632, 1015 +1016 <-> 579 +1017 <-> 161, 528 +1018 <-> 323 +1019 <-> 1684 +1020 <-> 125 +1021 <-> 1036, 1450 +1022 <-> 699, 1600, 1962 +1023 <-> 263, 726 +1024 <-> 1295 +1025 <-> 154, 1025 +1026 <-> 268, 572, 1610 +1027 <-> 239, 1269 +1028 <-> 291, 1275 +1029 <-> 418, 479, 1957 +1030 <-> 1184 +1031 <-> 618, 703 +1032 <-> 345 +1033 <-> 61, 339, 1033 +1034 <-> 1166, 1291 +1035 <-> 31, 41 +1036 <-> 1021, 1228 +1037 <-> 28, 443, 1227 +1038 <-> 1178 +1039 <-> 94, 1578 +1040 <-> 320, 1992 +1041 <-> 1041 +1042 <-> 32, 1486 +1043 <-> 720, 811 +1044 <-> 157, 590, 696, 758, 1433, 1739 +1045 <-> 948 +1046 <-> 559, 1241 +1047 <-> 199, 1962 +1048 <-> 370 +1049 <-> 276, 1885 +1050 <-> 785, 815 +1051 <-> 1051, 1290 +1052 <-> 1165 +1053 <-> 193, 1446, 1488 +1054 <-> 1081 +1055 <-> 6 +1056 <-> 875 +1057 <-> 128, 1137 +1058 <-> 1112, 1173 +1059 <-> 1226, 1538 +1060 <-> 786 +1061 <-> 375, 1639, 1988 +1062 <-> 1748 +1063 <-> 210, 1692 +1064 <-> 444 +1065 <-> 316, 600, 1689 +1066 <-> 1709 +1067 <-> 1067 +1068 <-> 1068 +1069 <-> 350 +1070 <-> 1196 +1071 <-> 365, 864, 1827 +1072 <-> 446, 1142 +1073 <-> 1931 +1074 <-> 1529 +1075 <-> 1075 +1076 <-> 4, 1717, 1879, 1969 +1077 <-> 338 +1078 <-> 509, 590 +1079 <-> 989, 1282 +1080 <-> 139, 286 +1081 <-> 1054, 1992 +1082 <-> 1115, 1451, 1704 +1083 <-> 603, 1271 +1084 <-> 568, 1233 +1085 <-> 700, 1005, 1939 +1086 <-> 132, 1745, 1901 +1087 <-> 1519 +1088 <-> 412 +1089 <-> 755 +1090 <-> 544, 548, 995, 1768 +1091 <-> 227, 533, 668, 1141 +1092 <-> 95 +1093 <-> 1271, 1946 +1094 <-> 710, 1102 +1095 <-> 1546 +1096 <-> 930 +1097 <-> 1288 +1098 <-> 162, 1933 +1099 <-> 1456 +1100 <-> 608, 766 +1101 <-> 34, 58, 1108 +1102 <-> 1094, 1938 +1103 <-> 223, 1117 +1104 <-> 1457, 1605, 1654 +1105 <-> 1105 +1106 <-> 92, 747 +1107 <-> 1699 +1108 <-> 1101, 1201 +1109 <-> 354, 833, 1285, 1874 +1110 <-> 40, 716 +1111 <-> 190, 572, 1440 +1112 <-> 1058, 1193 +1113 <-> 1113 +1114 <-> 325, 630, 1853 +1115 <-> 260, 1082 +1116 <-> 504 +1117 <-> 380, 1103 +1118 <-> 1118 +1119 <-> 1353, 1871 +1120 <-> 823 +1121 <-> 492, 1196 +1122 <-> 1122 +1123 <-> 1725 +1124 <-> 1892 +1125 <-> 1344 +1126 <-> 620 +1127 <-> 286, 1138 +1128 <-> 999, 1268 +1129 <-> 1129 +1130 <-> 861 +1131 <-> 1874 +1132 <-> 1913 +1133 <-> 856 +1134 <-> 1185, 1767 +1135 <-> 451, 1975 +1136 <-> 65, 356, 1487 +1137 <-> 192, 1057 +1138 <-> 1127, 1782 +1139 <-> 1240 +1140 <-> 64, 390, 1385 +1141 <-> 1091 +1142 <-> 1072, 1587 +1143 <-> 155, 1143 +1144 <-> 265 +1145 <-> 836, 1401 +1146 <-> 838 +1147 <-> 901, 1483 +1148 <-> 94, 493, 645, 1167 +1149 <-> 1818 +1150 <-> 620, 1237, 1264 +1151 <-> 994, 1844 +1152 <-> 299, 1167 +1153 <-> 443, 1947 +1154 <-> 1803 +1155 <-> 489, 1163 +1156 <-> 1003, 1635, 1668 +1157 <-> 1340, 1809 +1158 <-> 231 +1159 <-> 57 +1160 <-> 1558 +1161 <-> 923 +1162 <-> 1590 +1163 <-> 1155 +1164 <-> 145, 1164, 1283 +1165 <-> 927, 1052, 1678, 1934 +1166 <-> 1034 +1167 <-> 240, 1148, 1152, 1462 +1168 <-> 784 +1169 <-> 595, 904 +1170 <-> 421 +1171 <-> 1667 +1172 <-> 852, 1195, 1323, 1444 +1173 <-> 1058, 1389 +1174 <-> 1005 +1175 <-> 814 +1176 <-> 798 +1177 <-> 258, 815, 1401 +1178 <-> 687, 1038, 1331 +1179 <-> 134, 1179 +1180 <-> 420 +1181 <-> 1181 +1182 <-> 267, 1677 +1183 <-> 100 +1184 <-> 669, 1030, 1969 +1185 <-> 498, 1134, 1673, 1750 +1186 <-> 165 +1187 <-> 1893 +1188 <-> 1236, 1365 +1189 <-> 1334, 1732 +1190 <-> 279 +1191 <-> 1620 +1192 <-> 1257 +1193 <-> 1112 +1194 <-> 1770 +1195 <-> 187, 1172, 1964 +1196 <-> 641, 1070, 1121, 1729 +1197 <-> 511, 1273, 1607 +1198 <-> 229, 774 +1199 <-> 290, 455, 1860 +1200 <-> 1901 +1201 <-> 1108 +1202 <-> 1378 +1203 <-> 1591 +1204 <-> 229 +1205 <-> 645, 796, 1250 +1206 <-> 281, 1824 +1207 <-> 782 +1208 <-> 546, 795, 1700 +1209 <-> 249 +1210 <-> 750, 787, 937 +1211 <-> 527, 1981 +1212 <-> 1212, 1369 +1213 <-> 1512 +1214 <-> 737 +1215 <-> 575 +1216 <-> 540, 1216 +1217 <-> 1312, 1340 +1218 <-> 291, 1586 +1219 <-> 583, 1554 +1220 <-> 117, 767 +1221 <-> 411, 620, 1221 +1222 <-> 1612, 1710 +1223 <-> 1223, 1374 +1224 <-> 331 +1225 <-> 315, 952, 1263 +1226 <-> 1059, 1928 +1227 <-> 864, 1037, 1823 +1228 <-> 1036, 1613 +1229 <-> 589, 996, 1002, 1014, 1906 +1230 <-> 247, 468, 772, 1821, 1837 +1231 <-> 195, 220, 725 +1232 <-> 271, 542, 660, 1003, 1232, 1606 +1233 <-> 1084, 1366, 1738 +1234 <-> 543, 1408 +1235 <-> 524 +1236 <-> 183, 1188 +1237 <-> 1150 +1238 <-> 820, 1521 +1239 <-> 980 +1240 <-> 1139, 1240 +1241 <-> 597, 1046 +1242 <-> 1646 +1243 <-> 331, 741, 860 +1244 <-> 1522, 1870 +1245 <-> 1245 +1246 <-> 801 +1247 <-> 665, 839 +1248 <-> 208, 1932 +1249 <-> 857 +1250 <-> 1205 +1251 <-> 711 +1252 <-> 1888 +1253 <-> 997, 1593 +1254 <-> 235, 520, 923, 1382 +1255 <-> 936 +1256 <-> 1718 +1257 <-> 259, 1192 +1258 <-> 659, 1917 +1259 <-> 392 +1260 <-> 1260 +1261 <-> 1261, 1376 +1262 <-> 1936 +1263 <-> 1225 +1264 <-> 1150, 1567 +1265 <-> 398 +1266 <-> 773, 1373 +1267 <-> 257, 341, 525 +1268 <-> 202, 262, 1128 +1269 <-> 1027 +1270 <-> 927 +1271 <-> 1083, 1093 +1272 <-> 781 +1273 <-> 1197 +1274 <-> 1760 +1275 <-> 1028, 1827 +1276 <-> 707, 1900 +1277 <-> 188 +1278 <-> 1463 +1279 <-> 758, 810 +1280 <-> 1920 +1281 <-> 1942 +1282 <-> 53, 1007, 1079 +1283 <-> 192, 903, 1164, 1690 +1284 <-> 512, 1584 +1285 <-> 1109, 1285 +1286 <-> 272 +1287 <-> 160 +1288 <-> 15, 1097, 1905 +1289 <-> 591, 606, 1011 +1290 <-> 1051 +1291 <-> 331, 1034 +1292 <-> 470, 880 +1293 <-> 1501, 1899 +1294 <-> 746, 1294 +1295 <-> 183, 1024 +1296 <-> 1580 +1297 <-> 711, 752, 934 +1298 <-> 1298 +1299 <-> 517, 1299 +1300 <-> 1300 +1301 <-> 708, 1301 +1302 <-> 645 +1303 <-> 1355, 1492 +1304 <-> 1361, 1746 +1305 <-> 773 +1306 <-> 334, 1325 +1307 <-> 769, 776, 873, 1333 +1308 <-> 312, 1851, 1966 +1309 <-> 607, 1459, 1496 +1310 <-> 759 +1311 <-> 1381, 1520 +1312 <-> 1217 +1313 <-> 1983 +1314 <-> 1314 +1315 <-> 1315, 1647 +1316 <-> 63 +1317 <-> 537 +1318 <-> 1973 +1319 <-> 935, 1517 +1320 <-> 531, 822 +1321 <-> 27, 1837 +1322 <-> 883, 1664 +1323 <-> 1172 +1324 <-> 730 +1325 <-> 1306 +1326 <-> 633, 875 +1327 <-> 159, 1553 +1328 <-> 1974 +1329 <-> 1939 +1330 <-> 277, 1515 +1331 <-> 1178, 1590 +1332 <-> 274, 1332 +1333 <-> 8, 761, 1307, 1333 +1334 <-> 275, 1189, 1482 +1335 <-> 1478 +1336 <-> 140 +1337 <-> 66, 611, 768, 841 +1338 <-> 176, 685, 688, 1449 +1339 <-> 1339 +1340 <-> 301, 1157, 1217, 1630 +1341 <-> 27 +1342 <-> 1012 +1343 <-> 1408 +1344 <-> 452, 1125, 1622 +1345 <-> 74, 1835 +1346 <-> 1860 +1347 <-> 634, 1428 +1348 <-> 907, 939 +1349 <-> 490, 1349 +1350 <-> 305, 612, 757 +1351 <-> 162 +1352 <-> 797, 1818 +1353 <-> 1119, 1353 +1354 <-> 1436 +1355 <-> 1303 +1356 <-> 94, 254 +1357 <-> 1419, 1664, 1680 +1358 <-> 1358 +1359 <-> 197 +1360 <-> 722, 1909 +1361 <-> 1304 +1362 <-> 82, 188, 1448 +1363 <-> 1752 +1364 <-> 501 +1365 <-> 1188, 1661 +1366 <-> 584, 1233 +1367 <-> 623, 1394, 1781 +1368 <-> 1886 +1369 <-> 1212 +1370 <-> 86, 1370 +1371 <-> 1772 +1372 <-> 191, 1473 +1373 <-> 1266 +1374 <-> 1223, 1981 +1375 <-> 366, 1375 +1376 <-> 1261, 1599 +1377 <-> 1675 +1378 <-> 30, 1202, 1406, 1845 +1379 <-> 153, 628, 1557 +1380 <-> 180, 997 +1381 <-> 1311, 1407, 1666 +1382 <-> 1254 +1383 <-> 375, 1714 +1384 <-> 392 +1385 <-> 1140, 1933 +1386 <-> 1949 +1387 <-> 439, 1387 +1388 <-> 1770 +1389 <-> 1173, 1679 +1390 <-> 123, 453, 1733 +1391 <-> 158, 249, 889, 1945 +1392 <-> 1881 +1393 <-> 820 +1394 <-> 18, 181, 355, 1367 +1395 <-> 374, 1404 +1396 <-> 515, 1860 +1397 <-> 200, 822 +1398 <-> 472, 908, 1622, 1701 +1399 <-> 699 +1400 <-> 422, 947, 1551 +1401 <-> 1145, 1177 +1402 <-> 1764 +1403 <-> 1875 +1404 <-> 1395 +1405 <-> 661, 813 +1406 <-> 780, 1378 +1407 <-> 1381 +1408 <-> 588, 940, 1234, 1343, 1603, 1865 +1409 <-> 1427 +1410 <-> 164 +1411 <-> 88, 982 +1412 <-> 1452 +1413 <-> 1707, 1766 +1414 <-> 121 +1415 <-> 318, 1415, 1612 +1416 <-> 1416 +1417 <-> 232 +1418 <-> 361, 955, 1418, 1737 +1419 <-> 473, 1357 +1420 <-> 1003 +1421 <-> 122, 1973 +1422 <-> 512, 1870 +1423 <-> 248 +1424 <-> 648 +1425 <-> 1425 +1426 <-> 224, 1946 +1427 <-> 796, 816, 1409 +1428 <-> 1347 +1429 <-> 1810, 1862 +1430 <-> 1430 +1431 <-> 788, 1488 +1432 <-> 259, 1432 +1433 <-> 1, 501, 748, 1044 +1434 <-> 930 +1435 <-> 991 +1436 <-> 1354, 1436 +1437 <-> 253 +1438 <-> 522, 558, 842, 918, 1010 +1439 <-> 1649 +1440 <-> 735, 941, 1111 +1441 <-> 1707 +1442 <-> 305, 1930 +1443 <-> 357 +1444 <-> 1172 +1445 <-> 162, 270, 1636 +1446 <-> 1053 +1447 <-> 220, 292, 805 +1448 <-> 1362 +1449 <-> 740, 972, 1338 +1450 <-> 100, 237, 1021 +1451 <-> 5, 1082 +1452 <-> 1412, 1572 +1453 <-> 556 +1454 <-> 1454 +1455 <-> 850 +1456 <-> 125, 268, 1099 +1457 <-> 240, 1104 +1458 <-> 18, 1576 +1459 <-> 1309, 1503 +1460 <-> 84, 371 +1461 <-> 1747, 1879 +1462 <-> 3, 1167, 1807 +1463 <-> 377, 1278, 1499, 1971 +1464 <-> 1908 +1465 <-> 72 +1466 <-> 724, 842 +1467 <-> 410, 739 +1468 <-> 67 +1469 <-> 155, 1652 +1470 <-> 268, 469, 486 +1471 <-> 800, 1012, 1471, 1510 +1472 <-> 39 +1473 <-> 1372 +1474 <-> 1010, 1915 +1475 <-> 467, 1658 +1476 <-> 1476 +1477 <-> 627, 1477 +1478 <-> 427, 1335, 1907 +1479 <-> 348 +1480 <-> 1480 +1481 <-> 1802 +1482 <-> 1334 +1483 <-> 1147, 1524 +1484 <-> 42, 525 +1485 <-> 539 +1486 <-> 148, 1042, 1549 +1487 <-> 812, 1136 +1488 <-> 1053, 1431 +1489 <-> 1708, 1931 +1490 <-> 1807 +1491 <-> 431 +1492 <-> 156, 1303 +1493 <-> 1493 +1494 <-> 1853 +1495 <-> 446, 976 +1496 <-> 395, 1309 +1497 <-> 195, 396, 1974 +1498 <-> 490, 1626 +1499 <-> 76, 1463 +1500 <-> 1722 +1501 <-> 577, 1293 +1502 <-> 115 +1503 <-> 1459, 1507 +1504 <-> 210, 261, 578, 1521, 1718 +1505 <-> 230, 426, 684, 1634 +1506 <-> 382, 1921 +1507 <-> 1503 +1508 <-> 162, 1667 +1509 <-> 961, 1509 +1510 <-> 1471 +1511 <-> 954, 982, 1582 +1512 <-> 476, 959, 1213, 1703 +1513 <-> 353, 620 +1514 <-> 617, 1546 +1515 <-> 1330, 1595 +1516 <-> 1946 +1517 <-> 42, 1319 +1518 <-> 585 +1519 <-> 32, 1087 +1520 <-> 1311 +1521 <-> 861, 1238, 1504 +1522 <-> 1244, 1653 +1523 <-> 1523 +1524 <-> 1483 +1525 <-> 894, 1525 +1526 <-> 1924 +1527 <-> 812, 878 +1528 <-> 494 +1529 <-> 59, 1074 +1530 <-> 1530 +1531 <-> 34, 1531 +1532 <-> 1638 +1533 <-> 853 +1534 <-> 953, 968 +1535 <-> 108, 689 +1536 <-> 1589 +1537 <-> 394, 865 +1538 <-> 915, 1059 +1539 <-> 868 +1540 <-> 858, 1745 +1541 <-> 221 +1542 <-> 639 +1543 <-> 1746 +1544 <-> 783, 1544 +1545 <-> 236 +1546 <-> 66, 1095, 1514 +1547 <-> 1628 +1548 <-> 1548 +1549 <-> 433, 1486 +1550 <-> 869, 1550 +1551 <-> 1400, 1787 +1552 <-> 695, 872 +1553 <-> 997, 1327 +1554 <-> 1219 +1555 <-> 97 +1556 <-> 1840 +1557 <-> 7, 1379 +1558 <-> 126, 863, 1160 +1559 <-> 336, 373 +1560 <-> 343, 811 +1561 <-> 278, 794, 880, 1561 +1562 <-> 127, 518, 1562 +1563 <-> 406 +1564 <-> 81, 399 +1565 <-> 748 +1566 <-> 637, 1000 +1567 <-> 1264 +1568 <-> 1568 +1569 <-> 214 +1570 <-> 561, 1849 +1571 <-> 282 +1572 <-> 44, 130, 178, 1452 +1573 <-> 107 +1574 <-> 299 +1575 <-> 647, 858 +1576 <-> 1458, 1633 +1577 <-> 1833, 1939 +1578 <-> 1039, 1802 +1579 <-> 807, 1853 +1580 <-> 1296, 1580, 1907 +1581 <-> 675 +1582 <-> 1511, 1605, 1756 +1583 <-> 811 +1584 <-> 1284 +1585 <-> 1817 +1586 <-> 168, 650, 1218 +1587 <-> 784, 1142 +1588 <-> 742 +1589 <-> 45, 209, 413, 1536 +1590 <-> 25, 201, 1162, 1331 +1591 <-> 913, 1203 +1592 <-> 1820 +1593 <-> 1253 +1594 <-> 231 +1595 <-> 149, 1515 +1596 <-> 57, 1976 +1597 <-> 586, 902 +1598 <-> 855 +1599 <-> 1376 +1600 <-> 811, 1022 +1601 <-> 284, 746 +1602 <-> 386, 893 +1603 <-> 135, 977, 1408 +1604 <-> 452, 513 +1605 <-> 1104, 1582 +1606 <-> 831, 1232 +1607 <-> 709, 715, 858, 1197 +1608 <-> 1793 +1609 <-> 611, 1808 +1610 <-> 1026, 1964 +1611 <-> 304 +1612 <-> 1222, 1415, 1769 +1613 <-> 1228, 1847 +1614 <-> 273 +1615 <-> 978 +1616 <-> 156, 355 +1617 <-> 177 +1618 <-> 1618 +1619 <-> 323, 642, 832 +1620 <-> 113, 349, 1191, 1746 +1621 <-> 609 +1622 <-> 519, 1344, 1398 +1623 <-> 614 +1624 <-> 771, 1989 +1625 <-> 1625 +1626 <-> 1498 +1627 <-> 186, 315 +1628 <-> 633, 1547 +1629 <-> 1706 +1630 <-> 1340 +1631 <-> 297, 1800 +1632 <-> 1806 +1633 <-> 1576 +1634 <-> 1505 +1635 <-> 1156 +1636 <-> 1445 +1637 <-> 76, 992, 1920, 1995 +1638 <-> 814, 1532 +1639 <-> 994, 1061 +1640 <-> 1640 +1641 <-> 721 +1642 <-> 1739, 1945 +1643 <-> 1643 +1644 <-> 1644, 1908 +1645 <-> 125, 303 +1646 <-> 1242, 1646 +1647 <-> 1315 +1648 <-> 1957 +1649 <-> 97, 1439, 1783 +1650 <-> 576 +1651 <-> 1651 +1652 <-> 35, 1469 +1653 <-> 1522 +1654 <-> 1104 +1655 <-> 460, 859 +1656 <-> 362 +1657 <-> 142, 181 +1658 <-> 428, 1475 +1659 <-> 470 +1660 <-> 247 +1661 <-> 1365 +1662 <-> 165, 359 +1663 <-> 198 +1664 <-> 1322, 1357 +1665 <-> 447, 632 +1666 <-> 939, 1381 +1667 <-> 1171, 1508 +1668 <-> 638, 1156 +1669 <-> 476, 865, 1699 +1670 <-> 577, 971 +1671 <-> 119, 417, 762, 1804 +1672 <-> 50, 1672, 1687 +1673 <-> 63, 333, 1185 +1674 <-> 1674 +1675 <-> 993, 1377 +1676 <-> 742, 1813 +1677 <-> 233, 1182, 1846 +1678 <-> 962, 1165 +1679 <-> 722, 1389 +1680 <-> 82, 1357 +1681 <-> 1681, 1702, 1895 +1682 <-> 372 +1683 <-> 203, 341, 910 +1684 <-> 1019, 1948 +1685 <-> 1982 +1686 <-> 371 +1687 <-> 1672 +1688 <-> 791 +1689 <-> 1065, 1689 +1690 <-> 1283 +1691 <-> 925, 1878 +1692 <-> 803, 1063, 1732 +1693 <-> 487 +1694 <-> 600 +1695 <-> 1695, 1794 +1696 <-> 1696 +1697 <-> 1802 +1698 <-> 357, 732 +1699 <-> 1107, 1669 +1700 <-> 1208 +1701 <-> 1398 +1702 <-> 956, 1681 +1703 <-> 605, 1512 +1704 <-> 1082 +1705 <-> 343 +1706 <-> 1629, 1775 +1707 <-> 770, 929, 1413, 1441 +1708 <-> 367, 1489 +1709 <-> 1066, 1862 +1710 <-> 1222 +1711 <-> 650 +1712 <-> 620 +1713 <-> 1713 +1714 <-> 1383 +1715 <-> 1911 +1716 <-> 510, 1716 +1717 <-> 1076 +1718 <-> 1256, 1504 +1719 <-> 238 +1720 <-> 549, 634, 1720 +1721 <-> 15 +1722 <-> 826, 1500 +1723 <-> 1880 +1724 <-> 177, 1724 +1725 <-> 514, 1123, 1797 +1726 <-> 482, 953 +1727 <-> 1914 +1728 <-> 216, 1982 +1729 <-> 579, 783, 1196, 1800 +1730 <-> 1730, 1972 +1731 <-> 1009 +1732 <-> 89, 1189, 1692 +1733 <-> 1390 +1734 <-> 809 +1735 <-> 455, 695 +1736 <-> 900, 1736 +1737 <-> 530, 1418 +1738 <-> 1233, 1888 +1739 <-> 1044, 1642, 1834 +1740 <-> 966 +1741 <-> 145, 253 +1742 <-> 112 +1743 <-> 1980 +1744 <-> 139 +1745 <-> 1086, 1540 +1746 <-> 1304, 1543, 1620 +1747 <-> 117, 354, 1461 +1748 <-> 45, 273, 332, 1062 +1749 <-> 249 +1750 <-> 124, 1185 +1751 <-> 1835 +1752 <-> 104, 837, 1363 +1753 <-> 245, 775 +1754 <-> 798, 1876 +1755 <-> 453, 718, 821 +1756 <-> 1582 +1757 <-> 952, 1772, 1841 +1758 <-> 1758, 1830, 1878 +1759 <-> 729 +1760 <-> 104, 1274 +1761 <-> 224, 619, 622, 763, 1868 +1762 <-> 1762 +1763 <-> 537 +1764 <-> 904, 1402 +1765 <-> 521, 818, 886, 1782 +1766 <-> 421, 1413 +1767 <-> 1134 +1768 <-> 202, 1090 +1769 <-> 1612 +1770 <-> 621, 880, 1194, 1388 +1771 <-> 293 +1772 <-> 1371, 1757 +1773 <-> 19, 375 +1774 <-> 1774 +1775 <-> 1706, 1915 +1776 <-> 778 +1777 <-> 460, 1918 +1778 <-> 666 +1779 <-> 523, 1846 +1780 <-> 427 +1781 <-> 1367 +1782 <-> 701, 771, 1138, 1765 +1783 <-> 482, 1649, 1783 +1784 <-> 1784, 1872 +1785 <-> 777, 1785 +1786 <-> 1858 +1787 <-> 1551 +1788 <-> 59, 384, 1865 +1789 <-> 111 +1790 <-> 294, 407, 1969 +1791 <-> 238, 930 +1792 <-> 659 +1793 <-> 489, 538, 697, 1608 +1794 <-> 206, 649, 1695 +1795 <-> 314, 748 +1796 <-> 1796 +1797 <-> 899, 1725, 1797 +1798 <-> 823, 995 +1799 <-> 308, 1799 +1800 <-> 675, 683, 1631, 1729 +1801 <-> 697, 979, 1858 +1802 <-> 967, 1481, 1578, 1697 +1803 <-> 1154, 1803 +1804 <-> 1671 +1805 <-> 199 +1806 <-> 264, 1632, 1806 +1807 <-> 1462, 1490 +1808 <-> 1609, 1808 +1809 <-> 1157 +1810 <-> 1429 +1811 <-> 125 +1812 <-> 998 +1813 <-> 1676 +1814 <-> 358, 485, 920, 1814 +1815 <-> 211 +1816 <-> 632 +1817 <-> 513, 1585 +1818 <-> 1149, 1352 +1819 <-> 632, 717 +1820 <-> 465, 1592 +1821 <-> 46, 257, 1230 +1822 <-> 492 +1823 <-> 1227, 1891 +1824 <-> 247, 1206 +1825 <-> 182, 865 +1826 <-> 501 +1827 <-> 3, 1071, 1275 +1828 <-> 29 +1829 <-> 139 +1830 <-> 1758 +1831 <-> 542 +1832 <-> 1862 +1833 <-> 1577 +1834 <-> 151, 826, 1739, 1882 +1835 <-> 828, 1345, 1751, 1835 +1836 <-> 45, 677 +1837 <-> 1230, 1321 +1838 <-> 165, 1856 +1839 <-> 1842, 1953 +1840 <-> 183, 1556 +1841 <-> 554, 1757 +1842 <-> 884, 1839 +1843 <-> 464, 809 +1844 <-> 291, 570, 1151 +1845 <-> 1378 +1846 <-> 1677, 1779 +1847 <-> 374, 1613 +1848 <-> 204, 412 +1849 <-> 626, 1570 +1850 <-> 1850 +1851 <-> 1308 +1852 <-> 228, 455 +1853 <-> 454, 1114, 1494, 1579 +1854 <-> 268, 596 +1855 <-> 1855 +1856 <-> 1838 +1857 <-> 61 +1858 <-> 336, 1786, 1801, 1937 +1859 <-> 1908 +1860 <-> 1199, 1346, 1396 +1861 <-> 1861 +1862 <-> 1429, 1709, 1832, 1900 +1863 <-> 9 +1864 <-> 41, 1975 +1865 <-> 673, 1408, 1788 +1866 <-> 966, 1873 +1867 <-> 914 +1868 <-> 330, 520, 960, 1761 +1869 <-> 2, 834 +1870 <-> 1244, 1422 +1871 <-> 1119 +1872 <-> 1784 +1873 <-> 242, 1866 +1874 <-> 337, 1109, 1131 +1875 <-> 795, 1403 +1876 <-> 258, 1754 +1877 <-> 34 +1878 <-> 481, 1691, 1758 +1879 <-> 1076, 1461 +1880 <-> 147, 410, 1723 +1881 <-> 520, 764, 1392, 1955 +1882 <-> 1834 +1883 <-> 319, 514 +1884 <-> 1969 +1885 <-> 740, 870, 1049 +1886 <-> 1013, 1368 +1887 <-> 1887 +1888 <-> 954, 1252, 1738 +1889 <-> 977 +1890 <-> 446, 530 +1891 <-> 1823 +1892 <-> 1124, 1892 +1893 <-> 395, 1187, 1893 +1894 <-> 988 +1895 <-> 733, 1681 +1896 <-> 11 +1897 <-> 77, 801 +1898 <-> 545, 1898 +1899 <-> 1005, 1293 +1900 <-> 511, 1276, 1862 +1901 <-> 1086, 1200 +1902 <-> 410 +1903 <-> 315, 990 +1904 <-> 422 +1905 <-> 1288, 1905 +1906 <-> 1229 +1907 <-> 1478, 1580 +1908 <-> 1464, 1644, 1859 +1909 <-> 706, 1360 +1910 <-> 569 +1911 <-> 310, 850, 1715 +1912 <-> 1912 +1913 <-> 279, 1132 +1914 <-> 614, 929, 1727 +1915 <-> 1474, 1775 +1916 <-> 1916 +1917 <-> 1258 +1918 <-> 382, 1777 +1919 <-> 41, 653 +1920 <-> 1280, 1637 +1921 <-> 933, 1506 +1922 <-> 167 +1923 <-> 857 +1924 <-> 222, 1526, 1924 +1925 <-> 231, 367, 1925 +1926 <-> 385, 422, 986 +1927 <-> 321, 513, 553 +1928 <-> 728, 1226 +1929 <-> 912, 952, 1965 +1930 <-> 1442 +1931 <-> 1073, 1489 +1932 <-> 1248, 1932 +1933 <-> 499, 877, 1098, 1385 +1934 <-> 1165 +1935 <-> 37, 631 +1936 <-> 283, 757, 1262 +1937 <-> 1858 +1938 <-> 109, 555, 1102 +1939 <-> 1085, 1329, 1577 +1940 <-> 902, 1940 +1941 <-> 364, 583 +1942 <-> 719, 1281 +1943 <-> 609, 760 +1944 <-> 230 +1945 <-> 1391, 1642 +1946 <-> 1093, 1426, 1516 +1947 <-> 1153 +1948 <-> 212, 296, 500, 1684 +1949 <-> 152, 737, 1386 +1950 <-> 133, 296 +1951 <-> 919, 1951 +1952 <-> 921 +1953 <-> 978, 1839 +1954 <-> 657 +1955 <-> 975, 1881 +1956 <-> 55, 71, 235, 742 +1957 <-> 1029, 1648 +1958 <-> 1958 +1959 <-> 886 +1960 <-> 196, 301, 495 +1961 <-> 674 +1962 <-> 576, 1022, 1047 +1963 <-> 883 +1964 <-> 832, 1195, 1610 +1965 <-> 1929 +1966 <-> 745, 1308 +1967 <-> 751 +1968 <-> 524, 1968 +1969 <-> 1076, 1184, 1790, 1884 +1970 <-> 983, 1970 +1971 <-> 1463 +1972 <-> 1730 +1973 <-> 457, 1318, 1421 +1974 <-> 1328, 1497, 1974 +1975 <-> 170, 1135, 1864 +1976 <-> 1596 +1977 <-> 70, 943, 1008 +1978 <-> 804 +1979 <-> 631 +1980 <-> 522, 742, 1743 +1981 <-> 1211, 1374 +1982 <-> 597, 1685, 1728 +1983 <-> 30, 931, 1313 +1984 <-> 109, 720 +1985 <-> 111 +1986 <-> 767 +1987 <-> 418, 701, 850 +1988 <-> 1061 +1989 <-> 1624 +1990 <-> 744 +1991 <-> 316 +1992 <-> 346, 562, 1040, 1081 +1993 <-> 685 +1994 <-> 573 +1995 <-> 381, 676, 1637, 1995 +1996 <-> 576, 652 +1997 <-> 554 +1998 <-> 168 +1999 <-> 818 diff --git a/2017/12/test.txt b/2017/12/test.txt new file mode 100644 index 0000000..71c34d4 --- /dev/null +++ b/2017/12/test.txt @@ -0,0 +1,7 @@ +0 <-> 2 +1 <-> 1 +2 <-> 0, 3, 4 +3 <-> 2, 4 +4 <-> 2, 3, 6 +5 <-> 6 +6 <-> 4, 5 diff --git a/2017/13/day13.hs b/2017/13/day13.hs new file mode 100644 index 0000000..b8a18da --- /dev/null +++ b/2017/13/day13.hs @@ -0,0 +1,31 @@ +#!/usr/bin/env stack +-- stack --resolver lts-9.18 script --package ghc --package text + +{-# LANGUAGE OverloadedStrings #-} +import Data.Text (Text) +import qualified Data.Text as T +import Util (filterByList) +import Data.List + +caught :: [Int] -> [Int] -> [Bool] +caught = zipWith (\d k -> d `rem` (2*(k-1)) == 0) + +severity :: [Int] -> [Int] -> [Bool] -> Int +severity depths ranges catches = + sum $ zipWith (*) depths' ranges' + where depths' = filterByList catches depths + ranges' = filterByList catches ranges + +findDelay :: Int -> [Int] -> [Int] -> Int +findDelay dt depths ranges = + if not . or $ caught (map (+dt) depths) ranges then + dt + else findDelay (dt+1) depths ranges + +main :: IO () +main = do + contents <- T.lines . T.pack <$> getContents + let depths:ranges:_ = transpose $ map (read . T.unpack) . T.splitOn ": " <$> contents + putStrLn . show $ severity depths ranges (caught depths ranges) + putStrLn . show $ findDelay 0 depths ranges + diff --git a/2017/13/input.txt b/2017/13/input.txt new file mode 100644 index 0000000..f662c0c --- /dev/null +++ b/2017/13/input.txt @@ -0,0 +1,43 @@ +0: 3 +1: 2 +2: 4 +4: 4 +6: 5 +8: 6 +10: 6 +12: 8 +14: 6 +16: 6 +18: 9 +20: 8 +22: 8 +24: 8 +26: 12 +28: 8 +30: 12 +32: 12 +34: 12 +36: 10 +38: 14 +40: 12 +42: 10 +44: 8 +46: 12 +48: 14 +50: 12 +52: 14 +54: 14 +56: 14 +58: 12 +62: 14 +64: 12 +66: 12 +68: 14 +70: 14 +72: 14 +74: 17 +76: 14 +78: 18 +84: 14 +90: 20 +92: 14 diff --git a/2017/14/day14.hs b/2017/14/day14.hs new file mode 100644 index 0000000..1e7057d --- /dev/null +++ b/2017/14/day14.hs @@ -0,0 +1,41 @@ +#!/usr/bin/env stack +-- stack --resolver lts-9.18 script + +import Data.List +import Data.List.Split +import Data.Char +import Data.Bits +import Text.Printf + +twist :: [Int] -> Int -> Int -> [Int] +twist xs len skip = + end ++ start + where (knot, keep) = splitAt len xs + (start, end) = splitAt skip $ keep ++ reverse knot + +twists :: [Int] -> [Int] -> Int -> [Int] +twists list [] k = list +twists list (x:xs) k = twists (twist list x k) xs (k+1) + +hashRound :: Int -> [Int] -> [Int] +hashRound n lens = drop rot list ++ take rot list + where list = foldl' (\acc (x,k) -> twist acc x k) [0..(n-1)] $ zip lens (cycle [0..(n-1)]) + rot = n - (sum (zipWith (+) [0..] lens) `rem` n) + +sparseHash :: [Int] -> [Int] +sparseHash lengths = + hashRound 256 . concat . replicate 64 $ lengths ++ [17, 31, 73, 47, 23] + +denseHash :: [Int] -> [Int] +denseHash h = foldr xor 0 <$> chunksOf 16 h + +grid :: String -> [[Int]] +grid input = + map (denseHash . sparseHash . map ord . ((input++"-")++) . show) [0..127] + +main :: IO () +main = do + let input = "stpzcrnm" + let g = grid input + mapM_ (putStrLn . concatMap (printf "%08b")) g + print . length . filter (=='1') . concat $ map (concatMap (printf "%08b")) g diff --git a/2017/15/day15.hs b/2017/15/day15.hs new file mode 100644 index 0000000..8dbba3e --- /dev/null +++ b/2017/15/day15.hs @@ -0,0 +1,29 @@ +#!/usr/bin/env stack +-- stack --resolver lts-9.18 script + +import Data.Bits +import Data.List + +genA :: Integral a => a -> a +genA n = (16807 * n) `rem` 2147483647 + +genB :: Integral a => a -> a +genB n = (48271 * n) `rem` 2147483647 + +matchLowest16Bits :: (Bits a, Num a) => a -> a -> Bool +matchLowest16Bits n1 n2 = + n1 .&. 0xFFFF == n2 .&. 0xFFFF + +main :: IO () +main = do + let (inputA, inputB) = (783, 325) :: (Int, Int) + let n = 40000000 + let seqA = take n $ iterate genA inputA + let seqB = take n $ iterate genB inputB + print . foldl' (flip ((+) . fromEnum)) 0 $ zipWith matchLowest16Bits seqA seqB + let n' = 5000000 + let seqA' = take n' . filter (\k -> k `rem` 4 == 0) + $ iterate genA inputA + let seqB' = take n' . filter (\k -> k `rem` 8 == 0) + $ iterate genB inputB + print . foldl' (flip ((+) . fromEnum)) 0 $ zipWith matchLowest16Bits seqA' seqB' diff --git a/2017/16/day16.hs b/2017/16/day16.hs new file mode 100644 index 0000000..b9112e7 --- /dev/null +++ b/2017/16/day16.hs @@ -0,0 +1,112 @@ +#!/usr/bin/env stack +-- stack --resolver lts-9.18 script + +{-# LANGUAGE OverloadedStrings #-} + +import Data.Text (Text) +import qualified Data.Text as T +import Data.Attoparsec.Text +import Control.Applicative +import Data.List +import Data.Maybe +import Data.Monoid + +data Move = Spin Int | Exchange Int Int | Partner Char Char + deriving (Eq, Show) + +isPartner :: Move -> Bool +isPartner (Partner _ _) = True +isPartner _ = False + +parseSpin :: Parser Move +parseSpin = string "s" *> decimal >>= return . Spin + +parseExchange :: Parser Move +parseExchange = do + string "x" + a <- decimal + string "/" + b <- decimal + return $ Exchange a b + +parsePartner :: Parser Move +parsePartner = do + string "p" + a <- letter + string "/" + b <- letter + return $ Partner a b + +parseMove :: Parser Move +parseMove = parseSpin <|> parseExchange <|> parsePartner + +parseMoves :: Parser [Move] +parseMoves = parseMove `sepBy` (skipSpace *> string "," *> skipSpace) + +spin :: Int -> [a] -> [a] +spin n xs = end ++ start + where (start, end) = splitAt (length xs - n) xs + +exchange :: Int -> Int -> [a] -> [a] +exchange m n xs + | m == n = xs + | m > n = exchange n m xs + | otherwise = start ++ b:as ++ a:bs + where (start, end) = splitAt m xs + (a:as, b:bs) = splitAt (n-m) end + +partner :: Eq t => t -> t -> [t] -> [t] +partner a b xs = exchange m n xs + where Just m = elemIndex a xs + Just n = elemIndex b xs + +move :: [Char] -> Move -> [Char] +move xs (Spin n) = spin n xs +move xs (Exchange m n) = exchange m n xs +move xs (Partner a b) = partner a b xs + +findRepetition :: Eq a => [a] -> Maybe Int +findRepetition [] = Nothing +findRepetition (x:xs) = case elemIndices x xs of + [] -> Nothing + inds -> Just $ last inds + +moveMany 0 _ xs _ = xs +moveMany n seen xs (m:ms) = + if xs `elem` seen + then concat $ intersperse "\n" seen-- !! (length seen - n `rem` length seen) + else let xs' = move xs m in + moveMany (n-1) (xs:seen) xs' ms + +newtype Perm16 = Perm16 [Int] + deriving (Show, Eq) + +toPermutation :: Move -> Perm16 +toPermutation (Spin n) = Perm16 $ spin n [0..15] +toPermutation (Exchange m n) = Perm16 $ exchange m n [0..15] +toPermutation (Partner _ _) = Perm16 [0..15] + +instance Monoid Perm16 where + mempty = Perm16 [0..15] + mappend (Perm16 p1) (Perm16 p2) = Perm16 $ map (p1 !!) p2 + +applyPerm :: [b] -> Perm16 -> [b] +applyPerm xs (Perm16 p) = map (xs !!) p + +main :: IO () +main = do + contents <- T.pack <$> getContents + let Right moves = parseOnly parseMoves contents + let start = ['a'..'p'] + let partnerMoves = filter isPartner moves + -- print (length moves) + let positions = scanl' move start . concat $ replicate 1 moves + putStrLn $ last positions + let dance = mconcat . map toPermutation $ moves + putStrLn $ foldl' move (applyPerm start dance) partnerMoves + let thousanddance = iterate (<> dance) dance !! 1000 + let milliondance = iterate (<> thousanddance) thousanddance !! 1000 + let billiondance = iterate (<> milliondance) milliondance !! 1000 + print billiondance + let billionPartnerMoves = concat $ replicate 1000000000 partnerMoves + putStrLn $ foldl' move (applyPerm start billiondance) billionPartnerMoves diff --git a/2017/16/input.txt b/2017/16/input.txt new file mode 100644 index 0000000..340a7ee --- /dev/null +++ b/2017/16/input.txt @@ -0,0 +1 @@ +x15/1,s15,x2/3,s15,x11/1,pm/a,x6/0,s4,x8/7,s4,x12/9,pi/l,x10/2,s1,x8/15,s7,x13/3,s10,x10/8,pk/e,x4/9,po/j,x8/15,pd/c,x6/4,s15,x2/7,s15,x4/13,pk/o,x0/3,s5,x1/14,s2,x5/10,s8,x2/7,s14,x0/13,s1,x7/9,pa/l,x3/0,pp/o,x13/14,pa/m,x9/5,s11,x6/14,pf/p,x9/5,s6,x1/7,s13,x4/14,pb/k,x2/3,pg/o,x11/7,s15,x5/2,pp/i,x6/14,s11,x15/4,s8,po/d,x6/7,pb/l,x2/8,pf/a,x4/12,pk/h,x11/1,s15,x8/2,pe/n,s13,x15/4,pl/h,s6,po/p,x6/13,s9,ph/e,x2/11,s14,pk/o,s13,x7/15,s1,x10/5,pc/h,x15/3,pd/p,x13/4,s8,x7/8,s5,x4/14,s6,x1/6,s5,x12/9,s13,x2/3,s2,x13/11,s8,x10/6,s8,x1/5,s8,x13/12,s15,x11/4,pb/l,x2/14,s12,po/i,x6/11,ph/m,x13/15,pi/o,x2/11,ph/j,x8/15,pg/n,x2/13,s1,x1/14,s15,x4/3,s8,pe/h,x6/14,s11,x9/10,pg/f,s5,x14/7,s8,x6/11,pi/a,x2/7,s4,x3/12,pe/d,x8/9,s12,x14/10,pj/k,x0/12,s7,po/i,x9/3,s15,x11/0,s9,x1/10,pa/h,x0/3,s10,x2/8,pg/p,s8,x5/9,pc/a,x4/10,s7,x1/11,s13,x9/8,ph/j,x10/4,s7,x14/1,s4,x7/5,s1,x11/3,s4,x5/1,s3,x0/9,pm/a,x15/7,s9,x12/2,s2,x9/3,s5,x5/8,po/c,x4/14,s1,x2/3,s11,x12/7,s13,x1/5,s11,x2/0,s15,x9/1,s11,x13/4,s13,x1/6,s12,x12/4,ph/i,x13/7,s5,x6/1,s6,x2/13,pe/p,x5/12,pk/h,x9/2,s8,x1/0,pm/b,x10/3,pi/l,x8/13,pk/n,x5/9,s1,x15/12,s11,x4/11,pm/p,x14/2,s4,x15/8,s6,x0/6,pa/i,x3/2,pl/o,x10/7,pk/j,x12/15,pi/f,x8/2,s12,x0/15,pj/m,x11/4,s9,x10/5,pa/p,x15/11,po/l,s10,x10/14,s6,x0/3,pg/d,x6/12,s15,x0/7,s6,x1/15,s7,x10/9,pi/m,x5/11,pn/c,x7/15,s5,x0/10,s5,x2/8,s2,x5/11,s5,x7/0,po/h,x5/10,s3,x3/9,pc/d,x12/13,pm/f,x15/7,pd/h,x5/2,s1,x9/0,s7,x8/7,s2,x4/10,s7,x7/9,s6,x8/2,s2,x15/3,pc/o,x14/1,pe/k,x13/11,pa/p,x12/15,s13,x11/2,s7,x6/14,pk/e,x2/12,s5,x14/5,s2,x7/15,pc/h,x1/2,s5,x12/3,pe/m,s9,x15/6,s7,x8/11,s6,x7/14,s10,x2/10,s11,x3/5,pl/f,x6/12,pg/m,x4/13,s13,x1/2,ph/k,x0/14,s10,x4/13,s10,x3/14,s8,x10/12,s10,x6/0,s10,x3/14,pd/c,x10/12,s14,x0/5,pn/f,x12/11,s1,x0/5,s7,x6/10,s4,x4/5,s1,x12/7,po/l,x9/13,s5,x6/4,s10,x3/8,s8,x1/7,pa/c,x6/3,s12,x1/14,s12,x13/3,s3,x4/8,po/k,x13/7,s2,x5/14,s6,x13/6,pb/d,x4/9,pg/n,x12/2,s5,x7/3,s10,x11/8,s7,x5/7,pl/b,x6/15,pe/c,x4/5,s6,x6/10,s4,x12/13,pd/m,x2/7,s4,x0/14,s8,x2/15,s10,x11/8,pc/k,x15/12,s15,x8/2,pi/l,x14/9,s15,x3/6,pd/e,s8,x0/11,s11,x15/10,s12,x8/7,pj/b,x10/9,ph/d,x11/13,s11,x7/2,pa/f,x0/14,pb/h,x7/5,pa/l,x6/14,s12,x1/3,pe/g,s11,x6/15,s5,x8/12,s4,x10/6,ph/a,x7/1,s14,x5/6,s5,x10/13,s14,x9/15,s5,x7/4,pd/e,x8/1,s2,x14/2,s5,x6/10,pp/f,s6,po/m,x4/9,s4,ph/k,x11/14,pn/g,x1/4,s10,x10/5,s14,x15/4,s15,x5/7,s3,x11/14,s10,x8/13,s8,pj/p,x9/1,ph/l,x8/5,s3,x0/2,pk/n,x1/15,s7,x13/8,s11,x11/15,pa/o,x2/9,s7,x12/10,s14,x2/7,s12,x4/13,s7,x5/7,pd/n,s11,x0/11,pp/f,x15/9,ph/e,x4/1,s6,x7/9,s15,x2/13,s4,x9/15,pf/c,x3/5,s8,x2/6,s14,x7/15,po/j,x9/1,s7,x2/13,s2,x12/6,pe/p,x1/5,ph/d,s8,x12/11,po/l,x5/9,s14,pc/a,x3/11,s14,x9/15,pm/b,x11/4,pc/e,x1/14,pl/o,x5/3,ph/f,x4/1,pj/g,s11,x3/14,s6,pm/l,x11/6,po/k,x4/13,pc/p,x1/5,s8,x8/9,s5,x12/1,s5,x11/14,s8,x6/5,po/j,x1/3,pp/d,x8/13,s15,x12/10,pl/e,x11/15,s13,x4/13,pi/n,s12,x15/10,pf/k,s13,pl/d,x6/8,s11,pc/b,x12/1,s4,pa/l,x6/8,pc/e,x3/13,po/a,x4/0,s2,x13/5,s3,x0/6,pd/f,x11/10,s3,x13/12,s14,x6/8,pm/a,x14/3,s9,x9/15,pn/e,x3/11,s11,x1/8,s1,x15/3,s14,x5/7,s4,pm/i,s13,x10/4,s1,x0/14,s13,x12/5,s3,pk/o,s6,pm/d,x2/13,s10,x3/0,pl/b,x9/13,pc/e,x6/0,pm/h,x2/12,s3,x11/7,s13,x13/3,s13,x4/1,s13,x9/12,s13,x7/13,pc/a,x12/8,s6,x3/15,pm/h,x12/8,s3,x10/3,s14,x0/4,s9,x12/13,pi/e,x4/3,pj/l,x1/2,s8,x7/4,s4,x6/10,s1,x15/12,ph/i,x0/3,s5,x7/13,s8,x9/0,pd/e,x2/6,s6,pf/h,s7,x0/11,s10,x10/6,s10,x9/2,s1,x7/12,pl/a,x6/1,ph/e,x10/8,pn/l,x15/5,po/h,x12/8,s12,pj/f,x9/14,s7,x15/0,s9,x14/11,s2,x13/8,s2,x15/9,pk/d,s3,x0/6,s14,x2/1,s15,x7/3,s3,x15/4,s4,x11/1,pm/g,x12/13,s9,x11/6,s12,x0/13,s2,x6/8,s8,x12/2,pi/l,x15/8,s4,x11/1,s14,x4/2,pd/o,x7/3,s10,x11/4,pk/b,x1/0,pm/a,x6/11,s10,pd/c,x9/7,pm/f,s14,x14/12,s13,x0/10,s6,x5/1,s10,x10/14,pg/e,x15/1,pb/p,x9/10,s12,x6/12,s1,x4/11,s1,pi/d,x8/10,s3,x1/3,pf/n,x2/10,s14,x1/3,s14,x10/9,s1,x7/11,pm/d,x4/10,pe/l,x0/9,ph/p,x2/11,s3,pc/g,x0/8,pb/o,x4/11,s12,x12/8,pf/p,s15,pm/b,x5/4,pj/d,x12/9,s12,x5/6,pe/b,x11/10,s5,x0/13,pp/d,s9,x6/1,s5,x5/14,s10,x12/3,s3,x5/8,s10,x0/13,s11,x7/2,s10,x13/15,s10,x4/9,s8,x11/5,s11,pg/b,x9/3,pf/a,s1,pi/l,x6/7,s2,x13/11,s3,x0/4,s10,x8/15,s10,x5/4,s14,x11/12,s9,x13/8,s1,x11/0,pa/h,x1/4,pe/k,x8/3,pi/f,x2/5,s3,x4/0,s11,x9/7,s6,x15/2,pc/b,x6/10,s15,pf/o,x3/1,s15,x14/8,s4,pl/d,x1/10,s4,x7/9,pa/h,x14/15,s14,x12/4,s8,x15/3,s11,x0/10,s5,x13/5,s10,x4/1,s13,pg/p,x15/6,s10,x11/3,s11,x10/0,s3,x4/1,s3,x14/2,s4,x13/11,ph/n,x9/5,po/m,s14,ph/e,x15/7,s10,x11/3,s4,x6/13,pj/d,x5/12,pb/g,x9/14,ph/k,x12/8,po/c,s9,x6/15,pl/f,x3/0,pc/k,x12/11,pa/e,s6,x9/15,s11,x13/11,s13,x6/10,s4,x14/11,pp/k,x1/13,pa/c,x15/10,pn/m,x3/4,s12,x7/6,s6,x8/3,pl/g,x10/2,s5,x3/13,pp/k,x7/9,s12,x11/4,pd/m,s7,x7/15,s10,x14/9,pe/p,x6/8,s12,x2/10,s4,pd/j,x7/5,ph/c,x0/9,s10,x8/1,s4,x11/5,pg/k,x13/10,s10,x9/5,pe/a,x7/14,pn/m,x4/1,s6,x8/13,pb/k,x6/2,s14,x5/15,pa/p,x2/14,s3,x4/11,pd/k,x9/1,pi/j,x4/7,s2,x5/9,s13,x1/15,s9,ph/n,s8,x7/12,pj/k,x13/11,pp/g,x0/14,s8,pc/l,x5/11,ph/f,x14/2,s3,x7/15,s1,x5/2,s5,x14/7,s10,x13/1,pb/g,x15/3,s4,x10/0,s14,x7/9,s4,x12/4,s14,x8/13,ph/k,x3/10,po/i,x5/4,s12,x1/2,pc/b,x4/13,pg/m,x11/15,pp/h,x7/12,pe/d,x4/15,pa/n,x5/1,s14,pi/k,x4/8,ph/o,x10/9,s9,x2/8,pi/b,s4,x14/6,pj/d,x1/7,s10,x0/9,s9,pg/o,x12/8,pb/m,x5/10,s9,x7/1,s4,x11/9,s9,x12/14,s9,x1/7,s13,x3/15,pf/n,x6/10,po/b,x2/9,s8,x12/13,s13,pn/f,x15/1,pb/j,x10/8,s10,x6/15,pd/a,x13/2,s12,x12/15,pc/e,x10/13,s2,x2/0,s10,pp/b,s6,x9/1,s13,x4/7,pg/e,x12/5,s15,x9/8,ph/n,x15/13,s13,x2/8,s3,x14/0,pa/e,x13/12,pl/c,s6,x2/0,ph/n,x3/5,s2,pf/l,x1/9,pp/m,x2/5,s1,x4/8,s6,x7/6,s9,x0/2,s7,x12/13,s10,x11/14,s1,x6/7,s5,x1/3,pi/c,x12/15,s15,x8/2,s13,x11/3,s10,x0/9,pd/o,x5/13,s1,pk/n,x2/10,pp/b,x7/12,s3,x8/1,s11,x7/6,pc/i,x13/5,s4,x0/6,s15,x9/11,pn/o,x14/15,s13,x5/12,pp/m,x13/0,s5,x9/11,s12,x1/6,s6,x0/2,s7,x12/7,pn/l,x14/11,s11,x10/6,s13,x9/12,s14,x14/8,pg/i,x9/3,s6,x7/14,pk/l,x6/0,pg/a,x7/4,pp/i,s7,x3/5,s12,x8/10,pc/b,x0/5,pn/f,x7/6,s15,pj/l,s4,x2/5,pi/n,x10/9,pk/p,x5/8,s9,x15/10,s3,x5/14,s12,x15/7,s13,x1/9,s12,x11/0,pa/o,x13/6,s2,x10/14,s4,x1/11,s7,x14/8,s10,x12/7,pl/e,s7,pi/m,x6/3,s7,x13/12,pb/a,x5/4,s2,x8/10,s14,x15/6,pm/j,x9/13,s8,x1/3,s10,x15/9,s3,x2/13,pf/d,s4,x3/5,po/c,x2/9,pg/p,x5/14,pc/e,s6,x10/3,pk/l,x8/2,pb/g,x13/3,pd/f,x7/9,s10,x2/4,pc/b,x1/14,po/n,x2/10,s11,x1/0,pp/a,x13/4,pe/n,x9/0,s7,x5/13,pd/m,x4/10,s14,x11/8,s7,x9/13,pl/c,x12/1,pi/j,x6/2,s10,x14/7,pn/p,x1/6,s13,x13/0,s11,x4/9,s12,x5/7,pe/c,x0/13,po/a,x1/9,s13,pc/m,x6/14,pj/k,x8/2,s9,pn/g,x4/12,s9,x2/6,s12,x3/1,s4,x2/11,s11,x10/8,s9,x7/15,pp/m,x1/5,pk/b,s9,x14/12,pd/c,x1/13,s1,x11/0,s10,x5/6,s4,x10/1,s2,x8/11,s6,po/k,s9,x13/9,pe/g,x12/6,po/n,x14/13,s3,x6/2,s15,x11/3,s5,x14/2,s5,x6/12,s11,x9/14,s5,x1/4,pe/p,x15/10,s3,x1/12,pb/d,s5,x9/4,s9,x7/1,pg/p,x14/3,pl/i,x7/6,pp/d,x9/0,ph/e,x12/8,pp/k,x10/5,s2,x11/14,s14,x13/15,s5,x8/12,pf/g,x2/13,s11,x5/6,s13,x12/15,s10,x6/3,pe/p,x15/7,s1,x11/5,s8,x10/0,pc/i,x8/1,s8,pj/g,x7/0,pc/o,x6/10,pp/i,x15/13,pb/c,x0/1,pj/o,x12/4,s11,x1/13,pc/n,x7/11,s13,x14/10,ph/o,x1/2,pi/d,x0/15,pa/b,x7/4,s11,x0/8,s14,pn/c,s8,x13/1,s7,x9/4,pb/p,x3/13,s12,pi/l,s5,x15/8,s14,x10/0,ph/c,s8,x8/14,pl/p,x13/2,pd/h,x9/14,pp/o,x2/0,s12,x15/1,pg/n,x14/7,s1,x2/13,po/d,x5/0,pf/l,x10/4,s5,x0/12,s11,ph/d,s7,x8/15,s9,x0/6,pj/g,x13/11,pk/f,x14/3,s10,x7/12,pe/l,x9/6,s4,x0/3,s11,x4/10,po/n,s3,pd/p,x5/7,pi/f,x3/6,s2,x1/15,s1,pm/a,x4/0,s7,x5/2,pf/o,x6/11,pg/b,x3/1,s8,x15/10,ph/l,x5/6,s12,x8/4,s11,x0/7,s4,x8/6,s10,x10/4,s3,x6/9,pa/g,x2/7,s12,x11/3,pe/l,x14/0,s7,x8/12,s10,x3/10,pg/b,s1,x2/9,s13,x7/5,s1,x13/3,pd/n,x2/14,s10,x13/8,s10,x14/11,pp/h,s12,x8/4,s2,x3/9,po/j,x1/11,s5,x6/5,s9,x12/0,s12,x13/14,s2,x6/11,s10,x9/14,pd/g,x0/6,s13,pi/j,x3/4,s11,x1/10,po/h,x2/5,s12,x14/3,pj/l,s3,x12/10,s1,pm/e,s4,pb/k,x3/8,ph/c,x9/11,pg/n,x7/15,pm/l,s11,x8/6,s6,x2/7,s4,x0/3,s8,pb/h,x11/2,s8,x15/6,s3,x2/14,s4,x7/6,s4,x12/15,s6,pc/a,x6/13,pj/e,x10/3,pp/m,x15/2,s8,x10/3,ph/o,x7/8,s2,x3/13,pk/d,x15/5,pi/e,s9,x14/9,pc/g,x5/11,pe/p,x13/2,s5,x10/8,s14,x11/4,s1,x14/9,s6,x2/3,s15,x10/11,ph/o,x14/5,pf/i,x9/7,s1,x8/14,pb/g,x5/10,s3,x9/0,s12,x13/2,s5,pa/f,s6,x14/7,s8,x15/3,s9,x13/9,s15,x10/0,s10,x7/5,pe/h,x2/11,s11,x4/10,s1,x7/6,pn/d,x10/9,pb/o,x6/13,s14,x3/1,pj/g,x12/0,pi/h,x2/14,s15,x9/1,s13,x11/14,pm/d,x13/7,pg/o,x12/14,s9,x13/10,s2,x0/1,s6,x7/13,s7,x6/12,s4,pe/j,x13/9,ph/p,s14,x2/4,s11,x1/8,pg/o,x14/9,s12,x6/8,s3,x12/14,s6,x7/6,s15,x2/1,s10,x10/7,s6,x3/9,s1,x12/2,pa/l,x11/5,pc/m,s9,x4/7,s3,x12/14,pk/b,s15,x8/3,s12,x4/9,pg/i,x8/1,pn/o,x12/4,s2,x8/15,pb/f,x1/14,s5,x10/7,s4,x8/12,pp/e,x0/13,s1,x8/3,s10,x9/5,s4,x13/4,pb/g,x11/1,pi/c,x7/9,po/d,x12/14,s2,x0/15,pp/e,x13/9,pj/n,x7/2,s11,x13/14,s6,x11/12,pm/a,s1,x4/0,ph/j,s14,x15/9,pa/l,x4/14,s5,x13/6,s3,x14/8,s9,x11/15,s4,x2/1,po/g,s2,x11/3,s2,x8/0,pp/f,x5/1,s5,x7/0,s7,pa/c,x8/11,pf/h,x14/6,pm/c,x9/8,s1,x13/3,pb/n,s4,x1/9,s15,pc/a,x12/5,pp/i,x14/15,s3,x9/13,pj/d,s3,x15/1,s3,x13/2,s12,pf/o,x8/4,pg/b,x12/6,s9,x0/2,s15,x9/1,pj/l,x10/7,pb/d,x2/0,s14,po/k,x3/5,s10,x7/1,pm/j,s13,x14/2,pn/l,s14,x3/13,s7,x6/11,pj/k,s15,x10/15,s10,x2/12,pn/e,x11/14,s8,x7/9,s8,x12/2,s6,x8/7,s4,pk/g,x12/5,pi/b,x9/7,s11,x2/1,pa/e,s12,x11/10,pd/l,x7/13,pb/i,x11/10,pa/p,x9/3,pn/f,x1/13,s9,pg/a,x8/2,pi/b,x7/14,pn/l,x10/13,s10,x6/15,pp/k,x5/11,s14,x14/7,s4,x1/6,pl/n,x4/7,s1,x8/15,pf/i,x2/9,s5,x11/0,pl/e,x13/5,pf/o,x1/15,s9,x11/10,pi/e,x8/15,s5,x9/1,s9,x8/7,s14,x0/5,pa/g,x4/8,s10,x6/14,s3,x7/10,s15,x8/9,s11,x7/13,pb/p,x1/12,s8,x9/15,s11,x11/14,s12,x13/1,pe/g,x0/5,s1,x12/11,pi/l,x6/2,s15,x14/9,pn/f,s13,x13/7,s12,x5/6,pm/j,x11/7,s4,x9/13,pk/a,x10/7,s13,x3/14,s6,x10/5,pp/i,x6/11,pn/m,x8/4,s9,x6/0,pd/i,x3/9,pk/b,x8/11,s11,x7/3,pf/c,x8/0,ph/a,x10/3,s1,x6/9,s4,x4/0,s4,x14/12,s14,x15/4,pm/o,x9/5,s11,x10/13,pf/d,x14/8,pg/h,x3/7,s15,x9/0,pd/c,x5/12,s1,x13/9,s1,x15/7,s4,x12/4,s10,x15/5,s11,x13/2,s11,pa/f,x11/7,s15,x14/10,s14,x15/2,s10,x13/8,s15,x4/0,s7,x10/14,pm/l,x15/1,s3,x5/4,s13,x2/10,s4,x8/3,pn/o,x9/15,pd/a,x14/2,s4,x13/10,s9,x2/3,pj/g,x9/4,s1,x3/7,s9,x5/9,s5,x14/7,s14,x0/11,s1,x7/5,pc/o,x8/11,pd/p,x3/2,pf/b,x10/5,s7,pm/c,x11/7,s4,x15/3,s6,x4/9,s12,x0/15,pl/i,s11,x11/3,s6,x4/5,pj/m,x6/2,s9,x10/7,po/h,x9/1,s15,x0/5,s7,x11/4,pf/g,x14/6,pi/n,x5/13,pj/b,x7/11,s15,x5/12,pn/e,x2/4,pg/l,x15/5,s10,x4/0,pp/k,x3/13,s8,x11/2,s15,x4/14,s13,pf/e,x8/0,pj/b,s3,x10/1,pk/i,x11/14,s10,x9/15,s14,x11/4,pg/c,x3/5,s11,x14/4,pd/a,x1/0,pi/f,x15/2,pm/c,x5/4,s1,pj/b,x8/0,ph/e,x15/3,s14,x14/6,pa/n,x10/0,s3,x6/13,pd/k,x9/8,pi/o,x13/6,s7,x15/5,pl/e,x1/0,s2,x6/12,s14,x4/10,s7,x12/15,s1,x14/7,pm/d,x12/3,s4,x0/7,pl/c,x10/8,s15,x14/12,s1,x10/15,s4,x3/0,s8,x5/7,s13,x0/11,s9,x14/3,s2,x9/2,ph/j,x11/12,pn/o,x1/8,s10,x11/13,pe/c,x5/6,s5,x1/3,pl/h,x14/12,s3,x4/0,s3,x1/6,pb/e,s4,x11/12,s8,x2/14,s14,x11/15,s8,x13/6,s7,x9/11,s6,x0/7,pj/p,x1/2,s11,x8/14,s14,pd/k,x10/9,pm/f,x13/3,s9,po/h,x1/10,s15,x0/8,s4,x15/3,s12,x8/6,s14,x10/1,pn/b,x12/4,s11,x3/1,s6,pd/e,x0/14,pi/k,x3/2,pb/h,x11/15,s14,x14/7,pd/l,x0/10,s10,x2/9,s14,x12/14,s3,x2/6,s14,x7/8,s8,x2/4,s9,x15/0,pk/o,x7/13,s3,x6/11,pg/h,x13/2,pl/e,x0/8,pa/k,s14,x12/14,s1,x15/0,pb/e,x9/6,pd/h,x10/13,s4,x8/9,pk/i,s12,x5/4,pa/l,x15/8,s10,x11/14,s13,x12/4,s1,x7/2,pb/e,x12/11,s10,x9/1,s2,x2/10,s1,x7/9,s13,x13/5,pc/i,x4/9,s3,x13/7,pn/b,s8,x8/12,pm/h,x10/15,s15,x5/8,s3,x7/2,s11,x14/6,s10,pl/e,x3/7,s1,x8/14,pk/m,x15/6,s8,x0/2,pa/h,x1/13,pi/n,x12/0,pj/k,x3/4,pl/i,x12/14,pn/o,x3/11,s3,x13/7,pk/j,x11/9,pe/c,x0/5,pf/l,x8/3,pm/b,x14/10,s14,x1/4,s10,x3/5,s5,x14/6,s6,x2/10,s14,x9/11,s15,x0/2,s8,x6/5,s2,x4/9,pj/p,s5,x3/5,s10,x14/6,pa/h,x12/4,s10,x10/8,s8,x6/7,s1,x11/5,pk/n,x4/0,pb/h,s15,x11/1,s4,x2/13,s12,x1/11,pk/d,x12/8,pf/n,s1,x15/1,pg/m,x13/10,s7,x2/11,pi/j,x7/8,s7,x6/10,s10,x0/11,pc/g,x12/2,pn/o,x1/15,s7,x0/6,s7,x3/8,s13,x7/5,s9,x4/2,s11,x13/14,s10,x3/5,s11,x4/2,pp/m,x14/10,s5,pb/g,x7/0,s14,x5/13,s8,x3/10,s7,x7/13,s3,x2/5,pk/e,s13,x0/7,pf/p,x1/9,pa/n,x4/14,s5,x10/6,s10,x13/8,s15,x9/14,s7,x11/7,s13,x15/3,s10,x2/8,pg/l,x5/1,s3,x14/13,s6,x10/1,po/h,x5/8,pn/p,x1/7,s13,x11/0,s15,x13/2,pf/b,x5/12,pk/d,x15/3,s2,x4/1,pn/b,x2/11,s1,x5/0,pf/j,x4/15,s12,x0/9,pc/h,x1/7,s5,x8/6,pf/a,x11/0,ph/j,x8/10,s1,x12/2,po/e,x10/14,pl/f,x7/13,pp/b,x4/11,pd/o,x2/0,pk/c,x6/3,pn/p,x14/7,s9,x0/6,s3,x10/12,s5,x7/8,s12,x1/12,s4,x5/2,s2,x1/4,s11,pb/d,x6/9,pm/c,x10/3,s2,x7/14,pe/j,x2/13,pb/m,x8/15,pc/a,x1/11,s15,x2/4,pe/d,s11,x3/10,s8,pa/n,x12/7,pd/o,s14,x0/1,s10,pf/a,x10/8,ph/d,x1/12,s7,x3/5,pk/e,x1/12,ph/j,x11/10,s7,x5/3,s4,x14/2,pn/f,x1/15,pk/b,x7/9,s3,x12/6,pg/p,s7,x9/10,po/e,x14/11,pf/m,s4,x0/8,pk/h,x9/7,s12,x6/11,pm/f,x7/12,po/g,x8/2,pb/k,x9/5,s1,x14/7,s3,x6/13,s12,x10/0,s3,x1/14,s10,x0/11,s9,x14/15,s11,x11/7,s13,x15/4,s10,x10/11,po/f,x12/2,pi/h,x10/13,s6,x6/4,pe/g,x9/14,s5,pd/b,x13/0,s13,x5/14,s7,x12/2,s4,x14/15,s2,pn/l,x6/9,pa/b,x1/0,pf/c,s9,x11/5,s13,pd/h,x12/7,s9,x1/15,pl/e,x3/7,s13,x5/8,s3,pp/h,x6/12,s4,pd/f,x0/8,s5,x14/11,pe/j,x15/9,s14,x6/13,s1,x11/8,s1,x5/14,pd/o,x0/12,s13,x11/1,pp/c,x13/5,s11,x9/10,s11,x5/3,s9,x8/15,s5,x3/14,pg/l,x12/9,s9,x8/7,s9,x5/4,s2,x6/15,s11,x1/2,pk/j,x7/0,pm/c,x8/10,s8,x1/3,pe/o,x2/6,pm/j,x9/10,s5,x15/5,s14,x0/2,s4,x15/11,s3,ph/d,x13/0,s1,x14/8,pm/b,x9/12,ph/o,x11/5,pg/l,x1/12,pe/i,s5,x10/13,po/k,x0/14,s4,x5/11,s10,x14/0,ph/b,x8/4,pa/o,x7/0,s1,x4/3,s13,x13/7,pc/l,x5/10,s1,x11/13,s8,x7/15,s10,x5/2,s3,pe/k,x10/0,pm/c,x4/15,s15,x11/12,pi/k,x1/10,s4,x4/0,s1,x13/1,s4,x0/2,pp/l,x12/8,s5,x14/0,s13,x11/8,pk/g,x12/0,s4,pi/n,x10/6,s12,x13/12,pe/f,x0/2,pl/n,x15/5,s12,x8/14,s14,x13/7,s3,x11/5,s8,x4/10,s3,x2/12,s10,x0/5,s12,x15/7,s5,x14/3,s11,x10/12,pb/c,x7/1,pn/o,s5,x2/4,s5,x11/0,s1,x15/1,pe/f,x8/11,pb/c,s11,pf/n,x13/5,pb/k,x11/3,s11,x14/5,pl/f,x6/3,s8,x12/15,s5,x2/6,po/m,x14/4,s1,x12/5,s12,x11/3,s11,x12/1,s2,x5/9,pe/g,x3/12,s7,x1/9,s11,pc/j,x13/10,s1,x3/11,pg/a,x9/8,pk/c,x13/6,ph/j,x0/9,s13,pc/n,x13/2,s10,x1/6,s14,x13/10,s14,x15/3,s12,pf/g,x0/9,s6,x1/3,s7,x4/0,s8,x2/14,s6,x11/4,s6,x7/2,s5,x6/12,s13,x7/0,s8,x9/13,s6,x7/2,pi/j,x11/9,s3,x2/5,s13,x14/3,pm/d,x11/8,s11,x6/10,s12,x13/12,s4,x9/14,ph/c,x10/11,s2,x0/14,s8,x1/3,s12,x2/6,pn/a,x8/9,s8,x3/0,s1,x13/4,ph/g,x8/12,s9,x9/13,s8,x10/15,s15,x3/4,pa/f,x1/15,s15,x13/6,s2,x9/5,po/n,x0/4,s8,x7/13,s1,x11/8,pf/g,x13/12,pn/l,x10/1,s7,x5/12,pk/b,s13,x14/11,s6,x1/15,ph/c,s5,x9/5,pf/j,s10,x11/7,s4,x12/9,pa/b,x11/15,s14,x13/2,pe/k,x4/10,s10,x2/12,pp/c,s10,x14/9,s8,pm/d,x12/15,pf/j,x10/8,s5,x15/4,s14,x0/9,pp/n,x14/11,s2,x2/5,s5,x0/6,pc/o,x5/2,s13,x7/1,pg/j,x9/6,s8,x0/1,s3,x13/14,pl/a,x4/12,s8,pn/i,x5/0,s13,x6/1,s1,x14/2,s11,x1/5,pl/c,x6/10,s7,x3/1,pj/i,x4/7,pm/g,x5/13,pb/a,x2/1,s7,x6/8,s15,x1/4,pd/o,x7/0,s9,x13/15,pe/m,x7/0,s7,x6/10,pg/n,x9/14,pc/j,x13/15,s11,x1/4,s15,x10/2,s15,x5/7,pl/g,x1/8,s6,x7/4,pn/d,x1/8,pg/b,x9/4,s1,x2/8,pa/c,x7/0,s10,x9/11,s11,x5/2,s9,x11/4,pb/g,x14/5,s13,x6/11,s13,x9/14,pl/o,x11/2,s2,x0/7,ph/f,s11,x14/1,s15,x6/10,s7,x8/14,po/i,x7/12,s6,x13/11,s14,pj/b,x1/9,po/h,x14/10,s7,x13/9,pm/n,x8/10,pk/b,s14,x6/11,pj/e,s14,x8/14,s9,x1/6,s14,x11/15,pn/b,s11,x1/12,s6,x14/9,s14,x3/1,s12,x11/5,ph/k,x14/9,s14,pl/d,x1/11,ph/m,x6/8,pn/i,x10/3,pp/f,x6/7,s2,x5/1,po/l,s7,x8/10,pn/p,x3/0,s15,x6/11,s11,x10/8,s15,x0/6,s7,x4/8,s7,x2/7,po/h,x3/6,s14,pj/b,x8/9,s10,pg/n,x6/1,pi/c,x10/7,pm/p,x13/3,pb/n,x1/9,pf/l,x7/5,s4,pb/n,x1/12,ph/f,x8/2,s5,x11/9,pj/o,x2/8,s3,x3/11,s1,x1/6,s13,x13/5,s3,x3/6,pi/p,s7,x8/11,pg/j,x5/9,po/h,x12/15,s7,x14/7,s8,x11/13,s11,x12/4,s10,pn/m,x9/7,s8,x11/3,s7,x10/0,s6,x3/13,po/l,x6/7,s4,x0/1,pj/k,x9/4,s5,x14/11,s3,x8/7,s9,x11/0,pc/b,x9/14,pk/j,x4/1,s2,x13/2,s2,x1/3,s12,x14/7,ph/n,x3/5,s2,x1/10,pc/g,x12/6,s9,ph/j,x10/3,s7,pf/p,x0/14,pm/g,x1/13,po/l,x0/10,s12,x11/12,pp/d,x6/7,s9,x14/2,s11,x11/5,s11,x6/7,s1,x5/13,s11,x7/1,s2,x10/8,pb/o,x2/14,s14,pl/f,x5/10,pm/k,x2/12,pj/l,x1/13,pn/m,x11/6,pf/j,x4/3,s10,x15/7,pe/m,x5/14,pd/c,s2,x0/10,pn/o,x3/5,s5,pa/d,x12/2,s10,x3/9,pj/h,x4/1,pb/n,x10/5,s7,x7/1,s3,x12/5,s2,x0/3,s6,x8/6,pg/e,s14,x15/12,po/i,x10/13,s5,x5/11,pk/b,s2,x10/14,s7,x12/5,s13,x9/2,pm/p,x7/4,s5,x9/15,s3,x6/4,s9,x12/11,pl/o,x1/9,s4,x12/11,s7,pa/h,x8/6,s2,x12/15,pe/k,s8,x4/13,s7,x14/10,s5,x12/11,s11,x4/0,s13,x7/6,s10,x8/12,pj/m,x3/6,pk/d,x1/4,s11,pc/n,x11/10,s14,x13/15,s7,x14/3,s11,pd/i,x15/4,s12,x14/6,s3,x10/7,s10,x0/1,pa/p,x11/9,pf/l,x7/2,ph/e,x3/0,pg/p,x5/1,ph/d,x7/8,s13,x0/10,pc/f,x3/12,po/n,x13/10,s15,x15/6,pc/g,x3/14,ph/a,x8/10,s9,x6/12,pc/l,x4/3,ph/e,x12/7,pn/a,x5/11,pi/g,x7/2,s12,x14/3,s11,x8/6,s5,x2/13,s7,x7/5,pd/m,x12/13,s15,x2/14,s7,x15/8,pe/k,x5/3,s10,x13/8,s3,x5/9,s12,x12/8,s7,x1/2,pn/c,x15/6,pm/e,x5/7,pb/i,x6/12,s11,pf/c,x9/5,s6,pl/h,x12/11,s11,x8/15,s12,x2/13,s10,x7/14,pk/n,x9/12,pl/c,s9,x6/10,pd/k,x14/5,s2,x3/4,s6,x2/10,s5,ph/n,x9/6,s4,x14/7,s3,x0/4,s6,pa/b,s15,x7/2,s4,x9/12,pc/e,x10/2,s11,x5/11,s9,x3/6,pm/k,x7/10,s3,x2/3,s14,x8/0,s15,x13/3,s4,pe/o,x11/14,ph/d,x13/2,s4,pp/f,x10/12,s4,x0/1,s12,x12/7,s9,x3/9,s13,x1/7,pd/h,x12/0,s2,pc/m,x2/1,pe/p,x13/12,s6,x8/2,s1,x7/14,s14,x12/0,pc/j,x11/8,s15,x13/5,pi/o,x10/15,s12,x12/8,pm/d,x14/5,s6,x9/6,pk/a,x10/1,s11,x3/11,s10,x13/1,s1,x15/4,pm/l,x2/10,s11,x7/8,s12,pk/p,s4,x0/14,pg/f,x12/1,s12,pc/o,x9/13,s4,x0/2,pf/b,x5/13,pn/m,x7/10,s11,x6/5,pa/i,x3/12,s7,x14/11,pc/k,s10,x4/7,s1,x2/0,pe/p,s6,x4/6,s4,x10/8,s2,pf/o,x4/9,s8,x13/2,s10,x0/14,s2,x1/10,s8,x14/9,s6,x1/8,s14,x12/14,s4,x15/7,pp/d,x9/14,pj/a,x7/3,pk/d,x9/8,po/e,x2/15,pm/h,x6/11,pa/d,s14,x5/2,s9,x10/9,s11,x1/8,po/e,x0/12,pf/p,x9/6,s15,x1/10,s8,x7/2,s10,x9/4,pa/n,x13/11,s10,x1/7,s13,x11/6,s5,x9/2,pk/d,x12/14,s5,x6/11,s9,x12/13,s13,x14/7,s4,x4/13,s11,x1/7,s15,x3/5,s3,x14/7,pn/b,x9/10,po/c,x7/6,s11,x0/4,s14,x12/7,s7,x13/10,pb/p,s11,x1/14,s15,x12/6,s3,x5/3,s6,x8/6,ph/o,x14/11,pd/n,x13/9,s11,x0/5,pe/f,x11/2,pn/o,x0/9,s1,x15/12,pc/b,x3/9,s12,x8/6,pp/f,x12/14,po/j,x10/15,s6,x3/12,s4,x9/5,s14,x2/3,s11,pi/m,x1/7,pn/a,x11/15,pi/m,s12,x10/1,pe/g,x0/8,s12,x13/11,s5,x9/1,pb/k,x8/0,s4,x6/11,pd/n,x3/0,s14,x7/5,s3,x0/1,ph/i,x7/11,s14,x12/2,pa/m,x15/10,s15,x11/8,s5,x9/4,pe/o,x6/3,pb/c,s2,x11/13,pp/a,s9,pg/c,x5/7,pb/d,s13,x8/9,s14,x3/12,s11,x13/8,s5,x14/10,pe/o,x5/8,s1,x14/1,s6,pc/f,x10/15,s9,x5/12,s7,x14/2,pj/l,s11,x3/6,pc/g,x1/0,s13,x8/11,s1,x9/12,s1,x13/2,s6,x3/12,pm/n,x13/7,s9,x0/14,pb/a,x4/15,pm/i,x12/14,s12,x5/15,pa/n,x13/10,s11,pg/j,x14/12,pl/o,x6/4,s9,x7/14,s15,x2/13,pn/c,x6/7,s10,x10/11,s7,x12/14,s10,x5/7,s14,x13/14,pj/i,x12/6,s15,x8/2,pk/e,x5/3,pi/p,x10/2,pa/d,x14/1,s5,x9/3,s9,x5/6,pi/c,s13,x1/4,pp/j,x7/10,pk/d,x1/14,s5,x11/9,pg/b,x7/5,s10,x6/15,pi/m,x0/5,s2,x4/11,pn/g,x7/6,pp/m,x3/12,s13,ph/a,x15/10,s3,x5/7,s11,pd/f,x14/2,pe/b,x7/4,s5,x12/11,pj/a,x15/13,s9,x10/1,s9,x11/5,pi/f,x2/15,pj/b,x10/12,s4,x9/4,pe/a,x6/15,s12,x14/3,s9,x2/8,s6,x7/12,s13,pi/h,x1/11,s10,x0/7,s13,x1/5,pb/p,x7/2,pa/e,x12/3,s5,x13/4,s6,x1/0,s8,x14/7,pb/c,x4/15,pp/h,x12/7,s9,pa/g,x1/11,s11,x10/15,pj/n,x7/5,pb/i,x8/6,pd/f,s3,x7/13,pb/m,x15/12,s6,x4/9,s9,x14/13,s3,x9/8,pi/k,x0/5,pp/j,x7/15,s12,x8/14,s9,x0/13,pd/n,x4/9,s14,x7/12,s11,x13/4,s8,x2/6,ph/g,x9/13,pc/i,x3/10,ph/o,s14,pl/e,s14,x13/4,s14,x2/5,s6,x0/7,s5,x14/13,s13,x6/4,s13,x15/9,s15,x13/11,s15,x10/12,pd/p,x13/7,pm/f,x14/11,s12,x15/7,s4,x3/13,s6,x11/15,pk/p,x8/10,pa/f,x7/2,pk/h,x10/9,s7,x2/15,s5,x12/6,s5,pg/e,x7/2,s7,x8/15,s8,x2/10,s11,x7/1,s13,x3/6,s13,x10/13,s4,x1/15,pj/d,s2,x8/2,s5,x0/15,s5,x4/6,s5,x12/1,s6,x10/15,s8,x6/3,s9,x14/9,s8,x15/6,s12,pm/l,x11/8,pf/c,s13,x13/15,s5,x1/9,s5,x6/5,pp/n,s6,x11/15,ph/g,x0/12,s2,x13/3,s6,x15/14,s6,x6/2,s15,x0/4,pm/b,x8/7,pj/p,x13/12,s12,x11/0,s8,pk/o,s1,x12/10,pl/h,s12,x2/11,pk/m,x3/1,po/c,x6/0,pf/b,x8/5,s7,x7/12,pn/g,s4,x3/9,s2,x0/11,s5,x3/14,s15,x8/1,pl/c,x0/2,pp/o,x12/1,pg/n,x5/4,s1,x9/14,s14,x8/15,s3,x1/0,pa/e,x2/8,po/i,x13/7,pc/a,x2/12,s7,x0/8,pp/m,x12/11,pc/o,s9,x0/3,s12,x14/6,pg/p,x10/11,pj/c,x0/2,s15,x10/11,s4,pk/p,x3/4,pl/a,x9/8,s6,x13/6,s13,x12/8,pn/h,x2/6,s3,x0/1,s12,x13/11,s14,x4/1,s2,x11/8,s11,x5/14,pe/i,x4/7,s6,x1/11,s6,x12/4,s1,x2/14,s8,x5/9,s1,x0/2,po/d,s15,pa/p,x8/4,s9,x11/15,s1,pl/g,x7/10,pk/f,s13,x2/3,po/i,x13/4,pf/l,x11/1,pn/c,x5/2,pa/g,x12/8,pb/p,x14/3,pf/j,x15/5,s1,x10/6,s13,x7/13,pa/o,x9/6,pf/j,x11/15,pn/o,x7/0,s6,x12/1,pf/l,x7/2,s12,x8/12,pi/c,x6/11,s4,x0/14,pk/h,x13/2,s8,x6/4,s9,x2/9,s9,x4/8,pd/j,x13/1,s7,x10/4,pc/n,x12/1,pa/j,x8/7,pm/c,x4/0,s11,x12/10,s8,x15/7,s2,x8/4,pd/g,x6/9,pb/c,x11/5,pn/f,x15/4,s7,x14/10,s11,x12/15,pi/a,x11/14,s15,x5/0,s2,x12/13,s3,x3/5,s4,x7/1,s4,x13/0,s3,x1/8,s2,x15/14,pp/f,x1/5,s1,x11/14,s5,x8/0,pc/m,x6/5,s15,x8/7,s6,x13/3,pg/a,x10/12,s3,x13/2,s8,x0/1,pe/n,x2/13,pi/p,s11,x11/0,ph/c,x7/2,s6,x6/8,pj/o,x9/13,s3,x4/14,s3,x3/9,s2,x8/1,s1,x5/3,pk/p,x9/2,pf/d,x4/5,s15,x0/10,pa/o,x1/7,s12,x9/10,pi/f,x1/12,pp/a,x14/10,s1,x11/13,pj/c,x15/7,pd/g,x9/13,s13,x8/12,s12,pm/n,x15/9,s12,pf/l,x4/6,s2,x1/13,s7,x11/14,s7,x1/12,s3,x7/14,s2,x11/15,s7,x8/12,s8,x11/13,s2,x6/0,s4,x4/8,s9,ph/c,x1/14,s10,pl/n,x12/2,s12,x3/7,pd/h,x10/14,po/k,x0/9,s7,x2/7,s2,x11/14,pj/i,x1/12,pd/a,s9,x7/11,s3,x13/0,pe/m,x5/2,pk/f,x13/14,ph/j,x11/6,pl/n,x8/15,pp/a,s7,x3/1,pe/d,x7/13,s4,x2/1,s4,x0/9,s5,x1/15,s4,x7/11,s11,x15/2,s5,x3/11,s14,x6/8,s9,x7/2,pg/h,x14/1,po/d,x7/8,s4,x1/5,pn/b,s11,x15/14,s9,x0/9,s7,x14/3,pm/d,s5,x15/9,s9,x6/2,pp/f,s3,x9/1,pe/j,x6/0,pk/a,x2/12,ph/m,s12,x6/1,s10,x14/13,s5,x12/15,s11,x11/13,pp/n,s4,pj/f,s12,x14/6,po/m,x5/10,pk/n,x3/14,s11,x13/6,s4,x8/2,s1,x1/11,pp/i,x10/9,pc/j,x6/12,s5,x14/11,pa/n,x3/4,pp/c,x14/11,pf/n,x13/1,s8,x3/7,pc/d,x11/2,pp/m,x7/15,s14,x1/8,pa/g,x15/9,s14,x1/11,pi/b,x3/7,s11,x13/9,pp/k,x6/3,ph/b,x4/7,pe/o,x10/9,pg/n,x12/6,ph/c,x1/7,s13,x14/0,pe/p,x15/2,pg/l,x0/11,pb/o,x7/8,pd/e,x14/6,pg/c,x9/3,ph/b,x5/11,s5,x14/12,s2,x9/13,s10,x2/7,s13,x5/0,s2,x15/4,s8,x10/7,s15,x8/4,pa/j,x0/10,s14,x12/3,pf/c,x2/7,s2,x8/1,s12,x15/14,pj/d,x11/1,s5,x9/4,s12,x14/5,pf/e,s3,x9/8,pj/i,x10/3,pa/l,s7,x8/12,s3,x13/4,pi/k,x9/7,s10,pb/m,x8/13,pd/c,s15,pl/f,x4/7,s7,x3/8,s3,x6/12,pi/k,x9/10,s13,x5/12,s13,x4/14,pf/p,x2/15,pn/j,x11/10,s6,x15/9,pa/k,s9,x2/3,s6,x6/15,s13,x8/1,pp/h,x6/7,pm/a,x13/4,pe/c,x1/6,s6,pg/d,x5/15,pm/n,s7,x3/2,s2,x10/8,s10,x6/4,pp/d,x5/1,pj/a,x2/10,s4,x0/4,pf/c,x6/7,ph/d,x11/15,s4,x5/13,s14,x10/9,pc/o,x7/12,pd/k,x1/3,s7,x14/2,pm/c,x5/12,pf/k,s9,x7/11,s14,po/n,x12/8,s10,x13/1,s8,x14/11,s3,x0/9,s5,x12/5,pa/d,x0/7,s10,x1/11,s13,x5/9,s10,x0/15,s10,x10/4,pl/o,x7/2,pa/c,x14/8,pk/b,x2/11,pm/g,x5/3,pn/d,x1/7,pg/j,x15/12,s9,x11/9,s3,x0/1,pp/d,x12/7,s5,x3/1,s3,x15/11,s5,x13/7,s1,x14/15,pg/k,x7/6,s7,x15/0,s6,x4/12,s11,x7/14,s7,pa/f,s12,x15/0,pi/e,s13,x5/10,pd/m,x11/8,ph/b,x2/7,s9,x12/15,pl/j,x9/13,s8,x15/7,s13,x2/0,s3,x5/15,pi/b,x1/2,pn/o,x4/11,s11,x13/15,s7,x1/3,ph/c,x5/7,pn/a,x0/11,pi/g,x12/13,s2,x4/8,s10,x3/0,s2,x8/6,pm/h,s14,x3/15,s3,x12/5,s1,x9/4,s7,x11/1,pi/d,x13/10,s6,x6/8,pe/j,x5/11,pl/a,x12/1,s3,x0/15,s6,x5/4,s14,x10/12,s7,x14/6,pe/n,x5/10,s10,x4/8,pb/m,x11/15,pd/n,x5/3,s14,pk/p,s13,x10/6,pj/g,x9/2,pm/c,x15/1,pa/d,x0/11,pc/b,x15/9,s11,x7/11,pm/l,x5/14,pp/d,x7/2,pl/f,x6/9,s4,x3/14,s3,x4/8,s13,x13/9,s7,x8/15,ph/g,x11/14,pc/d,x15/3,s5,x5/1,s15,x10/12,s2,x6/15,pn/i,x8/12,s1,x3/6,s4,x9/4,s9,x11/10,pg/k,x3/0,s3,x6/8,pd/p,x7/11,pf/o,x3/10,pg/i,x6/0,s2,x13/10,s8,x2/12,po/d,x4/10,pj/m,x11/1,pe/a,x6/8,s13,x0/4,pc/i,x15/13,pf/p,x0/6,s12,x8/9,s1,pn/b,x11/7,pm/l,s13,x1/13,po/c,x4/11,s10,x9/1,s10,pk/d,x11/15,pp/i,s12,x13/5,s5,x10/15,s15,x11/2,po/a,x7/6,s2,x3/11,pg/m,s1,pn/k,s9,x12/13,s5,x3/15,pg/i,x14/9,s15,x12/6,pb/j,x10/13,s6,x15/5,pk/d,x12/4,pl/m,x6/14,s14,x15/10,s9,x5/6,pc/g,x13/15,s14,x3/7,pn/a,x14/11,s7,x12/1,pl/o,x13/15,s3,x6/0,s13,x11/5,pm/e,x1/12,s8,x14/7,ph/p,x11/6,s8,x8/2,s6,x14/1,s11,x15/8,pe/m,s3,x4/5,s13,x1/0,po/g,x4/6,pi/c,x8/11,s15,x12/5,pp/d,x10/11,s4,x5/3,pa/k,x9/15,s9,x4/14,s12,x12/10,s4,x14/13,pp/o,x5/15,s2,x9/4,pi/c,x6/13,pb/e,x11/12,pm/l,x15/4,s15,x5/7,s10,x4/10,s9,x14/2,po/f,x1/4,s15,pk/d,x0/14,s9,x15/1,ph/e,x7/13,pl/o,x6/9,pg/h,s3,pe/b,s11,x3/14,s13,x10/15,pd/c,x7/13,pl/f,x14/3,pj/e,s2,x15/5,s2,x13/1,s14,pk/m,x11/9,s7,x7/1,pp/c,x11/12,s7,x10/7,s14,pi/g,s11,x15/9,s5,x13/7,s4,x14/12,s6,x2/0,s10,x4/3,s6,x8/11,s6,x9/14,s1,x4/10,pj/d,x12/7,s2,pl/a,x9/14,s11,x13/2,pj/h,x9/5,s15,x11/1,s5,x5/9,s5,x14/4,s15,x7/5,s14,x2/11,pn/o,x12/9,pm/b,x10/1,s8,x2/13,s1,x6/3,pk/h,s12,x11/12,s9,x4/1,s7,x7/15,s7,x4/9,pg/p,s5,x10/3,pn/l,x6/14,s2,x9/15,pb/a,x14/10,s9,x1/5,ph/e,x7/13,s12,x14/11,s8,x15/3,s13,pl/a,x12/10,pb/i,x13/11,s7,x6/0,s10,x12/9,s8,x1/11,s2,x9/3,s13,x12/7,s5,x4/1,pk/f,x8/5,pa/p,s14,x15/10,po/g,x11/2,s7,x14/13,s6,x6/15,pc/d,x3/11,s11,x7/14,s2,pa/e,x9/15,s14,x12/7,s10,x4/13,s8,x0/1,s13,x14/3,s8,x5/8,s6,x1/6,s9,x15/5,s8,x11/14,s3,x4/6,s8,x9/2,pb/f,x12/3,ph/n,x0/11,s12,x4/14,pk/j,x11/7,pp/b,x10/14,pl/m,x4/13,s15,x6/3,s6,x11/12,pe/p,x10/5,s12,x14/7,s10,x6/3,s2,x12/0,s8,x6/9,pm/l,x10/13,s3,x0/9,s7,x2/10,s6,x1/8,s15,x13/9,pf/a,x0/8,s4,x9/6,pk/b,x8/10,pn/l,x2/0,s15,x8/4,s14,pb/p,x13/6,pm/l,x8/10,pg/j,s7,x12/14,s9,x8/4,pi/l,x6/11,s13,x2/13,ph/g,s1,x5/1,s12,x3/0,pm/k,x14/15,s6,x1/13,po/j,x5/0,s8,x7/2,s3,pb/c,s14,x3/12,s2,x5/13,s9,x8/9,s6,x4/6,pl/f,x11/15,pa/d,x1/5,pn/j,x11/3,s6,x10/5,pb/d,x3/8,s5,pp/m,x2/7,pa/o,x5/1,s4,x10/8,pg/b,x1/12,pm/f,x3/11,s6,x5/6,s15,x11/8,s5,x15/14,pj/l,s14,x0/4,s4,x8/3,pa/h,x12/13,pn/i,s1,x10/11,pm/f,x5/8,pe/n,x9/12,s13,pl/k,s13,x11/6,pa/i,x4/12,s3,x9/15,ph/l,x10/11,s9,x13/3,s13,x15/10,s7,x12/5,s5,pb/m,x10/13,pg/p,x15/7,s14,pc/f,x10/4,pg/a,x14/15,s9,x8/6,s3,x15/2,s6,x9/0,s11,x4/13,pc/b,x10/15,s8,x13/2,pi/o,x8/12,pl/n,x10/13,s11,x4/12,s2,x5/0,ph/g,x2/7,pm/l,x13/14,pb/d,x10/2,pi/p,x11/15,s11,x0/5,pb/o,x3/10,s6,pp/f,x6/1,s9,x14/0,pm/k,x15/4,pg/n,x11/6,pp/d,s11,x13/5,s7,x12/9,pi/h,x10/5,s1,x1/14,s14,x12/6,s3,po/c,x2/14,s5,x15/1,pf/g,x0/3,s1,x6/13,pl/i,x4/11,s10,x5/1,s15,x12/7,po/b,x4/10,s7,x15/14,s3,x1/11,pi/g,x6/0,s5,pc/e,s13,x10/1,pn/f,x2/4,pp/h,x0/5,s4,x4/13,po/g,x0/7,s7,x9/8,pb/m,x7/13,s11,x12/10,pl/g,x1/6,s9,x12/2,s11,x11/5,pa/p,x10/6,s2,x3/7,s11,x15/14,pl/b,x2/5,s7,x13/3,pc/k,x12/10,s4,x13/11,pg/b,s10,x3/0,pf/o,x2/14,pk/h,s15,x12/5,s15,x15/3,s2,x2/5,s10,x14/1,s5,x7/5,s7,x8/12,s3,x1/2,pm/a,x3/5,s12,x15/13,pp/n,x14/4,s2,x3/6,s3,x7/15,s10,x8/0,s1,x15/6,s1,x2/3,s11,x13/11,s12,x8/9,s15,x12/14,s9,x0/5,s3,x9/2,s2,x1/5,pc/m,x11/10,s10,pp/d,x2/12,ph/c,x15/11,pj/k,x13/0,pb/e,x1/10,pg/j,x8/2,pp/l,x0/9,s7,x2/12,ph/n,x14/4,pa/b,x11/1,po/g,x4/3,s14,x15/13,pe/k,x4/2,po/b,x12/8,s11,x9/6,pi/e,x5/15,s10,x0/12,s14,x11/15,s1,pl/m,s12,x2/9,s9,x10/11,s8,x15/2,pg/k,x12/10,s15,x3/7,pi/m,x6/14,s7,x15/7,pb/c,s2,x1/11,s1,x4/7,pm/d,x0/5,s14,x11/8,s13,x12/6,s8,x9/10,pb/k,s13,x4/3,s10,x12/6,s2,x15/2,s7,x10/9,s15,x2/0,s8,x13/10,pi/l,x1/15,s11,x14/2,pf/j,x13/0,s3,x9/12,s7,x3/5,s7,pn/h,x14/12,s3,x8/1,s2,x11/5,s10,x9/1,pj/p,x14/5,s8,x10/9,s14,x1/14,pl/m,x13/3,s1,x12/0,s11,x2/13,s8,x6/5,s2,x10/4,s13,x7/8,s3,x1/14,s11,x4/15,s14,x3/5,s6,x2/13,s7,x9/0,pp/c,s13,x3/10,s10,x0/7,s8,x6/10,pg/i,s4,ph/m,x15/0,pd/p,s12,x8/12,pa/b,x0/6,pd/j,x14/2,s9,x15/6,pf/b,x2/7,s11,x15/14,s3,x3/6,s7,x0/2,pj/l,x3/13,pk/d,x6/1,pl/p,x13/7,s12,x6/0,s12,x11/14,pj/f,x15/1,pb/e,x14/0,po/m,x12/2,s12,x5/9,pi/e,x7/15,s6,x3/5,pm/k,x13/9,pc/l,x11/12,s1,x14/6,s4,x0/11,s1,x3/10,s4,x8/12,s13,x6/15,s9,x5/1,s7,x2/7,s2,x1/5,s12,x7/8,s9,x9/14,s15,x6/15,pb/f,x2/4,s11,x7/15,pp/h,x11/6,s10,x7/3,s8,x5/10,s12,x9/15,s8,x12/6,s3,x0/2,s2,x5/9,s15,x1/7,po/m,s4,x4/5,s1,pa/c,x2/7,pe/g,x15/10,s8,x4/9,s3,x15/0,s8,x2/7,s10,x12/1,s9,x2/7,s11,x10/15,s8,x8/13,s1,x3/12,pm/c,x13/2,s11,x14/0,s13,x13/8,pd/b,x7/4,s9,x5/9,s14,po/i,x14/15,s8,x12/5,s9,x2/0,pj/l,x14/10,s3,x9/8,s7,x10/15,s1,pa/f,x2/7,pd/m,x6/10,pp/e,x4/5,s11,x10/12,s3,x3/6,pk/a,s14,x14/15,pi/c,s12,x12/1,s6,x3/10,s8,x13/2,s5,x0/1,s3,x7/12,pd/e,x0/13,ph/o,x15/11,s9,x10/5,s10,x3/1,pi/c,x0/5,pd/h,x13/15,pc/i,x3/8,po/d,x0/14,s10,x13/6,pm/i,s2,x9/8,s2,x14/10,s7,x5/4,s8,x0/13,po/d,s12,x9/7,s5,x10/13,pf/k,s10,x0/5,pe/i,x13/2,pj/d,x7/8,pc/g,x3/9,s10,x2/0,s4,ph/l,x11/12,pp/o,s15,x3/8,ph/b,x14/2,s9,x8/10,s13,pk/l,x5/11,s6,x15/10,s2,x9/5,pc/g,s13,x8/11,pp/m,x7/0,pl/d,x4/12,s12,x7/14,s6,x6/3,pi/a,x7/1,s5,x0/11,s10,x12/15,pc/m,x0/3,pi/p,x12/15,pk/d,s5,x13/8,s2,x15/10,pj/m,x1/5,s4,x8/10,s8,x3/12,pc/e,x5/6,po/a,x12/3,pb/h,s11,x1/9,s6,x7/15,pp/d,x5/6,s5,x3/15,pe/f,x14/13,pi/d,x9/5,pj/l,x6/10,s4,pf/c,x12/9,pb/e,x11/3,s3,pa/l,x12/8,s12,x9/4,s9,x15/5,s3,x12/9,s6,x7/5,pk/j,s3,x9/1,s14,x11/6,s4,x5/12,s11,x7/14,pe/a,x8/11,pj/b,x7/13,pl/i,s5,x6/8,s3,x3/10,s3,x1/2,s4,x6/14,pp/d,x2/9,s4,x8/1,pj/e,x4/10,po/p,x1/12,s2,x4/8,pg/b,x15/9,s8,x7/4,po/f,x14/11,s10,pb/l,x10/13,s13,x14/2,s7,x0/12,s3,x4/11,s7,x3/10,s14,x5/15,pp/n,x10/8,s7,x5/14,s13,x11/7,pc/l,s15,x0/6,ph/p,s2,x11/3,s10,x15/14,s6,x0/1,s12,x6/10,s13,x0/13,s15,x10/4,pb/g,x3/14,pf/l,x8/1,s6,x10/15,s15,x12/14,s15,x7/0,ph/b,x15/2,s3,x14/13,s1,x15/8,s10,x1/12,pc/i,x10/13,s10,x6/7,s12,x15/4,s7,x2/3,pk/b,s6,x8/11,pi/g,s1,pm/l,x13/7,s11,x14/6,s7,x8/4,s9,x15/2,s2,pf/g,x8/12,po/e,x3/11,s15,x0/2,pf/i,x3/10,pc/d,x12/15,s3,x14/13,s5,x8/4,pi/n,x15/11,s10,x4/14,ph/k,x6/13,pn/e,x9/5,s7,x14/4,s15,x3/15,s13,x2/6,s3,pf/j,x8/13,s2,x14/2,s12,x1/6,pe/g,x10/12,pp/i,x7/3,s2,x1/8,s9,x13/12,pf/n,s2,x4/7,s14,x11/14,pl/h,x15/9,s3,x2/5,s5,x15/10,s15,x1/8,pn/a,x9/0,s4,x10/8,s13,x4/15,s11,x13/1,pi/f,x5/15,s4,x2/3,pp/j,x0/12,pi/g,s2,x10/2,s3,x14/11,s10,x7/6,s7,x12/4,pa/p,s12,x14/10,po/k,x15/8,s7,x12/7,s8,x13/8,pm/p,x12/3,s13,x8/15,pe/k,x1/5,s5,x6/12,s12,pm/d,x15/1,pe/f,x13/7,pj/b,x3/1,pn/g,x15/0,s1,x11/14,s10,x13/4,s10,x0/2,s9,x11/14,pc/m,x5/7,s9,x14/12,pf/b,x0/10,s9,x11/14,pj/n,x1/8,pm/i,x9/4,s4,x8/14,pd/j,x9/11,pp/b,x6/14,pm/o,x15/9,pc/f,s2,pb/k,x4/12,pd/f,x6/10,pb/j,x14/12,ph/c,x15/10,po/i,x9/6,pb/j,x7/1,pl/c,x0/13,pb/a,x10/3,pg/o,x2/12,ph/m,x10/13,s9,x14/7,s7,x11/3,s15,x10/12,s4,x4/11,s3,x14/12,s1,x11/6,pb/g,x5/13,pi/e,s6,ph/j,x11/10,pm/g,x4/14,s7,x10/7,po/e,x9/3,s3,x8/7,ph/i,x4/12,pg/p,x15/13,po/c,x1/9,s5,x5/3,s3,pg/l,x4/6,s2,x0/2,s1,x13/5,s4,x3/1,s11,x7/15,s2,x14/2,s5,x4/10,s13,x9/15,s14,pe/a,x11/8,s6,x4/7,pi/f,x14/10,pe/l,x5/7,pk/m,s2,x13/1,pb/i,s3,x15/4,s3,x5/9,s1,x0/14,s15,x1/9,s12,x10/3,pf/h,x6/4,s12,x14/3,pa/p,x13/11,pb/g,s11,x4/8,s5,x5/0,pe/f,x3/11,s14,x4/5,pn/d,x13/8,s15,x5/6,s12,x10/15,s14,x7/5,pk/m,s2,x14/6,s4,x12/1,po/b,x15/5,s15,x7/13,pn/h,x9/4,s1,x3/6,s15,x0/11,pi/k,x10/9,po/j,x6/14,pm/a,x10/9,s15,x6/8,s5,x2/7,s1,x1/0,pp/c,x6/4,pm/h,x10/11,pb/n,x14/6,pg/f,x1/4,pa/p,x9/5,pg/n,x1/11,s6,x0/7,s8,x14/8,pl/o,x15/11,s12,x13/6,s12,x2/15,s8,x14/9,pp/c,x15/13,pj/h,x10/14,s4,x13/8,pe/n,x7/15,pg/l,s6,x1/9,s11,x14/3,pf/i,s3,pk/g,x5/2,s15,x15/12,s9,pe/f,x7/10,s2,x13/6,pb/p,x3/8,s9,x9/14,po/l,x10/11,pb/c,x15/9,s8,x11/6,pf/j,x9/13,s2,x14/4,s2,x7/5,pb/a,x11/8,s8,x10/6,s1,x1/2,s11,x5/3,s6,x12/0,pf/e,x13/4,pn/b,x14/9,pf/k,x12/15,pe/n,x1/9,pj/i,x7/12,pk/d,s7,x4/2,s9,x0/7,s12,x2/3,s7,x7/6,pe/l,x2/9,s14,x13/3,pp/k,x10/9,po/m,x8/14,s12,x1/11,s15,x14/3,s12,x10/12,pf/d,x8/6,s10,x0/13,pp/a,s7,x12/4,s4,x3/8,pf/k,x15/1,pp/o,s13,pb/f,x14/4,pj/m,x5/1,s15,x9/0,s4,pp/c,x12/15,s5,x0/3,ph/d,x13/2,s2,x0/12,pb/n,x14/13,s4,x11/6,pk/o,x10/12,s2,x5/0,s14,pf/c,s15,x1/13,s7,x10/12,s2,x4/11,pa/j,x9/13,pc/f,s13,x11/1,s13,x5/9,s8,x13/0,s3,x14/15,s2,x4/6,s12,x14/3,po/p,x0/4,s2,x7/5,pa/h,x6/10,pb/m,x4/14,s10,x1/8,pa/c,x0/13,ph/m,x2/3,s15,x14/0,s8,x4/12,s13,x9/6,s15,x12/11,s2,x13/4,pj/k,x2/9,s4,x8/15,s15,x3/13,s3,x8/6,s8,x12/11,pa/p,x15/8,pi/h,s4,x11/2,s9,x13/10,s14,x6/5,pp/d,x2/4,pm/o,x13/8,pe/p,x1/14,s5,pf/n,x6/11,s12,x10/8,s13,x3/1,s2,x10/5,pi/h,x4/8,s14,x10/14,pd/n,x6/15,pe/i,x2/10,pp/a,x3/9,po/m,x2/0,pe/b,s15,x6/12,pm/l,x5/10,s6,x12/4,s13,x5/1,s3,pg/a,x6/10,s6,x15/4,s14,x12/10,pn/i,x6/3,s15,x0/14,s1,x7/6,s8,x0/12,pg/a,x10/14,s3,x11/3,pm/h,x7/6,s11,x0/2,s13,x4/5,s6,x12/10,pc/j,x5/0,pp/h,x7/8,pc/b,x6/4,s12,pe/g,x5/15,s13,pf/i,x12/1,s15,x10/7,pp/h,s14,x3/13,s6,x4/7,s6,x12/1,s9,x6/15,pi/m,x1/5,s4,x12/14,pa/d,x2/5,pk/f,x6/9,s15,x3/7,s10,x15/5,s3,x7/10,s6,pc/m,s2,x11/15,pp/k,x6/10,ph/b,x4/12,s9,pp/e,x14/3,s14,x7/1,pl/c,x12/10,ph/d,x4/8,pl/e,s6,x15/2,s3,x0/12,s9,x5/1,pi/m,x0/2,s10,x9/6,s7,x14/2,pb/j,x9/11,s6,x7/1,pg/p,x3/14,pb/h,x2/9,s11,x0/8,s3,x4/9,pi/j,x12/6,s4,pm/c,x8/9,s13,x4/2,s2,x13/10,pi/b,x2/9,s6,x12/14,s8,x7/10,s10,x6/2,s11,x11/4,pg/n,x0/12,s7,x8/9,s14,x13/5,s11,x10/0,s8,x9/3,pp/l,x2/4,pn/j,x0/13,s8,po/e,x6/11,s11,x3/15,s13,x7/10,pp/k,x15/5,s14,x4/9,s4,x1/13,s5,x11/9,s13,x6/15,pf/a,x13/10,pp/m,x5/12,s3,x0/9,s8,x4/15,s1,x5/6,pg/h,x15/9,pm/c,x7/14,s7,x13/5,s6,x11/9,s3,x3/14,pn/d,x6/7,s8,x8/14,s13,x1/13,s1,x7/15,s2,x9/1,pc/a,x13/7,pm/d,s3,x2/4,pl/e,x13/6,s3,x14/0,s11,x9/5,s9,x12/7,pd/o,x0/4,s6,x1/9,pb/k,x15/4,s14,x3/7,ph/p,x8/0,s2,x12/11,pc/e,x14/8,s6,x6/3,s5,x14/13,pj/a,s15,x8/12,pn/m,x10/5,pj/i,x9/15,s4,x8/1,s11,x14/11,pb/c,x4/6,po/a,x15/14,ph/p,x7/10,s3,x8/0,s11,x15/7,s12,x13/10,s8,x5/8,pm/e,x0/12,s14,x6/11,s10,x1/10,s14,x8/13,s3,x6/2,s1,x13/5,pd/h,x0/9,pk/c,x1/3,s6,x13/8,s6,x6/1,pa/e,x8/14,s5,x15/0,po/n,s4,x2/12,s15,x11/15,pl/i,x8/6,pj/m,x14/12,pd/o,x6/1,s7,x7/8,pf/n,s7,x3/5,pk/m,x9/14,pd/e,s15,x11/15,s4,x1/9,pp/g,x13/10,pk/j,x9/5,s3,x0/1,pp/g,x6/10,pa/f,x3/11,po/p,s14,x10/4,s6,x7/0,s11,x9/11,s15,x4/14,pk/m,x9/7,s7,x8/11,pn/b,x15/13,pf/h,x3/10,s9,x1/12,pk/m,x0/14,s15,x3/13,s10,x8/1,s8,x9/14,pb/a,x13/12,po/g,x7/3,pp/c,s11,x0/14,s10,x10/2,pd/k,x11/8,s1,x9/7,s10,x15/8,pa/f,x14/0,pn/j,x12/2,s6,x3/13,s11,x2/11,pl/e,x5/3,s14,pa/o,x8/10,pg/p,x3/13,s1,x10/7,s3,x9/8,s12,x0/4,pm/j,x15/13,pl/o,s13,x4/7,pn/b,x9/3,ph/o,x11/7,pc/i,s6,x14/8,pg/h,x13/10,pa/d,x5/15,s5,x7/3,s12,x2/1,s11,x14/7,pe/h,s6,x2/10,s7,x1/7,s6,x11/3,s2,x14/0,s2,pg/m,x2/8,pi/n,x3/4,s11,x14/0,s4,x4/13,ph/p,x14/10,pg/f,x1/3,pj/i,x7/6,pa/m,x11/13,s7,x0/4,s11,x14/10,s7,x0/8,s6,x6/13,pi/l,s6,x2/1,s8,x4/11,pc/a,x3/1,s1,x15/7,s9,x4/0,s1,x7/10,s13,x4/3,s9,x11/10,s15,x9/13,pl/b,x12/7,pe/k,x11/9,s2,x8/13,s4,pi/m,x6/15,s12,x13/7,pf/c,s4,pj/l,x12/6,pa/g,x0/5,pc/e,x6/1,s3,pn/g,x2/0,s1,x11/12,pj/o,x14/15,s10,x9/1,pk/i,x15/5,pm/j,x4/11,s14,x15/1,s10,x9/11,pb/e,x0/14,pp/k,x1/11,pn/j,x13/4,s2,x5/3,pm/a,x6/9,pp/l,x0/3,s10,x9/14,s15,x1/2,s12,x4/9,s5,x1/11,s11,x12/4,pc/i,x2/14,s4,x0/4,pp/l,x11/7,s10,x5/0,pd/j,x7/10,s9,x9/3,pe/h,x4/15,s12,x7/8,s1,x6/1,s9,x4/15,pk/l,x2/3,po/i,x14/0,s4,x5/2,s9,pp/g,x12/3,s2,pa/c,x5/6,pi/h,x2/7,s6,x8/0,s11,x6/9,pf/p,x14/5,pl/b,x4/12,s12,x3/0,s14,x4/1,s6,x10/13,s6,x15/14,ph/c,x12/3,pd/a,x1/8,pb/i,x6/13,pl/k,x0/14,s6,x8/7,pe/m,x9/11,s4,x2/14,pc/o,x8/11,s12,x13/10,s12,x11/15,s12,x6/10,s7,x13/11,pg/p,x4/10,s14,x2/11,pn/d,x3/14,s8,x5/4,s4,x3/15,pm/j,s13,x14/10,s11,x13/8,s11,x10/12,s4,ph/g,x4/1,pp/o,x5/9,s9,x10/14,s13,pd/m,x11/2,ph/j,x15/10,s8,x5/11,s10,x3/14,s15,x6/4,s4,x13/8,pi/p,x7/10,pc/m,x13/4,s11,x1/11,s1,x8/6,pk/o,s4,x9/13,s1,pe/f,s13,x1/0,s8,x15/12,s9,x3/10,s13,x15/8,s13,x10/0,pn/p,x9/11,pg/o,x2/6,s6,x4/5,s1,x3/11,pe/h,x9/15,s15,x13/3,po/f,x5/10,s14,x11/4,s13,x13/7,s6,x1/0,s15,x11/7,s8,x0/2,s5,x7/11,s3,pa/h,s7,pc/o,x15/10,s4,x1/14,s8,x3/5,pb/e,x14/7,s7,x10/8,s6,x11/14,s12,x10/9,s15,x1/2,s12,x7/0,s10,x2/11,s7,x3/1,s15,x9/14,s3,x11/1,s14,x7/3,s6,x4/1,s10,x11/13,s10,x14/1,po/d,x12/0,ph/a,x5/14,pc/n,s4,x13/4,ph/d,x0/3,s14,x14/2,pl/c,s3,x5/4,s8,pe/d,x7/2,pb/f,x6/5,pj/l,x2/3,s5,x9/15,s14,x14/2,s2,x6/4,s14,x3/14,s11,x1/10,ph/n,x14/12,s2,x13/10,pd/m,x6/0,s12,x1/12,pe/l,s13,x4/14,s1,x9/1,s9,x2/0,pg/d,x3/1,s12,x0/5,s15,x14/4,s9,x5/7,po/l,x11/6,pn/k,x2/5,s11,x1/13,pl/i,s14,x11/9,pc/d,x4/0,po/m,x13/10,s13,x0/5,pp/k,x8/3,s14,x15/11,s15,x0/3,pn/j,s15,x6/13,pl/m,s11,x1/9,s1,x12/11,ph/c,s3,x3/0,s12,x8/12,s14,x14/10,s3,x1/11,s4,x13/12,s15,x11/4,s12,x14/2,s12,x5/12,pe/b,x8/0,pd/l,s15,x12/9,s13,x2/3,pe/j,x0/13,pg/l,x7/6,s13,x5/12,s15,x0/10,pd/j,x4/2,pl/k,x8/15,pn/h,x10/13,pi/l,x1/15,s13,x4/7,s12,x6/5,po/m,x12/10,pd/b,x8/9,s8,x13/10,pk/e,x1/6,s15,x12/2,pa/p,s10,ph/i,x6/8,s2,x15/10,s15,x9/7,pn/f,x8/4,s7,x13/2,s4,x0/15,pe/d,s12,x7/10,s3,x12/2,pl/n,x8/1,pm/o,x6/7,pa/n,x13/15,s10,x2/4,pl/j,x6/3,s5,x1/13,s15,x15/9,pm/k,x14/4,pa/h,x1/13,pp/m,x5/3,s12,x11/0,pk/e,x2/10,s1,x1/7,s10,x11/6,s12,x9/8,s4,x14/5,s8,x8/6,s14,x1/12,s6,x15/2,pm/p,s1,x8/1,s12,x13/2,s7,x10/6,s11,x5/7,s6,x9/8,pe/d,x6/7,s3,pn/c,x10/12,s12,x7/4,s6,x8/12,s6,x10/15,pf/j,x9/7,s8,x12/1,s6,pi/m,x2/6,pe/f,x13/1,s8,x9/14,s9,x0/13,s14,x9/1,s10,x10/11,s14,x3/8,s12,x14/5,pk/a,x0/10,s12,x12/2,s10,pl/b,x11/9,s3,x2/8,pc/k,x1/4,pb/n,x12/7,s3,pe/c,s10,x3/11,pf/b,x4/9,pl/i,x13/6,s1,x2/14,po/d,s6,x12/6,s1,pi/h,s14,x9/10,s7,x2/8,s5,x6/7,s4,x2/9,s1,x5/15,s6,x1/12,s14,x9/4,s10,x0/14,pb/f,x4/3,s12,x14/0,pj/e,x7/6,pl/c,x1/2,s13,x7/4,s5,x14/10,s2,x1/5,s4,x13/3,pg/m,x1/10,s6,x13/15,s10,x9/5,po/l,x11/8,s2,x12/7,s14,x13/10,s6,x14/3,s10,x8/2,s1,x4/6,pa/i,x12/14,s4,x5/7,s12,x9/12,pm/b,x8/5,s10,x4/3,pc/l,x10/0,s11,x9/4,s7,x13/15,pe/h,x6/5,pk/a,s5,x2/15,pd/h,x13/4,pb/e,x14/9,pl/n,x11/3,s3,x15/5,s5,x13/3,pg/f,s7,x12/11,s2,x5/6,s6,x9/13,po/a,x7/5,s12,x13/9,pn/b,x6/0,pd/j,x15/9,s12,x13/11,s8,x9/10,s6,x2/13,s12,x3/9,pb/a,x0/15,s4,x2/3,s7,x11/1,pp/c,x15/8,s15,x5/9,pl/o,x4/7,s3,x8/0,pi/k,x5/15,s14,x3/6,pl/a,x11/0,pp/c,x6/12,pi/b,x11/13,s15,x1/2,pk/f,x3/12,pj/l,x8/2,s10,x12/11,s7,x7/2,s15,x14/0,s1,x7/9,s9,x6/12,s11,x10/9,s8,x4/12,pn/i,x6/9,s2,pe/l,x3/5,s12,ph/m,x14/6,s1,x8/3,pc/k,x5/2,s15,pm/j,s8,x9/6,pp/b,x14/5,s13,x4/2,pf/i,x5/13,s15,x8/0,pc/p,x5/14,po/b,x13/1,pp/l,x10/9,pb/j,x7/6,s5,x3/11,pg/n,x14/1,po/f,x10/11,pl/k,x3/2,s6,x4/15,pi/j,x11/7,s4,x8/14,s14,x12/3,s8,x1/10,s5,x15/2,s6,x12/8,pm/a,x6/14,s2,x4/0,s5,x11/8,pe/n,x6/9,s8,pk/o,x15/12,s8,x7/8,s9,x13/10,pb/f,s5,x12/9,pc/h,x6/0,s12,x9/12,s2,x13/2,s4,x5/9,s7,x13/11,s4,x5/8,pp/n,x15/4,s2,x6/2,s9,x14/4,po/h,x7/6,s13,x8/10,s13,pp/n,x12/15,s11,x4/1,s9,x5/7,s12,x12/14,ph/o,x10/6,s5,x3/13,s13,x6/0,pl/k,s14,x15/8,s3,x11/5,s7,x15/9,s14,x0/14,s2,x2/10,s1,x1/0,pc/j,x2/11,s9,x13/14,s5,x1/11,s2,pd/e,x5/7,s8,x6/4,s7,x0/3,s11,x8/6,pa/l,x5/9,ph/d,x8/4,s13,x13/10,s8,x12/14,s4,pe/l,x13/9,s15,x5/3,s7,x7/6,s9,x9/4,pc/b,x15/2,s1,x6/9,pn/h,x0/2,pg/k,x9/3,s4,x12/15,s15,x1/7,pm/p,x13/12,s7,x1/8,s7,x3/12,ph/b,x2/9,s10,x7/15,s4,x9/0,s5,x1/13,pa/d,x0/10,s10,x14/15,pf/i,x3/6,s8,x0/8,s3,x15/13,pa/h,x0/11,pj/g,x3/10,s12,x8/11,pd/p,x2/12,pb/m,x3/8,po/c,x10/5,pi/p,x4/8,s14,x2/13,s11,x5/10,pa/k,x2/9,s3,x3/1,s4,x2/9,s4,x0/6,s4,x2/5,pe/g,x14/0,pi/d,x1/5,s12,x15/0,s13,x5/10,pm/j,x7/12,pb/k,x9/15,pl/f,x12/0,s13,x6/7,pj/c,x14/10,s1,x4/6,s12,x15/12,s3,x13/2,pb/p,x8/7,s8,x3/11,pl/n,s13,x4/13,s14,x6/15,s3,x14/9,pm/i,s12,x6/7,pg/c,x14/1,pm/e,x11/10,s5,x12/3,pc/f,x1/6,pl/g,x0/7,s11,x14/9,s5,x13/6,pc/k,x0/14,s6,x11/1,pa/n,x9/2,s3,pc/h,x13/7,s15,x5/11,pj/d,x13/7,s6,x0/3,s13,x2/5,pc/p,x8/1,ph/k,x13/15,s2,x3/4,s5,x6/13,pe/b,x4/11,pk/m,x2/8,s1,x15/5,s8,pl/p,s2,x4/10,s4,x1/3,s14,x11/8,s1,x2/15,s4,pe/o,x6/13,s6,x0/10,pd/i,x2/13,s2,x10/1,s4,x13/2,s1,pf/c,x8/14,s7,x13/3,s15,x4/1,pl/j,x2/5,s12,x6/7,s13,x11/1,s8,x13/7,s12,x6/14,s6,x1/3,pn/p,x5/4,s13,x10/8,ph/a,x12/11,pd/c,x7/6,s7,x11/8,pe/f,s13,x12/1,pd/k,x13/2,pn/g,x0/5,s9,x3/12,pa/p,x4/13,s5,x14/9,pl/m,x8/7,pi/g,x0/1,s7,x13/8,pa/l,x0/5,pm/g,x4/14,s15,x3/8,pe/n,x5/13,s9,x4/2,pm/f,x13/0,pd/n,x8/3,s4,x6/14,s9,x0/1,s8,x13/6,s11,x10/9,s14,x14/13,s9,x9/0,po/e,x5/7,s7,x11/0,s2,x13/15,pc/f,s8,po/d,x10/6,pm/c,x0/2,s10,x3/7,pg/h,s9,x10/8,s1,x2/12,pj/p,x13/14,s5,x7/10,pd/e,x15/8,s8,x7/1,s13,x6/13,po/f,s1,x12/5,s10,x11/8,pe/l,x4/3,s15,x2/13,pd/c,x8/12,s1,pn/f,x10/13,pp/d,x2/5,pi/o,x11/15,s15,x6/13,s9,x14/7,pl/f,x15/13,s15,x6/11,pk/p,x5/1,pd/i,x6/2,s7,x14/1,s2,x9/0,pl/g,x14/13,pi/b,x3/15,pf/h,x12/11,s12,x5/9,s15,x13/2,s3,x0/3,s3,x11/4,s1,x9/15,pa/b,x12/0,po/e,x2/7,pc/h,x10/5,po/g,x4/6,s4,x3/9,s11,x10/0,s2,x14/9,pl/h,x15/13,s7,x0/1,s13,x4/5,pb/m,x0/12,s12,x15/5,s1,x1/11,s11,pn/o,s11,x2/14,pp/l,x15/9,s12,x11/1,pd/k,x3/15,pi/m,s1,x5/1,s5,pa/p,x9/13,pb/k,x7/14,ph/n,x2/1,s14,x15/4,s2,x8/7,s9,x13/10,s5,x7/1,s9,x14/13,pk/b,x6/11,s9,x3/4,s9,pi/d,x1/15,s15,x12/8,pn/a,x5/10,pd/k,x7/1,s2,x11/3,pp/e,x6/10,s13,x11/9,s7,x14/15,pd/m,x5/4,s9,x2/14,pj/b,x13/0,s9,x6/2,s3,x10/7,s2,pp/c,x4/15,s12,x5/2,s3,x14/12,pm/e,x11/0,s14,x9/6,s6,x4/13,s1,x2/7,s2,x5/8,s2,x10/2,s12,x11/5,s8,x13/0,s3,x6/7,pp/g,x0/4,pj/d,x11/5,pa/b,x8/6,pj/d,x5/7,s5,x9/15,s12,x14/7,pf/k,x11/6,pl/g,x9/4,pf/c,x8/15,s6,x13/3,pm/o,x9/8,pj/g,x4/2,s5,x12/5,s13,x0/4,pd/b,s12,x1/11,pg/e,x5/9,s3,x4/15,s15,x11/0,s14,x15/8,s11,x1/5,pn/h,x4/7,pa/e,x3/14,po/d,x4/1,s15,x11/6,s15,x7/8,pf/k,s15,x3/2,s7,x12/6,s1,x15/0,pc/i,x10/1,s6,x2/11,s1,x4/12,pf/k,s3,x0/5,pp/e,x4/12,pn/b,x1/2,pl/j,x9/14,pf/h,x8/2,pg/p,x14/15,ph/l,s13,x8/5,pe/n,x6/13,s7,ph/k,s10,x9/14,pj/a,x1/3,pm/d,x0/8,s15,pp/g,s1,x6/5,s14,x7/13,pj/k,x12/11,pa/f,x10/15,pl/b,x14/4,s10,x10/9,pe/i,x11/13,ph/f,x8/2,s6,x7/10,pk/m,x8/12,pe/o,x13/15,s6,x4/14,pj/l,x13/5,pd/p,x0/11,s1,x10/14,pb/j,x0/4,pk/o,x6/8,pp/j,x11/9,s10,x0/10,s1,x12/2,s5,x6/1,pn/a,x8/7,s11,pb/e,x2/3,pm/d,s15,x0/11,s10,x15/7,s9,x1/0,s7,x14/4,pp/h,s5,x13/6,s3,pd/g,s11,x0/2,s5,x14/9,pk/a,x13/1,s14,x10/7,s3,x14/4,pe/j,x15/5,pl/k,x0/7,pi/n,x2/9,s5,pp/a,x5/0,s11,x10/2,s3,x11/8,s15,x13/15,s3,x4/10,s9,x3/9,pj/f,x15/10,ph/k,x12/6,s1,x0/3,pe/g,x15/5,s9,x6/1,s5,x7/10,pj/l,x14/6,pc/o,s11,x13/4,s8,x7/5,pp/g,x14/2,po/d,x12/6,pm/i,x4/11,s12,x14/7,s2,x4/6,s11,x11/2,s11,x10/5,s15,x6/2,pa/l,x1/8,s12,x12/0,s14,x5/13,s8,x8/4,ph/d,s9,x15/14,pc/e,x7/12,pa/i,x3/13,s11,x7/11,pj/l,s5,x1/8,s14,x13/0,pi/a,s14,x11/1,s14,pm/p,x5/12,s12,x7/13,s9,x14/12,po/n,x4/2,s11,x5/6,s7,x1/4,pc/e,x2/6,s6,x9/11,ph/j,x2/0,s7,x10/14,s14,x4/11,pn/d,s9,x10/7,s13,x2/4,pg/f,x3/9,s15,x5/15,ph/k,x8/10,s13,x7/5,pm/a,x2/15,s13,x7/8,s1,x13/15,s14,x3/5,s7,pj/d,x6/14,s12,x2/8,s8,x15/1,pl/p,x4/7,s8,x13/2,s11,x4/5,s7,x9/6,pb/e,x0/8,s8,x3/1,s14,x11/9,s2,x8/12,pn/k,x10/13,s8,x14/12,pf/p,s2,pl/g,x2/5,pd/h,x6/8,s11,x3/4,s14,x5/2,pb/c,x0/8,s4,x4/14,s14,x7/15,s12,pe/p,x13/12,pd/k,x2/3,pi/p,x7/5,s7,x9/13,pn/e,x1/5,s12,x10/13,pg/l,x12/14,s12,x2/1,s8,pn/e,s11,x14/8,s4,x12/3,ph/j,x5/4,s15,x15/10,s14,x5/13,s7,x1/6,s7,x3/5,pk/p,x15/2,pe/l,x4/0,s1,x13/12,s3,x15/4,s10,x13/6,s9,x15/14,pn/o,x8/13,pk/b,x12/6,pj/n,x2/5,pb/f,x7/14,s12,x1/4,s9,x14/3,s14,x10/12,s6,x8/4,s15,x6/0,pp/h,x13/8,s7,x3/14,s4,pg/a,x11/7,s6,x4/8,pl/h,x7/15,pa/k,x10/2,pp/i,x8/9,s11,x4/0,pj/o,x9/15,s5,x10/12,pa/b,x14/13,pl/f,x7/2,s6,x11/13,po/d,x9/7,pl/h,x3/13,s7,x1/0,pd/o,s3,x10/3,pb/k,x7/5,s4,x6/15,s13,x11/13,s8,x0/9,pe/a,x1/4,pd/f,x8/3,s14,x11/1,pg/o,x2/12,pb/f,s11,x1/0,s12,x12/13,s7,x2/11,s15,x5/4,s10,x3/0,pm/n,x9/14,pd/e,x12/7,pg/i,x4/3,s8,x8/13,s6,x11/2,po/k,x0/10,s13,x2/14,pf/a,x11/9,s2,x5/1,s7,x14/6,s11,x7/8,s12,x15/1,s13,x3/6,s15,x11/1,ph/m,x6/0,s12,x11/5,pf/l,x6/15,s2,pc/n,x5/13,s7,x14/9,pg/f,x5/11,po/l,x13/3,s12,x0/5,pd/b,x12/8,s3,x11/15,s3,x5/3,pf/m,s5,x7/8,pg/p,x11/12,pd/h,x5/4,s10,x11/6,s8,x2/10,s10,x8/6,s4,x11/10,s13,x14/13,s8,x15/6,pp/a,s9,x0/8,s4,x5/9,s10,x2/1,s4,x7/5,s14,x15/4,s13,x6/2,pg/n,x3/8,s14,x7/9,pd/p,x4/12,s6,x7/11,pf/a,x2/4,s3,x0/1,s9,x14/11,s6,x15/3,s2,x1/12,s11,x8/14,s6,po/i,x5/15,pj/a,x1/7,s6,x3/13,pf/m,x9/8,s11,x15/3,s3,x5/10,s3,pj/h,x4/12,s4,x11/6,po/k,x15/14,s12,x3/0,s15,x5/2,s11,x11/4,s6,x13/1,pe/i,x11/15,ph/a,s4,x10/0,pc/k,x15/5,s11,x10/2,s3,x8/1,s5,x15/6,ph/a,x9/4,s7,pb/i,x7/1,s14,x4/13,s7,x0/6,pf/m,x5/10,s10,x3/13,s12,x6/12,s10,x9/14,pg/p,x12/5,pf/n,x8/0,po/d,x4/11,s13,x2/3,s11,x10/7,s8,x2/3,pb/g,x8/13,pi/n,x0/14,s8,x15/4,pd/l,x3/13,s11,x10/12,s1,x13/11,s13,x2/8,s14,x7/12,s13,pk/j,x4/1,pe/p,x10/9,s12,x12/7,pg/o,x0/3,s4,x9/10,pf/n,x0/8,s2,x12/10,pk/g,x15/4,s12,x10/13,s5,x4/9,s15,x2/10,s7,x9/0,po/a,x11/14,s5,x9/1,s6,pc/i,x11/15,s8,x8/2,s5,pd/b,x0/14,s7,x11/7,pl/a,x14/8,s8,x9/2,pk/b,x4/10,s3,x12/14,pd/j,x6/0,s10,x9/11,s12,x7/8,pn/c,s1,x4/1,pg/e,s1,x11/9,s13,x5/13,s3,x4/11,s3,x8/15,pa/b,s15,x2/11,s3,x15/8,s2,x10/3,s1,x13/5,s6,pf/p,x0/6,s14,x9/7,s2,x6/10,s7,x15/12,pj/d,x5/4,s5,x7/6,po/l,x5/2,pn/a,x12/6,pk/i,x10/3,s8,x14/13,s13,x1/9,s5,x11/13,pf/b,x0/1,pd/o,x8/10,pl/p,x9/11,s15,x5/14,s12,x11/8,s1,x0/2,pc/n,x9/11,s14,x4/15,po/g,x9/13,pp/h,x4/14,pj/n,x2/6,pf/c,x9/4,s1,x0/6,pd/k,x5/15,s3,x1/0,s8,x12/4,s15,x3/14,po/g,x7/1,s1,x11/5,s7,x13/10,s11,x0/8,pb/e,x5/3,po/f,x9/13,pb/l,x8/10,s15,x12/13,s10,x10/1,pe/j,x0/11,pp/g,x2/14,s5,x12/3,s2,x6/14,s8,x4/12,s3,x8/1,s10,x15/5,ph/j,x0/6,pl/b,x9/11,pn/d,x4/12,s1,x2/6,pe/c,x13/14,s13,pk/n,x7/11,s11,x0/4,s4,x6/10,s5,x5/4,s1,x15/6,pm/d,x7/12,pa/n,x13/6,pi/p,x12/4,s14,x15/14,s14,pb/f,x2/6,pi/a,x8/10,s3,x1/12,s9,x7/9,s3,x6/8,s1,x4/5,pl/h,x9/0,s5,x10/12,pp/e,x15/6,pc/b,x14/2,ph/o,s10,x12/9,pd/b,x3/2,s11,x9/12,s10,x6/1,pg/i,x9/14,s1,pa/h,x10/1,s1,x12/9,s9,x1/3,pn/o,x8/6,pc/k,x3/5,pl/a,x7/0,s4,x9/12,pf/k,x7/11,po/a,x6/0,s10,x2/12,pj/n,x11/8,ph/f,x10/14,s5,x12/1,po/p,s9,x0/3,s14,x15/12,s8,x9/13,pn/g,x15/14,pj/i,x13/1,pg/b,x11/5,s5,x4/14,s15,x2/12,s7,x9/14,pn/a,x3/10,s13,x8/5,s12,ph/m,x0/9,pa/c,x1/6,s2,x10/9,s3,x5/14,s15,x15/9,s5,x3/14,s7,x2/6,s1,x13/4,s13,x5/12,s14,pd/f,x15/10,s9,x11/12,pn/p,s14,pc/h,s15,x14/6,s2,x13/9,s1,x6/14,s1,x7/11,s7,x6/1,po/l,x0/8,pf/m,s3,x9/13,s5,x15/3,s8,x0/14,pl/o,x4/9,s15,x15/8,s4,x13/12,s9,x8/10,s5,x9/4,pa/g,s1,x15/7,s15,x13/3,pn/p,x15/6,pc/i,s13,x14/2,s4,x10/7,s1,ph/d,x9/6,s12,x12/2,pn/p,s8,x8/15,s9,x12/11,s11,x4/13,pk/a,x2/12,s3,x6/13,s14,x0/8,pj/h,x10/14,s15,x2/3,pf/e,x7/10,s4,x8/3,pi/g,x4/9,s2,x5/14,s13,ph/f,x11/13,pe/p,s1,x0/5,ph/i,s10,x3/12,pa/l,x15/0,s5,x13/7,s9,x15/12,s2,x8/0,s10,x4/6,pd/o,x3/15,pc/m,x9/8,pi/f,x1/10,pn/m,x11/4,pk/e,x14/5,s13,x9/2,s3,x11/15,pa/i,x9/7,pm/e,x6/10,pp/j,x9/7,s4,pb/i,x6/3,s7,x4/0,s11,pa/l,x6/13,pc/f,x14/12,pp/n,x0/5,pc/a,s14,x12/8,s13,x1/2,s13,pn/p,x15/3,s11,x5/13,s13,x10/2,pm/e,x14/1,s8,x13/2,s14,x7/6,s13,x9/14,pp/b,x10/0,s5,x6/13,s4,x3/15,s14,x8/5,s15,x9/11,s4,x7/5,s1,x11/14,s11,x2/6,s9,po/g,x3/11,pi/l,s12,x5/6,s6,x9/3,pa/p,x10/1,ph/n,x11/8,s5,x0/3,s12,x15/6,s9,x13/3,pc/a,x12/2,s10,x10/7,s13,x15/1,pp/d,x12/5,s7,x3/4,s7,x10/13,pb/n,x9/12,pl/h,s2,x5/4,pd/g,x2/9,pm/o,x3/14,s7,x1/2,s15,x13/4,s2,x3/14,pe/g,x15/10,s9,x1/2,pk/c,x12/15,pm/d,x14/1,po/e,x9/4,s8,x14/15,s5,pb/n,x4/9,s7,x8/14,s5,x5/3,pd/k,s12,x14/4,pf/a,s10,x5/3,s9,x13/14,pl/d,s11,x3/10,s3,x14/0,pb/a,x2/6,pn/o,x13/15,pe/a,x12/14,s8,x11/8,s7,x2/6,pk/i,x0/15,pc/e,x12/10,pn/a,x4/14,pe/f,x0/2,pl/o,s14,x4/10,pi/k,x5/8,pm/p,x15/9,po/a,x13/2,pn/d,x8/3,pg/p,x1/10,s9,pd/j,x8/6,s10,x1/5,s6,x10/9,s8,x5/2,pk/m,x10/6,pl/f,x2/7,pn/e,x12/11,s3,x5/6,s12,x1/14,s7,x12/15,pd/l,x14/8,s13,x11/6,s6,x15/2,s4,x9/6,ph/o,x2/15,s13,x14/4,pg/i,x0/2,pa/m,x13/9,s10,x3/8,pb/i,x9/10,pg/m,x13/1,pa/l,x6/12,s7,pg/p,x7/3,pk/c,x10/15,pd/h,x7/3,s6,x6/9,s15,x10/13,s7,x3/6,s15,x9/4,pf/b,x15/8,pn/a,s10,pl/m,x14/4,s15,x12/8,s9,x0/2,s4,x4/3,s8,x8/0,s8,x2/15,pc/h,x14/0,pd/l,x9/5,pp/m,s5,x15/6,s9,pd/f,x12/14,s11,x11/3,s7,x8/10,pi/e,x3/1,s6,x5/14,s7,x9/6,s1,x8/11,s5,x15/6,pf/d,x12/10,pp/a,x4/3,s3,x5/8,s11,x11/12,s9,x3/13,pl/m,x5/7,s4,x3/12,pg/b,x14/6,pa/k,x13/9,pf/j,x7/11,s3,x14/4,s1,x6/3,s11,x4/2,s7,x11/6,pm/o,x14/10,s3,pb/a,x6/9,pk/p,x1/2,pn/g,x15/0,s10,x6/5,s15,x4/13,s13,x11/5,s2,x15/13,s2,x11/7,s2,x0/15,po/m,x8/7,pa/p,x0/13,pc/h,x6/11,s8,x0/10,s4,x5/4,s9,x12/15,s8,x2/6,pk/j,x1/10,pg/l,x14/15,s15,x0/11,pc/n,x9/2,pf/o,x13/7,s11,x10/0,pn/b,x3/12,s14,x4/5,pc/m,x9/14,s10,x13/11,pj/d,s3,x4/10,s8,x12/1,pm/o,x6/5,s13,x10/8,pc/a,s7,pd/l,x3/4,po/n,x11/5,s13,x1/13,s11,x7/3,pi/c,x2/14,s15,x7/6,s4,x1/10,po/f,x7/14,pl/b,x10/3,s6,x4/8,s13,x14/2,s10,x6/0,s2,x9/1,pm/c,x6/12,s14,x14/11,s12,x1/0,s10,x8/13,pb/k,x9/11,pm/a,x6/14,s11,pk/h,x12/13,s14,x14/15,s15,po/m,s4,x10/0,pd/j,x14/6,s13,x1/2,pe/h,x10/4,s7,x7/9,pg/n,x10/3,s6,x12/14,pp/j,x0/2,pl/n,x14/12,pe/d,x1/13,s7,x11/12,s4,x2/5,s3,x0/6,s15,x9/5,s8,x11/2,pb/h,x15/1,pl/c,s11,x6/10,s8,x5/1,s8,x12/3,ph/n,x10/5,pm/b,x8/2,pe/o,s1,x1/7,pn/h,x12/14,s14,x1/13,pi/l,x2/14,s6,x7/5,pm/d,x8/1,s2,x11/2,pj/o,x13/12,pm/i,x14/6,pb/n,x2/7,s3,x9/8,s5,x15/10,pd/p,x8/4,s6,x3/5,s14,pa/c,s11,x1/0,pl/j,x6/4,s9,x10/13,s4,x15/7,s9,x2/11,s3,x1/0,pg/o,x12/5,s8,x7/4,s12,x14/5,s2,x4/1,s12,x2/13,s4,x12/1,pb/j,x11/9,pf/m,x3/5,s5,x6/4,s5,x14/7,pj/e,x10/4,po/n,x6/0,s7,x13/15,pb/e,x4/14,s14,x13/9,s13,x5/7,s11,x6/12,s10,x14/7,pd/h,s2,x13/8,pi/a,x11/4,pm/j,x9/14,pf/d,x6/4,pn/j,x7/3,pk/o,x4/10,pc/p,s3,x2/5,pi/j,x4/13,s13,x2/11,s4,pd/o,x1/5,pe/c,x6/12,s1,x5/4,pd/j,x7/11,pa/g,x1/3,s2,x9/8,s14,x10/11,s7,x12/15,s6,x0/14,s6,x7/9,pc/p,x13/12,s5,x9/5,s12,pb/o,x15/3,s7,x4/2,pg/e,x14/3,ph/j,x8/4,pi/c,x6/12,s10,x9/8,pj/d,x5/13,po/e,x9/4,pf/m,x15/14,s1,x7/9,s3,x4/2,s13,pe/i,x13/6,s4,pb/l,x7/12,s13,x14/3,s7,x0/12,s10,x10/9,pf/h,x7/0,s5,x9/10,s12,x1/3,pc/j,x9/12,s12,x4/10,s11,x1/2,s8,x15/0,s2,x9/14,pf/a,x8/11,s9,x2/14,s1,x0/7,pn/h,x11/9,pm/o,s11,x8/5,s15,x4/13,ph/l,x8/10,pe/i,x5/4,s10,x15/10,s8,x11/9,s12,x7/1,pf/m,x0/8,s7,x12/2,s15,x13/5,s15,x12/9,s12,x15/1,pp/l,x6/9,s12,x4/11,ph/g,x13/10,pn/m,x1/0,pp/o,x4/15,s3,x6/5,pi/g,x4/1,pk/d,x15/9,s11,x2/4,s2,x14/8,s11,x10/3,s13,x13/12,pe/l,x3/15,pg/m,x1/10,s14,x3/8,s14,x14/1,pc/f,s12,x3/0,s12,x15/4,s8,x1/5,s2,x3/8,pl/p,s11,pg/b,x5/1,pp/h,x11/15,s5,x8/2,pc/n,x13/4,pa/d,x3/14,s6,x9/4,pb/f,x2/3,s2,x14/13,pk/o,x11/15,s12,x0/5,pa/g,x15/13,s8,x5/10,pc/e,x11/6,s9,x13/1,s14,x2/11,pd/b,x12/7,s8,x13/9,pn/j,x11/10,s9,x6/15,pc/l,x4/0,pp/j,x11/5,s5,x6/9,s7,pb/a,s13,x4/7,s5,x0/15,s7,x3/5,s10,x0/11,s13,x15/3,s7,x8/7,s1,x12/14,s14,x10/0,pk/l,x2/4,s7,x0/12,s14,x15/3,s4,x2/1,s9,x7/4,s15,x3/12,s4,x11/8,s2,x12/13,s7,x3/0,po/c,x12/15,s1,x6/7,s8,x9/11,s3,x12/3,s8,x14/1,s8,x5/2,pj/h,x6/15,s12,x5/11,s7,x1/4,pd/k,x12/0,s6,x15/8,pf/e,x7/10,pl/c,x6/5,s6,x8/15,ph/j,x9/11,s7,x6/14,pk/l,x11/12,s10,x9/3,s6,pg/h,x2/10,s2,x6/0,s1,pc/a,x1/12,s11,x5/3,pn/m,x2/10,pg/e,x7/6,pk/f,x14/15,ph/l,s11,x0/7,s5,x8/15,s1,x9/7,s3,x10/2,s5,x5/9,s2,x2/10,pk/m,x9/5,s8,x3/11,s9,x5/9,s14,x3/8,s1,x1/11,s1,x15/7,s1,x0/4,pa/o,x15/5,pc/m,x13/1,s4,x6/7,s12,x0/13,pa/p,x7/12,pg/e,x2/13,pl/i,x12/8,pf/b,x1/0,s4,x4/6,pn/o,x10/5,s12,pi/d,x14/6,s2,x5/1,s4,pp/c,x11/8,s5,x10/4,pn/b,s12,x3/1,pe/l,x10/13,s10,x4/6,pc/g,x11/9,s6,x15/5,pb/k,x6/0,s8,x5/1,ph/d,x15/11,pc/e,s15,x7/1,pi/o,x10/6,s6,x7/13,s5,x3/0,s8,x5/13,s10,x2/9,s11,x8/7,s4,x12/2,s12,x8/15,pb/e,x6/2,pp/n,s8,x10/5,pe/g,x7/15,s11,x4/14,s4,x10/2,s6,x8/6,s3,x5/7,pl/f,x3/0,s5,x4/15,pc/h,x14/11,s6,x2/8,s8,x14/12,pb/g,x6/11,s13,x14/2,s1,x12/7,s3,x9/5,s11,x3/8,pp/k,x5/14,pi/h,x2/9,s9,x8/4,pd/o,x12/3,s13,x5/2,s2,x15/12,pg/j,x9/3,s12,x1/15,pd/f,x8/7,pa/h,x11/15,s13,x7/1,pp/k,x3/5,s1,x0/8,s2,x15/4,s12,x5/8,s14,x10/0,pj/f,s9,x3/2,s13,x14/5,s13,x15/2,s4 diff --git a/2017/17/day17.hs b/2017/17/day17.hs new file mode 100644 index 0000000..281080e --- /dev/null +++ b/2017/17/day17.hs @@ -0,0 +1,26 @@ +#!/usr/bin/env stack +-- stack --resolver lts-9.18 script + +{-# LANGUAGE BangPatterns #-} + +import Data.List + +rotate :: Int -> [a] -> [a] +rotate n xs = take (length xs) (drop n (cycle xs)) + +spinlock :: (Num a, Enum a) => a -> Int -> [a] -> [a] +spinlock n steps buf = foldl' f buf [1..n] + where f !curbuf !i = let !newbuf = rotate (steps+1) curbuf in i:newbuf + +valueAfter :: Eq t => t -> [t] -> t +valueAfter n buf = buf !! ((i + 1) `rem` length buf) + where Just i = elemIndex n buf + +main :: IO () +main = do + let input = 312 + n = 2017 + start = [0] + print $ valueAfter n $ spinlock n input start + -- let n = 50000000 + -- print $ valueAfter 0 $ spinlock n input start diff --git a/2017/17/day17.scm b/2017/17/day17.scm new file mode 100644 index 0000000..090ee01 --- /dev/null +++ b/2017/17/day17.scm @@ -0,0 +1,25 @@ +;; $ csc day17.scm -o day17 -O5 +;; $ ./day17 -:hm8g + +(use srfi-1) +(declare (fixnum)) + +(define (prepend! x list) + (set-cdr! list (cons (car list) (cdr list))) + (set-car! list x)) + +(define (spin steps n after) + (let ((buffer (circular-list 0))) + (do ((i 1 (+ i 1))) + ((> i n) (cadr (member after buffer))) + (let ((new (drop buffer (+ steps 1)))) + (prepend! i new) + (set! buffer new))))) + +(write (spin 3 2017 2017)) +(newline) +(write (spin 312 2017 2017)) +(newline) +(write (spin 312 50000000 0)) +(newline) + diff --git a/2017/20/day20.hs b/2017/20/day20.hs new file mode 100644 index 0000000..8b9a69f --- /dev/null +++ b/2017/20/day20.hs @@ -0,0 +1,70 @@ +#!/usr/bin/env stack +-- stack --resolver lts-9.20 script + +{-# LANGUAGE OverloadedStrings #-} + +import Data.Attoparsec.Text hiding (take) +import Data.Text (Text) +import qualified Data.Text as T +import Data.List (minimumBy, (\\)) +import Data.Function (on) + +data Point a = + Point { position :: (a,a,a) + , velocity :: (a,a,a) + , acceleration :: (a,a,a) + } + deriving (Show, Eq) + +parseVector :: Text -> Parser (Int,Int,Int) +parseVector id = do + string id + string "=<" + x <- signed decimal + string "," + y <- signed decimal + string "," + z <- signed decimal + string ">" + return (x,y,z) + +parsePoint :: Parser (Point Int) +parsePoint = do + pos <- parseVector "p" + string "," + skipSpace + vel <- parseVector "v" + string "," + skipSpace + acc <- parseVector "a" + return $ Point pos vel acc + +update :: Num a => Point a -> Point a +update (Point (posx,posy,posz) (velx,vely,velz) (accx,accy,accz)) = + Point (posx',posy',posz') (velx',vely',velz') (accx,accy,accz) + where velx' = velx + accx + vely' = vely + accy + velz' = velz + accz + posx' = posx + velx' + posy' = posy + vely' + posz' = posz + velz' + +removeCollisions :: Eq a => [Point a] -> [Point a] +removeCollisions [] = [] +removeCollisions (p:ps) = case filter (\x -> position x == position p) ps of + [] -> p : removeCollisions ps + xs -> removeCollisions $ ps \\ xs + +distance :: Num a => Point a -> a +distance (Point (x,y,z) _ _) = abs x + abs y + abs z + +closestZero :: [Point Int] -> Integer +closestZero = fst . minimumBy (compare `on` (distance . snd)) . zip [0..] + +main :: IO () +main = do + contents <- T.lines . T.pack <$> getContents + let Right points = mapM (parseOnly parsePoint) contents + -- mapM_ print points + print . take 1000 . map closestZero $ iterate (map update) points + print . take 200 . map length $ iterate (removeCollisions . map update) points diff --git a/2017/20/input.txt b/2017/20/input.txt new file mode 100644 index 0000000..1754fc4 --- /dev/null +++ b/2017/20/input.txt @@ -0,0 +1,1000 @@ +p=<-1724,-1700,5620>, v=<44,-10,-107>, a=<2,6,-9> +p=<551,3425,4570>, v=<-21,-7,-182>, a=<0,-10,0> +p=<-524,-3400,2495>, v=<22,19,5>, a=<0,9,-8> +p=<-123,-125,419>, v=<25,54,-12>, a=<-2,-5,-2> +p=<-3811,3483,1459>, v=<162,-112,-26>, a=<9,-12,-8> +p=<-827,475,771>, v=<52,-26,0>, a=<0,0,-6> +p=<293,1547,-669>, v=<-18,-93,-12>, a=<0,0,6> +p=<-251,-165,2787>, v=<16,-3,-160>, a=<0,2,-2> +p=<-907,-309,-565>, v=<-11,-96,75>, a=<8,14,-5> +p=<277,265,394>, v=<-80,-8,89>, a=<8,-2,-16> +p=<158,-1933,779>, v=<-34,29,39>, a=<3,14,-13> +p=<1334,-449,2>, v=<-73,-2,-18>, a=<-3,4,2> +p=<-248,-2136,-1678>, v=<25,126,42>, a=<-1,3,10> +p=<-108,-3389,2431>, v=<30,148,-79>, a=<-3,12,-13> +p=<291,-1569,1010>, v=<9,78,-30>, a=<-4,4,-6> +p=<-1270,-169,-761>, v=<128,-52,104>, a=<-5,8,-7> +p=<473,-1765,-950>, v=<-4,62,65>, a=<-4,8,0> +p=<-3434,5581,4276>, v=<-88,-93,-34>, a=<13,-6,-7> +p=<-4844,-3149,-2204>, v=<21,105,-35>, a=<9,0,7> +p=<8176,-6974,8131>, v=<-72,93,-54>, a=<-13,9,-14> +p=<-1814,6046,-5354>, v=<-18,-93,8>, a=<5,-7,11> +p=<2581,-4244,-4379>, v=<68,2,115>, a=<-10,9,2> +p=<-3053,-52,-1564>, v=<58,-53,52>, a=<8,5,2> +p=<3079,3875,-1480>, v=<-80,-86,26>, a=<-6,-9,4> +p=<-1289,2006,-2551>, v=<-26,-52,99>, a=<8,-4,2> +p=<6589,4375,-1445>, v=<-120,-149,7>, a=<-11,-2,4> +p=<-286,3400,-2070>, v=<64,-97,-7>, a=<-4,-3,7> +p=<3656,2161,-3059>, v=<-28,107,29>, a=<-4,-9,3> +p=<7724,-989,5185>, v=<-178,-9,-126>, a=<-2,2,-1> +p=<-214,127,2881>, v=<98,34,-99>, a=<-5,-2,1> +p=<-160,-5705,181>, v=<4,48,-98>, a=<0,6,5> +p=<1966,616,-1461>, v=<-113,25,-11>, a=<3,-3,4> +p=<-1064,-839,-4146>, v=<19,58,63>, a=<1,-2,5> +p=<2601,-2432,-793>, v=<-148,41,50>, a=<0,10,-1> +p=<3114,-3188,683>, v=<-110,140,-89>, a=<-7,4,5> +p=<801,-1685,-2143>, v=<47,28,49>, a=<-10,7,7> +p=<-192,1521,3967>, v=<45,-79,-102>, a=<-2,2,0> +p=<-5925,-8229,-12491>, v=<12,51,80>, a=<7,8,12> +p=<-3897,-624,3460>, v=<120,36,11>, a=<-1,-1,-5> +p=<-7563,-8853,-2663>, v=<14,-33,48>, a=<9,13,1> +p=<-1050,9867,-4457>, v=<-13,-73,14>, a=<2,-9,5> +p=<1485,-10218,6736>, v=<-38,-18,-173>, a=<0,14,0> +p=<-3780,-11193,3772>, v=<-43,127,-117>, a=<7,8,1> +p=<-3117,0,-10931>, v=<40,-20,140>, a=<2,1,7> +p=<-7992,741,-8981>, v=<45,-59,130>, a=<8,2,5> +p=<-3969,-1262,-5>, v=<56,-29,86>, a=<6,5,-6> +p=<-1785,670,4825>, v=<-22,-11,-101>, a=<6,-1,-5> +p=<3591,1930,807>, v=<18,89,86>, a=<-10,-11,-8> +p=<4431,2812,-2637>, v=<-12,-15,-23>, a=<-10,-6,8> +p=<9360,4333,-5513>, v=<-140,-59,98>, a=<-10,-5,5> +p=<5020,830,811>, v=<-64,6,-26>, a=<-6,-2,0> +p=<6477,-3169,-5513>, v=<-143,39,-30>, a=<-4,4,13> +p=<-529,-4998,-1173>, v=<51,-14,-10>, a=<-2,11,3> +p=<-435,-1347,-268>, v=<1,49,-3>, a=<1,0,1> +p=<1231,-3321,-4972>, v=<-73,47,78>, a=<2,5,7> +p=<727,5065,740>, v=<3,-93,48>, a=<-2,-6,-5> +p=<-1252,4570,2332>, v=<15,-9,-1>, a=<4,-19,-10> +p=<-1546,-2045,631>, v=<73,75,36>, a=<0,2,-6> +p=<470,-2150,-4703>, v=<10,47,48>, a=<-3,5,16> +p=<-2533,433,1849>, v=<87,-21,-44>, a=<3,0,-4> +p=<6140,-3494,-3632>, v=<-150,100,85>, a=<-13,6,8> +p=<-1672,-1541,-1637>, v=<46,-48,56>, a=<3,11,2> +p=<-1882,-1478,106>, v=<67,103,17>, a=<2,-3,-2> +p=<-848,1295,209>, v=<62,-128,24>, a=<5,0,-8> +p=<152,580,119>, v=<-49,-7,-66>, a=<7,-9,10> +p=<107,-350,-611>, v=<38,31,51>, a=<-8,1,2> +p=<-628,-720,-331>, v=<-15,46,23>, a=<15,5,2> +p=<-543,885,534>, v=<48,-76,-25>, a=<2,-2,-5> +p=<772,-105,-881>, v=<-1,23,133>, a=<-13,-2,-8> +p=<-2471,-873,-4405>, v=<-50,26,60>, a=<7,0,4> +p=<1286,2000,-818>, v=<32,-6,112>, a=<-4,-3,-5> +p=<5094,5434,5217>, v=<-10,-107,-83>, a=<-8,-3,-4> +p=<5978,-1961,6067>, v=<-106,58,-3>, a=<-4,0,-10> +p=<-3233,-1295,1581>, v=<29,-22,-81>, a=<3,3,2> +p=<-6785,6993,2543>, v=<-65,-94,45>, a=<13,-5,-6> +p=<-643,-1443,11682>, v=<-3,-56,-88>, a=<1,5,-12> +p=<-8561,7474,1729>, v=<-131,-50,67>, a=<19,-8,-6> +p=<-569,-3182,4467>, v=<-43,-28,107>, a=<3,6,-12> +p=<7867,-9398,-4783>, v=<-100,7,34>, a=<-6,13,5> +p=<2835,11840,-3488>, v=<-21,-54,-39>, a=<-3,-14,7> +p=<1910,-2405,-1120>, v=<-34,-11,30>, a=<-1,4,0> +p=<-3487,2750,1811>, v=<122,15,-82>, a=<1,-9,1> +p=<-1303,-3516,-1712>, v=<-16,40,67>, a=<5,7,0> +p=<-3435,-812,5295>, v=<-15,44,-108>, a=<11,-1,-7> +p=<-3230,2132,-3519>, v=<70,-95,0>, a=<4,1,10> +p=<-4647,-364,69>, v=<30,82,-57>, a=<11,-5,4> +p=<-2112,1183,-5456>, v=<27,-18,61>, a=<4,-2,11> +p=<1164,3419,1668>, v=<36,-104,-24>, a=<-6,-2,-3> +p=<1255,1105,5022>, v=<46,12,-153>, a=<-7,-4,-3> +p=<345,-2223,-7276>, v=<0,5,185>, a=<-1,6,7> +p=<735,-2054,2526>, v=<-123,39,-30>, a=<7,3,-5> +p=<-611,476,-1584>, v=<-46,26,111>, a=<9,-6,-2> +p=<-1223,-867,-156>, v=<71,33,27>, a=<0,2,-2> +p=<341,408,133>, v=<-21,30,82>, a=<0,-6,-10> +p=<-1291,-68,1510>, v=<30,4,-35>, a=<5,0,-6> +p=<-458,-646,1136>, v=<125,-43,-139>, a=<-11,9,8> +p=<-917,2516,286>, v=<26,-67,46>, a=<3,-9,-7> +p=<-33,2686,1204>, v=<-35,-86,-71>, a=<4,-8,0> +p=<5067,-153,2717>, v=<-146,18,-88>, a=<-17,-1,-8> +p=<443,-340,592>, v=<99,20,1>, a=<-14,0,-4> +p=<-1174,-1630,-1150>, v=<30,99,41>, a=<9,4,7> +p=<1361,983,1086>, v=<-109,-74,-5>, a=<1,0,-11> +p=<-1837,-1162,735>, v=<102,105,-48>, a=<6,-2,-1> +p=<984,372,-2047>, v=<-108,29,131>, a=<5,-8,4> +p=<-381,-148,2191>, v=<-17,76,-139>, a=<7,-9,-4> +p=<8982,3891,5939>, v=<33,43,-156>, a=<-17,-9,-1> +p=<1094,3109,-9786>, v=<55,-39,79>, a=<-5,-3,12> +p=<6993,-376,2250>, v=<-31,46,40>, a=<-10,-2,-6> +p=<2976,-5129,2345>, v=<-114,0,-47>, a=<1,11,-2> +p=<12156,-1469,3035>, v=<-172,33,-101>, a=<-15,1,0> +p=<-4194,-2864,-8005>, v=<63,95,112>, a=<5,0,10> +p=<-669,3091,-9325>, v=<-132,36,187>, a=<10,-9,8> +p=<-5304,11086,-145>, v=<69,-122,5>, a=<7,-16,0> +p=<-720,2612,-1116>, v=<80,-172,46>, a=<-4,5,0> +p=<-5916,6128,-816>, v=<84,-81,-29>, a=<13,-14,5> +p=<780,-3352,2868>, v=<5,14,-95>, a=<-3,10,-2> +p=<-1524,-2572,-1560>, v=<-99,44,52>, a=<13,5,1> +p=<2400,2156,1248>, v=<25,-103,35>, a=<-10,1,-7> +p=<-2232,680,-1716>, v=<18,-54,-29>, a=<6,2,8> +p=<-1968,-160,1764>, v=<7,56,-49>, a=<6,-4,-2> +p=<2496,-808,-4140>, v=<-29,-17,97>, a=<-6,4,6> +p=<2628,-172,-1512>, v=<-122,19,25>, a=<1,-1,3> +p=<-876,-2812,2052>, v=<-26,4,-11>, a=<5,9,-6> +p=<-1338,-3098,-4448>, v=<59,17,-10>, a=<0,10,17> +p=<1376,2307,-2194>, v=<61,-86,-48>, a=<-10,-1,12> +p=<-1982,30,-2355>, v=<15,-83,19>, a=<6,7,7> +p=<3561,-3190,-2309>, v=<26,21,53>, a=<-15,10,4> +p=<640,4377,1969>, v=<-51,-68,-1>, a=<2,-10,-7> +p=<2273,-2063,-1780>, v=<-26,20,30>, a=<-6,6,4> +p=<4297,-5421,2199>, v=<-54,58,-11>, a=<-11,15,-7> +p=<2020,-3121,-4862>, v=<-15,114,164>, a=<-6,2,4> +p=<4021,1410,6086>, v=<-174,-59,-36>, a=<0,0,-19> +p=<-710,-514,-103>, v=<6,2,3>, a=<4,3,0> +p=<174,-2690,-749>, v=<-37,22,23>, a=<3,15,2> +p=<650,-1551,1835>, v=<43,36,-111>, a=<-9,6,0> +p=<-2342,-1262,-2483>, v=<120,28,62>, a=<2,5,9> +p=<-1611,1220,-375>, v=<95,-46,-17>, a=<0,-3,4> +p=<1500,540,832>, v=<-25,48,-88>, a=<-7,-9,4> +p=<-149,1764,934>, v=<36,-42,23>, a=<-3,-7,-9> +p=<-728,868,1477>, v=<28,-2,-61>, a=<1,-5,-2> +p=<-2294,2227,-2582>, v=<-37,-106,41>, a=<17,-2,11> +p=<-2033,-293,2458>, v=<-42,-4,-49>, a=<16,2,-9> +p=<2053,499,478>, v=<35,-10,-72>, a=<-16,-2,5> +p=<159,-925,-753>, v=<-10,78,-15>, a=<0,-1,10> +p=<380,-782,534>, v=<1,25,40>, a=<-4,5,-12> +p=<159,-1705,-64>, v=<-10,96,2>, a=<0,5,0> +p=<-1917,5395,-3194>, v=<24,-11,-39>, a=<2,-9,8> +p=<2175,1237,-11510>, v=<-66,-21,94>, a=<0,-1,15> +p=<-4534,-1053,1496>, v=<133,-92,-10>, a=<9,14,-6> +p=<-1564,-423,1446>, v=<79,13,-60>, a=<0,1,-1> +p=<226,-1933,96>, v=<0,99,-3>, a=<-1,0,0> +p=<1106,-983,-5614>, v=<-23,83,209>, a=<-3,-3,7> +p=<-4004,-873,346>, v=<33,-59,-26>, a=<16,10,1> +p=<446,-73,16>, v=<10,-15,1>, a=<-3,2,0> +p=<-1954,2537,2276>, v=<67,-30,-28>, a=<3,-9,-8> +p=<1679,2113,1151>, v=<-125,-21,-49>, a=<4,-8,-1> +p=<-1661,963,3671>, v=<84,-37,-70>, a=<0,-1,-11> +p=<549,-1907,-1969>, v=<47,75,65>, a=<-7,2,3> +p=<-1211,3043,1101>, v=<114,-183,-15>, a=<-5,3,-4> +p=<3599,4543,-569>, v=<-53,-216,16>, a=<-12,-1,1> +p=<1259,943,-3929>, v=<-62,69,58>, a=<0,-11,13> +p=<3269,1153,2001>, v=<-5,-141,-81>, a=<-15,8,-2> +p=<-301,513,-3429>, v=<-68,17,117>, a=<8,-4,5> +p=<20,-3664,-1168>, v=<28,-75,2>, a=<-2,15,3> +p=<6905,-2233,-142>, v=<-45,12,6>, a=<-15,5,0> +p=<263,-5203,6014>, v=<159,24,-54>, a=<-12,12,-12> +p=<1910,-3232,-5164>, v=<0,35,66>, a=<-5,6,9> +p=<2099,1844,3854>, v=<-189,15,-58>, a=<8,-6,-6> +p=<263,2384,1451>, v=<-65,-89,17>, a=<4,0,-5> +p=<-1951,-370,-3166>, v=<17,13,6>, a=<4,0,8> +p=<3970,-2112,-15695>, v=<19,33,63>, a=<-6,1,17> +p=<-944,-84,-8441>, v=<-95,-39,77>, a=<6,2,7> +p=<3463,189,-4463>, v=<-28,14,-45>, a=<-3,-1,8> +p=<2527,-3126,-6179>, v=<76,-121,-1>, a=<-7,10,8> +p=<-515,5454,-8675>, v=<54,39,23>, a=<-2,-9,10> +p=<-5195,-6636,-6881>, v=<94,29,117>, a=<2,7,3> +p=<-9056,2178,-7466>, v=<73,43,12>, a=<8,-5,9> +p=<-7262,-4647,-7232>, v=<67,78,6>, a=<6,2,9> +p=<10444,5025,-5594>, v=<-87,-50,44>, a=<-9,-4,5> +p=<-1494,-5162,-5206>, v=<86,48,79>, a=<-2,12,10> +p=<-2994,-2912,3394>, v=<3,62,99>, a=<9,4,-18> +p=<1531,-5762,544>, v=<-48,163,44>, a=<-1,5,-5> +p=<6856,-812,2669>, v=<-196,-22,-15>, a=<-6,4,-7> +p=<-1519,-2937,-4531>, v=<61,-28,91>, a=<0,11,7> +p=<7681,-2187,-4931>, v=<-99,7,172>, a=<-16,6,2> +p=<831,-5587,-2956>, v=<-59,52,2>, a=<2,13,9> +p=<-1969,-862,-4106>, v=<40,6,87>, a=<3,2,6> +p=<310,-7295,-12457>, v=<49,102,90>, a=<-3,5,13> +p=<3011,-13067,-7092>, v=<52,68,21>, a=<-7,15,9> +p=<3011,2621,6302>, v=<-81,-90,1>, a=<0,1,-9> +p=<1087,10465,3342>, v=<47,-36,43>, a=<-4,-13,-7> +p=<-3538,1733,-3355>, v=<-151,48,91>, a=<13,-5,0> +p=<-2057,-878,-2342>, v=<105,112,132>, a=<3,-7,2> +p=<567,914,2730>, v=<26,17,-151>, a=<-7,-9,-2> +p=<1167,-6,826>, v=<-37,49,2>, a=<-4,-6,-6> +p=<-433,938,-214>, v=<46,-61,-18>, a=<-2,0,4> +p=<-281,-670,114>, v=<-57,133,72>, a=<9,-11,-9> +p=<1239,1162,-2622>, v=<-50,-75,158>, a=<-3,0,1> +p=<-685,-1136,-2529>, v=<-19,-4,91>, a=<6,7,5> +p=<1475,-425,-1782>, v=<13,42,97>, a=<-10,-2,0> +p=<2366,196,-1323>, v=<-84,-78,24>, a=<-5,7,5> +p=<125,-785,-2781>, v=<-83,24,162>, a=<8,2,-1> +p=<-563,1545,-180>, v=<-40,37,-9>, a=<4,-6,1> +p=<-2680,-311,7215>, v=<78,41,-69>, a=<1,-2,-12> +p=<4483,-5212,3387>, v=<-4,195,-102>, a=<-10,-1,-1> +p=<-1984,3662,864>, v=<-96,84,-45>, a=<11,-14,1> +p=<-1442,508,-3484>, v=<48,-84,160>, a=<7,6,12> +p=<1253,25,-131>, v=<-62,18,-12>, a=<-4,-3,3> +p=<-875,-1655,-2644>, v=<45,18,115>, a=<2,13,10> +p=<-392,-486,1479>, v=<18,32,-82>, a=<1,0,-3> +p=<390,4226,-4285>, v=<-30,69,-9>, a=<1,-10,7> +p=<-2364,-10786,-9595>, v=<28,42,83>, a=<2,14,10> +p=<5466,5378,6335>, v=<88,-37,29>, a=<-13,-6,-11> +p=<5628,5144,-10711>, v=<-46,-49,77>, a=<-6,-5,12> +p=<-5253,6562,122>, v=<16,-126,-3>, a=<7,-3,0> +p=<-2715,-2654,-508>, v=<-73,19,144>, a=<8,3,-7> +p=<-7557,-3248,8258>, v=<80,54,-81>, a=<7,2,-8> +p=<1893,1504,6008>, v=<-53,70,-37>, a=<0,-6,-7> +p=<9957,-8396,-1408>, v=<-92,12,-90>, a=<-10,12,7> +p=<-10869,6202,-7528>, v=<98,32,43>, a=<11,-11,9> +p=<2721,10522,-3046>, v=<-76,-125,11>, a=<0,-9,4> +p=<-1059,11188,6872>, v=<29,-51,-24>, a=<0,-14,-9> +p=<-2630,2612,-6576>, v=<80,-27,47>, a=<0,-3,9> +p=<5818,-9070,9165>, v=<-142,140,-5>, a=<-2,8,-16> +p=<-650,-1513,-3243>, v=<37,-4,-37>, a=<-1,3,8> +p=<934,-10390,3753>, v=<-62,10,-79>, a=<2,18,-2> +p=<-1852,-889,-4898>, v=<4,33,80>, a=<5,0,8> +p=<-3880,-5075,-530>, v=<-26,32,-61>, a=<13,12,6> +p=<670,2075,-1661>, v=<42,0,23>, a=<-5,-6,3> +p=<-6493,-2137,2382>, v=<61,0,-92>, a=<14,6,0> +p=<2074,1620,5749>, v=<-93,-104,35>, a=<1,3,-19> +p=<4050,-1578,1485>, v=<-61,127,10>, a=<-7,-5,-5> +p=<17,-3261,-2043>, v=<25,0,-24>, a=<-2,10,8> +p=<592,1964,-3368>, v=<15,-53,107>, a=<-3,-2,2> +p=<2342,2289,2932>, v=<-81,-66,-15>, a=<-1,-2,-8> +p=<-5808,-236,-918>, v=<141,61,22>, a=<7,-4,1> +p=<42,364,-2268>, v=<-28,-2,-67>, a=<2,-1,12> +p=<-3408,3814,57>, v=<71,-23,-147>, a=<5,-10,11> +p=<-5233,414,-1568>, v=<-38,-30,35>, a=<19,1,2> +p=<-6733,-986,4307>, v=<126,0,-148>, a=<11,3,-2> +p=<-758,539,-1218>, v=<-22,-87,-5>, a=<4,5,4> +p=<2242,-2811,6507>, v=<-51,-109,-145>, a=<-3,17,-9> +p=<-1348,-469,2089>, v=<66,45,-79>, a=<0,-2,-2> +p=<353,1127,1501>, v=<-81,-86,-73>, a=<6,3,0> +p=<521,-3892,-1754>, v=<-1,43,115>, a=<-2,13,-3> +p=<815,-7,451>, v=<-26,-65,21>, a=<-1,6,-4> +p=<-3658,1778,-284>, v=<33,-62,-21>, a=<13,-2,3> +p=<2558,2597,325>, v=<-65,-13,71>, a=<-5,-10,-8> +p=<2348,2198,-158>, v=<99,-82,-27>, a=<-19,-2,3> +p=<3839,2618,-1397>, v=<-115,-124,-1>, a=<-6,0,6> +p=<808,1558,-4407>, v=<-31,46,85>, a=<0,-7,5> +p=<-158,2020,-3175>, v=<18,-72,128>, a=<-1,0,-1> +p=<-5730,3168,-865>, v=<72,-55,60>, a=<9,-4,-2> +p=<-2720,2552,829>, v=<-108,25,72>, a=<14,-8,-7> +p=<-4428,-6058,1487>, v=<98,57,-24>, a=<4,11,-2> +p=<174,-1099,-723>, v=<30,72,64>, a=<-6,3,0> +p=<-396,77,-129>, v=<-33,-39,47>, a=<11,5,-5> +p=<216,-967,1185>, v=<-45,48,-17>, a=<5,5,-12> +p=<324,-349,-807>, v=<24,55,45>, a=<-7,-4,4> +p=<-2196,515,549>, v=<169,22,-42>, a=<3,-10,0> +p=<-630,-133,-267>, v=<-46,-93,-65>, a=<16,16,14> +p=<-846,1235,591>, v=<76,-129,-26>, a=<0,4,-3> +p=<342,323,807>, v=<-23,-27,-18>, a=<0,0,-7> +p=<1602,-1627,561>, v=<-63,116,-30>, a=<-10,3,-2> +p=<511,296,-276>, v=<-81,-61,10>, a=<6,6,3> +p=<-529,1706,99>, v=<34,-114,-55>, a=<4,-10,8> +p=<-144,-4,874>, v=<34,68,-50>, a=<-3,-12,-7> +p=<1446,-464,674>, v=<-103,15,-41>, a=<-7,6,-5> +p=<-219,181,-536>, v=<36,-66,25>, a=<-2,9,5> +p=<236,171,-236>, v=<7,-32,39>, a=<-5,3,-3> +p=<96,91,-241>, v=<-45,-57,-43>, a=<7,9,12> +p=<-39,-319,-456>, v=<73,61,6>, a=<-12,-5,7> +p=<-2204,-2381,1899>, v=<-48,25,-26>, a=<14,8,-6> +p=<1303,-596,1773>, v=<-72,61,-20>, a=<1,-3,-6> +p=<-1133,1420,681>, v=<44,-57,21>, a=<1,-1,-5> +p=<-881,-1415,-1419>, v=<87,-43,33>, a=<-4,10,3> +p=<-1931,-470,1815>, v=<115,77,-66>, a=<-2,-5,-2> +p=<-125,349,2865>, v=<29,-17,-72>, a=<-2,0,-6> +p=<3424,97,-873>, v=<14,-5,7>, a=<-16,0,3> +p=<2038,391,1437>, v=<-74,-8,-81>, a=<-2,-1,1> +p=<-6411,719,-14316>, v=<-85,-76,85>, a=<13,3,15> +p=<410,-288,3848>, v=<28,-108,36>, a=<-2,6,-7> +p=<8314,2923,-5842>, v=<-63,22,174>, a=<-8,-5,-1> +p=<-6050,3174,2113>, v=<8,-34,-84>, a=<11,-4,1> +p=<-2418,7046,1937>, v=<76,-122,-29>, a=<0,-6,-2> +p=<-1800,562,-113>, v=<82,-49,18>, a=<-1,2,-1> +p=<4545,3856,3721>, v=<-153,-143,-68>, a=<-1,0,-5> +p=<-2502,211,5395>, v=<10,6,-102>, a=<6,-1,-7> +p=<1560,936,1001>, v=<-10,-46,-67>, a=<-9,-1,1> +p=<-361,834,-1345>, v=<22,-31,44>, a=<0,-2,4> +p=<1934,-1257,-2433>, v=<-68,-7,99>, a=<-5,9,5> +p=<557,-764,-2909>, v=<49,54,55>, a=<-9,-1,13> +p=<3141,1990,1205>, v=<-49,-18,-43>, a=<-15,-11,-3> +p=<-397,-846,-12>, v=<59,42,33>, a=<-4,4,-5> +p=<-493,-1314,72>, v=<28,94,-13>, a=<2,2,1> +p=<-1729,-612,456>, v=<131,68,-6>, a=<2,-3,-5> +p=<-1891,2010,-1272>, v=<151,-118,86>, a=<1,-8,3> +p=<-277,672,-1416>, v=<23,-91,72>, a=<0,5,7> +p=<-1903,90,-894>, v=<100,-10,35>, a=<9,0,6> +p=<-247,-198,-570>, v=<-25,-25,-5>, a=<7,6,8> +p=<454,398,1555>, v=<-52,29,-145>, a=<3,-6,6> +p=<-1195,1894,2592>, v=<27,-113,1>, a=<5,0,-17> +p=<2732,-809,-740>, v=<-159,1,-28>, a=<0,5,8> +p=<7995,-10017,-225>, v=<-72,65,-44>, a=<-10,14,3> +p=<-1542,3909,-5373>, v=<115,-170,-75>, a=<-4,3,14> +p=<-7713,1797,-5307>, v=<13,-38,25>, a=<13,-1,8> +p=<-4149,1830,-2601>, v=<7,-56,79>, a=<7,0,0> +p=<1098,1401,7992>, v=<1,-43,-174>, a=<-2,0,-4> +p=<-255,6747,6705>, v=<25,-137,-135>, a=<-1,-4,-4> +p=<6246,-5430,-456>, v=<-87,147,31>, a=<-6,1,-1> +p=<1869,-33,2658>, v=<-27,-38,-99>, a=<-8,4,-5> +p=<195,876,2298>, v=<-67,35,-60>, a=<6,-9,-7> +p=<-1515,597,-1644>, v=<85,-54,-12>, a=<0,2,11> +p=<27,940,-783>, v=<7,-44,50>, a=<-2,-10,5> +p=<427,-620,-698>, v=<-33,79,69>, a=<-2,-4,0> +p=<-43,1145,952>, v=<14,-92,-96>, a=<-2,-5,0> +p=<-343,-1980,-1913>, v=<11,204,119>, a=<4,-2,13> +p=<1672,290,337>, v=<-141,-23,-51>, a=<-5,-2,3> +p=<847,210,652>, v=<-9,40,-77>, a=<-14,-12,2> +p=<227,645,1572>, v=<31,-42,-114>, a=<-10,-5,-8> +p=<5132,-2254,3508>, v=<17,-13,-120>, a=<-13,6,0> +p=<2928,9172,-1045>, v=<-72,-92,-98>, a=<-2,-15,9> +p=<3363,2154,-2553>, v=<3,-60,44>, a=<-8,-1,3> +p=<-3655,-3849,-1016>, v=<20,-78,51>, a=<7,14,-1> +p=<-175,95,-1799>, v=<-25,11,63>, a=<2,-1,0> +p=<-2263,-3269,-175>, v=<-28,-8,37>, a=<7,8,-2> +p=<-548,660,-2632>, v=<78,-54,192>, a=<-4,-1,8> +p=<-284,-473,1273>, v=<36,13,-55>, a=<-1,5,-10> +p=<-1263,1001,899>, v=<113,-97,-81>, a=<1,1,0> +p=<552,-1012,-1059>, v=<-82,98,-5>, a=<6,-1,17> +p=<266,1199,1020>, v=<-68,-67,-86>, a=<8,-7,-1> +p=<-273,352,1504>, v=<35,22,-52>, a=<-1,-9,-14> +p=<178,1089,965>, v=<-12,-177,-33>, a=<0,13,-9> +p=<-779,3754,4823>, v=<-100,-37,-43>, a=<6,-3,-4> +p=<-7370,-5645,4121>, v=<9,64,35>, a=<9,4,-7> +p=<-16886,6406,3926>, v=<133,-65,0>, a=<15,-5,-5> +p=<8191,-5684,7241>, v=<30,25,15>, a=<-12,6,-10> +p=<14665,1180,1391>, v=<-156,-51,-95>, a=<-11,1,3> +p=<-5186,5587,1001>, v=<-7,-4,35>, a=<7,-7,-3> +p=<-4445,4573,611>, v=<-6,-18,-15>, a=<6,-5,0> +p=<4369,4417,-2704>, v=<-32,-114,-70>, a=<-4,0,7> +p=<274,5314,-52>, v=<-67,3,42>, a=<3,-7,-2> +p=<-4679,8902,-4888>, v=<120,-49,-54>, a=<0,-9,9> +p=<-1946,1729,-573>, v=<-280,245,-81>, a=<20,-15,0> +p=<-1839,1466,-1821>, v=<-261,212,-255>, a=<13,-16,15> +p=<-2836,-464,-1612>, v=<-401,-65,-230>, a=<31,8,14> +p=<2598,-811,983>, v=<370,-115,137>, a=<-25,9,-11> +p=<994,-2572,348>, v=<142,-367,47>, a=<-9,24,-3> +p=<2456,307,1189>, v=<355,45,174>, a=<-24,-7,-17> +p=<-453,-2082,-1034>, v=<-66,-291,-147>, a=<0,19,9> +p=<-1061,3123,-203>, v=<-153,446,-26>, a=<12,-27,-4> +p=<-360,-2008,1626>, v=<-50,-292,235>, a=<5,23,-17> +p=<-1354,1970,-2044>, v=<-195,282,-290>, a=<14,-24,21> +p=<-2920,873,306>, v=<-419,124,43>, a=<31,-9,-3> +p=<-666,-945,2847>, v=<-96,-135,404>, a=<6,9,-29> +p=<-2744,655,699>, v=<-392,89,99>, a=<24,-5,0> +p=<138,1954,-2278>, v=<16,276,-325>, a=<-8,-19,23> +p=<619,2076,-2198>, v=<88,296,-309>, a=<-5,-25,23> +p=<2760,804,-205>, v=<397,109,-29>, a=<-23,-2,0> +p=<1750,-1552,1906>, v=<250,-221,271>, a=<-14,18,-19> +p=<-1028,-1841,-1647>, v=<-150,-264,-236>, a=<8,18,14> +p=<-1239,539,2728>, v=<-180,71,394>, a=<6,-5,-28> +p=<-1844,-437,-1743>, v=<-261,-64,-250>, a=<23,8,20> +p=<2245,-1089,2018>, v=<317,-156,280>, a=<-20,4,-18> +p=<-395,-2813,852>, v=<-52,-396,125>, a=<2,27,-9> +p=<-1245,2128,-1593>, v=<-183,308,-227>, a=<12,-21,15> +p=<1634,-996,-2107>, v=<228,-143,-304>, a=<-16,9,26> +p=<1859,-1170,-2386>, v=<265,-168,-334>, a=<-18,17,23> +p=<2479,-778,1990>, v=<354,-113,284>, a=<-24,7,-19> +p=<1220,-1898,-733>, v=<176,-267,-109>, a=<-12,21,6> +p=<-2630,1109,443>, v=<-377,157,62>, a=<24,-7,-1> +p=<-143,-1485,2595>, v=<-20,-212,372>, a=<1,14,-27> +p=<-1407,2643,232>, v=<-201,380,33>, a=<14,-26,-4> +p=<-804,2632,-1699>, v=<-113,375,-242>, a=<5,-25,15> +p=<973,-1450,2368>, v=<138,-206,336>, a=<-7,14,-21> +p=<481,916,-2992>, v=<67,124,-425>, a=<-7,-12,27> +p=<2212,1209,1508>, v=<310,172,210>, a=<-20,-12,-15> +p=<-2102,-1371,-580>, v=<-300,-191,-85>, a=<21,15,1> +p=<-87,-2755,856>, v=<-10,-394,126>, a=<3,29,-8> +p=<797,-2787,-212>, v=<116,-394,-30>, a=<-7,30,5> +p=<214,-2854,-1369>, v=<30,-410,-195>, a=<-2,28,16> +p=<1329,2877,899>, v=<193,412,136>, a=<-16,-30,-9> +p=<226,-2708,1581>, v=<32,-386,229>, a=<4,26,-15> +p=<3174,-271,1462>, v=<449,-35,204>, a=<-30,2,-16> +p=<-1001,1168,-2585>, v=<-140,163,-371>, a=<12,-15,25> +p=<2267,-2508,-213>, v=<316,-358,-29>, a=<-22,22,-1> +p=<1914,2641,1427>, v=<271,377,202>, a=<-19,-22,-15> +p=<1504,-1476,-811>, v=<219,-211,-113>, a=<-17,19,13> +p=<2928,-455,1105>, v=<418,-65,156>, a=<-29,4,-8> +p=<-980,-2177,-1473>, v=<-134,-305,-210>, a=<9,20,14> +p=<767,2480,-1707>, v=<110,354,-242>, a=<-7,-24,20> +p=<188,-1031,-2334>, v=<22,-147,-337>, a=<-2,14,23> +p=<798,2728,-1224>, v=<114,391,-173>, a=<-7,-26,15> +p=<-1457,-2141,-1463>, v=<-208,-305,-208>, a=<11,24,16> +p=<-527,-763,-3181>, v=<-75,-108,-458>, a=<3,4,33> +p=<2772,1596,-800>, v=<401,230,-118>, a=<-24,-11,8> +p=<658,-3138,-1155>, v=<94,-447,-163>, a=<-5,31,13> +p=<-1927,-1811,1006>, v=<-276,-258,143>, a=<14,16,-11> +p=<-132,2824,1330>, v=<-20,407,188>, a=<-3,-24,-13> +p=<-132,2212,2444>, v=<-18,319,352>, a=<0,-20,-23> +p=<2397,-1648,-1417>, v=<342,-236,-205>, a=<-28,14,14> +p=<-1755,-2028,1986>, v=<-250,-288,282>, a=<16,17,-19> +p=<2065,455,2225>, v=<295,64,314>, a=<-24,-7,-22> +p=<2133,-1955,1135>, v=<304,-282,163>, a=<-25,20,-8> +p=<-3306,-728,284>, v=<-472,-104,44>, a=<37,7,-6> +p=<2379,-2510,30>, v=<339,-361,-1>, a=<-21,23,0> +p=<1179,1881,-2107>, v=<170,274,-300>, a=<-13,-17,23> +p=<-381,3158,-675>, v=<-50,451,-96>, a=<1,-32,5> +p=<-1993,959,2230>, v=<-287,137,312>, a=<23,-11,-27> +p=<1945,2518,487>, v=<279,363,68>, a=<-17,-23,-3> +p=<1340,2084,-1523>, v=<191,294,-217>, a=<-13,-22,17> +p=<-2803,-108,-106>, v=<-392,-15,-16>, a=<28,4,-3> +p=<369,-3191,781>, v=<51,-454,109>, a=<-1,30,-9> +p=<-1662,-1281,1622>, v=<-235,-187,235>, a=<14,14,-19> +p=<2547,-136,1029>, v=<364,-21,151>, a=<-24,1,-10> +p=<106,3026,-241>, v=<14,431,-34>, a=<2,-35,2> +p=<13,2362,-258>, v=<1,337,-38>, a=<3,-21,-1> +p=<209,697,-2664>, v=<24,96,-376>, a=<-4,-4,22> +p=<692,-2830,516>, v=<98,-402,67>, a=<-4,28,-2> +p=<593,-3116,-211>, v=<82,-442,-26>, a=<-8,35,1> +p=<2062,864,-2093>, v=<295,123,-298>, a=<-22,-9,26> +p=<2961,-1317,620>, v=<424,-195,89>, a=<-31,13,-10> +p=<-655,1829,3285>, v=<-98,262,467>, a=<9,-20,-32> +p=<-2844,338,990>, v=<-408,51,137>, a=<30,-3,-12> +p=<-2490,-1296,-273>, v=<-354,-185,-34>, a=<26,14,3> +p=<2235,-2145,-953>, v=<317,-300,-133>, a=<-22,17,11> +p=<678,-2930,1292>, v=<98,-415,179>, a=<-2,29,-12> +p=<-897,-1829,2128>, v=<-126,-262,304>, a=<8,20,-21> +p=<-1844,-673,2813>, v=<-263,-101,401>, a=<20,2,-25> +p=<-1735,2425,-700>, v=<-247,343,-99>, a=<19,-23,13> +p=<-373,-1365,2546>, v=<-52,-195,362>, a=<3,14,-28> +p=<-2344,-2466,898>, v=<-330,-352,127>, a=<25,28,-4> +p=<-2247,-1405,1926>, v=<-319,-196,275>, a=<24,14,-18> +p=<-2165,626,2199>, v=<-309,90,319>, a=<19,-7,-21> +p=<2512,-2320,-210>, v=<358,-326,-30>, a=<-25,28,2> +p=<1269,2478,-1789>, v=<180,356,-259>, a=<-15,-22,19> +p=<990,-1592,-1961>, v=<140,-227,-278>, a=<-8,19,17> +p=<-2138,-975,906>, v=<-308,-130,133>, a=<21,12,-9> +p=<-227,-337,2813>, v=<-34,-48,405>, a=<1,7,-31> +p=<1334,1002,2246>, v=<190,142,320>, a=<-11,-15,-20> +p=<-1820,101,-1802>, v=<-260,18,-257>, a=<19,-6,16> +p=<1301,2556,1821>, v=<187,363,265>, a=<-13,-28,-18> +p=<-1809,1664,-570>, v=<-257,241,-83>, a=<23,-23,4> +p=<534,1724,-1633>, v=<70,251,-235>, a=<-6,-20,16> +p=<892,2879,1085>, v=<128,412,153>, a=<-11,-29,-16> +p=<-1518,-2391,-1361>, v=<-214,-344,-188>, a=<12,23,15> +p=<2491,21,1736>, v=<357,1,246>, a=<-24,-3,-10> +p=<-1235,1930,-1209>, v=<-173,275,-172>, a=<8,-17,13> +p=<-2799,114,909>, v=<-398,12,131>, a=<27,-1,-11> +p=<-2858,-538,655>, v=<-406,-78,95>, a=<31,0,-11> +p=<-2331,13,1722>, v=<-333,3,248>, a=<15,-1,-17> +p=<147,-2948,-1979>, v=<20,-421,-282>, a=<-3,31,25> +p=<-840,350,-2798>, v=<-123,50,-407>, a=<9,-3,30> +p=<-2670,-1298,1164>, v=<-379,-185,162>, a=<24,15,-9> +p=<2977,1377,854>, v=<425,201,118>, a=<-28,-14,-8> +p=<2629,1888,-227>, v=<372,269,-33>, a=<-28,-23,0> +p=<2181,749,-2309>, v=<314,105,-329>, a=<-20,-12,20> +p=<-1829,2151,-144>, v=<-261,304,-21>, a=<18,-20,2> +p=<1058,2344,-792>, v=<153,335,-109>, a=<-11,-26,6> +p=<-2888,216,1655>, v=<-412,23,235>, a=<28,-3,-12> +p=<-1457,-2306,-1040>, v=<-209,-329,-141>, a=<8,19,13> +p=<-1551,739,2450>, v=<-223,105,351>, a=<17,-7,-20> +p=<-519,2391,1529>, v=<-74,341,222>, a=<7,-23,-15> +p=<747,2914,608>, v=<99,420,83>, a=<-2,-24,-5> +p=<2023,-480,-1576>, v=<289,-69,-225>, a=<-20,5,15> +p=<-326,2588,581>, v=<-42,369,83>, a=<1,-25,-3> +p=<-1930,-1667,-1649>, v=<-275,-238,-236>, a=<20,13,21> +p=<-749,2595,-60>, v=<-110,366,-8>, a=<2,-29,1> +p=<1723,-1596,2333>, v=<246,-228,334>, a=<-15,11,-21> +p=<394,2628,568>, v=<58,371,75>, a=<-6,-25,-4> +p=<-575,-657,2907>, v=<-85,-98,411>, a=<4,6,-29> +p=<-2480,155,1260>, v=<-354,21,180>, a=<24,-3,-11> +p=<1869,2190,152>, v=<270,312,26>, a=<-17,-21,-1> +p=<2559,907,-167>, v=<364,129,-24>, a=<-22,-10,3> +p=<101,-1016,2405>, v=<12,-144,341>, a=<-2,6,-26> +p=<309,-1644,-2154>, v=<44,-231,-310>, a=<1,14,22> +p=<-370,2813,31>, v=<-52,400,6>, a=<2,-35,-6> +p=<549,-2545,-1748>, v=<78,-362,-249>, a=<-4,25,17> +p=<-1519,24,2682>, v=<-215,-3,385>, a=<15,0,-26> +p=<-301,-2872,-582>, v=<-37,-408,-86>, a=<9,28,5> +p=<1479,2733,273>, v=<210,391,34>, a=<-10,-27,3> +p=<449,1890,2152>, v=<69,270,307>, a=<-8,-22,-21> +p=<-335,-758,-3122>, v=<-46,-103,-448>, a=<-4,5,22> +p=<-273,-152,2817>, v=<-39,-26,402>, a=<3,1,-27> +p=<-1710,2293,-229>, v=<-242,327,-34>, a=<13,-23,5> +p=<2860,1819,513>, v=<410,255,74>, a=<-28,-17,0> +p=<-1189,-714,-2590>, v=<-162,-106,-370>, a=<11,7,22> +p=<2122,-391,-1750>, v=<300,-60,-244>, a=<-18,1,20> +p=<1742,231,-2298>, v=<252,31,-327>, a=<-20,-2,22> +p=<-244,-1461,-3146>, v=<-34,-209,-448>, a=<2,17,34> +p=<-1961,1924,-229>, v=<-277,273,-37>, a=<19,-14,2> +p=<1185,-703,-2536>, v=<169,-102,-364>, a=<-15,7,28> +p=<-2036,-974,1767>, v=<-294,-139,253>, a=<24,4,-18> +p=<-1907,1401,-1942>, v=<-270,200,-277>, a=<19,-14,23> +p=<1570,910,2204>, v=<220,131,314>, a=<-15,-7,-25> +p=<-2512,1158,-711>, v=<-352,162,-101>, a=<24,-9,6> +p=<-2295,1656,1463>, v=<-329,237,210>, a=<19,-16,-16> +p=<-1990,-1699,1122>, v=<-283,-241,164>, a=<20,16,-11> +p=<-2727,219,-1289>, v=<-391,33,-181>, a=<27,1,14> +p=<1823,-1829,-1315>, v=<263,-263,-187>, a=<-19,20,17> +p=<943,-181,-2581>, v=<134,-24,-369>, a=<-2,-2,23> +p=<-539,-1893,-2662>, v=<-81,-268,-383>, a=<6,14,26> +p=<562,1747,-2106>, v=<78,249,-302>, a=<-4,-17,21> +p=<2243,-1988,-137>, v=<319,-286,-19>, a=<-22,19,0> +p=<-308,-1605,1962>, v=<-49,-232,282>, a=<2,13,-15> +p=<2024,713,-733>, v=<289,100,-99>, a=<-23,-9,4> +p=<1916,2142,-941>, v=<268,309,-136>, a=<-19,-26,11> +p=<-858,2396,-1584>, v=<-122,342,-227>, a=<6,-20,16> +p=<2928,-1601,-34>, v=<422,-230,-7>, a=<-27,19,-3> +p=<-2575,480,-2177>, v=<-361,72,-307>, a=<21,-3,23> +p=<-510,-1917,2839>, v=<-73,-270,405>, a=<6,23,-33> +p=<-729,1988,-1890>, v=<-100,280,-273>, a=<14,-25,18> +p=<-490,-872,-2231>, v=<-68,-124,-318>, a=<4,11,19> +p=<3319,-12,338>, v=<474,-6,45>, a=<-28,-5,-2> +p=<-1846,-972,2210>, v=<-263,-137,312>, a=<17,7,-26> +p=<-494,1578,-2857>, v=<-64,228,-410>, a=<3,-9,29> +p=<1793,2135,-690>, v=<254,304,-97>, a=<-20,-22,7> +p=<-142,-604,-2841>, v=<-18,-90,-404>, a=<4,12,26> +p=<23,125,-3013>, v=<3,14,-431>, a=<2,0,23> +p=<2779,698,1873>, v=<395,99,267>, a=<-20,-4,-21> +p=<478,-2847,917>, v=<70,-407,131>, a=<-8,25,-9> +p=<-1407,-765,2530>, v=<-199,-108,359>, a=<13,6,-19> +p=<-623,-564,-2369>, v=<-88,-80,-337>, a=<9,8,22> +p=<-1713,-1957,-1266>, v=<-247,-281,-180>, a=<24,20,12> +p=<-2391,916,1264>, v=<-341,125,178>, a=<26,-7,-12> +p=<975,-1407,2213>, v=<136,-202,313>, a=<-12,13,-17> +p=<140,2034,2016>, v=<17,291,288>, a=<-2,-22,-23> +p=<2653,-2031,161>, v=<379,-296,26>, a=<-24,20,1> +p=<-2296,-662,-1600>, v=<-325,-94,-227>, a=<22,5,13> +p=<370,-2330,1610>, v=<51,-335,230>, a=<-3,23,-17> +p=<1381,-1462,-1982>, v=<199,-205,-280>, a=<-19,19,19> +p=<-757,-3446,237>, v=<-102,-498,31>, a=<7,31,-2> +p=<2597,-656,-167>, v=<371,-92,-22>, a=<-26,8,2> +p=<1916,-1937,858>, v=<273,-276,120>, a=<-24,22,-7> +p=<-211,2241,2164>, v=<-28,316,313>, a=<5,-22,-20> +p=<1029,-1038,-2307>, v=<147,-146,-328>, a=<-5,8,22> +p=<2015,-187,-1999>, v=<285,-23,-285>, a=<-20,3,15> +p=<883,716,-2927>, v=<131,107,-417>, a=<-3,-7,29> +p=<-1216,2190,-1080>, v=<-173,310,-153>, a=<9,-20,10> +p=<735,-2629,-668>, v=<105,-380,-96>, a=<-5,27,6> +p=<530,-2800,1543>, v=<75,-400,215>, a=<-8,30,-16> +p=<821,-1765,-2077>, v=<115,-249,-297>, a=<-5,21,20> +p=<-1742,289,-1891>, v=<-247,40,-270>, a=<20,1,19> +p=<-1669,807,-2416>, v=<-245,118,-343>, a=<16,-3,25> +p=<-247,-390,-3001>, v=<-34,-51,-426>, a=<0,3,30> +p=<-1514,2353,1080>, v=<-220,335,156>, a=<13,-23,-12> +p=<2087,-2377,333>, v=<297,-335,43>, a=<-28,23,-3> +p=<-2453,-1341,-387>, v=<-344,-189,-51>, a=<20,13,3> +p=<680,2780,1052>, v=<95,401,147>, a=<-3,-25,-19> +p=<-2760,-147,1331>, v=<-395,-20,185>, a=<22,5,-18> +p=<72,-2573,2113>, v=<12,-367,303>, a=<2,27,-21> +p=<-1461,234,2182>, v=<-209,32,311>, a=<18,-2,-22> +p=<-2866,-1117,-722>, v=<-408,-161,-104>, a=<32,8,6> +p=<-2031,887,2070>, v=<-289,127,293>, a=<22,-7,-23> +p=<-1884,-569,-2606>, v=<-268,-81,-373>, a=<15,2,25> +p=<-3154,-231,168>, v=<-450,-29,24>, a=<28,1,-3> +p=<1367,2691,496>, v=<200,386,66>, a=<-10,-26,-3> +p=<1580,867,-2113>, v=<226,131,-301>, a=<-15,-5,20> +p=<2258,2370,-251>, v=<323,339,-32>, a=<-19,-21,2> +p=<-3041,-1395,-544>, v=<-429,-206,-80>, a=<30,13,10> +p=<-2605,1717,422>, v=<-370,242,62>, a=<26,-15,-4> +p=<-222,2666,-774>, v=<-24,383,-111>, a=<2,-26,7> +p=<1013,-109,2778>, v=<147,-11,399>, a=<-10,2,-21> +p=<-68,2371,2263>, v=<-7,345,319>, a=<0,-27,-22> +p=<-1846,1527,-1222>, v=<-264,221,-173>, a=<18,-16,14> +p=<1559,-2505,-851>, v=<226,-361,-121>, a=<-17,18,1> +p=<1053,-1878,-1881>, v=<150,-268,-263>, a=<-6,25,19> +p=<1263,-580,2029>, v=<175,-83,289>, a=<-9,9,-20> +p=<234,3378,380>, v=<29,486,55>, a=<-1,-34,-4> +p=<1326,-2437,-1123>, v=<192,-348,-157>, a=<-11,19,10> +p=<1551,277,-2504>, v=<223,44,-360>, a=<-16,-2,25> +p=<73,1335,-2543>, v=<10,192,-363>, a=<-1,-14,20> +p=<-1718,2200,1626>, v=<-245,313,230>, a=<13,-25,-16> +p=<-1362,2522,1449>, v=<-194,357,209>, a=<12,-28,-13> +p=<-2488,-1296,1175>, v=<-352,-187,165>, a=<23,12,-11> +p=<-332,2911,-349>, v=<-39,419,-53>, a=<2,-29,3> +p=<-1134,1983,-1045>, v=<-155,280,-151>, a=<6,-23,10> +p=<741,-130,2797>, v=<105,-16,397>, a=<-6,0,-29> +p=<-2081,-652,1749>, v=<-294,-91,251>, a=<22,6,-16> +p=<-499,1284,2217>, v=<-69,185,319>, a=<8,-12,-17> +p=<-1335,2622,1252>, v=<-190,371,174>, a=<8,-23,-11> +p=<-36,-1101,2781>, v=<-8,-157,398>, a=<0,13,-28> +p=<798,-3057,-1402>, v=<116,-432,-204>, a=<-7,32,13> +p=<-2307,-765,1727>, v=<-329,-112,244>, a=<21,5,-21> +p=<743,-1128,-2383>, v=<106,-163,-338>, a=<-9,10,31> +p=<943,-1899,-1960>, v=<136,-271,-278>, a=<-5,21,21> +p=<2032,2157,-217>, v=<296,305,-28>, a=<-19,-18,3> +p=<-36,-834,2524>, v=<-3,-116,358>, a=<-1,9,-30> +p=<-148,-3140,-754>, v=<-22,-445,-101>, a=<-3,35,7> +p=<2313,754,-1936>, v=<330,105,-277>, a=<-20,-3,22> +p=<1216,-1980,-477>, v=<177,-284,-65>, a=<-12,19,9> +p=<587,2310,-886>, v=<82,331,-126>, a=<2,-18,13> +p=<-616,-3165,-446>, v=<-88,-451,-67>, a=<4,28,3> +p=<-2647,41,1961>, v=<-382,6,280>, a=<29,-2,-13> +p=<1254,-1068,-2291>, v=<180,-151,-325>, a=<-7,14,27> +p=<-482,2288,-2367>, v=<-69,325,-340>, a=<6,-21,25> +p=<455,-575,3088>, v=<68,-84,444>, a=<-6,9,-28> +p=<-1956,913,-2338>, v=<-279,134,-331>, a=<20,-8,17> +p=<-2331,-173,-2070>, v=<-329,-23,-295>, a=<18,5,18> +p=<-2159,1340,-1718>, v=<-308,190,-244>, a=<23,-13,17> +p=<101,-2154,-1833>, v=<19,-303,-260>, a=<3,24,18> +p=<385,-2955,-780>, v=<52,-425,-113>, a=<-3,26,11> +p=<440,-2456,1416>, v=<65,-353,197>, a=<-7,20,-17> +p=<2402,-1658,129>, v=<345,-242,18>, a=<-23,12,-4> +p=<-2791,431,-579>, v=<-395,62,-86>, a=<22,-11,5> +p=<2276,-833,1478>, v=<329,-117,209>, a=<-23,8,-10> +p=<-1378,2524,526>, v=<-199,362,75>, a=<13,-23,-6> +p=<-1473,1956,1919>, v=<-212,281,271>, a=<15,-19,-23> +p=<1200,-1413,-2262>, v=<171,-201,-324>, a=<-12,15,19> +p=<-211,-2740,179>, v=<-29,-390,25>, a=<0,25,-2> +p=<1200,501,-2526>, v=<165,73,-360>, a=<-8,-8,23> +p=<-3082,1519,569>, v=<-445,212,80>, a=<31,-18,-7> +p=<736,400,-2800>, v=<110,55,-397>, a=<-9,-4,34> +p=<-2943,20,-640>, v=<-415,2,-88>, a=<29,0,9> +p=<-2161,1680,1351>, v=<-306,238,193>, a=<21,-9,-10> +p=<176,-1570,-2036>, v=<25,-225,-292>, a=<0,12,27> +p=<1766,-1829,1593>, v=<251,-264,227>, a=<-18,19,-16> +p=<-676,-2015,1795>, v=<-96,-289,254>, a=<6,22,-18> +p=<1247,-2216,715>, v=<177,-315,99>, a=<-13,24,-7> +p=<-532,3555,272>, v=<-70,508,40>, a=<2,-28,-2> +p=<32,-2330,-2206>, v=<4,-333,-315>, a=<6,23,25> +p=<-2199,-286,1894>, v=<-314,-38,269>, a=<21,-1,-18> +p=<1241,-1395,-2212>, v=<178,-198,-316>, a=<-14,12,17> +p=<2757,1247,1528>, v=<393,179,218>, a=<-29,-12,-15> +p=<-2353,-487,-1637>, v=<-336,-75,-234>, a=<24,3,14> +p=<316,-3194,682>, v=<49,-454,97>, a=<-3,29,0> +p=<-225,-2074,2080>, v=<-29,-296,300>, a=<0,23,-19> +p=<2270,-1359,1272>, v=<324,-191,177>, a=<-19,9,-11> +p=<-740,-1058,2960>, v=<-107,-153,425>, a=<6,12,-27> +p=<1871,-770,-2585>, v=<263,-104,-372>, a=<-17,6,24> +p=<-975,2955,1050>, v=<-141,420,155>, a=<9,-29,-8> +p=<864,-2527,1431>, v=<124,-364,200>, a=<-8,26,-16> +p=<-2811,882,1224>, v=<-404,122,169>, a=<27,-8,-12> +p=<2612,-973,-239>, v=<370,-138,-35>, a=<-24,7,2> +p=<-823,1840,1773>, v=<-117,266,253>, a=<6,-20,-16> +p=<755,-1433,-2639>, v=<109,-202,-382>, a=<-6,10,23> +p=<1536,-155,-2466>, v=<219,-21,-359>, a=<-20,5,29> +p=<-691,924,3172>, v=<-98,132,453>, a=<8,-9,-30> +p=<-2362,1481,-1521>, v=<-339,211,-215>, a=<23,-19,17> +p=<-1628,1517,-1770>, v=<-227,215,-252>, a=<19,-14,16> +p=<2007,2360,761>, v=<291,338,108>, a=<-20,-18,-2> +p=<-1582,-2836,1121>, v=<-225,-405,160>, a=<15,28,-11> +p=<-1590,-1980,1808>, v=<-228,-281,258>, a=<17,18,-17> +p=<2673,404,-1573>, v=<376,56,-227>, a=<-24,-4,14> +p=<-1386,-2912,-464>, v=<-200,-415,-62>, a=<9,26,-3> +p=<-1708,-172,-2841>, v=<-244,-24,-403>, a=<16,3,28> +p=<2003,-57,-1605>, v=<283,-6,-229>, a=<-23,4,15> +p=<515,3354,-1053>, v=<73,480,-151>, a=<-6,-33,16> +p=<-2371,733,-1207>, v=<-338,107,-174>, a=<27,-8,16> +p=<3276,1546,567>, v=<469,217,83>, a=<-30,-18,-10> +p=<1839,565,-2617>, v=<264,81,-381>, a=<-13,-5,24> +p=<-2434,849,1816>, v=<-347,128,259>, a=<24,-11,-20> +p=<-303,2418,1554>, v=<-40,345,219>, a=<3,-24,-14> +p=<-2796,208,97>, v=<-405,30,13>, a=<28,-8,3> +p=<839,527,3032>, v=<122,77,433>, a=<-14,-3,-32> +p=<591,-1595,2308>, v=<79,-229,329>, a=<-10,14,-20> +p=<2834,1302,-1501>, v=<402,183,-215>, a=<-25,-13,15> +p=<-846,430,2898>, v=<-125,60,410>, a=<4,-2,-28> +p=<162,3204,667>, v=<23,454,100>, a=<-3,-33,-4> +p=<1054,-3213,-449>, v=<148,-464,-58>, a=<-7,33,4> +p=<-690,-913,2768>, v=<-96,-127,393>, a=<11,14,-26> +p=<2582,1622,-916>, v=<366,231,-130>, a=<-18,-20,8> +p=<-1767,-1244,-1974>, v=<-249,-175,-287>, a=<12,15,25> +p=<516,3015,552>, v=<72,430,78>, a=<-3,-35,-10> +p=<656,-3515,-562>, v=<93,-510,-83>, a=<-8,32,4> +p=<-2203,-1201,1039>, v=<-314,-175,151>, a=<19,10,-11> +p=<1451,1331,-2055>, v=<209,191,-288>, a=<-15,-7,20> +p=<-2271,-2353,682>, v=<-324,-336,97>, a=<23,23,-8> +p=<-798,-1848,-2089>, v=<-111,-262,-298>, a=<8,20,20> +p=<-561,-98,-2958>, v=<-80,-14,-428>, a=<7,-5,29> +p=<2617,-898,-986>, v=<379,-126,-143>, a=<-28,9,6> +p=<-374,1799,-2089>, v=<-52,258,-298>, a=<5,-17,26> +p=<-176,-2662,1432>, v=<-20,-378,209>, a=<1,28,-14> +p=<-723,1760,-2123>, v=<-104,249,-302>, a=<5,-15,20> +p=<2331,-1002,-1166>, v=<334,-141,-166>, a=<-23,3,8> +p=<-1387,-3036,-372>, v=<-203,-430,-56>, a=<16,30,3> +p=<2210,-874,-2286>, v=<314,-129,-326>, a=<-27,7,21> +p=<-968,2174,1925>, v=<-137,309,275>, a=<9,-19,-17> +p=<-2243,-440,-1875>, v=<-322,-58,-268>, a=<24,4,21> +p=<8,2804,-1019>, v=<-3,397,-145>, a=<1,-28,16> +p=<2671,-247,1779>, v=<381,-35,249>, a=<-31,1,-17> +p=<2773,-2110,-323>, v=<400,-296,-44>, a=<-26,15,7> +p=<503,-2583,1677>, v=<65,-369,235>, a=<-5,25,-12> +p=<1715,-1098,-2211>, v=<239,-157,-317>, a=<-13,13,22> +p=<520,-446,3169>, v=<76,-62,454>, a=<-8,9,-29> +p=<1461,-1902,-2348>, v=<208,-269,-336>, a=<-9,20,21> +p=<3595,-683,910>, v=<508,-96,130>, a=<-35,8,-6> +p=<-790,-2457,1680>, v=<-111,-356,235>, a=<8,20,-19> +p=<1094,-2295,-543>, v=<157,-327,-76>, a=<-12,21,6> +p=<-1795,2329,440>, v=<-257,330,63>, a=<17,-26,-8> +p=<-665,188,-2874>, v=<-97,26,-409>, a=<8,1,31> +p=<-2150,-1608,-1617>, v=<-307,-226,-232>, a=<24,16,16> +p=<-1306,771,-2628>, v=<-186,111,-374>, a=<14,-7,22> +p=<-569,2399,2146>, v=<-79,340,306>, a=<3,-25,-25> +p=<-1596,210,-2300>, v=<-227,35,-321>, a=<12,-2,25> +p=<1649,3122,-423>, v=<233,447,-60>, a=<-16,-32,3> +p=<2350,-1504,574>, v=<333,-214,82>, a=<-21,9,-6> +p=<1462,1958,-1965>, v=<209,278,-280>, a=<-11,-18,18> +p=<665,1921,2431>, v=<99,278,346>, a=<-5,-21,-21> +p=<-2672,-392,-626>, v=<-384,-54,-85>, a=<28,3,4> +p=<-2934,-713,578>, v=<-423,-104,83>, a=<31,6,-8> +p=<-2864,-529,1350>, v=<-405,-75,188>, a=<31,5,-14> +p=<1633,-2222,770>, v=<236,-317,105>, a=<-13,22,-6> +p=<-2570,-557,-2249>, v=<-369,-84,-320>, a=<23,5,18> +p=<1327,2140,-1400>, v=<188,307,-201>, a=<-11,-19,13> +p=<-1128,3182,47>, v=<-161,455,4>, a=<8,-37,-4> +p=<2034,-2095,95>, v=<292,-299,13>, a=<-21,19,0> +p=<3063,1393,-164>, v=<437,200,-21>, a=<-31,-10,0> +p=<-2613,-739,-677>, v=<-372,-104,-99>, a=<26,10,11> +p=<-2408,-879,1448>, v=<-345,-128,210>, a=<24,10,-14> +p=<1626,-2339,-531>, v=<229,-334,-76>, a=<-13,23,12> +p=<-127,1611,2340>, v=<-14,230,329>, a=<-3,-20,-23> +p=<178,-3044,1218>, v=<23,-434,172>, a=<-2,24,-13> +p=<520,3002,-111>, v=<74,421,-10>, a=<-5,-34,-1> +p=<-2247,-1086,1363>, v=<-322,-157,194>, a=<25,10,-12> +p=<313,-2571,-1607>, v=<46,-371,-226>, a=<-3,25,13> +p=<2204,591,1614>, v=<312,84,230>, a=<-29,-6,-18> +p=<-953,1388,1971>, v=<-133,199,283>, a=<10,-14,-18> +p=<3269,327,885>, v=<472,48,122>, a=<-34,-3,-8> +p=<1054,469,2909>, v=<151,66,415>, a=<-7,-6,-23> +p=<2886,-1980,-318>, v=<412,-279,-45>, a=<-27,22,0> +p=<-1736,-2608,411>, v=<-248,-370,57>, a=<15,26,-5> +p=<-407,-2479,634>, v=<-58,-357,92>, a=<11,24,-9> +p=<-525,-1787,2428>, v=<-81,-252,339>, a=<6,13,-20> +p=<-1972,-1913,1655>, v=<-281,-275,235>, a=<15,18,-20> +p=<2390,1535,177>, v=<343,224,25>, a=<-25,-13,-4> +p=<470,2613,-1999>, v=<67,375,-286>, a=<-2,-27,21> +p=<-2098,-399,2527>, v=<-297,-54,357>, a=<15,-1,-22> +p=<903,1008,1826>, v=<134,144,259>, a=<-8,-8,-17> +p=<-2233,-2044,-715>, v=<-323,-291,-101>, a=<21,14,7> +p=<420,698,-2350>, v=<62,106,-334>, a=<-3,-9,23> +p=<-1400,-1187,-1807>, v=<-201,-168,-259>, a=<20,12,21> +p=<697,510,-2889>, v=<99,74,-414>, a=<-6,-5,27> +p=<-2771,-794,507>, v=<-397,-115,72>, a=<29,7,-5> +p=<-2428,1711,-229>, v=<-345,244,-25>, a=<27,-17,-3> +p=<-498,-2255,574>, v=<-74,-322,82>, a=<3,22,-7> +p=<-639,2486,-2161>, v=<-91,353,-309>, a=<9,-22,20> +p=<561,1777,2052>, v=<83,254,289>, a=<-3,-10,-22> +p=<535,-2600,-1357>, v=<76,-376,-193>, a=<-9,23,13> +p=<347,-1990,1478>, v=<51,-282,209>, a=<-3,19,-18> +p=<-795,-243,3199>, v=<-107,-36,458>, a=<10,2,-27> +p=<-1250,-1344,-2166>, v=<-180,-185,-311>, a=<13,12,21> +p=<-1181,1777,2103>, v=<-168,253,298>, a=<11,-18,-21> +p=<1251,-782,-2559>, v=<181,-112,-362>, a=<-16,7,24> +p=<-1941,167,2090>, v=<-277,24,298>, a=<16,-3,-20> +p=<-2281,-1088,876>, v=<-323,-158,128>, a=<22,9,-12> +p=<-1212,-2448,-1588>, v=<-175,-346,-227>, a=<10,22,14> +p=<2734,-19,1199>, v=<386,-1,171>, a=<-31,-3,-6> +p=<-1568,-934,2536>, v=<-225,-132,360>, a=<8,9,-21> +p=<-1022,-2405,-1395>, v=<-144,-347,-199>, a=<12,24,11> +p=<-2144,136,-475>, v=<-305,19,-62>, a=<25,0,2> +p=<2007,-620,-2051>, v=<286,-86,-286>, a=<-18,6,17> +p=<-1700,-2556,-288>, v=<-244,-359,-36>, a=<17,21,-3> +p=<-1224,-1007,2091>, v=<-177,-144,297>, a=<9,10,-24> +p=<2779,-1003,679>, v=<404,-148,97>, a=<-27,8,-4> +p=<541,1261,2928>, v=<70,180,419>, a=<-3,-11,-29> +p=<-1296,-1938,-984>, v=<-185,-273,-144>, a=<13,16,12> +p=<868,-277,2858>, v=<122,-37,408>, a=<-5,4,-28> +p=<2406,1206,-1261>, v=<345,175,-177>, a=<-24,-10,12> +p=<623,-1848,-3124>, v=<93,-265,-447>, a=<-7,20,31> +p=<-2428,-481,-1716>, v=<-347,-68,-246>, a=<22,6,15> +p=<2823,-456,932>, v=<403,-65,133>, a=<-28,4,-11> +p=<-1712,-304,2199>, v=<-242,-42,312>, a=<15,-1,-19> +p=<-2265,1563,-866>, v=<-324,227,-125>, a=<20,-15,3> +p=<400,2452,1541>, v=<57,350,220>, a=<-4,-22,-20> +p=<1076,2588,480>, v=<153,374,61>, a=<-10,-25,-2> +p=<1394,851,-2525>, v=<199,116,-360>, a=<-14,-14,25> +p=<-1373,2715,-487>, v=<-197,387,-71>, a=<13,-27,0> +p=<2001,2041,-1322>, v=<280,285,-182>, a=<-20,-22,13> +p=<-2713,-975,1127>, v=<-381,-137,164>, a=<27,6,-10> +p=<127,-3265,899>, v=<18,-467,134>, a=<-1,28,-11> +p=<-2613,1310,709>, v=<-373,191,104>, a=<29,-13,-7> +p=<1795,2110,198>, v=<250,301,25>, a=<-17,-21,-3> +p=<-2707,-702,-715>, v=<-382,-100,-108>, a=<26,6,11> +p=<1304,-1328,-2360>, v=<186,-191,-334>, a=<-17,13,21> +p=<-1492,617,-1817>, v=<-215,90,-258>, a=<14,-6,19> +p=<253,160,3140>, v=<32,26,445>, a=<0,-2,-23> +p=<-1830,-1004,-1594>, v=<-259,-146,-229>, a=<18,8,14> +p=<-1619,33,2375>, v=<-232,4,340>, a=<18,0,-19> +p=<615,393,2882>, v=<81,55,417>, a=<-7,-7,-26> +p=<-2157,-1678,843>, v=<-306,-238,121>, a=<21,12,-3> +p=<2695,259,784>, v=<387,36,111>, a=<-22,-7,-6> +p=<-2193,2304,-1907>, v=<-316,326,-270>, a=<21,-21,17> +p=<2663,1276,783>, v=<383,183,107>, a=<-26,-12,-11> +p=<-2361,178,970>, v=<-336,26,139>, a=<26,2,-8> +p=<1466,-1557,2028>, v=<214,-225,293>, a=<-12,15,-19> +p=<2031,770,2274>, v=<292,115,326>, a=<-20,-7,-23> +p=<75,16,3295>, v=<14,-3,465>, a=<3,1,-36> +p=<-3454,-127,-810>, v=<-491,-20,-117>, a=<29,-1,8> +p=<600,1542,1807>, v=<89,215,262>, a=<-6,-16,-15> +p=<-363,1943,-2003>, v=<-46,277,-283>, a=<2,-18,19> +p=<-2106,-2041,929>, v=<-302,-291,132>, a=<16,18,-7> +p=<1677,-1573,859>, v=<238,-218,122>, a=<-18,17,-6> +p=<2085,-230,-2184>, v=<297,-29,-314>, a=<-25,3,26> +p=<-4,604,-2880>, v=<6,85,-411>, a=<0,-6,24> +p=<-2242,-1643,1519>, v=<-320,-234,220>, a=<24,11,-14> +p=<2734,-32,-805>, v=<386,-7,-117>, a=<-26,0,5> +p=<1677,459,-2569>, v=<244,65,-368>, a=<-22,-4,25> +p=<-1148,-2459,-37>, v=<-162,-347,-3>, a=<8,26,0> +p=<1669,-2705,-522>, v=<233,-388,-71>, a=<-19,29,6> +p=<73,-756,-2889>, v=<17,-109,-409>, a=<-2,6,22> +p=<64,974,2431>, v=<7,140,345>, a=<-1,-9,-19> +p=<-306,2950,630>, v=<-43,421,92>, a=<6,-29,-1> +p=<2725,-129,1854>, v=<388,-23,269>, a=<-32,3,-15> +p=<-2021,-2464,237>, v=<-290,-346,34>, a=<20,23,-4> +p=<3089,-143,-190>, v=<443,-20,-25>, a=<-30,2,-4> +p=<946,-788,2779>, v=<133,-110,396>, a=<-10,6,-24> +p=<-976,2698,-1241>, v=<-141,388,-179>, a=<11,-25,11> +p=<-92,-2557,-1579>, v=<-19,-365,-222>, a=<0,27,16> +p=<1217,-951,2946>, v=<170,-137,420>, a=<-15,14,-29> +p=<-73,2228,-1603>, v=<-11,319,-225>, a=<0,-24,15> +p=<3132,-745,528>, v=<446,-106,78>, a=<-26,7,-3> +p=<-1374,78,2855>, v=<-194,10,407>, a=<13,-1,-22> +p=<-2330,-957,1427>, v=<-334,-130,203>, a=<23,6,-14> +p=<-1947,-828,2117>, v=<-282,-118,307>, a=<16,11,-18> +p=<2149,-131,-2104>, v=<308,-18,-300>, a=<-18,-3,25> +p=<2727,-296,-1725>, v=<389,-42,-244>, a=<-26,-1,16> +p=<2185,-1114,1627>, v=<312,-158,232>, a=<-21,8,-14> +p=<642,-2979,-1903>, v=<90,-425,-270>, a=<-11,34,23> +p=<-1590,-1439,-2092>, v=<-232,-207,-295>, a=<15,11,15> +p=<1101,-837,2904>, v=<160,-118,406>, a=<-12,9,-25> +p=<65,1437,-3084>, v=<9,205,-435>, a=<3,-14,31> +p=<-1488,2086,1440>, v=<-207,296,205>, a=<17,-22,-13> +p=<-2292,-39,2180>, v=<-323,-4,312>, a=<23,-3,-20> +p=<609,-1258,2453>, v=<87,-180,352>, a=<-5,11,-29> +p=<589,1881,1944>, v=<83,261,281>, a=<-1,-18,-21> +p=<-2563,-866,-1713>, v=<-366,-121,-244>, a=<25,9,24> +p=<1604,1625,-2113>, v=<232,231,-298>, a=<-16,-15,16> +p=<2291,-854,-1657>, v=<325,-122,-236>, a=<-17,8,15> +p=<-2176,521,-2039>, v=<-310,74,-297>, a=<21,-5,20> +p=<-2374,-1330,-285>, v=<-344,-190,-42>, a=<23,15,6> +p=<2493,355,1875>, v=<361,49,268>, a=<-24,-6,-17> +p=<-2242,-2058,10>, v=<-318,-293,3>, a=<20,26,0> +p=<2467,459,1107>, v=<352,63,165>, a=<-27,-4,-15> +p=<1116,223,-2548>, v=<162,25,-368>, a=<-13,-7,26> +p=<-1613,998,1936>, v=<-230,142,273>, a=<20,-9,-18> +p=<280,-1708,2679>, v=<37,-249,380>, a=<-2,17,-30> +p=<286,-3408,-537>, v=<46,-488,-72>, a=<-1,36,5> +p=<1162,-1820,-1746>, v=<166,-262,-249>, a=<-9,21,10> +p=<2762,1341,-283>, v=<396,194,-42>, a=<-28,-13,3> +p=<1080,1724,-2429>, v=<159,245,-346>, a=<-8,-16,22> +p=<-780,2142,-2203>, v=<-111,306,-314>, a=<6,-18,22> +p=<1712,-829,-1454>, v=<249,-113,-207>, a=<-18,10,12> +p=<2112,1850,-332>, v=<298,264,-47>, a=<-21,-20,3> +p=<-92,2556,1033>, v=<-15,366,150>, a=<2,-27,-8> +p=<-2945,-1251,746>, v=<-419,-178,103>, a=<29,15,-6> +p=<-1178,1448,1988>, v=<-168,208,283>, a=<9,-14,-22> +p=<-513,-228,-3051>, v=<-75,-33,-442>, a=<5,3,33> +p=<16,3041,885>, v=<4,434,126>, a=<-2,-36,-8> +p=<719,-2606,-1944>, v=<106,-369,-274>, a=<-4,22,18> +p=<-1515,-1381,-2329>, v=<-214,-194,-331>, a=<15,13,23> +p=<-2133,1583,1783>, v=<-305,219,255>, a=<22,-15,-20> +p=<-1264,-2294,-822>, v=<-182,-328,-115>, a=<11,22,13> +p=<1878,1970,1009>, v=<268,281,144>, a=<-18,-18,-7> +p=<-1931,-1087,985>, v=<-273,-149,142>, a=<17,9,-9> +p=<747,-1388,2058>, v=<107,-198,292>, a=<-5,11,-20> +p=<-434,2949,1242>, v=<-61,423,173>, a=<1,-32,-14> +p=<-6,917,-3111>, v=<-2,131,-443>, a=<2,-7,29> +p=<1298,-352,-2109>, v=<184,-56,-298>, a=<-12,2,21> +p=<-2453,1651,554>, v=<-353,233,80>, a=<27,-18,-5> +p=<-3086,856,438>, v=<-438,121,58>, a=<35,-8,-4> +p=<-1382,-1186,-2814>, v=<-202,-169,-407>, a=<12,12,33> +p=<-2157,1605,1166>, v=<-308,229,167>, a=<21,-13,-9> +p=<-2797,59,1991>, v=<-396,7,281>, a=<27,-2,-20> +p=<961,-797,2604>, v=<144,-114,370>, a=<-7,10,-20> +p=<-2159,1081,28>, v=<-302,155,-3>, a=<22,-4,-5> +p=<1569,1710,1995>, v=<223,249,287>, a=<-16,-16,-17> +p=<-2405,1364,89>, v=<-344,199,10>, a=<19,-17,2> +p=<1099,1856,1547>, v=<153,265,216>, a=<-6,-20,-15> +p=<-845,2364,-2497>, v=<-120,336,-357>, a=<8,-24,28> +p=<1094,-2301,848>, v=<154,-332,124>, a=<-10,22,-8> +p=<-1885,-169,-2304>, v=<-264,-24,-330>, a=<17,3,24> +p=<1989,2073,1222>, v=<282,296,172>, a=<-18,-16,-8> +p=<1786,2142,-363>, v=<253,306,-56>, a=<-16,-20,2> +p=<-3266,1741,55>, v=<-468,247,7>, a=<33,-21,-2> +p=<3272,642,1052>, v=<466,87,152>, a=<-31,-6,-9> +p=<1886,1462,-1573>, v=<267,210,-222>, a=<-18,-14,11> +p=<-2527,1031,1050>, v=<-359,146,152>, a=<20,-7,-14> +p=<1481,1810,1509>, v=<216,259,212>, a=<-14,-18,-14> +p=<-1767,-1951,-768>, v=<-249,-277,-110>, a=<18,27,0> +p=<-1582,-199,2291>, v=<-222,-31,329>, a=<16,-6,-23> +p=<1759,-251,-2889>, v=<252,-32,-411>, a=<-17,2,28> +p=<2145,976,-1420>, v=<301,139,-199>, a=<-22,-7,14> +p=<2815,-1906,22>, v=<404,-274,-2>, a=<-28,21,2> +p=<-1978,1148,981>, v=<-282,164,140>, a=<13,-10,-14> +p=<1001,2806,1127>, v=<140,401,160>, a=<-10,-30,-12> +p=<546,-853,2616>, v=<73,-117,373>, a=<-9,4,-28> +p=<1897,1581,1040>, v=<272,228,151>, a=<-20,-15,-7> +p=<2297,1472,-163>, v=<328,208,-19>, a=<-24,-17,-2> +p=<-1225,2426,1126>, v=<-175,342,156>, a=<13,-23,-12> +p=<-2208,-1849,-941>, v=<-311,-262,-138>, a=<24,17,9> +p=<2507,-1867,-278>, v=<356,-266,-38>, a=<-25,24,4> +p=<-2700,-123,651>, v=<-383,-19,99>, a=<25,-4,-1> +p=<138,-1228,-2683>, v=<16,-176,-383>, a=<-2,11,28> +p=<676,-3130,112>, v=<89,-448,14>, a=<-5,31,-1> +p=<-2831,-762,758>, v=<-408,-105,111>, a=<26,7,-9> +p=<-662,1869,-1358>, v=<-96,269,-194>, a=<13,-16,20> +p=<-228,-2533,99>, v=<-32,-361,15>, a=<0,26,4> +p=<-1439,1399,-1095>, v=<-205,201,-152>, a=<20,-18,9> +p=<-1324,-1526,-2125>, v=<-189,-218,-304>, a=<14,15,24> +p=<2422,1485,-411>, v=<350,212,-58>, a=<-20,-9,5> +p=<-2059,-1563,50>, v=<-294,-224,7>, a=<18,14,3> +p=<-3022,654,913>, v=<-431,93,132>, a=<34,-8,-8> +p=<2674,23,1516>, v=<381,2,218>, a=<-21,-2,-17> +p=<-382,1215,3143>, v=<-54,176,444>, a=<-7,-11,-29> +p=<737,-555,3329>, v=<100,-79,473>, a=<-10,2,-29> +p=<2680,41,368>, v=<380,6,55>, a=<-32,2,-6> +p=<1560,-2511,-917>, v=<218,-355,-131>, a=<-12,23,11> +p=<-94,2722,-1734>, v=<-14,386,-247>, a=<2,-27,19> +p=<669,2222,-1996>, v=<95,318,-283>, a=<-2,-18,19> +p=<-658,888,-2033>, v=<-94,124,-290>, a=<7,-9,21> +p=<1980,-856,1733>, v=<280,-122,251>, a=<-19,12,-17> +p=<2869,68,1329>, v=<405,11,186>, a=<-28,0,-14> +p=<-1360,-2422,-1468>, v=<-194,-341,-209>, a=<13,27,15> +p=<1531,2084,874>, v=<215,298,125>, a=<-16,-13,-8> +p=<3018,-1043,-452>, v=<434,-149,-62>, a=<-31,6,-1> +p=<-2055,2591,-49>, v=<-293,372,-9>, a=<20,-26,5> +p=<2472,1722,-369>, v=<357,246,-53>, a=<-22,-17,0> +p=<-2300,-1129,1602>, v=<-328,-160,229>, a=<26,9,-11> +p=<-2925,322,1010>, v=<-414,46,137>, a=<28,2,-7> +p=<2763,-309,793>, v=<397,-44,116>, a=<-27,2,0> +p=<2707,-818,393>, v=<390,-116,59>, a=<-22,10,-4> +p=<503,-1060,2657>, v=<78,-149,383>, a=<-5,6,-24> +p=<1631,-1644,-2143>, v=<235,-234,-301>, a=<-16,15,22> +p=<-372,-197,-2989>, v=<-51,-32,-422>, a=<10,7,26> +p=<1585,-1981,-1739>, v=<222,-286,-247>, a=<-16,14,19> +p=<-3316,-424,-315>, v=<-475,-60,-45>, a=<33,8,4> +p=<1448,2440,1597>, v=<203,350,227>, a=<-13,-20,-20> +p=<2293,1248,782>, v=<323,177,112>, a=<-22,-12,-7> +p=<-1893,1463,383>, v=<-268,208,56>, a=<20,-18,-3> +p=<2255,-1201,1536>, v=<323,-167,219>, a=<-24,16,-13> +p=<2418,-1199,1000>, v=<347,-173,143>, a=<-26,16,-11> +p=<-3108,220,142>, v=<-446,34,20>, a=<28,-4,0> +p=<-730,2902,904>, v=<-103,414,129>, a=<7,-29,-8> +p=<2385,1786,-737>, v=<342,261,-105>, a=<-25,-17,3> +p=<2063,1918,-1423>, v=<294,276,-200>, a=<-18,-12,15> +p=<419,2805,-60>, v=<63,400,-5>, a=<-5,-32,-6> +p=<590,766,-2459>, v=<83,114,-351>, a=<-5,-5,24> +p=<1608,-274,-2526>, v=<224,-44,-360>, a=<-16,-3,23> +p=<340,1347,2173>, v=<51,193,310>, a=<-1,-10,-28> +p=<2775,91,1474>, v=<392,19,210>, a=<-23,0,-17> +p=<1932,2631,1832>, v=<281,377,263>, a=<-23,-22,-22> +p=<-907,-2643,553>, v=<-128,-376,80>, a=<3,25,-5> +p=<-1000,2197,-1349>, v=<-142,311,-190>, a=<11,-16,18> +p=<2322,-222,2055>, v=<330,-30,292>, a=<-22,2,-23> +p=<998,2783,-495>, v=<142,396,-71>, a=<-4,-24,4> +p=<1387,1339,-2461>, v=<198,192,-357>, a=<-13,-10,24> +p=<2472,1408,798>, v=<352,198,114>, a=<-25,-17,-2> +p=<-2902,472,-36>, v=<-415,69,-5>, a=<29,-4,-1> +p=<2714,483,1497>, v=<392,73,214>, a=<-24,0,-17> +p=<1983,1110,1810>, v=<286,158,259>, a=<-19,-9,-18> +p=<-1434,456,2175>, v=<-210,65,312>, a=<12,-6,-23> +p=<-1462,-2708,1253>, v=<-208,-391,178>, a=<13,27,-9> +p=<1909,278,-2335>, v=<272,39,-335>, a=<-19,-6,26> +p=<1006,-1111,-2375>, v=<142,-153,-338>, a=<-8,11,18> +p=<-1929,645,2811>, v=<-270,95,400>, a=<20,-2,-25> +p=<2194,-2657,-168>, v=<311,-380,-23>, a=<-26,21,6> +p=<-96,1298,2772>, v=<-12,185,398>, a=<3,-11,-23> +p=<1678,-2203,-917>, v=<237,-314,-132>, a=<-15,15,9> +p=<-2133,1393,-1427>, v=<-305,197,-204>, a=<18,-15,16> +p=<1284,1847,-2234>, v=<180,259,-317>, a=<-9,-16,22> +p=<-2882,-953,765>, v=<-410,-136,108>, a=<28,11,-10> +p=<1912,2085,1601>, v=<271,293,228>, a=<-24,-20,-18> +p=<2313,-343,1427>, v=<335,-53,201>, a=<-23,3,-13> +p=<240,2618,995>, v=<38,372,142>, a=<-5,-26,-4> +p=<2583,-104,108>, v=<370,-17,15>, a=<-28,-5,-1> +p=<1160,1438,2749>, v=<163,210,392>, a=<-6,-14,-32> +p=<-2441,-699,2396>, v=<-343,-99,348>, a=<27,6,-19> +p=<-1534,-2320,-1041>, v=<-217,-331,-152>, a=<16,19,10> +p=<-1679,-2459,681>, v=<-239,-351,96>, a=<15,24,0> +p=<-1828,-1409,1341>, v=<-254,-201,193>, a=<16,13,-13> +p=<-3058,-434,-677>, v=<-432,-60,-96>, a=<30,7,9> +p=<2711,923,-414>, v=<387,134,-54>, a=<-27,-6,1> +p=<158,-3104,-1082>, v=<26,-442,-156>, a=<-1,31,9> +p=<-1933,-1603,-1395>, v=<-278,-228,-195>, a=<18,16,15> +p=<856,1400,2976>, v=<129,195,425>, a=<-6,-19,-36> +p=<662,1276,1948>, v=<94,182,279>, a=<-5,-12,-15> +p=<-244,-1678,2989>, v=<-30,-235,427>, a=<2,21,-28> +p=<-2690,232,17>, v=<-377,29,2>, a=<25,1,0> +p=<-923,1506,2445>, v=<-131,215,346>, a=<9,-15,-26> +p=<1696,-1289,1916>, v=<240,-184,269>, a=<-17,12,-18> +p=<359,1350,2572>, v=<48,192,367>, a=<-3,-13,-25> +p=<2581,832,1537>, v=<366,123,218>, a=<-25,-11,-14> +p=<2118,-1671,706>, v=<302,-235,98>, a=<-23,14,-11> +p=<-843,2169,1492>, v=<-124,309,210>, a=<8,-21,-13> +p=<1854,440,2444>, v=<264,59,346>, a=<-18,-1,-27> +p=<2949,1077,-291>, v=<422,152,-39>, a=<-22,-8,4> +p=<1759,-2170,1428>, v=<253,-310,203>, a=<-17,17,-11> +p=<-689,-2152,1812>, v=<-95,-307,258>, a=<7,21,-15> +p=<1799,-2222,-1150>, v=<256,-316,-165>, a=<-13,24,13> +p=<2588,1403,440>, v=<369,197,59>, a=<-19,-14,-10> +p=<2356,-1452,758>, v=<337,-212,109>, a=<-24,18,-8> +p=<-1956,-3073,472>, v=<-277,-439,63>, a=<19,28,0> +p=<1748,-1560,-750>, v=<248,-215,-109>, a=<-13,18,4> +p=<-643,-1963,1925>, v=<-97,-280,277>, a=<9,20,-16> +p=<1150,1438,-2824>, v=<158,207,-402>, a=<-9,-9,27> +p=<-1317,-1290,-1820>, v=<-189,-180,-258>, a=<11,12,24> +p=<2382,-652,1487>, v=<343,-96,213>, a=<-23,3,-10> +p=<-265,-2330,-2153>, v=<-32,-334,-305>, a=<1,20,18> +p=<995,1767,1881>, v=<141,252,264>, a=<-9,-12,-14> diff --git a/2017/README.org b/2017/README.org new file mode 100644 index 0000000..854e738 --- /dev/null +++ b/2017/README.org @@ -0,0 +1,3 @@ +* Advent of Code 2017 + +My answers for [[http://adventofcode.com/2017][Advent of Code 2017]]. diff --git a/2018/.gitignore b/2018/.gitignore new file mode 100644 index 0000000..3f411f0 --- /dev/null +++ b/2018/.gitignore @@ -0,0 +1 @@ +*\~ diff --git a/2018/day01/day01.dyalog b/2018/day01/day01.dyalog new file mode 100644 index 0000000..9e9c793 --- /dev/null +++ b/2018/day01/day01.dyalog @@ -0,0 +1,7 @@ +⎕IO←0 +x←,⍎¨⎕csv'input.txt' ++/x + +y←+\(200×⍴x)⍴x +pos←{⍸⍵=y}¨y +y[1⌷{⍵[⍋⍵]}{1⌷⍵}¨(⊃¨1<⍴¨pos)/pos] diff --git a/2018/day01/day01.ss b/2018/day01/day01.ss new file mode 100644 index 0000000..1c5e8b8 --- /dev/null +++ b/2018/day01/day01.ss @@ -0,0 +1,23 @@ +(import :gerbil/gambit/ports) + +(export main) + +(def freqs (with-input-from-file "input.txt" read-all)) + +(def (repeat n l) + (match n + (0 []) + (else (append l (repeat (1- n) l))))) + +(def (main . args) + (displayln (apply + freqs)) + + (let/cc exit + (foldl + (lambda (x acc) + (let ((new-x (+ x (car acc)))) + (if (memq new-x acc) + (begin (displayln new-x) (exit)) + (cons new-x acc)))) + [0] + (repeat 200 freqs)))) diff --git a/2018/day01/input.txt b/2018/day01/input.txt new file mode 100644 index 0000000..c534146 --- /dev/null +++ b/2018/day01/input.txt @@ -0,0 +1,1029 @@ ++19 +-15 ++6 ++6 ++17 +-18 ++7 ++14 ++12 ++13 +-16 ++13 ++8 ++6 +-12 +-3 +-5 ++12 +-15 ++2 +-16 +-11 ++19 ++3 +-15 ++19 +-8 ++14 +-1 +-16 +-14 ++15 ++19 ++10 +-22 +-17 ++8 +-6 +-15 +-9 +-6 +-17 +-18 +-1 ++17 ++18 +-17 ++5 +-12 ++17 +-8 ++11 +-19 +-16 ++12 ++8 +-12 ++6 +-15 ++19 ++1 +-10 +-17 +-16 +-17 +-19 +-13 ++19 +-11 +-4 +-10 ++5 ++6 ++5 +-13 +-7 ++13 +-21 +-18 +-16 +-5 +-11 +-12 +-15 +-19 ++8 +-13 +-14 +-8 ++4 ++20 ++19 ++19 ++18 +-16 ++4 +-17 +-19 +-3 ++13 ++14 +-15 +-16 ++8 ++11 ++1 ++22 ++15 ++16 ++9 ++17 ++13 ++10 +-14 +-4 +-11 ++18 +-2 ++8 ++15 ++17 +-3 +-5 ++16 +-2 ++3 ++4 +-9 +-14 +-9 +-16 ++20 +-7 +-2 ++18 +-3 +-7 ++4 ++19 ++13 ++14 +-11 +-18 +-2 +-8 ++1 ++16 ++17 ++9 +-14 ++7 ++2 ++9 +-12 ++5 +-10 ++16 +-31 +-21 ++13 +-1 ++16 +-2 ++21 +-8 ++23 +-4 ++3 ++3 ++4 ++13 ++6 +-11 ++18 ++2 +-11 +-1 +-4 ++2 ++16 ++20 +-3 ++8 +-6 ++13 +-4 +-16 +-15 ++12 ++9 +-4 +-12 +-21 ++23 +-10 ++41 ++10 ++27 +-3 ++16 ++3 +-4 +-2 ++16 +-9 ++8 +-5 +-18 ++2 ++7 +-19 ++7 +-15 ++11 ++19 ++5 +-1 +-9 ++15 ++4 ++10 +-4 ++18 ++5 ++19 +-8 +-13 +-13 ++2 ++3 +-18 ++10 ++10 +-14 ++13 +-11 ++16 ++18 +-1 ++18 +-1 ++3 +-12 ++17 +-12 ++2 +-4 +-14 ++2 ++11 ++18 ++15 +-7 ++15 ++18 ++4 ++1 +-12 +-7 +-17 +-5 ++1 ++3 ++4 +-19 ++5 ++5 +-11 +-5 ++14 ++17 ++11 ++14 +-13 ++8 +-15 ++13 ++13 ++17 ++13 ++16 +-1 +-14 ++19 ++16 +-19 +-14 ++19 ++16 ++10 +-3 ++16 ++14 ++10 ++16 ++5 ++12 +-1 ++3 +-5 ++7 ++7 ++18 ++10 +-18 ++16 +-3 +-7 +-19 ++10 +-3 +-9 +-11 ++12 +-9 +-6 +-6 +-2 +-5 +-14 +-11 +-10 ++3 +-6 +-16 +-2 +-11 ++7 +-14 +-16 ++6 ++1 ++18 +-11 ++3 ++18 ++21 ++11 +-1 ++17 ++4 ++18 +-4 ++13 +-18 +-3 ++19 +-20 +-11 +-10 +-14 +-11 +-2 +-16 +-16 +-17 ++3 ++6 +-5 ++3 +-13 +-18 ++1 ++14 +-12 ++7 +-2 ++18 +-7 +-8 +-4 +-13 ++2 ++6 +-11 ++8 +-15 ++13 ++23 +-7 ++17 ++10 +-23 ++15 +-18 ++2 +-4 +-14 +-18 +-20 ++4 +-8 ++14 +-3 +-9 +-9 ++4 ++24 +-9 +-5 ++19 ++3 ++20 +-12 ++11 ++17 ++29 +-2 +-14 ++22 ++6 +-9 ++8 ++16 ++24 ++16 +-11 +-2 +-2 +-3 ++14 ++5 ++42 +-3 +-24 ++23 +-7 ++1 ++14 +-11 ++13 +-4 +-3 ++16 +-3 ++28 ++8 ++11 ++16 ++5 ++2 ++16 ++9 +-19 +-9 +-7 +-29 +-8 +-27 +-5 ++51 ++29 ++44 ++11 ++13 ++2 ++54 ++16 +-2 +-19 ++7 ++7 ++11 +-21 +-14 ++50 ++19 ++4 +-9 +-4 ++19 ++5 +-13 +-12 +-8 ++4 +-22 +-12 ++28 ++12 +-18 +-25 ++18 +-27 ++13 ++4 ++32 ++20 ++8 ++14 +-12 ++1 ++5 ++11 +-15 +-16 ++18 ++1 +-6 ++14 +-19 ++9 +-23 +-34 ++78 ++15 +-17 ++19 ++14 ++16 ++14 +-18 ++3 +-20 ++24 ++17 ++11 +-16 ++78 ++10 +-29 ++17 ++124 +-17 ++146 +-55 +-17 ++222 +-15 ++19 ++25 +-24 +-15 +-4 ++21 ++73857 ++6 ++15 ++3 ++16 +-14 ++18 ++5 +-6 +-5 ++8 +-17 +-15 ++18 +-9 ++10 +-8 +-10 +-16 ++9 +-1 +-2 +-15 +-11 +-13 +-16 +-5 ++15 ++4 ++14 +-5 ++8 ++7 +-18 +-3 ++2 ++8 ++5 ++5 ++14 ++18 +-17 ++16 +-5 +-18 ++8 ++7 ++20 ++4 ++11 ++6 +-4 +-8 +-2 +-1 ++14 ++4 ++5 +-6 +-5 ++16 +-3 ++19 ++13 +-12 ++5 ++1 ++18 ++2 ++5 +-13 +-1 +-1 ++4 ++1 ++4 ++17 ++14 ++3 +-14 +-13 +-18 +-3 ++11 ++18 ++10 +-15 ++4 ++15 ++16 ++8 +-14 ++5 ++18 ++12 ++18 +-9 +-6 ++12 +-1 ++7 ++8 ++12 ++15 ++11 +-16 ++15 ++18 +-6 +-2 +-3 ++10 ++10 ++13 +-12 ++9 +-3 +-13 ++20 +-12 ++19 ++6 ++3 ++18 +-15 ++13 ++5 +-17 ++15 +-8 ++17 +-18 +-11 ++15 ++12 +-9 +-16 ++11 ++10 +-13 +-3 +-8 +-12 +-18 +-17 +-20 +-2 +-10 ++15 +-7 ++9 ++4 ++14 ++11 +-2 +-11 ++5 +-8 +-19 +-4 +-2 +-9 +-15 ++8 +-5 ++7 ++13 +-11 ++8 +-11 +-20 +-10 ++11 +-21 ++16 +-2 +-17 +-15 ++9 ++16 ++8 ++3 ++6 +-15 ++21 ++15 ++7 +-17 ++35 ++9 ++14 ++19 +-3 ++4 +-8 ++11 ++17 ++13 ++14 ++4 +-9 ++1 +-17 +-1 +-13 +-19 +-19 ++13 ++24 +-17 +-17 ++20 +-12 +-20 +-2 +-4 +-19 +-5 ++20 ++1 ++8 +-4 +-17 ++10 ++23 ++37 ++10 ++8 ++23 ++3 ++14 +-7 ++19 +-17 +-18 ++8 ++6 ++20 +-3 ++2 +-6 +-17 ++9 +-8 ++17 +-7 ++11 +-8 +-9 ++15 +-4 +-9 ++8 ++18 ++12 +-9 ++13 +-15 ++17 ++16 +-12 +-2 +-14 +-4 ++19 +-16 ++3 ++19 ++19 +-17 ++9 ++4 ++14 +-15 +-18 +-4 +-8 +-14 +-18 ++20 +-13 +-17 +-19 ++4 ++5 ++11 +-9 +-14 ++15 ++31 ++11 ++11 +-20 ++1 ++14 ++4 ++11 ++3 ++17 +-14 ++9 ++13 ++16 ++6 ++5 +-6 ++13 ++3 ++4 ++13 ++10 ++14 ++4 +-1 +-16 +-14 +-6 ++2 ++8 +-5 ++3 ++17 +-4 +-5 ++14 +-12 ++5 ++1 ++14 ++20 +-5 +-5 ++18 +-19 ++9 +-11 ++1 +-12 ++17 ++9 +-6 ++5 ++25 +-13 ++7 +-4 ++8 +-3 +-24 +-40 +-16 +-5 ++10 +-6 +-18 +-14 ++17 ++10 ++18 ++16 +-14 +-18 +-11 +-15 +-13 ++11 ++6 ++8 +-18 ++5 +-8 ++4 +-13 ++19 ++15 ++12 ++6 +-16 ++4 +-5 +-7 +-7 ++6 +-3 +-18 ++17 +-29 ++7 ++7 ++3 +-13 ++1 ++15 +-12 +-14 ++22 +-7 +-17 +-3 +-19 +-15 ++9 ++19 +-9 ++19 +-6 ++14 +-5 +-6 +-39 ++30 +-15 +-51 +-44 ++1 +-22 ++26 +-60 +-25 +-10 ++19 +-22 ++11 +-9 +-29 ++5 ++9 ++7 +-14 +-17 ++4 ++3 ++4 ++3 +-19 +-8 +-18 ++13 +-18 ++3 +-8 ++9 +-13 +-5 +-28 +-9 ++5 +-9 +-3 +-4 ++1 +-3 ++19 +-4 +-7 ++2 ++2 ++11 ++17 ++14 +-18 +-22 +-16 +-16 +-1 +-10 +-4 ++1 +-17 ++24 ++17 ++24 ++1 +-6 +-15 ++28 ++7 +-6 +-18 +-12 ++33 ++34 ++3 ++11 ++5 ++15 ++2 ++4 +-14 +-10 ++19 ++8 ++20 +-74755 diff --git a/2018/day02/day02.dyalog b/2018/day02/day02.dyalog new file mode 100644 index 0000000..031f917 --- /dev/null +++ b/2018/day02/day02.dyalog @@ -0,0 +1,4 @@ +⎕IO←0 +x←⊃⎕nget'input.txt'1 +×/+/2 3∘.∊{≢⍵}⌸¨x +⊃x/⍨+/1=x∘.{+/⍺≠⍵}x diff --git a/2018/day02/day02.ss b/2018/day02/day02.ss new file mode 100644 index 0000000..3680cba --- /dev/null +++ b/2018/day02/day02.ss @@ -0,0 +1,39 @@ +(import :gerbil/gambit/ports) + +(export main) + +(def (unique-counts l) + (def hash (make-hash-table)) + (for-each (lambda (x) (hash-update! hash x 1+ 0)) l) + (hash-values hash)) + +(def (checksum l) + (let ((twice (length (filter (lambda (x) (memq 2 (unique-counts x))) l))) + (thrice (length (filter (lambda (x) (memq 3 (unique-counts x))) l)))) + (* twice thrice))) + +(def (similarity id1 id2) + (apply + + (map (lambda (x y) (if (eq? x y) 0 1)) id1 id2))) + +(def (find-similar id id-list) + (filter (lambda (x) (eq? 1 (similarity id x))) id-list)) + +(def (intersection id1 id2) + (reverse (foldl (lambda (x y acc) (if (eq? x y) (cons x acc) acc)) [] id1 id2))) + +(def (main . args) + (def ids (call-with-input-file "input.txt" (lambda (p) (read-all p read-line)))) + (displayln (checksum (map string->list ids))) + + (def common + (let/cc exit + (foldl + (lambda (id acc) + (let ((similar (find-similar id acc))) + (if (< 0 (length similar)) + (exit (intersection id (car similar))) + (cons id acc)))) + [] + (map string->list ids)))) + (displayln (list->string common))) \ No newline at end of file diff --git a/2018/day02/input.txt b/2018/day02/input.txt new file mode 100644 index 0000000..3e37ebb --- /dev/null +++ b/2018/day02/input.txt @@ -0,0 +1,250 @@ +ubkfmdjxyzlbgkrotcepvswaqx +uikfmdkuyzlbgerotcepvswaqh +uikfmdpxyzlbgnrotcepvswoeh +nikfmdjxyzlbgnrotqepvswyqh +qgkfmdjxyzlbgnmotcepvswaqh +uikfmdjxyzqbgnrytcepvsbaqh +uikfmdjxyzibgprotcecvswaqh +uikfmajxyzlcgnrojcepvswaqh +uvkfsdjxyzlbgnrotcepvjwaqh +uikfmdjxfzlbggrotcepvswawh +uikfmhjxyzlbgnuotcepvjwaqh +uikfmdjxyzlbuzcotcepvswaqh +uikfmdwxyzlbgnrotcepvfwamh +uikfmdexyzlbgnroecepvswhqh +uikfmdjuyzlbgnrotcqpvswafh +uikfddjxyzvbgnrotceppswaqh +yikfwdjxyzlbgnrotcepvswagh +uiktmdjxyzlbgnrotceposwajh +uikfmdsxyzlbgnroteetvswaqh +uikfpdjxyzlbgnroncepvswuqh +uikfmtjxyzlbgurotcepvswaoh +eikfmdjxyjlbgnrotcepyswaqh +uikfkdjxyzlbgnrotcepvszaqv +uikfrdjxtwlbgnrotcepvswaqh +uikfmdjxyzlbgnrotpepwswahh +kikfmdjxyzlbgnkotcepvswqqh +uikfkduxyzlbgnrotcepvswafh +uikfxhjxyzlbgnrotcegvswaqh +uikfmdjxyzlmgnrotcenvawaqh +uzkfmddxyzlbgnrltcepvswaqh +uikfmdjxyzlbgnrobcepisqaqh +uijfmdjxyzlbgnrotcexvrwaqh +uiwjmdjxyzlbgnrotceprswaqh +uhkqmdjxwzlbgnrotcepvswaqh +uiktmsjxyzwbgnrotcepvswaqh +uikfmdjxyztbgnqotcepvswcqh +uibfmdjxyzlbgnroqcepvswaqx +uwkfmdjxyxlbgnrotcfpvswaqh +uikumdjxyzlbgnrstceposwaqh +uikfzdjxyznhgnrotcepvswaqh +uikuydjxyzlbgnrotqepvswaqh +uikfmdqxyzlbgnrotfefvswaqh +yikfmdjxyzlbrnrqtcepvswaqh +uiifmdjxyzlbenrotcfpvswaqh +uxkjmdjxyzlbgnrotcmpvswaqh +uikgmdjxyzlbgnrotceovlwaqh +uikfmdjxyzvbgzrotcenvswaqh +uiufmdjxyzlbgnrotceposwazh +uiafmdjxyzlignmotcepvswaqh +uikfmdjxyzwbgnsotlepvswaqh +uikjmdjvyzlbgnrotcenvswaqh +uikfmdjxyzlbonroteepvswaqi +uikfmdjxyzldgnroxcepviwaqh +uikvmdjxyzlbgdrotrepvswaqh +uikfmdjyyzwbgnrotcepvzwaqh +uikfmdjxyzzbnnvotcepvswaqh +uikomdjxyzlbgnrotcepvuwhqh +uikfmmjxyzbbgnrotcepvswayh +uikfmdjfezlbgprotcepvswaqh +uzkfmojxmzlbgnrotcepvswaqh +uipfmdjxyzlbgnrotceyuswaqh +uikfmdjxyzlkgnmotcepvswadh +uikfmdjxyzlbgnuctcbpvswaqh +uikfqdjxyzlbogrotcepvswaqh +uikfmdjxyzlfynrotcepvswash +uikfmdjxizzmgnrotcepvswaqh +uhkfmdjxyzlbhnrotcenvswaqh +uipfmdjxyzlbgorotcepfswaqh +uikfmdjxyznbgnrotcepvswfah +uikfmujxyzlbgnrotnepvssaqh +uikfmdjxyzlxgnrotcepvsrwqh +uikfmdjxszlbgnrottvpvswaqh +umkfmdskyzlbgnrotcepvswaqh +uikfmdjxyzlbgorotcwpzswaqh +uikfmdhxyzzbgnzotcepvswaqh +jikfmdjxyzlbgnrotcepveyaqh +uirfmdlxyzlbgnjotcepvswaqh +uikfmdjxyzlbgnrorxepvswazh +uikfmdjxyzltgnrotcepvsxaqi +uikfmdjxyzlbxlrotcepkswaqh +uvkfmdjxyzlbgnrotcopvswxqh +uxkfmdjxkzlbgnrotcepvswqqh +uikfmdjxyzlbqnrotcepvhwrqh +uikfmdjxyzlvgnrolcepvswrqh +urkfmdixyzlbgnrotcepvsjaqh +uikfmdjxymlbsnrotcepvswcqh +uikfmdjxyilbgnrotcepvcwzqh +uikfadjxlzlbgnrotcepvswaql +uikfmdjxuzlbgdrotcgpvswaqh +yikfmdgxyzlbgnrotcepvswarh +uikfmdjxyzlbgorotcepcswaqv +uikkmdjxyzlbvnrotcepvvwaqh +uwzfmdjxyxlbgnrotcfpvswaqh +uikfmdjxyztbgnrotcrtvswaqh +uiufmdjxyzhbgnrotcupvswaqh +uikfzdjcyzlbgnrotcfpvswaqh +uipfmdjxyzlbgnrotavpvswaqh +uikfmajxyzlbgnrotcepbsxaqh +uikfmdjfyzlbgnrotbepvswmqh +gikkmdjxyzlbgnrptcepvswaqh +uikfmdjxqvlbgnrotsepvswaqh +fikfmdjxyzlbgnrotcegvswoqh +idkfmdjxyzlbgnrotcepwswaqh +uikfmdqxyzlbmnrobcepvswaqh +uikfmdjxyzpbgnroicepvsyaqh +uikfmkoxyzlbgnrotcgpvswaqh +unkfmdjxyzlbpnrolcepvswaqh +uikfmdjmyzlbgfrotcupvswaqh +ujkfmdjxynlbgnroteepvswaqh +uikfmljxyzlbgnaotcepvsiaqh +uikfmdjdyzlbgnrotcepvtwaqd +uikfmdjxyzlbgnyotcepimwaqh +uikfmdjxyzfbjnrotcepvxwaqh +eiwfmdjxyzlbgnrdtcepvswaqh +umkhmdjxyzlbgnrotceivswaqh +uikfmdjxyzlbgnrotcwpvswneh +uckfmdjxyzlbknrotcepvswauh +uiofmdjoyzlbgnrbtcepvswaqh +uikfmdbxyzlbgnrotcepaslaqh +uimfmdjxyalbgnrotcepvswaxh +uqkfmdjxyzlbwnrotcepmswaqh +uiyfmdjxyzlbgnrotcepvswxuh +uikfmdjxyzlbgmrotgepvswamh +uikfmdjxyqlbgarozcepvswaqh +uikfmdjxyzabanpotcepvswaqh +uikfmdjgyzlbsnrotcepvswaqj +uikfmdjxyzlbwnrottepvsvaqh +uikfmdjxyzlbbnrotcepvofaqh +uikfudjxyzlbgnustcepvswaqh +cskfmqjxyzlbgnrotcepvswaqh +uiwfmddxyzlbgnrotccpvswaqh +eikpmdjxyzlbgnrotcesvswaqh +uikfmdzxyzlngnrrtcepvswaqh +uikfmdjxyzlbgnrotcepaswtph +uirfmdjxyzlbgnrotcepvswsqe +uikjmdjxqzlbgirotcepvswaqh +uikfmdjxsllbknrotcepvswaqh +uikfmdjxyqlbgcrotcepvswaqu +uikfmdjsymlbgnrotcebvswaqh +uikfmdjxezlbgnroccepviwaqh +uikfmdjiyzjbgnrotcepvswarh +uqkfmdjxyzmbgnrotcepvslaqh +unkfmdjxyzlbinrotceplswaqh +uikfmdjxyzpbgnrjtcedvswaqh +uicfmdjxyzlbgrrotcepvswamh +ukknmdjxyzlbgnqotcepvswaqh +uikfudjxyzlbdnrztcepvswaqh +uikfmdjxyzlbgnrozcepvswawk +uikfmduxyzsbgnrotcepvswauh +uikfmdjxyzljbnrotcenvswaqh +uukfmdjxyzlbgnrotcckvswaqh +uilfldjxyzlbgnrotcdpvswaqh +uckfmdjxyvybgnrotcepvswaqh +qikfmdjxyglbgnrotcepvrwaqh +uikfmhjxyzltgnrotcepvswbqh +uikfmdjxipabgnrotcepvswaqh +uikfmdjxyzlbgnrotceovswanl +uikfmdjxyzlbgirotcapvswahh +uikfucjxyflbgnrotcepvswaqh +pikfmdjxyzpbgnrotcepvswaeh +uikfmdjiyylbgnrotcervswaqh +uikfmdjgyzlbgnrotcaevswaqh +uikvmdjxyzlbunrotcepvswarh +uikfadjuyzpbgnrotcepvswaqh +uikfmdjxyzlbgnrotcepsawaqj +eikfmdjxyflbgnrotcepvswaeh +uisfmdaxyzlbgnrotcepvswlqh +vikfmdjxyzlzgnrotcepvswanh +ukkfmdoxyzlbgnrotcewvswaqh +uikfmdhxyzlbgnrotcrpvbwaqh +uhkfmdjwezlbgnrotcepvswaqh +uikfddjxyzlbgnroteepvpwaqh +uikfmdjxczlbgncotiepvswaqh +uikfvdjxyzlbgnrotcnpvsaaqh +uikfmdjxyzlbgnritcepvlwmqh +uikfmdjxczlcgnrotcecvswaqh +mikfmdjxyzlbgnrotcepvswasi +uifvmdjxyzlbgnrotpepvswaqh +uikzmdjxyzlbgnrotrepvswaqs +uikfmqjqyzlbunrotcepvswaqh +uikfpdyxyzlbgnrotcepvswagh +uikfmdjxyzobgnrotrlpvswaqh +zisdmdjxyzlbgnrotcepvswaqh +uikfmdjxyzlbgnlotiesvswaqh +uikfddixyzlbgnroucepvswaqh +uijfmdrxyzlbgnrotoepvswaqh +uikfmdcxbzlbgnrotcepvpwaqh +uikfmdjxxzlbfnrotcecvswaqh +upkfmdjxyzmtgnrotcepvswaqh +uikfmdrxyzlbgnrjtcepvswaqp +uizfmdjxyzlbsnrotcepviwaqh +uidfmdjxyslbgnrotcxpvswaqh +uikfmdjxyzlbgnrovyepvsdaqh +uiafmdjxyzlbgnrxtcepvsdaqh +ugkfmdjxyzlbgnrodcepvswawh +pikfmtjxyzhbgnrotcepvswaqh +uikfmdjxyzlfgnvotcepvswtqh +uikbmdjxyzlbgerotcepvswaqm +uikfmdjxyhlbdnrotcepvswaqy +uikfgdjxyzlbgnhotcepvswdqh +uikfmdpxyzlbgnrotcepvscanh +uikfmdjxyzsbgnretcepvswaqn +uikfddjxyzlrgnrotcepvsbaqh +uikfmdjxyzlbgnrotcqnrswaqh +uhkfmejxyzlbgnrotvepvswaqh +uikimdjxyzlngnrotceprswaqh +uikfmdjxyzwbunrotiepvswaqh +rikfmdjxyzlbgnrotcypvssaqh +uikfmdjxyzlbdnrotcrpvswsqh +uekfmdjxkzlbznrotcepvswaqh +uikfmdjxyglbgvrotcepvswaqv +uikfmcjxyzlbgnrotmeovswaqh +uikfmdjxyznbgnrozcepvswaqm +uikfmdjxyzlbdnrotcepdsyaqh +umkfmdjxfzlbgnrotiepvswaqh +uitfmdjxyzvbcnrotcepvswaqh +uikfmdjqyzlbgnrvtcepvlwaqh +uikfmdjxyzkbworotcepvswaqh +uikfmdzxyzlbwnrotcypvswaqh +uikfmdjxyklbgnrftyepvswaqh +uinfmsjxyzlbgnrotcepsswaqh +xisfmdjxymlbgnrotcepvswaqh +uikfmdjxjzlbgnropcepvswaqv +uikfmdjxyalegyrotcepvswaqh +uikfydjxyzlbgnrotcekvswtqh +uikwmojxyzlbgnromcepvswaqh +uikdmdjayzlbgnrotcepvswzqh +uikfmdjxyzlmvnrotctpvswaqh +uikfmbjxyzlbgnrotceptsweqh +yvkfmdjxyzlbgqrotcepvswaqh +uikomdjxfxlbgnrotcepvswaqh +uikfmdjxczlbgnroocepgswaqh +uikemdjxizlbgnrotcegvswaqh +uikdmdjxyzlbgwrotceprswaqh +tiyfmdjfyzlbgnrotcepvswaqh +tmkfmdjxyzlbgirotcepvswaqh +uikfmdjxyzebgnzotcepqswaqh +uikfmljxyzlbgnrwtcepvswaeh +uikfmojxyzlbgnrotcepbswwqh +uikfmdjxyzlbgsrotcewvswwqh +uikfmdjhyzlbgdrogcepvswaqh +uikfmvjxyzlbrnrltcepvswaqh +jikfmdjxyzlbgnrotcepvgcaqh +uikhtdjxyzlbgnrotcepvswarh +uikfmdjxyezbgnritcepvswaqh +uikfwdjxyzlbgnrotzepvsnaqh +uikfmdjxqylbgnrobcepvswaqh +zikzmdjxyzlbgnrhtcepvswaqh +uiksmzjxyzlbgnrftcepvswaqh +uikfmdjxuzlbgnrotcepvsvaqc diff --git a/2018/day03/day03.dyalog b/2018/day03/day03.dyalog new file mode 100644 index 0000000..4e774c8 --- /dev/null +++ b/2018/day03/day03.dyalog @@ -0,0 +1,12 @@ +⎕IO←0 +x←⊃⎕nget'input.txt'1 +x←⍎¨¨'\d+'⎕S'&'¨x + +⍝ Part 1 +claims←{id x y w h←⍵ ⋄ (x+⍳w)∘.,y+⍳h}¨x +fabric←1000 1000⍴0 +{fabric[⍵]+←1}¨claims ++/,1list overlapping) + (hash-find (lambda (k v) (if v k #f)) overlapping)) + +(def (main . args) + (def claims-str (call-with-input-file "input.txt" (lambda (p) (read-all p read-line)))) + (def claims (map (lambda (x) (filter-map string->number (pregexp-split "[ #@,:x]" x))) claims-str)) + (def fabric (make-hash-table)) + (for ((claim claims)) + (claim-area! fabric claim)) + (displayln (hash-fold (lambda (k v acc) (if (> (length v) 1) (1+ acc) acc)) 0 fabric)) + + (displayln (non-overlapping-claim fabric))) diff --git a/2018/day03/input.txt b/2018/day03/input.txt new file mode 100644 index 0000000..96382d7 --- /dev/null +++ b/2018/day03/input.txt @@ -0,0 +1,1307 @@ +#1 @ 755,138: 26x19 +#2 @ 952,518: 15x24 +#3 @ 304,90: 28x12 +#4 @ 237,265: 17x13 +#5 @ 219,97: 26x24 +#6 @ 512,74: 19x21 +#7 @ 868,291: 22x25 +#8 @ 908,272: 17x11 +#9 @ 432,455: 10x8 +#10 @ 309,778: 13x25 +#11 @ 569,720: 28x29 +#12 @ 557,222: 26x15 +#13 @ 899,728: 12x22 +#14 @ 966,109: 13x15 +#15 @ 403,295: 27x24 +#16 @ 320,546: 10x28 +#17 @ 871,906: 10x20 +#18 @ 233,207: 27x11 +#19 @ 672,560: 16x25 +#20 @ 422,273: 22x11 +#21 @ 314,911: 17x26 +#22 @ 36,545: 18x13 +#23 @ 18,151: 13x24 +#24 @ 655,24: 28x22 +#25 @ 538,430: 21x26 +#26 @ 749,726: 19x18 +#27 @ 41,166: 22x29 +#28 @ 595,17: 11x20 +#29 @ 691,725: 18x20 +#30 @ 427,113: 11x25 +#31 @ 491,661: 19x23 +#32 @ 479,348: 20x16 +#33 @ 415,1: 16x17 +#34 @ 780,927: 23x19 +#35 @ 780,350: 21x3 +#36 @ 415,796: 12x15 +#37 @ 783,452: 29x24 +#38 @ 702,728: 16x28 +#39 @ 350,676: 17x21 +#40 @ 611,518: 12x21 +#41 @ 813,715: 13x26 +#42 @ 317,63: 29x24 +#43 @ 484,642: 26x14 +#44 @ 237,910: 24x25 +#45 @ 325,917: 28x20 +#46 @ 567,485: 20x12 +#47 @ 464,470: 18x26 +#48 @ 389,9: 13x11 +#49 @ 92,560: 16x21 +#50 @ 532,967: 23x14 +#51 @ 762,825: 11x13 +#52 @ 606,600: 23x23 +#53 @ 848,798: 19x24 +#54 @ 311,503: 10x15 +#55 @ 72,388: 13x19 +#56 @ 28,692: 15x29 +#57 @ 965,205: 13x13 +#58 @ 472,738: 18x17 +#59 @ 732,652: 25x18 +#60 @ 676,573: 23x17 +#61 @ 859,162: 17x24 +#62 @ 775,822: 19x26 +#63 @ 343,97: 22x20 +#64 @ 945,279: 13x19 +#65 @ 446,405: 13x13 +#66 @ 293,520: 26x16 +#67 @ 852,501: 26x19 +#68 @ 924,209: 21x29 +#69 @ 469,425: 17x17 +#70 @ 192,827: 14x11 +#71 @ 944,798: 25x24 +#72 @ 161,321: 16x20 +#73 @ 930,796: 25x10 +#74 @ 460,629: 26x23 +#75 @ 777,347: 29x10 +#76 @ 320,50: 20x20 +#77 @ 417,360: 26x18 +#78 @ 579,460: 14x26 +#79 @ 20,361: 29x11 +#80 @ 55,929: 26x25 +#81 @ 532,605: 26x29 +#82 @ 152,606: 24x20 +#83 @ 255,566: 24x18 +#84 @ 54,204: 13x22 +#85 @ 837,206: 19x16 +#86 @ 555,336: 13x24 +#87 @ 878,302: 16x15 +#88 @ 356,480: 21x22 +#89 @ 261,769: 16x10 +#90 @ 884,165: 27x10 +#91 @ 374,83: 20x11 +#92 @ 514,214: 17x18 +#93 @ 346,557: 21x16 +#94 @ 260,772: 27x20 +#95 @ 337,313: 25x21 +#96 @ 140,322: 17x10 +#97 @ 81,892: 24x20 +#98 @ 432,958: 10x23 +#99 @ 533,176: 22x10 +#100 @ 186,331: 14x20 +#101 @ 910,975: 11x11 +#102 @ 756,642: 24x22 +#103 @ 251,358: 14x21 +#104 @ 30,146: 18x26 +#105 @ 307,555: 14x12 +#106 @ 150,670: 13x20 +#107 @ 643,862: 17x27 +#108 @ 98,740: 29x13 +#109 @ 347,44: 11x14 +#110 @ 105,597: 11x27 +#111 @ 918,492: 15x19 +#112 @ 824,383: 20x17 +#113 @ 227,259: 21x17 +#114 @ 103,516: 5x10 +#115 @ 170,683: 13x14 +#116 @ 397,590: 22x24 +#117 @ 577,257: 21x25 +#118 @ 575,204: 13x13 +#119 @ 245,761: 16x16 +#120 @ 802,736: 13x19 +#121 @ 193,10: 26x16 +#122 @ 393,4: 25x28 +#123 @ 122,609: 18x19 +#124 @ 635,687: 12x11 +#125 @ 898,545: 25x15 +#126 @ 293,934: 17x15 +#127 @ 224,781: 27x22 +#128 @ 952,534: 17x15 +#129 @ 557,958: 11x12 +#130 @ 248,655: 13x20 +#131 @ 334,284: 21x18 +#132 @ 663,378: 25x25 +#133 @ 892,529: 27x24 +#134 @ 428,451: 21x18 +#135 @ 263,39: 22x14 +#136 @ 68,217: 12x29 +#137 @ 560,136: 15x13 +#138 @ 163,815: 29x18 +#139 @ 627,669: 20x12 +#140 @ 23,539: 16x13 +#141 @ 101,509: 19x25 +#142 @ 895,520: 12x26 +#143 @ 409,884: 27x12 +#144 @ 368,760: 11x20 +#145 @ 557,58: 28x10 +#146 @ 438,332: 12x21 +#147 @ 76,951: 28x20 +#148 @ 406,186: 22x27 +#149 @ 302,621: 19x29 +#150 @ 920,629: 17x13 +#151 @ 849,878: 11x28 +#152 @ 780,576: 20x28 +#153 @ 757,799: 26x23 +#154 @ 116,834: 29x16 +#155 @ 729,960: 23x11 +#156 @ 137,56: 20x23 +#157 @ 556,337: 13x18 +#158 @ 294,546: 29x20 +#159 @ 22,334: 28x14 +#160 @ 565,39: 14x16 +#161 @ 173,311: 12x18 +#162 @ 191,516: 15x17 +#163 @ 280,334: 29x25 +#164 @ 835,508: 10x15 +#165 @ 413,766: 23x10 +#166 @ 922,355: 16x22 +#167 @ 231,790: 13x16 +#168 @ 363,538: 16x23 +#169 @ 333,386: 25x16 +#170 @ 901,377: 13x19 +#171 @ 722,437: 18x25 +#172 @ 666,697: 26x22 +#173 @ 0,355: 10x10 +#174 @ 475,88: 23x12 +#175 @ 51,174: 21x29 +#176 @ 546,330: 21x25 +#177 @ 707,924: 15x11 +#178 @ 530,812: 22x14 +#179 @ 73,52: 20x25 +#180 @ 936,311: 13x17 +#181 @ 723,519: 28x11 +#182 @ 662,239: 17x19 +#183 @ 309,186: 23x23 +#184 @ 584,457: 26x22 +#185 @ 575,52: 19x19 +#186 @ 327,300: 19x24 +#187 @ 376,128: 12x21 +#188 @ 573,536: 8x7 +#189 @ 420,335: 12x29 +#190 @ 886,554: 12x10 +#191 @ 820,66: 10x22 +#192 @ 5,564: 25x27 +#193 @ 942,979: 29x17 +#194 @ 116,55: 27x11 +#195 @ 423,854: 20x16 +#196 @ 331,37: 19x24 +#197 @ 715,374: 29x13 +#198 @ 873,758: 10x29 +#199 @ 661,367: 20x22 +#200 @ 521,796: 26x20 +#201 @ 582,838: 15x26 +#202 @ 548,870: 10x19 +#203 @ 357,418: 21x11 +#204 @ 651,861: 28x11 +#205 @ 166,414: 18x15 +#206 @ 403,513: 16x13 +#207 @ 10,561: 23x19 +#208 @ 259,725: 27x13 +#209 @ 505,647: 13x14 +#210 @ 25,131: 28x15 +#211 @ 414,295: 28x16 +#212 @ 421,775: 19x14 +#213 @ 214,627: 12x19 +#214 @ 642,675: 24x26 +#215 @ 561,755: 22x10 +#216 @ 469,754: 23x15 +#217 @ 533,714: 21x21 +#218 @ 21,163: 13x12 +#219 @ 11,59: 12x21 +#220 @ 47,903: 10x20 +#221 @ 538,890: 12x24 +#222 @ 114,617: 23x29 +#223 @ 462,209: 16x12 +#224 @ 206,643: 17x29 +#225 @ 890,106: 24x10 +#226 @ 276,15: 16x12 +#227 @ 663,196: 22x26 +#228 @ 660,686: 17x28 +#229 @ 474,586: 10x26 +#230 @ 900,379: 12x23 +#231 @ 2,31: 12x12 +#232 @ 937,309: 24x29 +#233 @ 450,123: 16x19 +#234 @ 302,204: 29x16 +#235 @ 199,948: 29x12 +#236 @ 958,794: 29x19 +#237 @ 779,851: 18x23 +#238 @ 730,631: 18x29 +#239 @ 111,704: 18x24 +#240 @ 488,58: 25x12 +#241 @ 572,23: 26x22 +#242 @ 307,89: 12x22 +#243 @ 510,770: 24x15 +#244 @ 45,448: 11x28 +#245 @ 590,542: 18x17 +#246 @ 678,2: 23x12 +#247 @ 796,319: 11x16 +#248 @ 152,680: 26x25 +#249 @ 938,25: 19x21 +#250 @ 56,395: 23x22 +#251 @ 590,668: 18x24 +#252 @ 839,710: 29x14 +#253 @ 792,637: 24x20 +#254 @ 700,113: 26x14 +#255 @ 25,593: 11x23 +#256 @ 924,479: 28x25 +#257 @ 223,544: 24x20 +#258 @ 680,577: 18x18 +#259 @ 342,475: 23x29 +#260 @ 533,151: 17x13 +#261 @ 142,519: 22x20 +#262 @ 902,762: 15x28 +#263 @ 332,827: 13x23 +#264 @ 10,105: 19x25 +#265 @ 417,605: 17x19 +#266 @ 578,795: 10x12 +#267 @ 308,342: 12x21 +#268 @ 239,241: 27x24 +#269 @ 312,382: 10x3 +#270 @ 770,6: 13x20 +#271 @ 350,484: 18x22 +#272 @ 897,652: 14x19 +#273 @ 518,314: 17x12 +#274 @ 675,124: 9x12 +#275 @ 787,416: 28x17 +#276 @ 512,204: 18x19 +#277 @ 243,224: 16x18 +#278 @ 266,938: 6x3 +#279 @ 305,914: 22x22 +#280 @ 68,930: 22x10 +#281 @ 312,565: 25x10 +#282 @ 562,608: 16x19 +#283 @ 55,116: 17x10 +#284 @ 253,675: 19x16 +#285 @ 304,299: 19x15 +#286 @ 786,401: 26x20 +#287 @ 391,621: 21x25 +#288 @ 437,217: 19x18 +#289 @ 675,488: 25x28 +#290 @ 47,195: 10x26 +#291 @ 881,323: 25x29 +#292 @ 24,173: 25x27 +#293 @ 816,658: 22x21 +#294 @ 915,501: 29x18 +#295 @ 886,49: 12x23 +#296 @ 885,60: 10x15 +#297 @ 257,849: 26x28 +#298 @ 899,571: 29x15 +#299 @ 714,390: 15x11 +#300 @ 915,702: 14x27 +#301 @ 489,164: 10x6 +#302 @ 389,463: 16x10 +#303 @ 229,759: 28x11 +#304 @ 4,570: 17x17 +#305 @ 547,949: 28x24 +#306 @ 696,931: 17x16 +#307 @ 241,300: 18x16 +#308 @ 790,323: 15x17 +#309 @ 483,822: 17x17 +#310 @ 463,733: 21x22 +#311 @ 98,549: 20x10 +#312 @ 364,23: 13x12 +#313 @ 490,651: 18x15 +#314 @ 887,670: 19x19 +#315 @ 326,902: 10x19 +#316 @ 793,765: 17x19 +#317 @ 733,540: 17x10 +#318 @ 768,892: 28x20 +#319 @ 317,21: 29x10 +#320 @ 668,172: 13x27 +#321 @ 496,122: 12x4 +#322 @ 911,236: 12x12 +#323 @ 430,576: 25x15 +#324 @ 606,798: 27x25 +#325 @ 903,242: 21x15 +#326 @ 128,713: 14x10 +#327 @ 293,367: 25x15 +#328 @ 610,359: 13x23 +#329 @ 284,30: 22x16 +#330 @ 561,764: 17x20 +#331 @ 558,329: 11x17 +#332 @ 536,356: 23x27 +#333 @ 606,968: 26x19 +#334 @ 420,175: 15x24 +#335 @ 676,86: 29x20 +#336 @ 908,410: 17x16 +#337 @ 558,766: 12x28 +#338 @ 917,860: 23x20 +#339 @ 253,362: 8x11 +#340 @ 429,844: 14x27 +#341 @ 56,851: 10x23 +#342 @ 309,709: 22x18 +#343 @ 165,346: 25x21 +#344 @ 17,922: 23x14 +#345 @ 702,31: 16x21 +#346 @ 328,333: 19x27 +#347 @ 302,911: 17x18 +#348 @ 15,649: 12x19 +#349 @ 966,178: 24x21 +#350 @ 544,945: 27x17 +#351 @ 261,927: 28x20 +#352 @ 705,393: 28x12 +#353 @ 732,58: 17x26 +#354 @ 213,572: 20x26 +#355 @ 358,650: 16x29 +#356 @ 754,629: 10x14 +#357 @ 708,941: 10x21 +#358 @ 153,478: 19x18 +#359 @ 950,364: 29x16 +#360 @ 765,705: 12x22 +#361 @ 779,171: 20x11 +#362 @ 670,677: 14x26 +#363 @ 405,646: 27x17 +#364 @ 346,842: 25x25 +#365 @ 902,872: 22x23 +#366 @ 166,133: 16x10 +#367 @ 692,546: 24x26 +#368 @ 883,552: 23x10 +#369 @ 153,497: 12x16 +#370 @ 928,881: 15x28 +#371 @ 316,308: 19x22 +#372 @ 582,239: 28x23 +#373 @ 285,728: 16x24 +#374 @ 790,929: 17x15 +#375 @ 369,96: 14x21 +#376 @ 904,950: 19x18 +#377 @ 205,938: 13x13 +#378 @ 132,837: 13x16 +#379 @ 279,864: 14x14 +#380 @ 718,816: 29x23 +#381 @ 120,973: 29x17 +#382 @ 422,461: 10x15 +#383 @ 208,352: 23x26 +#384 @ 904,731: 18x23 +#385 @ 61,876: 26x27 +#386 @ 533,327: 27x22 +#387 @ 2,349: 20x13 +#388 @ 399,969: 24x23 +#389 @ 805,734: 13x15 +#390 @ 190,898: 24x13 +#391 @ 117,845: 19x18 +#392 @ 368,30: 16x19 +#393 @ 406,974: 13x4 +#394 @ 35,913: 10x29 +#395 @ 228,169: 11x28 +#396 @ 505,735: 21x12 +#397 @ 737,335: 10x16 +#398 @ 261,264: 28x15 +#399 @ 965,959: 15x25 +#400 @ 14,168: 25x23 +#401 @ 693,517: 14x13 +#402 @ 54,893: 13x16 +#403 @ 186,945: 26x14 +#404 @ 117,742: 21x19 +#405 @ 185,455: 11x14 +#406 @ 203,1: 20x11 +#407 @ 175,191: 27x18 +#408 @ 634,690: 19x21 +#409 @ 650,437: 27x15 +#410 @ 623,752: 15x24 +#411 @ 790,606: 16x24 +#412 @ 851,726: 19x12 +#413 @ 68,171: 25x23 +#414 @ 336,135: 19x11 +#415 @ 427,151: 10x28 +#416 @ 313,67: 10x12 +#417 @ 144,519: 23x11 +#418 @ 606,699: 27x28 +#419 @ 66,564: 17x24 +#420 @ 219,225: 28x29 +#421 @ 911,398: 11x17 +#422 @ 971,903: 28x27 +#423 @ 909,220: 20x20 +#424 @ 64,845: 29x18 +#425 @ 448,248: 23x26 +#426 @ 726,370: 15x14 +#427 @ 951,135: 24x20 +#428 @ 557,750: 24x23 +#429 @ 487,184: 26x21 +#430 @ 427,819: 27x18 +#431 @ 243,684: 16x12 +#432 @ 362,486: 27x10 +#433 @ 631,562: 22x24 +#434 @ 43,258: 16x21 +#435 @ 855,305: 21x11 +#436 @ 216,955: 29x11 +#437 @ 709,7: 21x27 +#438 @ 308,47: 16x11 +#439 @ 251,765: 16x10 +#440 @ 737,440: 16x20 +#441 @ 142,438: 22x18 +#442 @ 405,492: 17x23 +#443 @ 216,687: 28x12 +#444 @ 323,770: 20x17 +#445 @ 373,90: 28x26 +#446 @ 670,674: 10x17 +#447 @ 292,239: 5x5 +#448 @ 369,133: 17x18 +#449 @ 81,173: 13x14 +#450 @ 954,299: 29x17 +#451 @ 390,730: 21x10 +#452 @ 933,25: 10x12 +#453 @ 340,165: 14x13 +#454 @ 459,498: 10x13 +#455 @ 787,464: 10x24 +#456 @ 476,683: 29x26 +#457 @ 877,986: 12x12 +#458 @ 393,112: 27x27 +#459 @ 957,538: 16x22 +#460 @ 815,245: 12x11 +#461 @ 777,925: 29x13 +#462 @ 200,302: 24x14 +#463 @ 780,916: 19x16 +#464 @ 355,667: 20x11 +#465 @ 310,972: 17x17 +#466 @ 591,6: 12x25 +#467 @ 429,640: 10x19 +#468 @ 888,608: 29x26 +#469 @ 47,843: 15x13 +#470 @ 457,653: 17x21 +#471 @ 589,253: 24x29 +#472 @ 586,746: 15x20 +#473 @ 339,492: 19x21 +#474 @ 562,507: 19x23 +#475 @ 283,874: 25x19 +#476 @ 277,237: 25x10 +#477 @ 478,493: 13x17 +#478 @ 37,239: 15x11 +#479 @ 948,887: 25x24 +#480 @ 883,25: 15x21 +#481 @ 203,89: 17x14 +#482 @ 422,924: 25x20 +#483 @ 838,387: 7x3 +#484 @ 114,831: 26x25 +#485 @ 906,5: 20x17 +#486 @ 17,422: 5x8 +#487 @ 664,638: 14x13 +#488 @ 948,268: 11x12 +#489 @ 36,856: 29x10 +#490 @ 538,137: 12x26 +#491 @ 367,677: 20x22 +#492 @ 116,457: 29x11 +#493 @ 963,157: 23x22 +#494 @ 559,521: 11x13 +#495 @ 881,439: 15x24 +#496 @ 487,112: 27x25 +#497 @ 433,312: 23x23 +#498 @ 270,745: 16x13 +#499 @ 121,950: 17x21 +#500 @ 866,544: 24x13 +#501 @ 280,285: 13x23 +#502 @ 52,270: 20x29 +#503 @ 208,304: 6x8 +#504 @ 226,872: 28x14 +#505 @ 267,845: 13x13 +#506 @ 345,477: 23x20 +#507 @ 633,771: 25x27 +#508 @ 715,398: 27x21 +#509 @ 36,526: 28x28 +#510 @ 745,143: 13x28 +#511 @ 57,250: 10x29 +#512 @ 573,236: 25x12 +#513 @ 715,671: 12x13 +#514 @ 69,102: 4x21 +#515 @ 692,34: 22x10 +#516 @ 274,302: 16x29 +#517 @ 22,47: 25x18 +#518 @ 590,723: 28x17 +#519 @ 95,879: 18x16 +#520 @ 275,858: 11x13 +#521 @ 486,159: 25x16 +#522 @ 249,215: 12x15 +#523 @ 615,738: 16x18 +#524 @ 766,13: 19x12 +#525 @ 297,555: 18x20 +#526 @ 362,76: 16x18 +#527 @ 488,829: 10x22 +#528 @ 248,921: 22x24 +#529 @ 80,136: 18x15 +#530 @ 880,740: 13x12 +#531 @ 584,217: 18x23 +#532 @ 716,634: 7x12 +#533 @ 370,741: 23x21 +#534 @ 385,12: 16x16 +#535 @ 587,565: 23x29 +#536 @ 397,636: 16x28 +#537 @ 208,504: 14x20 +#538 @ 241,564: 15x12 +#539 @ 553,484: 18x11 +#540 @ 351,765: 28x26 +#541 @ 498,770: 3x12 +#542 @ 610,135: 14x29 +#543 @ 2,888: 24x16 +#544 @ 631,464: 16x16 +#545 @ 716,247: 15x27 +#546 @ 380,693: 18x21 +#547 @ 690,507: 11x17 +#548 @ 950,886: 28x17 +#549 @ 188,182: 12x16 +#550 @ 604,418: 20x22 +#551 @ 544,184: 27x13 +#552 @ 367,16: 23x13 +#553 @ 508,645: 21x26 +#554 @ 906,386: 13x16 +#555 @ 681,208: 17x17 +#556 @ 254,576: 12x14 +#557 @ 867,797: 17x18 +#558 @ 776,350: 9x4 +#559 @ 249,664: 11x29 +#560 @ 656,651: 21x29 +#561 @ 884,610: 25x25 +#562 @ 329,213: 13x27 +#563 @ 958,277: 20x25 +#564 @ 603,551: 12x13 +#565 @ 91,228: 21x14 +#566 @ 171,636: 19x25 +#567 @ 509,336: 14x17 +#568 @ 428,827: 26x28 +#569 @ 546,747: 20x17 +#570 @ 951,357: 17x15 +#571 @ 892,747: 15x27 +#572 @ 219,866: 21x16 +#573 @ 617,233: 20x22 +#574 @ 271,502: 15x11 +#575 @ 159,486: 17x17 +#576 @ 925,311: 26x10 +#577 @ 731,589: 10x19 +#578 @ 16,878: 21x17 +#579 @ 421,0: 11x27 +#580 @ 313,535: 20x21 +#581 @ 659,155: 19x24 +#582 @ 707,68: 29x27 +#583 @ 119,193: 25x19 +#584 @ 165,709: 23x18 +#585 @ 663,435: 25x12 +#586 @ 356,107: 28x10 +#587 @ 446,30: 22x17 +#588 @ 17,328: 28x24 +#589 @ 601,551: 25x16 +#590 @ 697,90: 12x21 +#591 @ 764,807: 23x22 +#592 @ 493,199: 22x14 +#593 @ 687,519: 18x26 +#594 @ 799,195: 16x11 +#595 @ 543,172: 22x26 +#596 @ 671,909: 24x10 +#597 @ 188,201: 21x24 +#598 @ 52,532: 24x25 +#599 @ 20,376: 10x29 +#600 @ 669,515: 25x12 +#601 @ 645,473: 15x20 +#602 @ 695,339: 11x26 +#603 @ 218,746: 16x16 +#604 @ 97,492: 11x26 +#605 @ 551,463: 14x27 +#606 @ 931,516: 25x28 +#607 @ 830,888: 26x14 +#608 @ 413,104: 24x25 +#609 @ 181,879: 17x20 +#610 @ 524,369: 14x29 +#611 @ 861,175: 23x19 +#612 @ 366,383: 20x24 +#613 @ 315,559: 11x11 +#614 @ 287,7: 23x21 +#615 @ 949,779: 12x21 +#616 @ 507,514: 21x21 +#617 @ 768,50: 29x11 +#618 @ 323,326: 12x28 +#619 @ 933,12: 24x17 +#620 @ 578,821: 24x29 +#621 @ 564,765: 14x22 +#622 @ 974,502: 11x16 +#623 @ 613,884: 19x28 +#624 @ 824,604: 11x13 +#625 @ 56,833: 11x21 +#626 @ 347,131: 13x29 +#627 @ 501,867: 28x19 +#628 @ 325,49: 22x24 +#629 @ 503,618: 17x21 +#630 @ 761,402: 12x22 +#631 @ 604,679: 15x19 +#632 @ 915,252: 19x24 +#633 @ 487,856: 29x15 +#634 @ 147,111: 21x23 +#635 @ 904,393: 28x27 +#636 @ 242,318: 22x19 +#637 @ 359,297: 16x19 +#638 @ 714,516: 23x20 +#639 @ 155,340: 24x10 +#640 @ 840,880: 17x25 +#641 @ 433,651: 13x26 +#642 @ 643,849: 23x14 +#643 @ 782,202: 29x18 +#644 @ 465,495: 26x15 +#645 @ 197,340: 28x15 +#646 @ 389,575: 25x29 +#647 @ 178,192: 27x27 +#648 @ 110,688: 16x28 +#649 @ 852,574: 15x11 +#650 @ 253,592: 14x10 +#651 @ 254,323: 28x20 +#652 @ 651,854: 21x15 +#653 @ 566,558: 19x27 +#654 @ 885,425: 15x25 +#655 @ 579,469: 3x4 +#656 @ 776,728: 22x23 +#657 @ 66,98: 21x29 +#658 @ 613,360: 16x16 +#659 @ 668,874: 19x16 +#660 @ 439,369: 11x19 +#661 @ 735,850: 25x21 +#662 @ 307,339: 12x20 +#663 @ 403,183: 19x12 +#664 @ 700,777: 12x16 +#665 @ 580,211: 28x17 +#666 @ 678,893: 15x14 +#667 @ 623,730: 16x11 +#668 @ 464,564: 23x25 +#669 @ 505,429: 11x23 +#670 @ 107,888: 13x28 +#671 @ 61,610: 28x22 +#672 @ 584,240: 27x23 +#673 @ 560,794: 24x23 +#674 @ 746,824: 18x18 +#675 @ 629,244: 14x24 +#676 @ 570,528: 18x23 +#677 @ 828,599: 28x26 +#678 @ 159,38: 13x10 +#679 @ 947,361: 10x19 +#680 @ 431,201: 15x22 +#681 @ 801,449: 27x11 +#682 @ 44,174: 12x22 +#683 @ 797,783: 15x24 +#684 @ 600,972: 22x12 +#685 @ 791,817: 29x15 +#686 @ 293,806: 20x26 +#687 @ 908,734: 19x22 +#688 @ 84,543: 12x11 +#689 @ 508,450: 15x17 +#690 @ 887,472: 21x15 +#691 @ 390,694: 14x12 +#692 @ 882,32: 16x13 +#693 @ 708,66: 19x22 +#694 @ 695,185: 22x20 +#695 @ 790,882: 24x18 +#696 @ 773,465: 20x12 +#697 @ 158,352: 22x23 +#698 @ 681,708: 18x13 +#699 @ 52,963: 11x29 +#700 @ 139,974: 11x21 +#701 @ 696,66: 26x27 +#702 @ 183,514: 11x13 +#703 @ 110,605: 18x20 +#704 @ 394,114: 23x26 +#705 @ 701,926: 19x12 +#706 @ 426,145: 18x24 +#707 @ 228,697: 25x13 +#708 @ 204,560: 15x16 +#709 @ 454,980: 14x20 +#710 @ 434,869: 19x16 +#711 @ 460,421: 21x18 +#712 @ 858,401: 25x22 +#713 @ 916,560: 13x27 +#714 @ 1,678: 28x28 +#715 @ 804,365: 24x21 +#716 @ 65,571: 28x16 +#717 @ 623,727: 16x29 +#718 @ 414,351: 11x15 +#719 @ 569,58: 25x14 +#720 @ 638,681: 13x11 +#721 @ 260,187: 26x20 +#722 @ 797,797: 11x26 +#723 @ 210,706: 25x11 +#724 @ 177,424: 29x23 +#725 @ 301,979: 16x19 +#726 @ 772,317: 19x17 +#727 @ 400,611: 19x26 +#728 @ 139,38: 21x10 +#729 @ 303,326: 27x16 +#730 @ 898,961: 11x17 +#731 @ 517,324: 17x15 +#732 @ 616,433: 12x22 +#733 @ 9,4: 14x25 +#734 @ 467,645: 15x15 +#735 @ 551,892: 10x27 +#736 @ 553,598: 14x16 +#737 @ 280,354: 19x22 +#738 @ 694,391: 24x22 +#739 @ 390,586: 13x12 +#740 @ 658,513: 20x11 +#741 @ 25,606: 15x14 +#742 @ 257,63: 26x21 +#743 @ 921,375: 18x14 +#744 @ 551,547: 16x27 +#745 @ 446,936: 26x11 +#746 @ 56,404: 24x24 +#747 @ 771,348: 22x10 +#748 @ 649,518: 23x26 +#749 @ 680,908: 27x21 +#750 @ 636,669: 13x23 +#751 @ 275,506: 25x17 +#752 @ 763,338: 24x19 +#753 @ 3,3: 28x28 +#754 @ 625,668: 11x22 +#755 @ 597,536: 23x11 +#756 @ 316,902: 16x16 +#757 @ 55,229: 22x21 +#758 @ 84,553: 14x17 +#759 @ 279,736: 12x20 +#760 @ 639,780: 4x6 +#761 @ 873,143: 12x25 +#762 @ 116,757: 18x26 +#763 @ 257,297: 24x27 +#764 @ 138,188: 10x13 +#765 @ 692,187: 10x23 +#766 @ 596,237: 10x12 +#767 @ 246,869: 21x20 +#768 @ 154,110: 25x28 +#769 @ 37,287: 23x26 +#770 @ 779,651: 22x14 +#771 @ 153,296: 21x17 +#772 @ 294,336: 7x19 +#773 @ 803,327: 11x11 +#774 @ 542,895: 14x19 +#775 @ 501,301: 25x19 +#776 @ 703,796: 28x19 +#777 @ 966,184: 15x27 +#778 @ 13,735: 11x28 +#779 @ 652,674: 22x23 +#780 @ 609,608: 20x20 +#781 @ 663,141: 21x23 +#782 @ 708,555: 10x19 +#783 @ 317,813: 25x25 +#784 @ 205,441: 17x12 +#785 @ 689,504: 13x25 +#786 @ 715,927: 10x14 +#787 @ 726,254: 11x13 +#788 @ 525,511: 27x17 +#789 @ 562,123: 10x28 +#790 @ 386,94: 11x18 +#791 @ 409,431: 24x17 +#792 @ 657,574: 22x14 +#793 @ 127,915: 16x22 +#794 @ 127,968: 25x13 +#795 @ 487,64: 22x15 +#796 @ 610,245: 28x16 +#797 @ 514,616: 18x21 +#798 @ 38,945: 19x21 +#799 @ 794,904: 20x14 +#800 @ 474,210: 20x17 +#801 @ 340,36: 16x16 +#802 @ 774,752: 29x11 +#803 @ 785,845: 15x20 +#804 @ 789,582: 10x25 +#805 @ 726,524: 21x20 +#806 @ 4,350: 27x27 +#807 @ 218,749: 15x29 +#808 @ 423,648: 27x10 +#809 @ 69,186: 21x10 +#810 @ 607,871: 16x19 +#811 @ 766,924: 19x21 +#812 @ 59,252: 4x21 +#813 @ 185,707: 23x29 +#814 @ 495,87: 18x18 +#815 @ 16,625: 19x25 +#816 @ 673,119: 17x26 +#817 @ 893,3: 14x24 +#818 @ 14,361: 22x19 +#819 @ 502,585: 18x28 +#820 @ 293,446: 27x18 +#821 @ 25,194: 25x11 +#822 @ 789,169: 14x11 +#823 @ 423,918: 29x18 +#824 @ 956,863: 28x25 +#825 @ 49,327: 11x16 +#826 @ 529,86: 21x18 +#827 @ 902,524: 23x24 +#828 @ 254,220: 16x19 +#829 @ 571,206: 23x21 +#830 @ 66,68: 10x17 +#831 @ 233,367: 23x28 +#832 @ 677,511: 25x17 +#833 @ 895,757: 7x9 +#834 @ 314,905: 21x29 +#835 @ 870,233: 13x12 +#836 @ 599,118: 25x22 +#837 @ 34,119: 10x22 +#838 @ 602,725: 10x23 +#839 @ 481,848: 20x12 +#840 @ 696,106: 18x12 +#841 @ 566,788: 22x26 +#842 @ 845,483: 26x23 +#843 @ 614,950: 11x24 +#844 @ 831,210: 21x28 +#845 @ 133,455: 12x12 +#846 @ 20,40: 29x24 +#847 @ 642,359: 24x22 +#848 @ 689,9: 14x15 +#849 @ 694,766: 10x24 +#850 @ 613,371: 17x20 +#851 @ 399,352: 21x23 +#852 @ 24,372: 16x20 +#853 @ 150,198: 19x26 +#854 @ 539,598: 29x19 +#855 @ 122,582: 25x27 +#856 @ 164,501: 12x21 +#857 @ 158,432: 20x19 +#858 @ 98,163: 11x22 +#859 @ 696,75: 26x24 +#860 @ 413,913: 14x11 +#861 @ 853,487: 27x20 +#862 @ 293,600: 21x26 +#863 @ 927,15: 10x18 +#864 @ 597,699: 10x10 +#865 @ 357,126: 22x13 +#866 @ 758,326: 25x17 +#867 @ 195,31: 17x17 +#868 @ 620,511: 19x20 +#869 @ 62,608: 29x26 +#870 @ 211,91: 13x10 +#871 @ 900,621: 13x18 +#872 @ 184,328: 15x16 +#873 @ 222,662: 28x20 +#874 @ 489,724: 27x24 +#875 @ 585,849: 10x13 +#876 @ 559,601: 25x16 +#877 @ 385,353: 21x15 +#878 @ 881,574: 20x25 +#879 @ 542,716: 27x18 +#880 @ 62,190: 10x12 +#881 @ 832,659: 19x29 +#882 @ 909,741: 27x20 +#883 @ 859,799: 26x17 +#884 @ 301,677: 24x23 +#885 @ 529,424: 19x16 +#886 @ 289,932: 18x28 +#887 @ 705,931: 17x10 +#888 @ 208,179: 23x24 +#889 @ 369,446: 10x16 +#890 @ 410,794: 3x5 +#891 @ 265,567: 19x24 +#892 @ 471,611: 16x20 +#893 @ 821,919: 25x15 +#894 @ 757,822: 24x18 +#895 @ 285,98: 12x10 +#896 @ 737,666: 10x19 +#897 @ 974,242: 16x29 +#898 @ 383,808: 13x25 +#899 @ 266,729: 15x4 +#900 @ 726,811: 10x17 +#901 @ 654,571: 19x27 +#902 @ 691,879: 17x18 +#903 @ 40,946: 28x13 +#904 @ 482,81: 19x11 +#905 @ 806,357: 19x26 +#906 @ 421,788: 22x11 +#907 @ 843,515: 14x21 +#908 @ 488,701: 23x24 +#909 @ 880,723: 11x23 +#910 @ 167,208: 29x26 +#911 @ 334,84: 21x25 +#912 @ 319,20: 13x18 +#913 @ 977,438: 20x16 +#914 @ 15,420: 10x15 +#915 @ 633,221: 13x20 +#916 @ 881,339: 10x17 +#917 @ 54,838: 20x23 +#918 @ 369,414: 16x21 +#919 @ 505,593: 23x29 +#920 @ 354,43: 18x3 +#921 @ 284,165: 29x29 +#922 @ 925,890: 22x21 +#923 @ 615,713: 16x22 +#924 @ 487,768: 22x24 +#925 @ 4,359: 28x22 +#926 @ 923,619: 13x18 +#927 @ 576,461: 10x19 +#928 @ 31,876: 14x13 +#929 @ 588,858: 18x10 +#930 @ 602,724: 14x18 +#931 @ 79,127: 26x29 +#932 @ 335,319: 25x11 +#933 @ 313,461: 17x22 +#934 @ 186,194: 16x23 +#935 @ 278,178: 16x12 +#936 @ 458,739: 14x27 +#937 @ 557,343: 17x24 +#938 @ 187,20: 21x15 +#939 @ 445,926: 12x14 +#940 @ 816,87: 14x10 +#941 @ 857,553: 17x23 +#942 @ 818,233: 16x20 +#943 @ 697,344: 6x8 +#944 @ 967,251: 17x10 +#945 @ 878,550: 21x28 +#946 @ 585,281: 28x19 +#947 @ 393,615: 18x26 +#948 @ 151,616: 11x10 +#949 @ 347,118: 14x24 +#950 @ 203,98: 20x16 +#951 @ 415,772: 28x24 +#952 @ 723,866: 14x20 +#953 @ 787,311: 10x20 +#954 @ 575,732: 18x17 +#955 @ 288,415: 11x17 +#956 @ 403,792: 20x12 +#957 @ 307,683: 28x21 +#958 @ 955,350: 18x15 +#959 @ 873,212: 15x22 +#960 @ 963,135: 28x19 +#961 @ 184,631: 14x15 +#962 @ 46,796: 19x23 +#963 @ 19,25: 19x18 +#964 @ 241,546: 13x26 +#965 @ 43,114: 19x20 +#966 @ 7,564: 22x12 +#967 @ 598,743: 10x17 +#968 @ 83,561: 15x16 +#969 @ 873,909: 5x10 +#970 @ 808,344: 21x10 +#971 @ 73,533: 16x24 +#972 @ 188,18: 15x17 +#973 @ 568,765: 19x12 +#974 @ 835,851: 20x13 +#975 @ 603,971: 17x18 +#976 @ 964,172: 20x15 +#977 @ 179,783: 5x7 +#978 @ 610,602: 18x16 +#979 @ 935,753: 17x24 +#980 @ 200,6: 26x14 +#981 @ 330,693: 23x26 +#982 @ 352,40: 23x10 +#983 @ 855,503: 18x14 +#984 @ 954,295: 16x13 +#985 @ 661,63: 19x19 +#986 @ 843,774: 18x28 +#987 @ 897,98: 13x23 +#988 @ 433,733: 25x23 +#989 @ 893,669: 10x12 +#990 @ 733,168: 14x26 +#991 @ 575,721: 13x15 +#992 @ 728,528: 14x16 +#993 @ 438,924: 11x25 +#994 @ 928,846: 17x21 +#995 @ 583,296: 15x23 +#996 @ 854,967: 18x15 +#997 @ 61,830: 25x23 +#998 @ 708,384: 11x14 +#999 @ 10,102: 15x17 +#1000 @ 712,951: 22x22 +#1001 @ 907,716: 13x21 +#1002 @ 237,219: 26x28 +#1003 @ 536,480: 25x21 +#1004 @ 418,165: 19x29 +#1005 @ 520,802: 17x22 +#1006 @ 416,652: 24x20 +#1007 @ 909,751: 13x16 +#1008 @ 878,281: 18x29 +#1009 @ 349,171: 19x17 +#1010 @ 971,157: 28x17 +#1011 @ 714,632: 15x19 +#1012 @ 756,786: 27x17 +#1013 @ 441,417: 17x14 +#1014 @ 10,36: 13x26 +#1015 @ 903,460: 14x22 +#1016 @ 614,215: 16x26 +#1017 @ 17,664: 20x14 +#1018 @ 127,199: 20x17 +#1019 @ 693,182: 27x13 +#1020 @ 296,714: 25x19 +#1021 @ 544,881: 13x29 +#1022 @ 405,502: 12x22 +#1023 @ 557,492: 10x25 +#1024 @ 246,83: 22x22 +#1025 @ 109,738: 27x26 +#1026 @ 458,503: 14x14 +#1027 @ 69,945: 25x19 +#1028 @ 967,854: 10x10 +#1029 @ 270,848: 16x24 +#1030 @ 430,952: 13x23 +#1031 @ 352,96: 17x22 +#1032 @ 315,68: 26x11 +#1033 @ 238,533: 25x24 +#1034 @ 449,690: 28x25 +#1035 @ 703,719: 21x13 +#1036 @ 836,383: 14x11 +#1037 @ 834,363: 22x21 +#1038 @ 367,398: 28x18 +#1039 @ 714,32: 26x19 +#1040 @ 80,836: 17x16 +#1041 @ 177,781: 11x12 +#1042 @ 842,700: 28x10 +#1043 @ 591,958: 28x16 +#1044 @ 190,972: 5x18 +#1045 @ 187,970: 15x24 +#1046 @ 674,225: 21x28 +#1047 @ 944,321: 23x23 +#1048 @ 671,633: 12x25 +#1049 @ 662,579: 14x25 +#1050 @ 597,597: 25x10 +#1051 @ 642,164: 23x17 +#1052 @ 646,558: 15x14 +#1053 @ 384,598: 17x28 +#1054 @ 627,435: 16x14 +#1055 @ 839,779: 11x16 +#1056 @ 901,634: 20x28 +#1057 @ 838,212: 23x14 +#1058 @ 228,598: 14x18 +#1059 @ 730,507: 11x25 +#1060 @ 306,200: 21x22 +#1061 @ 439,156: 29x12 +#1062 @ 941,101: 20x19 +#1063 @ 412,226: 19x20 +#1064 @ 90,901: 22x22 +#1065 @ 70,172: 16x15 +#1066 @ 857,777: 19x28 +#1067 @ 826,893: 16x12 +#1068 @ 88,494: 24x18 +#1069 @ 620,803: 12x13 +#1070 @ 182,458: 29x14 +#1071 @ 349,72: 24x13 +#1072 @ 681,880: 17x22 +#1073 @ 545,550: 26x26 +#1074 @ 509,694: 14x14 +#1075 @ 203,27: 14x28 +#1076 @ 881,547: 12x26 +#1077 @ 877,983: 13x10 +#1078 @ 94,184: 10x29 +#1079 @ 846,390: 23x23 +#1080 @ 947,325: 18x21 +#1081 @ 52,775: 29x22 +#1082 @ 222,594: 15x29 +#1083 @ 549,80: 12x17 +#1084 @ 534,867: 17x17 +#1085 @ 907,46: 11x29 +#1086 @ 442,256: 11x11 +#1087 @ 933,601: 13x19 +#1088 @ 717,636: 18x25 +#1089 @ 504,56: 17x22 +#1090 @ 301,933: 17x14 +#1091 @ 518,813: 13x25 +#1092 @ 717,425: 12x25 +#1093 @ 860,978: 19x21 +#1094 @ 850,479: 12x20 +#1095 @ 522,771: 12x13 +#1096 @ 593,16: 12x10 +#1097 @ 116,297: 21x18 +#1098 @ 363,461: 22x13 +#1099 @ 735,343: 23x10 +#1100 @ 956,194: 16x20 +#1101 @ 146,178: 26x26 +#1102 @ 628,730: 11x29 +#1103 @ 131,308: 25x14 +#1104 @ 8,633: 21x29 +#1105 @ 301,188: 13x19 +#1106 @ 373,813: 23x18 +#1107 @ 122,721: 12x10 +#1108 @ 841,692: 27x11 +#1109 @ 642,155: 17x10 +#1110 @ 897,863: 17x18 +#1111 @ 849,197: 27x15 +#1112 @ 311,553: 11x28 +#1113 @ 460,814: 16x16 +#1114 @ 813,889: 15x18 +#1115 @ 422,209: 23x18 +#1116 @ 775,143: 11x24 +#1117 @ 289,400: 16x27 +#1118 @ 322,381: 21x11 +#1119 @ 932,308: 17x13 +#1120 @ 178,729: 21x21 +#1121 @ 384,802: 16x19 +#1122 @ 703,651: 11x24 +#1123 @ 664,77: 11x13 +#1124 @ 759,825: 10x12 +#1125 @ 205,185: 28x11 +#1126 @ 152,675: 5x10 +#1127 @ 233,810: 11x17 +#1128 @ 25,245: 27x17 +#1129 @ 329,6: 25x16 +#1130 @ 82,241: 23x20 +#1131 @ 743,123: 26x16 +#1132 @ 191,160: 25x28 +#1133 @ 603,729: 21x16 +#1134 @ 16,742: 3x10 +#1135 @ 582,759: 14x29 +#1136 @ 424,262: 29x22 +#1137 @ 157,607: 25x17 +#1138 @ 822,460: 29x25 +#1139 @ 949,514: 26x11 +#1140 @ 683,393: 17x27 +#1141 @ 268,849: 27x16 +#1142 @ 823,899: 21x15 +#1143 @ 703,22: 17x16 +#1144 @ 723,382: 24x25 +#1145 @ 545,758: 21x14 +#1146 @ 449,978: 25x19 +#1147 @ 386,730: 14x26 +#1148 @ 335,359: 27x11 +#1149 @ 630,3: 28x25 +#1150 @ 55,277: 23x25 +#1151 @ 56,897: 27x19 +#1152 @ 418,909: 27x12 +#1153 @ 194,828: 25x26 +#1154 @ 135,829: 12x21 +#1155 @ 186,14: 22x16 +#1156 @ 314,538: 13x22 +#1157 @ 145,163: 23x29 +#1158 @ 901,654: 18x27 +#1159 @ 180,680: 17x17 +#1160 @ 848,858: 29x27 +#1161 @ 163,295: 22x12 +#1162 @ 929,609: 20x26 +#1163 @ 658,185: 27x12 +#1164 @ 885,964: 28x17 +#1165 @ 964,339: 18x29 +#1166 @ 405,448: 23x26 +#1167 @ 144,846: 13x11 +#1168 @ 881,548: 12x15 +#1169 @ 457,705: 11x25 +#1170 @ 150,122: 22x15 +#1171 @ 86,586: 25x20 +#1172 @ 276,102: 12x11 +#1173 @ 320,904: 7x10 +#1174 @ 577,806: 22x16 +#1175 @ 805,335: 21x12 +#1176 @ 852,806: 6x10 +#1177 @ 431,904: 14x29 +#1178 @ 503,68: 24x16 +#1179 @ 742,432: 11x28 +#1180 @ 493,661: 18x27 +#1181 @ 443,561: 10x20 +#1182 @ 161,672: 26x26 +#1183 @ 50,533: 28x22 +#1184 @ 790,331: 25x20 +#1185 @ 461,496: 10x16 +#1186 @ 42,337: 11x14 +#1187 @ 249,364: 20x13 +#1188 @ 915,734: 21x23 +#1189 @ 69,143: 18x15 +#1190 @ 626,206: 22x14 +#1191 @ 299,928: 29x19 +#1192 @ 406,209: 15x24 +#1193 @ 220,90: 20x19 +#1194 @ 308,373: 19x19 +#1195 @ 497,835: 19x18 +#1196 @ 442,327: 26x12 +#1197 @ 123,920: 14x25 +#1198 @ 945,654: 16x15 +#1199 @ 78,587: 11x17 +#1200 @ 176,713: 19x17 +#1201 @ 348,848: 13x20 +#1202 @ 855,707: 21x20 +#1203 @ 765,118: 16x15 +#1204 @ 84,542: 15x20 +#1205 @ 249,755: 12x19 +#1206 @ 891,40: 21x25 +#1207 @ 689,386: 28x14 +#1208 @ 270,937: 12x25 +#1209 @ 263,841: 24x24 +#1210 @ 604,244: 22x12 +#1211 @ 251,552: 19x17 +#1212 @ 930,381: 29x13 +#1213 @ 414,523: 10x19 +#1214 @ 450,813: 17x19 +#1215 @ 709,102: 19x19 +#1216 @ 108,601: 25x29 +#1217 @ 420,780: 11x11 +#1218 @ 376,801: 25x29 +#1219 @ 44,950: 23x15 +#1220 @ 118,456: 25x17 +#1221 @ 447,42: 25x19 +#1222 @ 333,29: 19x13 +#1223 @ 598,552: 16x15 +#1224 @ 390,355: 11x9 +#1225 @ 362,293: 13x10 +#1226 @ 251,876: 23x10 +#1227 @ 559,811: 18x16 +#1228 @ 844,735: 22x26 +#1229 @ 973,204: 12x10 +#1230 @ 370,73: 16x13 +#1231 @ 124,241: 15x24 +#1232 @ 150,324: 3x5 +#1233 @ 942,359: 13x10 +#1234 @ 111,355: 17x24 +#1235 @ 157,275: 19x17 +#1236 @ 192,440: 14x24 +#1237 @ 265,191: 28x16 +#1238 @ 607,426: 23x28 +#1239 @ 782,718: 13x24 +#1240 @ 90,138: 24x18 +#1241 @ 861,670: 24x22 +#1242 @ 429,446: 15x15 +#1243 @ 620,971: 17x21 +#1244 @ 778,811: 22x17 +#1245 @ 175,164: 13x18 +#1246 @ 448,141: 20x13 +#1247 @ 578,848: 13x24 +#1248 @ 61,392: 25x19 +#1249 @ 217,811: 28x28 +#1250 @ 548,186: 11x7 +#1251 @ 725,652: 16x27 +#1252 @ 448,719: 24x28 +#1253 @ 124,254: 29x10 +#1254 @ 334,224: 21x19 +#1255 @ 466,506: 22x15 +#1256 @ 266,598: 12x21 +#1257 @ 744,42: 28x25 +#1258 @ 700,645: 23x13 +#1259 @ 716,31: 17x29 +#1260 @ 974,418: 14x24 +#1261 @ 476,333: 24x19 +#1262 @ 158,148: 29x26 +#1263 @ 685,497: 29x19 +#1264 @ 876,672: 22x12 +#1265 @ 963,100: 27x19 +#1266 @ 725,583: 26x11 +#1267 @ 266,954: 13x11 +#1268 @ 140,620: 27x15 +#1269 @ 465,317: 18x20 +#1270 @ 942,85: 16x22 +#1271 @ 774,594: 18x10 +#1272 @ 115,370: 10x26 +#1273 @ 680,178: 24x11 +#1274 @ 589,387: 29x13 +#1275 @ 545,585: 26x26 +#1276 @ 416,310: 10x28 +#1277 @ 226,100: 10x25 +#1278 @ 444,500: 20x13 +#1279 @ 390,461: 10x26 +#1280 @ 941,891: 22x14 +#1281 @ 978,278: 11x26 +#1282 @ 183,317: 15x13 +#1283 @ 930,361: 13x24 +#1284 @ 134,204: 12x17 +#1285 @ 710,389: 6x5 +#1286 @ 197,501: 22x13 +#1287 @ 284,773: 28x24 +#1288 @ 130,449: 22x26 +#1289 @ 310,489: 14x27 +#1290 @ 528,540: 20x11 +#1291 @ 958,541: 25x11 +#1292 @ 705,734: 8x13 +#1293 @ 344,745: 26x23 +#1294 @ 556,603: 20x25 +#1295 @ 335,781: 23x19 +#1296 @ 887,584: 26x12 +#1297 @ 760,386: 10x19 +#1298 @ 486,627: 22x23 +#1299 @ 180,820: 22x15 +#1300 @ 141,206: 11x15 +#1301 @ 833,914: 16x25 +#1302 @ 536,596: 17x21 +#1303 @ 18,870: 25x16 +#1304 @ 550,445: 13x24 +#1305 @ 163,257: 22x24 +#1306 @ 932,665: 19x11 +#1307 @ 42,472: 13x14 diff --git a/2018/day04/day04.ss b/2018/day04/day04.ss new file mode 100644 index 0000000..4de7fa3 --- /dev/null +++ b/2018/day04/day04.ss @@ -0,0 +1,77 @@ +(import :gerbil/gambit/ports) +(import :std/pregexp) +(import :std/iter) +(import :std/sort) +(import :std/srfi/1) +(import :std/srfi/43) + +(export main) + +(defstruct date (year month day)) + +(defstruct shift (date id sleep)) + +(def (parse-date str) + (def d (apply make-date (filter-map string->number (pregexp-split "[-\\[ ]" str)))) + (let ((parsed-hour (string->number (cadr (pregexp-match "\\s(\\d\\d):\\d\\d" str))))) + (if (< 12 parsed-hour) (set! (date-day d) (1+ (date-day d))))) + d) + +(def (parse-minute str) + (string->number (cadr (pregexp-match "\\s\\d\\d:(\\d\\d)" str)))) + +(def (parse-id str) + (let ((parsed-id (pregexp-match "\\s\\#(\\d+)\\s" str))) + (if parsed-id (string->number (cadr parsed-id)) #f))) + +(def (partition-shifts records-str) + (if (null? records-str) + '() + (let-values (((shift rest) (break (lambda (x) (pregexp-match "begins shift" x)) (cdr records-str)))) + (cons (cons (car records-str) shift) (partition-shifts rest))))) + +(def (parse-shift records-str) + (def id (parse-id (car records-str))) + (def date (parse-date (car records-str))) + (def sleep (make-vector 60 0)) + (for ((record (cdr records-str))) + (let ((minute (parse-minute record))) + (if (pregexp-match "falls asleep" record) + (for ((i (in-range minute (- 60 minute)))) (vector-set! sleep i 1)) + (for ((i (in-range minute (- 60 minute)))) (vector-set! sleep i 0))))) + (make-shift date id sleep)) + +(def (find-sleepiest-guard shifts) + (def guards (make-hash-table)) + (for ((shift shifts)) + (let ((time-asleep (apply + (vector->list (shift-sleep shift))))) + (hash-update! guards (shift-id shift) (lambda (x) (+ x time-asleep)) 0))) + (car (hash-fold (lambda (k v acc) (if (> v (cadr acc)) (list k v) acc)) '(0 0) guards))) + +(def (find-sleepiest-minute id shifts) + (def total (make-list 60 0)) + (for ((shift shifts)) + (when (= id (shift-id shift)) + (set! total (map + total (vector->list (shift-sleep shift)))))) + (list-index (lambda (x) (= x (apply max total))) total)) + +(def (find-sleepy shifts) + (def hash (make-hash-table)) + (for* ((shift shifts) + (i (in-range 60))) + (hash-update! hash + [(shift-id shift) i] + (lambda (x) (+ x (vector-ref (shift-sleep shift) i))) + 0)) + (car (hash-fold (lambda (k v acc) (if (> v (cadr acc)) (list k v) acc)) '(0 0) hash))) + +(def (main . args) + (def records-str + (sort + (call-with-input-file "input.txt" (lambda (p) (read-all p read-line))) + stringinteger x) (char->integer y))) 32)) + +(def (react-polymer polymer) + (foldl (lambda (x acc) (match acc + ((cons y rest) (if (opposite? x y) rest (cons x acc))) + (else (cons x acc)))) + '() + polymer)) + +(def (remove-unit unit polymer) + (string-delete (lambda (x) (char=? (char-downcase x) (char-downcase unit))) polymer)) + +(def (find-minimal polymer) + (apply min + (for/collect ((c (in-range (char->integer #\a) 26))) + (length (react-polymer (string->list (remove-unit (integer->char c) polymer))))))) + +(def (main . args) + (def polymer (call-with-input-file "input.txt" read-line)) + (displayln (length (react-polymer (string->list polymer)))) + (displayln (find-minimal polymer))) diff --git a/2018/day05/input.txt b/2018/day05/input.txt new file mode 100644 index 0000000..590ca9f --- /dev/null +++ b/2018/day05/input.txt @@ -0,0 +1 @@ +ikeEKbBtoOmMeEuUjJTtTxXnNIlLHhPpuaAjganNAQQqqGJvVRrjiIJAaAIiSsavEeVPLUulpWwCLSmSsXxeEMslcQqLCcnNDHAvevVDdEVaSshOXxoGMfFmWPpwganNjJAbBduUIqRrQQqcCWwLxkgGKwIOaAeEoiWZzVvXagGAlkbBKiuUZziBbRrnNSseaAaoOAfnNFvcCVsSbiQqIBVvMmzLlZEiIQqIleEWjUueERrJNtTOonqQwRrgmwWMictTCIGrViECceIveETnksSzJjZKtfFTdDNzZOwWeEeEpPicpZWwzPCMmgGIomRrTtZiIzZGgzMtTMmRYFfyxXVvrKkrRRAaAaGAavVwWEeiIoOfFkKnNgrfgGbUuBZzSsieEeEIFuULHhOoLZzlXxuUcCfFGglSFDdgGoJjUuOfFfWwaAzZqQaAjzsSZXiIxJMSsOHhoQqmHhlLgGsgGiJnNjXxYKoOjJkJjGgmMyGgItYyIiOoGwFhHfiIWEbBeghHoOSsWwXxkWXxpZzzZoOfnNFGgPhHpPbBsaXxmMAjJSiiIHhIJjTtQxcCXqMgtTGmjJwWXxSTtOosFAavVZzPpRrAQqjMmjhHuUgGJJgAahHQyYqGprRPhHOBboSsKkxzZAaeEsiiIISnNGWwgJjLlSsbGjJEegBDdHhzZDdvVciHhIexXgGmMhHEegGNnEeHbBJjTthlLESseJSsxXaAjEHzZmMIihVhHJjpPJmFfgEpGgPMmeGfFpPhHwLlWLXrRcCEetSsjBbJKvVpPjJyYRreEzeEmMZmcCMgGTtIiuAsSaSsEetTUoIitZzTTSsWaAwtTjJzZVvXxIibBRrJjRkKruUEeHiTtrRoewWEUeEuQqcuGQqgtTURIVvdDFfirBLlbGgPpiItiITRrCHIihOUuAaWwuhHIigIiutnUuNwWTVrRiISsVvBbvVGgMWwFfSsmbBTjJtvsScsyYOofHhFhDdzZHYpPFfyiIupPUNnRlLwWCcrtTXdDEexIisSyYukKUwWSjJmNabBpPAnbBjspPSZzUMmnNfFfFuCZzcUuJHeZzpPugIiaADdGBGgfQqbBpPDMmdqXxQqMmQhHWwoOAapPmMwAauUPpWvmMPIidDoOHhcCyYpoMmOVvgGVpUwWnQqqQOfCcFoNuTCczZtJoOjVvwVvWyYuUXSslLzZTLltkKIBbyYAXxgGuUahHiXxQqKkxnuUiInNjJNTtPeEZHuoOUPpfFhsShHByYbUGgMmEDdelLuXxrRaAcFfCNnjeEJUuJjEwWezZrWYywRQFwPpWaAQqTtfqeEeEqQAaVvrztTZFfRsSaAcCBWbBwbnNWwRuUrOAaoZgGjjvVcCACcqGgQzZJGgrRjuUaPpCctTvVjJjJNnJkLcClWnNwLlIiKSsIdDijLtTnNlZLlzJKMmkoOSsPpaFfABbJRraAtTJjCceRrXxECcVveEIfFicCQqtTjtTuiIUJijJKoOrRsSsFfgGSEJKkXxtTssSOoWQqrRbBmMEeZnNzRrTqnNQtQMJjAyYkKPpamMmmMUuqSLdDzFmUuMEePpEhHcSsCefsxXVvKkxXSQPpcGgCkmMDdVWwiIvfFKqZMuXDdxUycCyYXPpxTxXoOAaWweXwWcCaAxIiZzEcpPCZzKkhcCHsnNtdDTSaQqsJjSAkKlLtYovvGgGgVcwWyYaAQmMqaAkKdDyYxXjJSsrRlLJbEeipkKbBPIBjgZPpzngGMMmwWmNvVGSsmMxmMFfXtUQquTpTtKkeEtTnJjcCeCcEBvVbNPppPPFfcyYCrZzvVBbsSEercCdDRHhGgoYIiUuDHhdsPCcpSpPbJjGAFfvVFfaoOaAgXxBaAbBuUfFacCxXrRRrGgAPpUulLnNOMmTtWEOoewFfHfbBsSFFfPTtpMmdVvWWwwDWwCckKVzWgGiImMwfFZbBmTtIiMfFcCKkJRsEegRrVyYvDdGUuIiqQSHhgGZzgGxXBbUuCjJcPprbBatTAXXxBUlLubSsxVvSsRrgGOvVozZTtdkKSsiIYyDiQqMxXMmnNveEVDXmoOMOoxsSDdIivVcrAaRCKkoOyuUfFYvVDdMOoBbItCcDdTXHhxXxiTtRrCcELllNnIizXxvVZloOPkKaAZzaApLlDsSdJjkTtKmMCoWwOjJcSswWlMxXzZeKkEmTtMVtTvlLDdmNnrRSxMmAaUujJXsaAwWUuolLlLmOqGgWgDlLdGurNnSaqsSQAWwsRzkKNuQqUHyYhkKnkKhHaAHhoboOBTqZzlgGVvmMvVRrPEXxertnNTykKYhgNnGHTNntYyjJAaRcCDWFfwiIgrRGHhPCcDdyIiXxYuvVPoOZzpMmxXhHcCUDdxXpPNMmnbDdExZaATtBbPpYygGzPpTtADdCcaCjJcXOoesSCcfzZFmMMUNOoRrwWCnNcsbBOowWSucClLFNsSZznJjLlfGRrzZdDUuaAgwWuUSeFfFfvvVVESsBbvVIiszZytTYLlJoOjUFVqQvfsSUjZzvVJHhFtKVvkTxXjJfbBuWfFwPpvVAXxaYcCyehHEYuUANXZzaAaXxAxjQqbbBTtBJomMbBOLdGgpPJSsjcCJjDdDlsSOoTtbBcLlOdDoVvnNfFCJrQqRjCcIiTVuUyYXxjAaJaAvtZPpzKQdDqknYyJjxXDdLllpcCPLTtkoOcAansmMXxSNQqCKPVvTtpUqQrRmCcUuWMLHhlmJjWNnwgGyIicCxqQXWMmZQqzOoXxYywzfFqQZGNnFfvVaAVvgOoTtNKxXkAaaAnTjJBbbvVWwBPpcCxzUuZCcIJjiTtTtyYYjJcCnNyXTOowWtpPxlLcClLXPKkpSsxXtQdDxuUXcxXClTtQqXxLwnNWZLlEJjeiIceEtTVvyWwhHglLzhakKlLLkKYwWKkyHTthAaOoeEyXSsedDXxENLlnHhxNnYYylgGEeAaAmxaAAMmaXMpVvoOMmLcClwIiHhAtTghHNnNnRrzEyqYyvVQUsVvUNnuSujQqJYkKiwWIygylLEttfFQqTHoOOhHDLldTtohTeECcMmbVvbBwWUNnKktRhHrYyicCIPvSsVtdDvBiIiIDRrqQdbAaeEHhRriRrFfIaJhLrRbYgGiIDsGmGgMgQqiISdobBOyqAaxXBbHPphZMmNnjJhHDdzPphHOozZzcCZpeEPFGgfTyYtXxzZWwHDdhIaAEVvAakKehHVvyhxXHbteEMmiITVkKjJIiqQwWDrwqqzZeEwOtTPpoOoIicCnNzsSZeEkKNnnNVXxSsfsSFJjvlLaAOozIijDVvdJRLlJZzoXKkxrRBbkTtpfrRrCcRaiIVvBbAudwEeOrRokKzBdDOfISPpsiSsdSPprRhGvlLUuIimMGgVvteNnwWETVZDdRxXFfVUyYPWwWaAYUuqQycZlaARnNreEwnNWZzaECHhceaFfAAXYpPOoyCIicxeELFPpzyGgLlWwRrwWPtEeWwTyYuyPpYCcoomdDpiIPMOyYOwWUhpPHzZptTIiLlXPpxeQqElucCULtTTtLRrlCcRMmuGgUnFfNQXxYyDpPuUzZpPdqEeuUqQSxXGgVzZvjDdJbRcRrCcCZzrfiIFIiBFvVNnCyBbYcfnEqQeSuUrRjJaBbEeRREerrhFjHWKkOoPpwlCctyYVRSsrviBbIVvPpTXxtAarnHhxXYyNdbBDuURjGgJNnaOLloAvHRrawGgRUVvRrcCuoyuUYOUBOoFfeiIHhwuUWxAawWNniIXEsSfFoOsSMmiIbBRrTtbavVAGlyqQYLuUpgGPSsUuwRraACcWPpsQoOqQqIoYSsPpfoOeEboOBbBDQSsqpNnPJMmjZzPpgVvDdGSsFqtTQgqpPhlLHVvDdPpiUuSrYyRuUsYynNzMQqmZEeLloXxOzMmZWgGPbBwWWhIbBvgGVpPFfMmmMdDfFKhHvXxVmXdgGAaDFmMgGOzZMmMmouUkKFVbBlZzLXxYwWkKyvDdfwWfsAaSsCCyYcvVtTERiIDAalvVKkcSsCKYylqQLKMmkUckKCEeAaukXxmThHaARrfpPFBbJPRrpFffFwWzZIiDwWzZnhsScCHoOgGhHhfRuEzZJjaAZzeURJjaArgLjJlaVvDdsSANnYLGglGZzgRlJjLLQqlNHGMmghnrrRXuQZdDOoeEuLpPlPpCcyYbBKpRrPHVvRHrRGgcRrEeuUCpPhrEeidDITtaHhATmMdDtaoOAFNLWyYSswewWEibBIMbQqBzgGZmrEKknsbBZzqgGfFeEkKQmMjJquCROUuqQNnABNnxXUTtEhHhHeGnxXNSsgGhfyHSshYTAaKkmrRPpqQMpPGgyOolihHIYsBbtbBTCcrLlRcCWwAVvaeESsSGaWNCcngoOGwvVoOMmDbGgBGgaAPpdKkiILFPKlaAaMmdDAcCLvVTqigGIbBwyYWOojHhMBTKkZzHAahVlvkKvBbVhjJfeEvyYRrwEGIigxiSyYsIXxoOXRdDrOBkKWLlwboedRrDvpGNngxXPkKDWwdJjfFZxXKkJAaEejzuMTcCttTzZmeEqhtTHhnNHzbBOoZuUDdCcaAjjJhHSswWepPEjJUuqeEgGKkQuaAUeZZzVvMmzGyYdYyZzgGeEUuqQLHMmhpPoOlDjMPpmNnHhJjJeEeWwvIgGiIHoOhTVvBHhdrRDdaAxXYEeeErRyqQCcBbDXdENyYiInYyvVBQqbeEWyxGgXYJjyYdDweGglTtYyLiIGLlIigPpQqSsqQevVxTOotXBbFfoWMmiIEeJjiAaOpPEeoINCWwsScVvKknrRwxMlLmOhHedDTtEOocCkKNnsSXLlkKxoXEnNTttTLgBbPpIiGlIDOodXxCcOoKkKkgeIkKdDdDqQguUOruUBXxbCNndEeDcbTtBiIdHDdXxOodBbNnDOZzoXlLYyxLoOlpPDJmUuBWMmsSHvVhbMmBwFszZSfNnmSIimXgGWwjJMAaxhHsSDdEbaABiIeNPpnvVXXjBbJNnxmUqXxoOfFDdDdFfMfFmHhWbBwVvDIWsSwiYzZIgYpPyGoJjkKQqEGgeoOogGiIDWzZwsOoVHJSoRflLpPpPGyYbyYafFAjkKJHeEOokKTeZzdDkKEwWxXkLlQaZmMwWBbiSTttvVTbyYpPbmJjMBDdBZztTspdBbXQqFfBbjpnHZblLBBbAngGaAvVrhHRxvIiVShHhHLmMlsvlLVXCcNnrRRJjaAUurNWwaOolBbLHNnubTtVvvmoWtTkKPyYZiGgIOhHozpaArzZQEdDxXJjerRkKqPxLfFsSkKRrlUQqDDWwdNnDddusSsptTaAALlavVPZJBeEJjGVGSsgvgqQrRSssSFfFfUHhuVLJrXxRAajOrROgGYyoqQKhHjJkoQqUsSulgGLlLljJLNnJfFjiCcIlsRrSUugGbQGgeELlPpKPpkvVQlLqqGqgoOHxXhDlLSGgfOoFJZUuzjGgJjZmMaAOIkKKkhcCHEeXxiFqaAQTYyFftfmqllLhHLQqFffKZmMzHhSsJjxpvVPXLlNnNCaAZzDdbBcBbNnjpcCtTPpwXxEejJWAarRNniqQLlIvKLlgGohsFZzlFfgySsKkTtYAapPcWmlafAaXxmpXxPMFfxkKwWHeEhoOUuICmMcCKkczUCpPEBbezZUubBcfKkFpfxXftWwTFFCDdNDdngGYycLlJjeEYMmyfNzZDdnxXmMTsNnSLSFfsfFlKkpwqQqQGHhgVvGgXNnVHpPhLDdenNEJjwVvWTtkKOoXVvxRUuiAaGJjrUvVGgyYICuUHcryJjSsYTxXRrtdDUuqUuJjQNQqbBNnGdYyDlLOOoIitetTwWsSNUYyungGEYuUyvVmMpPOoqQMZzmTItTtTijKkJYJjQRrqyxXOomPXxpvVoCcJjeEjJOBbZQqmzSsoOZSshRrjisLQqlUulPpTWwYVLlCVvcvkKyIiuUCaAnkrSsIiReECckvKwWvPpYyVGrRGggGgbBZzxXeEsSAKkvMkIBbiWwKoOmrRaeEcCoPYXjJxyRJTjTtJtSswWGfvVJbBjeYSsBbMmgGTtQqrRyEnNhHYpPynNYvyYAEeXUDdRFfhArRsSoOmMmMkDvVdTtkKGgjJrRWkKwpPsScagGACFfZzVvHrRhKNZilLVBgGfnDdNvdDVBbzUzZuclNqQuMAdDTtvNnvXxZzpPVZbhHaAjJlImPHjJhBTtxpPXzcEeVFCcAwWRrHhGgGSsgGAaZzJjcJjCQqVvWcCpqQPgGgeEvQHRyYtqQTnTXxoOvYyrRFfBbIiSsNiIQqnDdkKyYfFgGgGCcVrRQpDdYyJjmdDqqQQXxzZKeCcuUbBtyYrzlLTtZuyPpYAaUwWoORsFfSTZzYvBPqKkQVBbvphKNKknrRIikpSdDNVvUlLukKuUnqQEeEemaAMcCWXxxXwcmMrSsRAavVnYmMfgGFKkqTtrSsczZMmnoOMmNNnaACdEfFeDmfFGgXOoPpeOoeJjEEBbxbBdRrvOrRHqQVvhKkVcVOohHClLcvHGghNhHYyhHnNCcbBwtyYwLDdNLSslKkNQZzqxRqQXxjcAaCQNnqaAXxVPtIiTpwoOBawWAJjbwsvpbnNBLleEPJjnqQNLKbcdSsjxoOHhAQbBqeuUIbBiVvzhHQqIOovVkKyYiVbBvYyNzipPIgtarmsSMuIiKHhFfilLIXvVdKJjNBCcPMAIiuycoxXteEcCeFwWfFEefRgGrUutTEOoLlxXMmTpPOOoVvUJjuxXpPSsBWwwWDeEgGdmIiSscClLMxXLlDdlLbgyYGZzDkKhHnzVUxXuSsWKEeCQiTqQCctZzTmigkKrgfFGnNVdDvRcfVjAWwanXUqQuvVuUPSuUBsTtUuSbBqQonCQzeEAaFrpPRcCYZzyfNnLlswXxSDdBbDIZziokKeEceEEeCCcOOolGgyyfFYYLJjTActTCwWorRtoRPuYyNnnaAzZFfNxJjqQEwZzVvOTvVOogGwWtyAaiIYXxeEVvotUrRpoOJMcGgyYDdCjuUXxUudDJMmqvzZcCRrtTyAQqaoOYKUuGXxGgyYhHiIyhHYYyMGgmhtTIDdpPqQrxXRLlihghMmSMmsUueEUuIQqiOoAEeaHXHhxGegxXijHvXxsSOosSGzZSsgeHkOXxDZzjJflKvrkZzWwraArRbzZkKBrRttTTjJzeEZxXxXnNeybBZbBSszwfFWYgdDnmMRrhHTtCcWbSsBJjwYLlgGycMFfmjJFPpAaZzfEeoiIcCpPWwOAaWygGVEMmOCOozZceEiQqOoDdIGgNnnszbnYyNwWSiIXxIKkxXiKIioEeQqDdsSDdOIhHiFlLoOjBuUnYyvVqQuUYMmyRrVzZKCbiKiIVvPqQpjFfiIkUXSsMmRrXxBbjeqQCcBbEPptTrRsYoOymMKQNcCnOGgoKkoOOoDbBdBbSssSseeEUawDdGDdgWBbCcPpxpPXLlTrNqQnRmicCzZIHPpYGMNdDSsnbBmgxWwtTmoOMXLlIiQFyBbYlLfEecCJoOjFtaJbBLlxFfzGgEeaAZfQqyYFHIIoONnYyiihliMmIYyqQBlLRVDLlhTtLzxsSpHhKkLnPpNliITtvssSLlLlPpSlKkKHtThUueaRloGsJkKiIjfFyYcClZNnwgmMGiPYJjyxHharDdcCtTfFnNKkIvVuUNTtWUuwfFiIavVwWRVjxFclLCfMmyBbUuYUUWRrcCwqQfRBbBrRLlbUugGrrJjRuvVQWZzztgGTTyYtMmCWfOoYylhHUuLFYyBbtTnEuUeWEgGbBedynNYDmeEMtAaTRbBUuJjalqWsgIiGGgrRTtctTcCgGCxJLvcfkRrvVKFNfFnsSwWIxXicHrIrbAuUbBahPlJjJjWwAniIdDiGStTsNTPpMKBbkmhJzZYqtTQoOeETqxKkXjgXsqMmHhQOxLOSnNsVBmMPpGgjJjOjJoBlejJCckSsAwWVSsCMmWwOoyZzhgHhGZRrVvcwukcVvIitTNcCnCzZPpfFjJgGTaAtCjYyRTtwxXwWqQWeEEGgeVvgGKkboGgOJjIijJtXxTmGgLwKkgGeEiPtpnpPfEeFNmMHyYhWtefFEbBaAhHfIuUiYyYyJjvVvPpVbYyBAujFbiCBYZNnzyrBbUuVvRvVyAaLiIyYhYyHhHMAdDfgGHhBKkNRrnbGuUtPpxpHsShxndDJjoRrOIiAHhQqaZAaRWwrFQoZtcCNnvTtNnVTwWaAvzSuUuUoyYcCOlLZqqAnNwNvVnGMmoOgWmQFfquhHRsVvZzPpzZgGOolLLMCMmapglLaAvbEozZmMOeYAYyayBVDdGyfkdMmCzzZZFxdgWVZzvwdDgFfGAEeaMsLlSMmaUkSsMeVvlLEWsSbqrzZKkcCvVRiEeCcFfuUUuzhHoSvVslGaAgjFfJuyPpHFjlLJHSiIQqQGguzjvVJEGlZzdDfFLGgZtTzzCXxmxzpRiIroOTnpOoPggJCcjoOxPTtpagAaGpyoOYFjJfkiIrDcHhFTlLIioODRrSsdcCtfTtEtAaTIehDddaADHeEEiDuvDduUNnoOeWwESqsSNniITtIpPiZzWpSsPwUSZAazwbBcCtTgDdGlLagGhiIjWQACcuUTjNnuUIiyYHxnNokKOXlLSDdJjsUNnOLlouzZYyUuhrRypPiIHYyjJEeyWpPfGgFoOwYIqQwWwWbCcsdbBDPMmzZQFfXBbOoPpNFffiOoInGgwWAadDNFAaLlFUufzZktKjUCcFfoOuXgLlGpCgGPpcgKZznNkBGrRgwWTtbbOoztTMmhXFfLOoOkLsSlYyKoyiISsbeEPDdWBbwjcKNnLlZxJjXzZNnphDuwwWDuUdjfVvdDFxbBbFfSsiBbICcMmmSKksdDQqRqQrKaAkwGVmpyYPnNNdDnvckShcqhzZHkKQCHJjGkKrRnNjZzuqQowWOsSZzafFAVvZfFJjBrRbtrRdneECgGcMmKkdfpPlXxzbBACcaQRrjJqbBPpscCKkAVvwUuWaAfFmMkKqQCJJqQjbsSkxXdOqQhinNIBbJjHqQZzJxXMmpYLyFfIiBbyxjiSmMSssGgDkKdIGNnSiIgGFhNvVnHlyYsSPpsREmMrdDRWwwWDWaAnSsmnNMNwpAaPNndLlOeEIZzYyqQTfFyVvVvqQALNnWwlaXXlLkqVvQFyYPreIWGgwiGgZzusSbLlBIiTTtfAjwYrNnPpRlLgNyxlLXoNnYPpxXypyYAfqGgQBbEeEBtOPNnUeEHxWoEekaBNnvysWwRWPpPUupSuUmkKMDcSsbBrKrUdDElLjnbyGdDSscaPjJabBGgLPdDzZDdNnkKhHUjJuJIPpuUWnSszrRZyYNAfFXxakKNKkJLlkKXxjlNnjoPGuUrCrRIicCcROeWMfFJymYykmMKnvgGVNWmlLJjGgdiINnDFbBjQqYygGYWwyJVzZvpPOoXkbBKfFjJSCcCCcMmbBdlPpLDkKNnEecBbNglmMuUYyLGtGrRQqEegIiRuNnUkKbBkKPprGQqoGUEeupkKapPPpjgEeWYKkTtSWwsNnNnSYywQCTtcFfvmMVjbBJZzXBbHbBDdYyqwWtnNTQprRWCcnghHmMAaGLlzdUBNnTtbqbBCxXcBmWcCwGlEniUsJjfkKWPBEebpBbwdyYpPnNUujJaIuUiAMmWfqQWwFsSpPpQqpusStLRKAakrSsfBNnbbBFTiIvVbBuUIFqQfpfFPJjelLlLIGgJdrRvVZzdDGCUHhuFfweEWXZSNnsPAaGbBaKkZByVvYHjDxXyxlLXYFfHNnhMcxXMABNIinnawWAgQqKOkuUQqKvJQqsxXcCSjwWaPLlCvVFfcQqjTtFWNjJndmMDhgGYysIHiIfFjJlURruAMtIiQqruUEeDKkdVkKZTtgKCcZNnzHWwkAEMZjJzVvvMtTmfFcvVOnKkbCDKkpPHCcAbBjJLltYyYSsOyYvVouUofFhGwWbBAdDaZtTjJDoOdPpzEJjQXxaAJjFoOijVMiIqQwWgqaZaAzAaOnNocCczAaNnTttuUJjTZpvVfFXRrxKkfFOKklIiTthHlLoOXxFfLlxLlGglLuUSWvVRrwsgiIaAqbBzZPjbqQVzdZSHhszolodDTtOLJjxXskQdDsSOTtbuUejSscCJSsKkrXgMxwRrqoOeEEYyKzbuzTgXxZNnwPpWKkiZzIAQqXxMURrVMmWLbcniIxJJMmjjCcqQPwWwfpPyYoOFfgxXttYcCwXxWDZzcdDabYyzZBhuiIDdeJjCyEeYcYyBDdVkKvqqQTBHhbcwWCOgeEugGUDwmMkKJjiBCCoOKoOkXTtZvLYyjJZzlhHAarRVqKHhkMmyYiyYgqDfvOwuYyIAXxdsxqOuUuxmEeOohIBbQqUulIiyuUYTtJjwWUlhllLLEeLHhDCcIwWwWiLldauUAQqpmMxvcQqXPSspxAlJahCcJjHZzjUuFYyfZzHfINnxiILOoTOUasxXYyIXNnxiwWJvevBwWbVmMMZNnIFfUTHRrxqOcCmUqQCcuwHhWlLNnxXtOoTwWgeElZzLqXxQcnNGgdRZEKpfWwqdDFfYyRXxjJrGgaVvqSjQqHXxhJnKexXEQvVqkNeEpLlAaelLEKkXGGCcguUmMAagXxlLxULljrRRYyhHkICchHCYKkyJocCOjhcAaZJjzCqQJjRrPHOoBbrRIirKpPDdfFeKslWoOwtToVvtWwrXxaAMmRprZzEeqQrRDdTtoOkcRdaAxXDpFQqRjJqdHhFgcmSqQfFyYiIRiIytFmDhHRTWwLlSXxbBNnTBJHwLlTfefFHeryTNZWwzmMNgRzASbqpPkJjJDFEefPpeMmnNRWwEexXTtQRqbBvDdToOtVhHAKtTCDOooOdkKjfFetNnTAaEnTxPpbOAkKakKGMepPywVvWeaEQqedpFfvVuGgLlUyFKkfrGuiIQWxLlAaAJjLJhcCHpPjNSsTpPcCpDyEeYQAaqIiDdUoeEdhhYyJjHhHAadPpyYDjcCJVCXxXFfcCxclXxgGYySjJGgcCsClmBUnNumWwMzZEetTTBxXgGIbBiaJUkKcOMmyYqlLJjdCQhHpPCcqOocyYDbBjaAgGJWhHeEgGUuoOSzZszfFZVkKYykCaDdAcEejJHcwWChJsWHGgbBBbhjJwSjOodtTBbRpOIiRrNnNnVvIionNPGCbBcgPpQqqQoOBbbKkBhHnMmNGqQgeNnmLwWqVviSsyYjLeEhHGppPPkKgtIiWwaXQknNAacCKsvGgdpvdZCjPpVPpvJcfrLlfFMEeNnbzZGTCctFQqXxIqQiIypPYCcOoaANnXgxlLXkyaAYKGOoFfCVxXOovyYxeEnVGyYDTtKjJkhHlbwWfkKtDBWPpgGZzMyGgYcEejJQIiqxtlyLGbBetTNAaVvrRnEglhgGHQWYzZyCsSlJaASuUsIVvijaLYylPpAKdTXxtZOrlLqQAzwWZhJOSsVspBnNbEYAYyJjnBIoOideAaeEGtTzZeRYyrQHhGIPpigjBbyYQqQZzJjNnDUudJuUlRxRrNnbBOKkfPpPWwpbuUBkKzZnNiIPrXQYTsNnStgAMLltTmOoMwWcCmaGxXKsSlFfRrLhxAafFXQLlRrICjlLsSiIJdUjVvrRJMaAhnNvVbBbBjOQBElqtTQbBXHZpPUWwuzoOoyYJZgsSVHhECczHJwWANnKkAitTvKkUVsSvYoOOoIibaaoOVvHhVdDvAQqLlfscxXxnZzcCNLYyXxgElxXLdDYkcGNnBXxblLIizAyFfPaXvEeuWwLllGgDLlaWvVwIitTAdDHhEFjfiLmMlyYCaAeEcQiIDUudqIuUFxzkSszIiwyYWSTnNZOvVlnNtLlfzhAaHBSsbZzBNloxymMoLlstCZuhMrRgGzBbpPKkjJgGZVhnMaAaObQqznpPiiIFfmGPpOtToQqHCcipPcCIbBhNnaAbBKkaAgyYtPzTKkUuZzyZzeEYtiVvIeEDdiabBJjArRiHhuUlzZpVlvQqVqVvbBQXdDxLMmvfxXOQqFzOjJmwHyUVvoZzhHOoObBAjJahHPrKEekRAaZDvVrSsbBmgmMjqAPiILlnNpaCNodqKtTjPbBdDcCBgGgGxQqxXQiIHhGgqrRGynTtwWCcyKOokaYGgyAHhVfFgKkIGgODdGOEeaBYtTybeYyOojVSaedXxDwDdFfNIbqluUMpPmFdemSfSkzUufdvdSUuSsYUTJcCcKauUXDdDXxAEdmMgpBwWNJjQqezZEOkKoxrDOozttTTZdDdeEkdsKbBIyQwdCczZzZAHGgNrvGHhWOowZzknZzSacCAASQWwoOqBGWdDGgwpPEhHedVuMmlTvVtLJjPpUfMmhwWhHHkKSGjNZzqgGVlLVJtTNnjvyYvGwFfhPpHWTexXvVYZzVNPpEtBeEsXxnNFxXFfZBBQDYQvVEeqryYDdRyuUdqmRbBDhHifFYKEekyGgyaFuUjmMRrsoEcCuMAaZDaAudDkKUSpPsdzSswiIWsTtWwxruAaUhxXOoSRYyAaEerxXfFGoOgAOoaeEQoxhKkHhyuUvYvVqzlAlBlLbBbBzZMgaAGmMgGyOouBtTboONLuUYQIKkgGiqNIymMqXStigzKYyqSssXHvbBVbBAxaDdXtTJUJjuGkKAagvwWzZrAaXIixuQjJtrRTvmjJMJoOWyYpBbnNPgGrRgsSraSuoOUsGgnkVvRIjqQHhkcYyCodDOcCKQDdkvUiUdDBbkFZzfRAoOavPpzJjPpZSFuNHhbBnZJjoZAazmMOUucuZzeZRCcrzdFBwsVvTOoBbeKrRkSYExXvVpdcOoGjJgsGFfDdnZzNMcdTBbtDAEExXeyYekKqZzVkrhHIlqQFfyYeEtTMmmmMMPpVvcBkKuLkKlWwVzZuUZzmMlOoLGYygvXxfDdPDzzDdQqxvETtkJCczRXxRKwmMfqQFAmMzZaSdDsafXrRVsssPtRXWyYBbPSjJSssXmdDMDatTAdzZxpYMwWDdmsSsdDSynyYVvNnxOWFfBLCchHnNBbnzZRrJjPpcNnuUElLeCLPxXpnNhHxheEVOjZzjRrhHsScCaAyYLrtZGsAjJqKXxBbRYSNncXxacGgADdHhaCPcUfpPiIRrfFnxEetTNnxXCDdsrmMXwuUWYQalyghHLgjJGgmMJjEYaATtKkybIdDLyYlfFimiIGjJjrRsSDVvNngGkcpQfmMJSsVTLltLGMmvttSsUjJWwoOzXoOrcMmnTetJDaVvzZAdeoOeELlGeEgRLsoOqQQqAaVdeEQSmMPpAalLTPZzinIiNnuftgFfGTGgFEoUdDFfuIiOewbJkKjQqvmoOzZRrDdfaaAagGAmMFeDdEoiIORbBnNxXWwpPhvVIWwiHJmjJjmaAeEpPuUMVvVvpHOAwEynuPlzcHcMmIQqREeOoTWREIAXlLyYUuHXAnZzNkKMTtDdIimxnwWJpPveEQgUWwWHhIiwucVuUNBxEeIEeiCBbNzSgGbBwSsxJjKlEEeUUuzdDpBIibzuUZjiUuBHhbnYyFbBoOzZfYyDsSBbQqAabFfIiizmHhRZYHhDJjlgGSMmgRsyYSsWwcZSJjDAWwrwQqWRKkFUuMHhiOpmhHMLlPoKoZzETRruFRQqyYrEeTuUoOqHhiVvCcdDIQhmMjjEDdYHAcTOGCcgVvEnvRhHkfJjFFTTtlxXLlhLmMLlBMafwygGKkeyHCNnchqQqQfFrRYzZNlLnKwWQqWwnpDdfTXxrRVxXvWNfFjiIJnBDdrFpaAPKkFffGgxXeEpCIiEJjQqeuUcuUyCcyYRRwTRrhHhHuujqyYrRQRrwWzZYxSxXsXhdDvVhNnOoHLlrRBbqQVvuFftpPLdPgGpxvRlGgtmMjIRLSgNnTqQlJmMFuUdpEuUedDXjeGHMbnNqQtuUTComXIixXnZWwGgjJAauUnNsTEeZzXxtSsQqzZtyBbwpMmKknNiJSsjIiIHUqQuvVXlLBbxhFUuhHflyYkYyKbUQqonNOuBBbaAQqbeUpkKrnZLlnCryyYsSZIzpPZioOzMmEjXxVBfdKkxGSrBTtVsSqeEtTpDkKPWlPpdxwohztFIiWxIhNnvVBaAjmMtTJoXxanNAOAFuUfPptRXkETtecCKkdcCZsjTttqQWwVjJOoikKuwWjJGgUCiPpEeIuUoBnkaAKXKOokxNBbTtaAqpBbhHPpyYFjJoRrvVzPpFfsSsHfOokUuKFfFfAazyaAYFfZQtTtYyIUAyyYqAqXvOoTtYWwQqeEMmSsnkKEvUuoWMiwqTtjVxWLlJjwBqvSsOoqOMCcLSjASeiIEpPLBblUjwcClLnNBbIiWhXRaGSpPMmNajJAiIYyBKadDoTtOeBYKTPposVvQEwWeSllFbQqCppPvQqVnZdDzglyuUNXKkPMmModosSJmLlMJkIiYyonNsfFxoAXqgGQnNeEyMmwWBsSblLsSYdDvmMfFrPNnxXcgrRgwWcjJdDDdzxgYyGXqKkryVvNomMRquwWaAoJjJfhHFFNnvKkViIeLGOnNRrIibbBiigeDhPvXbSieGgZjiIJhGvVPpPPppmMePpFfxZzGgKRJjKegzKkhHYyQqGgqnAJtDdTXKSdTfvVCcFAathHtqQOoKcKLlFVpPvWIidDeHhEECcHjMZzrRMkKmDdsIzBgGLlCXyGekKIiLlExYyxQmqQCvdgCcjRhnTthHNnjJLNbhHszZwPLlBbxbBIcasSHhRrhHsCnNLmMlEeVvAaOqEeNncCjxXoOGMbgxfFveTtmaFyYNnnNkYynNTEetRrHdRrOohMmUqQtTeYLzQlBIKnNhHamMAKkkGexXbDKAozZOakYjjJHhuBqYHcnkKvIVvLDZzuQIiqUNnYEeTEiIQmMqsDEeYylLeEJjItEKmMptrRXaABbxfPvVpWwhUuHXxuyPFYVvyfpjJQqsSYdpgCHylvkKsSViNnIiTxXuUaAttPpEeUFfuAaOoJJjjBSsPPJjppbbNrIiRnNHhANPLlakKdpqfmyYOofjJIQqiuBbUFSsMquUyvVErIlJQGgJnNkKfHhVvEeJhBbdlFcjJCfRcGgKkPBRKCbBSADdayFeEKkiSPIfQYyqrUXKkRQpPpQpPujJUuJjqxwWOjbBIiAZzazZdDmMJmMoOlaeOoTXxPJjJjpbzFfZLEefFkKNpPTtaAnlBbrZzXxRFKZzQqkfNDdmvZPmgRrGipPpYWnNuGVSsvRXxMmSyYfFoHhVCjJlLnNmMbDjqQJdNkhqXxQnzuUnvViZzmztsSbMmmJHfffgGKvVJqQzGyqYQMmRwWrnNNnqFnNnNpaAqyYQIcwWCdDQzZJjDdSAaMWwkeETxvrRAdDXQqsSIiReEEjJeWwNnreEzhJGLFmjRxXMmOoLsSMcgGMmHhkdKkkKKLlowQPUfFmMWLdGQTIihSzszZyYVXNCZzclKkLPMmJjWwWRrDyYQKkyZToOuUeEHlddeEDDPpHQqBDMtTyXpPJpyYoOPjneEUIizGAkKagCuWDCMkKJdDjsFfiITRrqooOyKkyYYaYpPyYlLaoeEkiIxZkKrRzPLnJuBbyMdiRDpPzXxaNnKWlLGzZglLdVQdxxXPsSrRPphHTCctuwWAaafLgrNwWwJjWDcHndlLeEvdDVtCwLNjtRwaovqCyEewXxwdxXqyYKqcCRElHDSsdJRpaMGbBuFluULAaIrwLlwWXHhooOQbBpPYGgjCbBBVLlvSaRryPpYqHhWGgvcEeCKAeEaaAxXjownUUuyWjJwiSYyCrybTtBnpGuUumMHZzvVItTihlByYTtSsRrbaIlBPtTSmMvhHRrPKKfPpCQHYyvfPaAaArXxSTPfouUuUchHXUlTtoYyeaUucCGgcCUPIDdRGkAazZCnEbEeMmaAkRrAqFfpOiIoAGCcgIprRPhADvVdoSFiTtUIiuzZVvIRDdgGmgyJoCcOPpkeEGOoHhoOdDgLVoOzoiehOMfuUFmNlTtnNLloENeEzlgGVQXxwLKCcNnOoNnFDcCHIihzZdiDAWoOwackwcCsEzMjJJYsrrRRSyuULlAzKkFfZSzZyYpAaVAdpxIiOQqTQqjQqJawWQqZspJgGSsAkQqfWwFJjXxyYSgVtTvxXGQKkDdqscNnuXUNOicCIonpHefmMPpUuPJifFpffvcCwjJFbTtVeEvHhVPpCqQIyfFuUYfFzZDdyvrRUuqyYSsJqRrCcPpSsNnOBRHtHhNSeVvoYyzZviIKJjbBnNUpdMmqQXeEAajuUTvEJjeVSstusSRkKrIgGbBomMAaXxqaAQDdSsfAPpXEexaTNZkLiEQqEeUJlLjdDlXxHhjUuUGgTthqQHuaAXwesSLlWLBCcRnNbUuPpBLpcCDdPCCcFxXYQWxvVZBkfFjJSsfeTtEWwDdzZfgwWKqjnNJJCcVfFoOvQqYSsqQuUPpuyYsShDdHUbBpPsSxGghiIHwmMeYyEWXSHXxXJHhMEemmMjBbKOoqQmHyWwYhUugGLNjYzWGzZmZzgGDsFbtjJvVbQAaRrvGcWnNwjJQhOodDmbVvMuUmzRrGEeEelSnQqNaWwzZNhujJOWYywoSsNXxBpcCPzuUVEevGgZbWrRaAlEuUPpxXZeEzYsSygPpnNNnOWDaiIeSfBbFsEcCmAamCzZccxgIuUiGloWgZBEehHtYyAYZzugpoOPGIzZelTXxcCEncZzsSDdWwLgGUszEetTZvVOxdFlHhMmTPpthHWwmczPpmkFzZObJvzZVSsvSzZDxlLilnppPyPpYJjSsAcCjJaPpDytfRryKxXTLltNNnRrkKRrkpPMKkuUsHhNyYnPsKkKrhOoHbYyLCclQRZNJjnzWlAWLlLhLlsSSqQqIiqQHPmMHzZWFlLfwFhHCoWwJjtnNMvVHhmBMYhFfKrRNBbJjncCLkKGuOrRgGQqihHIoUfjHhJdDxZzXEamcbBqQHjcDqBrRbJjjVvAfkKMBIYyKJrReKsSkEYupPUhEezUUuCoOHpxXjmMFfeEJFbkDdUuBgOemZzJjsYyIiSYAqrpPVqQvMrRpRrSsDdeYyEfFPGgmljTTtOsSTtdDCwjqBbvcrHaAdZzImeEMlZrnEHhwbBWybjJDNnNYUWbZpPzBbBKFfFrRZkKzfkwxsSXbgGHhMmcYyuCACcinNXxidOqJjaAWbTDeEWiAPpaOoIMjIhHiBrRbLFrhczkguUGIFkJcCNnuMJZnnFfNNICNskAacvvVVIiurgQqGABvVbJjQqxlLlLBAaGNdKkSgGlLEDdeopZFfzZheUurdMsSDASoOgGPpaAvVOoHqQEDtmMpPTUudFfHKkaAhTteTtpRgGKfsScSsqQKvhACLlcqJjOoxjRNaAiFSXxayoTLlniMmmZzKTdDvmMVeDdPpLlkAaaAOoLFsQmSFWwJOoUuJEvdDeuKkIOPAaoOgqQuPBUuwFHIakKpMiWwImDpDhHzPprRxwWRrhOyYnYMmySJjEeggGtTLuUEwagdJZgrRrzochHaArOVxXIoOijpPpkkiOhHXvVEednOoTtLlfibIiYtNzZFgGMmJjQLlfsSjJPpxXDdFcjXxJCHLluCHZpiImMJLXnNClWwLRMmyMJSOosxBJkVvKKkTtxXuilnVvFuDdpaAGMqIikoOwMmCGolAfzZlWwZyqCIlkKTWwbPpzZNnBgGvVPQozJjoOCsScEHOoeETDEvySXxXrLltTvTtNbBuUnKQwnNLlmfFnkjJCtJJmMwWOTvVbjJBwJHoOBdbTlWwcnGQyVvoOGPideOuvcjJsTtJRrjSfFsSyInnLLllNUuZzSQPKMFVDwAaVvcrEeRCWBpgIrRASsIimMwWxqQHUujjJGDuUYYYyjVmiceXvbZOKdNpwWFfHbBEefFvVqysIPpinNgVvtomaINnqQyYzNeuKZfFzUuclPXFuUEcCpPkeWwTqJhSszVqZiIKdDmMkYMqQwWBbdVZzQqZDetTvwhZOoQqBbhNvJjWOFoKaAiMmQrDDpoOAqMiIHhuUdDrRmzwdZvHhdLueWwUoOuDNndBbEUleEnNncGaUQLapMmcnXxuUNsSTAiIKvbBVkrRHQqhxXLccCQCyuscYyntTGGXKtTeEYEIvVSsUufFKKVvaJjdDSImMZKtcCyYTUIiFExXHyYWwZeNnzZMkKwWoMmPBiqCcbkLTnEejyavVvLFffFlVAYJCBaTzbOCPEeyYRrWbBVvwUukKAMdSrQhWKtlLOoTwWbBgOoFSscaPlTzZgGNOoSMmTyYClEIieMmbKIihFgNVSsvnEeBVhqhHQEefFdVrRRGxXZzKkuUrRykXgPQHsSGgdDRQqpPpPrRrhHSsIxXvPppPqbBQVmRrzgydfFDMewPpybmMDOJjKkoOgGfKdDXxJqXdbBpFwfJjfFBbAaNKBsMIiyrXKcZGXpPOoOoomBdLZeGgZqutTpPUkHuURtWDdXRrlGgpuUPyVvAVkKFfszKaTtNLKhpOEezgIirSycCYsRCcbChHNfWRrwwzsjJTtSWNnabQMHhzZXxvPjkdTtUuamnskKqwWoCcSWAaATUsJJeGFQqVokSsKfFfAaLlOvVpYikKItTyqQXgBfwWaniPtTwEuUerRueEVWwmRzIyvVemMQKGnNOohdxfFlLqkvxkqQKBERaSTcpPCmpaAXxVWOouUnfQZjZNngGzWwxtJjQqBEszZCaIiAgbFOXcdqwWEemXHhtTxTtyYakMniIOAXiIiIxeFQqzcbBCriehrRHfJjTtBgxqQovCcaTthcbBIsSMmiMWwcRrvVuimjHBbKkhuWtOkKZxfFXzqurEPpjnTLGglauUpgMMmkzAMwsSWTaCaAcYyMmACrRHuDeAaUEHxgEesdWnAnEhppFfZzwWwUDcCLlbmdWwBnnbBKkNMwWdXxDJAPpazZWwdDvJjBLLldPeELlyCpZZBqdZziIVvkDKjJGgPtWwLmLaXxsnnNNsvbOKfrEeRFkrwlbnNcLlbBybqUuQBoBRCcZzCcIirNnfHMntTpPPpLfDdyYUaAXhSsHJDETtrRCJVkKvjlLWwYycIiOoOoXxpvBbSwhHWsBeUsJLcCpPQZzjdgdDpPdJdDQSUKViIfffpqQvbMmsJjMmYsSySOoxVFKzZAaMVUufVfPUuogulqQkvcyuljbKkJPEeErLFqYIyFfoOwlAPZtyYTJEelLjFfgHhGObbxXLliTSsMcQQqGxBbcCogGtTUucCcYIJmmrjdDSnHqQsSQzkSZPpAGXxgSRAMxDiIdyplKkLrWwWcFaulsyYvVdDbBERoQqrbXDDdyYmMddDIiTNIidEuUedetwfjlLdBIiQqAQUuiIhhkKVvAlYluULyphHqQRrRraAEEeeotMmKjyuUITttfNJjnxXJWwJjhEegbuHoLdvVmMUSsjJoOzwWiQzJRrwWleNqrHhRcCQnEorRzfBdDsVvtASEekVbvfmcZnNwZIiMmvVzBkKPprYynvVWovjJoKMpPcCLjcWwCIiVvJSsXjnRrNFHhfBVZUuNNnFfZdZUCQOiQTttTEjOoQqLjJPpibBYyhHnxTILgpHCcfyqQxXJjeCctApSsPVRrvFFffhPWwYyXxWhLLIxfFbBNdbBGRIdMmDiLlGnATWHhPsSyYZzlHlLhbBgXiIxNdMhJjdBxXbtxXrRoVVfFjJYqXdTNndDtfFlLiiSsIRrVxlLbhHaoUYyVvPpuUHhPpuslLzFWwYfguEgJiWwIjBxLlXijyFfynNYdDwUUuJbiIxXsTRyExWwaAGYFkuUyCkKrivJbBjdMOoFOtCcvaaAjoOzZJrWwjUXxaAuZzJHhhhzaAZHYFnqQKiIhBjqQQqJPppeVlAaTHhkKcnhHsbocCZuGgYCchHYylLggAvDdfsYldiiwfgbZzBpAbxNnAwWlWwlvVUuOxoODdXxTYuOoUBJTEcCffgguwfxRrXhHWNBLllowvzkhHiIkqmrRlWHeFIeEWOPgGEAasVYaAAapIiPdIiTteEEFNRwWkKQdDqeRlPptilFiKmiIZTtmzKkyJjPcvVQqrWYIiywiuDdImMiKiIMmokulLXHPPpoOqzZoHTjlmMezTtZQqpYDFfaeEFkKfdCcvcfFYyCUulkKLVJLlHhhzZehnCNaPOoOopxlguPiKbGGXyNnQptvzZxXTRrJcheEKFfpNneQqhHyRnNreEeECcLbiuEeUJKkMmjIHqrDXxlOJkKvVQmwWIPCFfLlTeQybBSyxXuWwSswEtgGTLlvrRVqSIuRUyOovSsenZwWwWLXgzUuJaLdAaByZSCqDgBbXxZKkzGoguUyYJjGFfOERIZvCdDchAaHyBiosBKghJyYxbWuHhrRwZxXLliUAoOouCqxrNFQqfwkBkKBsSxXbbwEtTcKkMmhqnQyYVwGnGfSBjJJGJjLlpdIsXxSfFeERtsnNVvZzbcNnVvGZXMDqRrLJvnBbrRmQByUuQPDdpHYOFDdhyOaRrrEegoOxZzmrqQfjJSsXxDdjWLlGgsTkKAaqaCznmhHCoOtSsSsTcMAkAdsaFfAzZSCSsGgPQvXpPwpbWwJWLlNKlzZPpOTuUtbBjaAWwJleYfwWTtFytTuPkPpNnWtTwKpowwWrRWOCyDdZmFTDdnTtNttTZzSTypBxXQqQgJjGwmyfNiIkKtJrCkAaAyYaTZzQLlqoFfDyTUuxFQqmwiDdIWfFLfUUmQaAboTjkDIikgGKtRDddDXUpPOtThSspDuUzZEeJwWHhYohHnnNvjJhHrmWlqTtFGKkCcOpJGHhgGvVYygGwjaBbMdzcrRTkwDdWzIXyYxSsEnNeiIRrCpoOqUCSsuULUIuUsSJIVqVbBImMxXaAigLGrLTQKCcGlgVvEeGqQDdxKmMkdOQsrYyRSqXzaAkHxXwQqWwJgnMGWwguSKkotThHOtTRENxWdMmHhywJRjONnoJjiEiIedpIwWlLiyyYFqoQVpPpCFwBbWgcCwpjLzZddIOoKbBnLQqloNnPpEAabBtyiIRbXGTtglYBmfFkdDAawDeEGUujJnNcClLnazwWZzwYjIhPyEhrRUUGseESByfFDRxokKFfOTyYhHtEdDTtFkKfSseImMiyLiIxXmeCcEkKfEeSsxZmMJjNhOAatcNARxXrReorROosSVvrRrZzROEWwWcWUfFuMHhwLzZFftTKKeQzHhcjJNkKrBLaKkAvSXfFWwjLhVIDJGgWwFpVhHSskKPoOpPhAaCcXxUIiVYGgQPNqbZcLewczNOolqlSPgGikENnvuVFVcCwWveglLpPRrytfFVCwaALibWjQqdDaEeAwbBJHrRhPWpPoWcjJjwSseFfcIlLcmhYFfyQaXGxXlOIsSxXEeLlLKkXAOLlnBbAoHkKaAlezMBbTtTNnBwWUuirRoFqKVDWdTCcVvqQBbCIixXZAJbuGglEeunHCmSstTTXGGJaiOocZpPrVRZzNdTvnNNQaeiIlDLldZzxXEewwILliWNTtnyzGiEeIgTtpSqQBuUfFkKiIKSHkmVJTxXJRYDAaZcCaEepLlGKiqgVWwvcCGToffFofSbMmIYyvCcVYQqHxpPXWtTJjuYWwFjojhnoxkCcKFfeEwWwkcCuZzPQpPpNntmMSrkIiNIIIiGgGjLlpBbZERrSsIGkyYKgMmisbBSSXTwWkmMHhitlWINnOoGgzZHYGgyGUpHkreETtTtnaShxnNMirkuNAvVnNPRdHpXxLysSBbfeoSjeyJEeSsDjgjoObBfHhBMHhHNnhbBmbFMzhXxjEqQNmiITEMvVMmmzQZXxzJjsRHtTrRhrhpbjMeEQszZXxIilYRAeRrxXLMZjJYywWzmlkKjoOhTtUuHCoOcOoKYzZdAxXfMLACDAaocCMXNnxepPzUsJSYlrYUSLFOACFfchzERrGIiPinNOoaHdDdMmlSsAudDpRKuZaCkYyKNzrRmlLaWFowWOaJwQpPZRywidOjermDYyBnNimpYysrlEAJjaYyZzeOrRqdehzlCcLYCoengPpVvDdGkQCcWyUOugGugYVoQqOTtujJUuUehHuUeEDvVHqQgSWKDuOEhnzZSKfFkhHiIsGgzkWTUbHTkKtBJLljZzxMZzPnEerwbEelewsEeYMFlLfmrIpPhqQGltTEemMlLpLlPSPpTtsnvouUKRiIvDpDriXUXxxXBbWwToUJvbKkBGgfIieEjJswdDWvdVvRYwYDYyvVMrRyYJLozNomMOwUJjDOodfDdXxpASsrFnNfCcPpYyjACsQvVRXxmgwWpPfABbaPpeECCccONEeiOryUetDpPxivOBOUIKiqQzAahkKWwMmYykHWfFwpPQrDSPIincGrKutwucDOSLTtzZlgGQGnNnNpjJLhTWJjYNgJHzpZbakKCcbuAFftZnVvtZLlKkwWjbBdcNzZzZWOoSdUYoAowhWwMPpodgzzVHGahhHoONNesOoSUuYaukblmXxxAaXxXSkGgGgKJvVlLjLlxUQqFfPwVvhcHCmmEeeETTJOoRbBmfGgSzVPGAagGsRIsSCKtNSnNsSsESsIKnGYFPpxlLnNdDXuhLCDIFIifidHhqQPcCptxXBUuQWwWlLHTzZZznNXNKyjJOjqQlLjoOSaAaJOowLljcCptTPakmcrQYnICHNAanNlYyLTbBfkXUPyYpcQrGgRidBbxXQXxqDIqPpPWwgeqsICcLliShHrmBxZzXmPUgqQgwWaCcAKkoLuzPpHrRheEZHjXxqVvQbBnPsXlYyREMQAadBbHdbIbBxcSsTtEeCxXXbBgFRruFMskKvoEGgeOZoOzTtnNGJjuUGgbCukzZZvVbvAtfFzZGBbYSshOyYdjJCxOChwLpcCNnXgBJuoOdxXDnWtfXRaAlEkEMmxXmnNrSWSaAeneRrcCnxORdDrTnYqGgfFfOTObeEVvJGgSCCRTEeNKTtgeQqUkKuiKzZIiUiCcIuzZoVvpAWWwXxAvZSzamMNMJjpPmnbnOgMZkeuUosJkKWwiJZpQuUzSTMmpPdxArsnNfLFOyYyYYhIoxXtPfdPQqjvAuUaNoDtaAdMtyxnYyEHhmBHUupBYbzNnluUZwuUfYyFjJWgGGQLxxcCXXPIiplTaSsSwWEeHZHwJCcKkjWoOloOgCiISJjnxXyOpPqQKbDnPaAWETKktjgFChhtTzZEebmMgPCDGgNqQZvVZZzEDdeRrbBByuTYmQpPTVHIcCRrivVdnXzqhrRWBblYkKkLlKiSteYyeaCFYqQpvbjJvlLlBEeUOXmMpEeVFfZREersxYoOJXwrRWBNnkKHDjCwWcJdiIhAHhgXDdToOyaSeHKkbkTGgxxXpHhahVEKkuyYIotQVKkvIIiQqJBblQOeENnLmkvVvVAOoySkwxbFOofFTlepPpiaASoOoSQFfzZFtgmMZQVvXfvILJFHYoiIQpjVccfQqFUqBvWHhQENEenknRYGbGfFgBMNDqTiItmVJjOhczOVPpvMlzZhXxJNNnxoOroKkbpvDdihHIVKcyaLGmMXvrPJnaMhOoFfdojJNgMKgCCcxRWOoSDOoWyLYyrfUtUQUQnnLVhzeHhbQqBHWiIDpMPmMxTQmMsMmMXeOoSsJjNnNYyNLQYmrJjuUuBbIOtQgBgfFetTcCEgGUMMCIwWgxcdDkKtTLqQGgAawxDUNnpPudAdDzZWcdmafGQYySlDhsrhapmTxTthtJdrCDdkgbrWYqQIipPyyXZzlgGowMwvDzneErRNZwWHxXwxOyYSrGrNnGeqiIjMmRMmVvZpPKUlLUuHCcvVhHhqjJTGcCncCUuCnyPpcBPdDIKavVAFFfSWtTHRkKEkHhejPKzZaSlXcHfFhvVWDOYOIFlNrOocUhHVyiIHlBTjtdGIxXuUigOREGgtWwTjeWkrLNXmQxOVlPjIYvOTDdeEMAamtoJMmYdDoUMqVXqSvVEQaAVYktDaneHpUSlAvUVbBpmSzXXxLDNIivbBbMhrRQqHyuGWPiywORBbroFoRgGNnysdwWUeUYyaIiwHUuXxtyMmKnIiPgsMmSLpEjZzGNjthHGgPHSsZzOohkLGlLGGZzzsSZAUuiRUOaXxAgsHhShQqHPeEbHXhAbBylWgaNZDinOYyLmrOUuaArpAKkiIwKkWBBTtmGSMBbKkmchhHGTqQLBbmHgUuGRrIoObBOuUyxXbIaAiSRriztTZIdaADdhdFsYysJisqFPrREeHhsBbTttADdxOnHjkvUhibkkKDeUhHUCAbBGgcGgYKrYIicLJJiTOowtTITxBYpIinNZzoiIvagGhHedDPfFUFPpryYbBUzQIWwgvrRzZdDyPfsSCcvSMSoarRACwoOWtIiTYOZzoMTtbnxXVhHvZhdoqZcgTtqQTLGglLlXyoOhiZYjixXxhatsMmSTAOJtsSJjSsvjPHhxkbDtTgGKkecCEmDNnbBlUbRSsSgZzGOofSAaLljRrcHIivqQYyqFYLjiIJlQQsSqNhVdDvHlyjfPAqQXlhaDdvbBCcqQgGEKqmglKTkzptTeEPEYiIWwWwvmMVyUvVpkKyYRKkJoXxMJjcVvzoOZCAvVBBbXGUAlLauxbaLZGgWwzkKvVixXvUAauJjVxhYDdyBGXxuWjTJEzdlPpmXlJKknNjJSKdJCcjFQbkiwWsSsxXwWKaYyALIMplxceRrBTSkZVvvVzMtQqtWzlLjJbBYyuUnNXxvUguYyQsSlLOoGTLwgTISsqQwiPKAcxXxNnotTRrwJbBolLwyEtTeQnWrnPvSsnUyYuIixVEyeEfFBqYKioQRKLgSosboOqUuarQwlLixGBnNYfyJjYBbCDdcFyqJjBXxbwVvWQndDNIibXxWwZzgLlkKpPXIWqRVvAhHQQKkqBSOsGbBlfFkrqOIHhkyQIibYevXvVSsNyYVpNROZbBzowzZNqZzbBbBYWOjWOXCakpIWvVitGWVvlbBVvtgCzZLlcaTTttAqeEUGoOueEVGSsgZwTCcTmKpPsCctEebRrEIiCXJjLPmilkeETtSItTqdpPDQKBqfDksjLFkMmKfxZzMYyNzZnLDZejtJwUgbHXIDdkKzZlABXiIgxBbCcvVbnNNnamOiIJjjrJjPtTuabYyZzBASDdNLbBbBlnscCepPZKtkLGMQkeVNnAHLxdDayYpFJsSYLCcIihqQHnqyIifQVhvVCLlJAatTsFpPgGsrBuLlLdMZzdBhwWPpHKXpJVTjopPHRrKhHkXIJuUyRrzIHYOehHBrRbEgGoxtGwlLWoOCzzZQODmMHzhHNBmyLlcOsmsVCcFpYdDpPsSVGiqZuRfupECcAVRrOPybXtiOoWtIjjlCkKeEyRIJWwCckKyYjikyCacuuQqpPELldKBoOIHuVKJCcJVvjhNowWCcXIiabBTSLQqlpfQSIpPjSKUukSbBfDTtCcHDPEeaApslLBYYynNSIQqisoiLlZzhMlAatgHCWwOCcovVsOoGKkggMbhHbfFaPRoRMloNqQIdznAEeGwLYbBaHnNxhBpwWiSsIGtTfFourIagiIgglKMmeEpTkKJngGgJePlEgGeGpFfNGAagkYCcTMmSshWqQAuEuDSYrkKOfWYIkVXxCcCcvKpwBbgUUuYmYysjjJJSBVnDddlxZsMPvuVRraLsrRuPMmhENAdTbBKyvqesQxvbBQmuOjJWwXxyfWwFGgpgGPjfFVOoyiTtuUJpLvoXqmMreERbBMxjJXxnllLmMRKwEJnNeroDTJtDdbLGgvQqVhYvVvuCRnLfxXZzZzioyopPdwHyYhCxeEKkLsAkPppJEKerhwVvDdsfkGgipjJbgGCYNcxXzZUuNgtQukzWwpPLlruUJQEgRgqQRsoXrRkKWhzZdVdDWmWOLxYuUnNwRiIPpDdRrBGKcRDjTHGgXaAtMPAHRSHdLwWsmlPpLMqgFAMDClLwaBbXWlLJjlCXsSPLlXxpGEeGgicmmuUuUuGbyYGqToiURMyoOqlnnExmSqtXpmPdwzZhMmENVvmMAapPnmMZHvlNNquqkgGZzoOjXxJKuTujSsJFRlYwdsbBwrDdXchHGkXxmGnODHmANjqQqQpRVxglAYqQCdYyDkPBIiORXVvlLnjUuHxBIibXLGgmMmoZsSCHovMQdnjJmMtTmgezZEyriINKrRNmyIiIiYMnLleqwVbQaAKsSkuCCfFvJPqDdOyqQhfjliQMmqJjVgGFxqzsSGTfNnqsOsIPLlELiItfBXCIicWKsYaCcKMljJoqLjiqvVFfTNZznOiUevRrHAwWPXtKBlLhEsAYtxGLhHKklSsaQqbxjyXSzvYyPxoubLVBVPyRrfcAEETsIMmyBbLwDdaAHQZRrxNDhviItqMytUYbRrzznsmMSGgJjdcpGBKGuUgkHSsHcfGJewpXoOxNgqQGdBkoJjYNsfFsSiImMsyYSCcctdDTGLhzhOosAAatLHhVvlqgzZzpPZNEenXxhHzLFfZBybPhbMvVeNXYTmDTdeEhHOnfFVnNUuJTCctpDFpTOiHBbyoflFSRfFaZzXDtFfshHZqPwWzjIIDdwWlLOPpoeEKkijSMmDdOEKzmqQbBGoNBLljJAZszVawWkKwaPOyGgYkIEGYyAaknAateSsEoqrRRVvhHrQOrcWwcsjBotoFXxQyNtoXXxNEfFNEswsRQFYybBXxLlfqMyYcCeKeLtTroOxFTwksSKZzNUjbgGGxPlgGWHVvcMmoBbXcDAaoHygzZTawWmMRrVmMBzvKUchHBjfFJgzZWwVSmfUbBfGHhiBDhDqmemMrLxSiIpNpPjJiINeEnJxZzXhiIQqqQUlOiIHhZrRolLOzEeGGupbBAWwaMrlLRbMOJjcRBbrCEeoiIRQEGpIiCjJLluxRrKFYytTSsTttnhbUuBciNyqhHRCMKAJWjAsJVfTSstFTtzZnCceENvJpPoYknxNnthwqbTZzAxXcCaFfKkfFMmclHUfyrRvVgNkienTkPfFpFjHhJOofGwWgcirSgGgpvZsvVFMwWgGrjIDdiqQttMMchCHWCcpwWkKuXUusMLZSszBKUAyEnnHAIihHnaANgEehGgvZZGDOmHDUudWOaOyVwWvuDsnNwnZdxXDzCFfIigGDJzTNzTHhPpyYaUBpPABzPZhjGnydfFDqQwtfFHIilPUugqsodCPpGgUTtnNWTUlLkUvOoVuRgsSCNKMmxXkqQpsdRqiIiItTjJhKHmMKEekZIkiugGoboVbQqBIfFXdTNnEuYVvRoInoUuFnOoNEejJLTtlGMrrRqScmMhHaJtTgGnbBWwNoOTtRaPFHhkKuWnZOljmdyWyryYgGQqWwDVSslLSsSFdDVRrSsjuOtuxIRdPuUdViIrkKkOVNmMLgmMHiBxXOobYyRySWELBBbWcCRNpmXdDXaAxoAaObCchButwKZxXNKqQkHVveoUdkwJjsGhdfFaZzAtTEnNLlvrRyGUUbBouqvVKkQYVvcCwRrqRyrRJjeEYrKNEOcyiIZHEDDdQrRoLRiIfhHFSYyWwPfFMIzZbdMREJoCJjcDIWYrzqWUuLljAwWfwAlSsLMRrZRxXrnNnRrNeEnSskKyYcAaAzxXUkrqQtTPUAazZaOoCcLDhAPoOqQpIpTtgSseZVvHaoflrRsukOovVDdMmrRKyRLVvlLysjSKkHhuZEmOdcalzZmyjJYFmMPpaDYyyOokpPJyYLnNlaAcCEaEeryVvLSwPpWqMcMmlpPlLLCmmJaABPHIiJjQqSqZetTtiITtMneJHZmDdjJJGJdBbjZzZDdzYEJsOERrFYlPhDuUrpanUKRImXHnNstTeEAVvNgGTtRKhPughOMmrRQqfFoiwLTbBhHIKtxsezPJgIOoIiRrnNiiEeinKRsTPoOaAqpUPpKWXONwWHJOxXJfyUGgwhIidDyiuUBgGsFOFoOOtQMmIkgsSsSVvJjnNPAzdyrjtjvMKhkKskWrqQRwtTbszZPZYWXxDdZzLEAqBbNRrqQnnxeESYyLlsXVtDjJnZzrvRyYzCyYIlLAsSjggxtYybBMchNUnNLSsUZzaABjazcgGrCcRVIivtDwYydvEeLlkQfOINnRrKkbUfHhFiicCIIuthHhHmZEQhHqLaAvVhOaNJjVvVvoODdoaxlwIDdMmiWiogGLgxAxXqkAaUuKHxXMkfFwWKfFCiCEoJjOkKWJCjJwsMmSOwpjWMmMmOoiEeIJwBIEeUulWcvLlGgxXTYUuGEGgfvUVeKEHheIpKkAasLQrRFfLnZCWElmMCzBQnpqyvuLlHpfFvaAPfjcCdivJjHlJxCcsVgGlbRaAaAOonCiIZqcCEkknNwWcFKkfClWmwCcCwKYykranCTIbBizZGgoHnzXtuUTaAFMlbBYEeuUMmXrdYbtTKkgOouueEHwWAaeyYYpHiJyOoWZEeANHhxXgdWKEyYeMeEbyLxBrYToOefFaARrONkiYyvVenrRNbgGBeEcCEDRrDOoPplJPWGfCccXxnNPvAaqOQfYPDkKIrRFftmMTJrjWoOYMmnNhHDwXoOdDneZzeGgEtTTtrAatTsdSsbBDUmNGjWxXhKMmZxoDKDdkXLTUuwWtgkqMmgvVGgGtlRglaaAFfSIrhHRipPsDdAIiGUuvQvijGgBbzZiuYylcuQKkoOPgJjGWwciZKtCZDgLlGmQqxXAJWMmgtIiTSsrpPRTtjPoBbgKkQqfPpQxXKkoORrPpLwVvMRhHVNhHOzZyjdtTPCcKkHomMvsSVuxrTlLHhdKhHJFftOBeEpPcCpPqnNMuusSFcClMQqmsMMEemmehvvVBbVOolLHESMfsSXtYdTtOQOoqtKctTRjTWwwKkWnFbrRgGBYMWIiqvVfjJpPFEzZebBpPuUbPYtEessShHrAaRfMzYcUELRrxXsSoUuPdDZzhVeEvHpioOILknwlLwmMWjBPjJWyYxtTVxXqpZzcKkyqwWQwWYyYvVDaKaNZcAQtSozZOwJXxCcFRyYEeMZIijJzXGRAoNnYozZOHfdDmMNQqTtnoyhqYbqMNVQqvVjlQdJbBjmxzgCiIBTtSTrNeEniDPGVvdDgIiZzSsgjbsFKkgNlLGggWsSvqNQqQoOHCrReWwWKhHWnXxRXQcULliIOaunNtTEeIyYzWUwBXjHGkbSOlLIwWbYWwVpwxXWEerRXdDKkxhHPzpPUusSqQiredFfQcszYbDlAJjjwWBbcCZGxlwWzACcaCcQqNtTEQqVYurWwUiTtsQvVSsgGNneWUNnYsYqEtcpiMqbBenNEjaAoKkOoLdRPpQhkKPAappPiIjJBfFZzwWoOltTeTtEqQrRYEPHhpYqQycCPkMmHCjtiIkKzZrRVTPqYxggBkNnpPIpUGmZzMRrLXOYyoJjAncNHEHfFjlLdDvVQqqQDAdbBMmMmyNUunPLldDCcELJthOtUuTQrrRRNrRnPpoOWwcCpItTeEihxUoOKOkUIuUDdRkaAKaACpYZMzMIikIfGglLLITLAQqaRrrEgGrHhnfeDBbyvPpSVMmGgikKIFVvfvepowiPprRZzfEfFkKhwLMqQQKjJIirRKZyYjJPpVWOnNyYLbnwFWUGGFGKkgiIFetjbytXtToLLaOoXyYAaBaPGFcCDdPpWIIDmMLySFVaGEFfeGVvXwWxdDSsCcyUSsmMiIzOBSNCOotLvEPdDdDbHuUkNAafyYyjJHCpPcjJRvDdVAlLVTqQouUfmDpPJjJjVjJIRcYIiKfygXeYrmMtvVSqQxjiIJXOoDdbBqQBjuWyqQRrDdYYJICcbGeeEICcJjiUGFbDdZzlLfFBtTyGgmMfVvZSOyWwYPpABFfXvMmIOaZLlLlzAoDxQrfFRyZzvzZxXZzvUuqQOoOeEjJTtXxeENnTBmtTMbDHmDnGbBLpZzHhSszZwtaNdDgrgDntOoTQLlcCqEIieXiOollHwpkyYqQKHGgwWaTXxEYFhPGlitXNIfFVvbbSsBBlJeMmqIoqcrMmRGguRrzDzTtBbkKOotTnzmMvbJxleEqQYymkOVbBOwUuNaARoGgObjJWzmMCMjJFVBCcvKsMmaOwWFfoTSbFZOLuUjZTEetcOnGgNhYyHorRCwuuHhxXUzZUWqIZXxPpXxuDGglEeXxOeEhvVUGgUuBGeEHjvVUuFTiYJkTQqOPYyLaHHqeErRabDRrJFWTdDxAaXZzEDkKDxXHhnUutLlxYyLlBRVvOrerRSLUAfCYywRwWPvVYYyLDMmPpCcdlXmargGsalLzzJjZsKZeEpPqyYNnhZKkzNsJjJRMMjiyCOUuXgqCmtIkHhKBSsBoyYkKyYWwaAzpHegYyGRrENaAnhiIaLWFfLlYiyQfCDyYuNnUvVyYdclRPFEePpfpeXxpjBJLUYCwWwWVKLCcUGOpFvFWwvmfFeEiILlfFkEKkefvXjJTtAaFfBVPwWDdFFWPpwIiKkFJjvuUQqkusjJvVqjDGDPpJIZziqWwljqMmOIioQSCcuEbVdDPZzZmZzMphHPzeSsdjfFxuFlNmhFRrfFbOYYyCaJAajABLWvVRoBVSSeEkKCYycAlMAalzZTpsSTtCcnNdDdDkdKDQbzoOzPcDdHhYpDlbVoOAaoOjrRIiDdmNbDMBduWPPHeNgNQqnGaTtNjJoOMLJjlmwDSGXheuMmOoEdUhctdDxXmaUuZKmGPgGAtNlLwWWwJGgeRUQqQlmMLYvHhVyoTwIiUJMIUfFCQqEemcCCHBbAVxXOXGbOoFEIRZfFfjJEaoNJjmKPpdDAJhHbBjmjJMgQqGMNnQDxXCxofBGgGcSevVceECbTXJzKkMmqqQxXFNQKkqwvPMnNtLlsAPpGgreEebXtEeTVKQNnXKEekDHgkqEYSUcjJzkgBgGbGpPKZLltTCusiZrMvUWpINAFfFbGaAxqQPoXxFQqOvoOfgEjjSuteEaqaAzZQwsOoOVvQyIiYSNMADKJpVmqVvBAwoOkNnIiKCcZWFxXnnNcoOBCcGaAZoWwTtnNrPIilLpuURPHklnCcAkZZzSjJdKEeFfkDvaYLRrxnNsSwTrjJwWaAhVvKQXxzEzlDUubiIAaWwJjMOxgBbzQqQqlLCkJjxRYmSQqLlLlbknWJjwiIFWZzfiIAaPDxXxWwQjXwWWwVvxkcCFoOodBYWWwEmYGJjZMihqpGxKkUuKYMpPmgOorvDuEeUHWwGgvbGUufCcHkUuBLcIiyYtMdDHwWhmWwMpPmsWwOonjJtRrVvALeElaLDFfdpAHhhTtHCJjqQPpiIfZzGkwHqRsNjJnDRrmaOEuUeolLWwbbBBWwyYyYpVvcoBrRZtAPvuUVpbcbBNtrReElKBQjbjGgJBJINnbEepOmpPEzXxpcCPhefNnutTFfkzizbKkJjBEeqQZsdDAvSsVUuRDBbdrkkTwWtRridDeyESsidDkKIfFxXekCcNnxggNlAaLCSUYcLlqVvClatsqlLQSCPAlquUuAgyYNnCNDlLVjJzUuDoOmMKkNnWZQaGgsSPWwddRqIkrRZzOZzeEfDdlLowVnPpzZHiIzHnNWApNnPaVEdZzXxkKzvoMmOFfDmyzQqhHQeEvuUcCZHjjJQtEaAKefwWxpLCkFfcCUjJUhHuXxEFffFnZiAMOTWwXaCcTtAxGSmMYEePUuVvEepQIihdtWwmMpPTbBFxXfvoOVDPnrRDkozBVxECIMvJNnaAyyHhCcdsSgBbJwhHWeEyYhXLYyzZXxlFfiIcCrRaiGPbdplLPvfmWwZzkpqsBbIiAaZGgzMmYyAacCNiMDbBdAamlLYDdCVUoSsEBbDIpgYqAIiagNrGgRCOKkoLaAtBmlLMDaFfAGgVvbhRrjWAaHAaUugGgGhtojjTbBcKCcNMIiJjWqkaAVRxDdsSsFfYVePpYyiIPpdJjtwWTteyYEheZOOoqpSsvlLVtLicQYzlLLFaTtLOgcWKQaAmaAgZzPqQiIUfNEeLIiIUjbWwTtoOWHhtTwXTxXtjmYrkKVvXxYycxltTjXxxSsXlqcCgPHhyYpGwWQLiuEKkPpebBUIPzDdhcUhDdbMmBqkXYyxKfnTzZyBUuImMFNDxoxaAXbBmMIKFfKPJeYySsEsSvVwWvovVjJIieERCqQEqAaQkKeOnNZRGPpzjqQhHDGAWelhHReEhsSHrTtKkGDdsNFfoyYHXZdPdqQPAjJiajJAhdJjJjDfWkpMmGgPKbpUGpfFohHiwWUEaAVejjfsMtTqSflKEtkMIOoNtOYRrAsfxXInrJXQEeaHlLVkSKksCFBbkmMrhHqiIQpPbeEipPIeEBPhaAoyYOQqlsSLsadgGmDsSRFfEHzPaAOvVXxtTsDngQBbqbpPCcXeEWwmuUGgMyYaJiIjOoRxXcCUCdDYyKJjSSsnmMcKkizuNcuoOHhYyCcUCnzZUjmNnUjiQpPqAaIKfOohHiWwKZCIQqiHaAZzRMsSjJmfmMlWwJmwGgoOdtBCcwaAQoMtTmDIwWIQqEeZzacUfFCBuLkKlynmMNQqndXxBhHYeNRzLiDhJjpPRDdCrRVnNQJWcotgGJLXxRQayMFfEoGoObKBfBbPGlLghFfQqcuZHyjkpPibmFagGJQdCJhCMAeFrRfFWwgKklkHjJymiIfmMFSsbmMTFfOcfhphQsMmSsHllGgzZLjJwHhvVymMYuUaLwrRoOFffFJjrqBRkSpSmKOonvJjVkfFGgvTtVYvVynNYFTYQqdAaPBbNLIXKkAadzZsmMmsoOSoNnOMVjBeEofKMZLlJWwxXLpPljVvaACMiWwISsLSsffDdNnwoFfOWFDXozZdDvVzZSuIsJjTtSDbBdimMyYgGqQleqQfoOFElLEeCNefFHhtLjkKJEdDicVvnOoNCdDKkUjwWJyaxXTbzyYEezZGwEeIiOPpLXCMMAacGgZzCAdwoGeLeEwEeAaLlnlEeLOoCcJHhjOoUHRrvVnAsLuUgGgZFJjfMmBMHqQqEeCgVqBpPTBfSDddMcDdCzKkZgwuUlLYyZyJmMnGgbBhHNrRnlUuuUqQIiMkxhXxsxXSDNneEdsJjKjVvJkSslLSsyjQOBbokGFFIiysSYKDdbzXEewoOqTtlLyfDdJrRjclrLlPjJFfpCjJjfFJDdnOoZzHIihNNnPJCcjLOolpjJxXcblNnwEWxJLfFlMmkKLZzlLueIljyYJNnKznNnoOtSsnNFLlaAcCOHhGBbgYybBTfFthHiUVBgGcCbQVvqVvvrRmMzZzZJxDPutTkVOEsnnjJsSNThCcrboQjQVYlLyYtTIiicyYcCvGgHhBPpfWVFaZzAFPLlIYyjXxsScCjJbBpQqHhFcFfCeEkKEUuJjTthYCcyaAPgGnNeEuFfMmxUAWwaXxCSsyYXxKajXxdDPSzJjARoOYyrWwtkKoXPxXDTtEebBcCHhavWwDdPsasSXxFfjmZeSyYWKCdIjJfGnNgSsklxXaApPWqvLCcZSsneObBLnGgoHEIOiUugUzZuGIZvXxlHhuUAGgaXxKqQRrjkeoOEKsSYGlLMAarYLlyRrfsPpvvVVOeEDhYypPHMmHhdaHifFaPQaKBvVeNcwypPYWKgvVTtrimMpuAeEEOLuxyhHYPVvpkoOKCHhOFptdDsRpFFfVhqcgYyGFWjAaJPpZzwBbeEuUfFTtkkuUpJjVsXxpbYyLiABbLbBZzZnNzUeEgPNCcYRcMmsDdYyTtIYKWwiIAakuNNnWOJkVwQAsbcJtTLljJyqOHhxWsSMkKmRyYiWwlOoLkBbDdKfUgmuUAAaAwWQwWDdqaPrjhLenNrQMmkQDWWYcQVOAWAFfFfatvVTrSsSJNnjsVvTdDNnJnbBlWclLUcCuTGOogQqKkDNhUuCTtdkdDFfkDdKKntTgGEelLRHhGnnNNlFLVviIlAVvUmMEelLpLlXDqvDGgwkAZTtpPaAdrXxuUIDmYfFsSEOoeUjNlbBcCWwpAAaUuaVvhcCHRrXaOoAKNnOYyARrCcsSyAqIiQOQtSmMmsScgGJjdwUbBcNnZuGgoONxYmbhPpLheEqQUutzVvYedJjAaDEqdwhHpDyYaAQqtlLrDdRPpebBETdTdDtnoOxPFfTrRyYtpvSZseErRGgHPptqwCcWgDlwQqupqSsWOCckDtTtTkKKCmlrhHJMuUflfnNFgjTtEeHZNsfFSnXxEexAaFfaXxzowWOoOoOZlLVXtKmLlsDLTtldqiPfyQnNXGgdDxYgZjkFFFhYySsjKkMBsSTZMINZNHKrRAanWKkwBoOWwGgcvOsrgUwyXFfMmxPIMpzVMnUuBtEALmMopPXQzCcEeDdZyYUcCspPFfSqPWeETtwpRUurPZzxXOoqrsSXxxgGuRFipsUuIfUuuUYsxXaAcREerkrbLlzsSVvZpCrFfLDHjvVFjqjLilLReYzZAVxXaQFQPDAsSpnaBbbpPRrqQVvaABnMmBIBbiTICpPIicsSPpiILYCcVvhcGeEPDUFKksSKkTPmMQqkHRrfFrRheTiLldSnNeOotydlyYHhFfihHVNChyQbUqQZzJEJkKjeydjJBEAagXMmxibMnNrRmLHhqZlyERVvrRruJjHDhsmlLnNMSPpHPphTYytKBbleEbBOoLSNnsUufAkKMOoEVXGBhRPprHmfFgbBJrRpPQocSHZzhAYyCibBXpWSSsBnlNeSsEXxHrJGDPBbhHpVcfFMTtqSsFfXXgYfFxcbwWMmxXyYZqQiStTmJQqhqQeUBbuMmwfZzkCxzoOjJZcCXkqQpAaPTDskxEeEDdejarRTtNDbBdQPIiZkKrRYyzpTtbEeIiUuHhJjBZGEgGkrknHBbhhHNXGQqRrKkgKkEnNqQgHAHcChawWzEoOOoIsrRBxlLVwWpwWkKhHeEHewWEdEfFSsGnNnjJNQrAaRqIIXxfFbBwAaWqJjQWFlLfwBoglEfCcjOHhUKkQraAOnYRQwWZCGaAGCdDpxXRVpPdDyYLlAaxkKaOXbVaAvBSOoOKjiIwWjYyeEODOvVNhHnuUBbdYyDWwlLRrTtpPCEecmHhDdpxhHnYDdLGiYyINRrPcBfOoLLsqSdDOtkyFfbEKdDkeZzSsRrdDBbEAkbnsgAqQrhVvHxHxXJucCsatTCcJIibBslQqqQmoQVQbXvJRrQsSoOWIhCcHmwNMmnOAaVDdKkWEeweFeEfNyZNnzVxQaiIQYarRCcAauiTKkqQxaAXqqZRrzSsQFhduMmUAaDSZRrgGRrxqQXTtOaAfPQbOMmWfFwcmMWwzZIvTJSeEzDKxrypPYTuURrAaCcaoxXOZzGglLbHFfiXwnNfTtTxXZHOWOkKoNncCXvVDLwpTrRtdfpPFPQvbsgXDODdobuUuUBFaADdbvJeYRLltTcFfCcmMxXNzNFfRPtTuEmMBmsSMzZMmLPjJWGZzgYTSRrzNxHhphpPHPHhMOpPcBPpHhmhgEJxPDfjLiItGtTslaCcFoyYOfAUuRrrhHIicYaNnIiAhnNHDdeEwWNnyCTZztiJFQqfTLrVVvXDlrRTvVUoOHTtxXyoOqKjJkZzqSGgsAaVPpLlvAaQQJUUiIsShHtgGAaWrrYtQqTiXxZzipPIIRRrrPVvRjJuGqQXxgUbwUubBliILHhLDdlhHnNRjJHhrtJRrjoOpPFPNqyYmMQcCkyMHhmfFdjJDMtTmYtTKQqkYyJjiIjJjJEOSsSsoeEqJjpPQOoYtTdDJjWFAmblHLtfrRWwNnMmKrSwWGgsnNVlLlLYUuycCNsSefqwWwsSWQFotCaRKmNnMkruUSshyeIwvvVVQGgqpPhHWAaiGgJJHtfqQUteOkOoIUumfhKkHWyYwasSbBZUuzdsdsSDmMzCzZeESrGmHhMbdDBYysodDOLdPpeEGOcCogyzadDArhwWcCSsHMZIahHAkVvKhHtsSJjTPpQqBREerkKdTtFfNfFIJVvIikaAKpPSJjbrRzZcCiIPpBsPYyilLIyYZtTueXxLkdoODhHyPpEeYXZzWapPANQqWwnbltTLBsZbBUubBIinTtcFfULlHhuXDdbnhHuqQUvCVvBbGqVzjJZvVjNXaxhxainAaNerwtriChfhHFCZZzWmMwLpUpUHhyYDdukKPNpPYeWVhHvaJjFfWwohPuKfFkUwAEIxXieagGIiWJMjroaAOAafAFzZMOoVJjgGwWLlaAcyYCZztHhTBWUVvjJNnNEZzeIpZztTtLlfFVvsqcCDfFnNvaASOokKKkAalrEZzZzFfjTfFEtNKkCKkvOowWVRxvVZuTWwYnNyTVMmLlhHuUgjJlOovKkzZjOoFuUqPCKdJgzZbwWBmMhHMBeGgvVGrRkKlquUQGYLAqyxaAPyYSdDsTtpTXxtmMRScGxXnNwWlLgXNBbPpFuvNnVCLlpAJLljCsyWfgYfFyGFwCcrEeQqEekOeEoQWwaSxXgzTRlJHaAhJonNMmvoOHXbBlKkbBHhRdDTtrNgGlbGgQqwJjoXNpPBbHhwpPxjJrUuTpSUuSSvqQxFTtAAaMnrRsSNmfFfLlFxqJjQWwXuUfFuUWkrrdpbmMBPDCcZjKeTtVDTtdXZZdpEcLlcCCeFvVoOUdoODQqbORrooaAOCLvTtMmVEeiArRahHfFRKveYyYyEQsSajJCmgSOobBCDPeQquUysyYzZEKktSWbmMfDZzERwWrCcSsUjJpPwWhWkKwHgGCzTtUfyYRraskKLlSAsVrBbKBbuaAINnucCaAVyYZzYydDKxXqJXxYyiHDdhrKjvVJWwNqQARGwUXxuPpjVSsHhqURVhHMmAajFfnNFfxZzXxAXahxeENnELlIiCceSLlNVvnQkFfgDNndcCRrFnNVvfXxcCGZGRrIUGguTsxQYtzZQqvVHAaaAhyYBbAaDdTiTtnylFfnUVgGvYLluUmbLaLZQpPybBHhVYHXOqsHRNnXSSsXxgGmKkUyYeSsYyOSJSsuiIAaUfrRAyYDdbBPsSpEepPaAYOoITtduUDdDyYdYyPpHqIiQnITtiNHhbBhrMGgbbzfpRrcCPGgSWwxXbTeGrRgGgnXxvhHyQqTtlLUulLwWfFnNEtgbeEBQnJlxlLXLRhHrgsuUFvXxDzZgbjJTtsDdasNqQKgVEetTRnDdhHBbhaopPJjOBbDTtSsWqYiiIkAaSDKRXcCKknbPLhHlGvVDjowWOJeapaARrPdxdHhDAkIiNnEeCjcCOotuysvUuVDVmMvVDJTtkKqQjUuFzpDdiNnImMPZUupPcjJCLlZKsFuUsPpMEDcCfyYLQBiKkyYnWNnLlFfEAsvnNJrRoDdOOaAXxoSsgGvVEAmVvMorRepPWwliICHhcmMLEgoiGJjvDdVWwyYFzZfIivYpPNPpYgpRrPXbpxXJLlkRrQxXDOnmMcCclLQtvVTDdJGuUMtTRhHdzSspwWDCcdlLuYhXxWMoZcCAUuaEefAaAZzapPkKDdoFCcPDdLIcCIqQZpWwToOMINhgMmGGgHZrqQtTRkdDKQqBoAaAmCcNHaAzZvRpPrHhmHWZzwUIrRizcTSrROgGYXOTnLlNfFtLnVrRvbIiYyIiZFTuULyUuGpUuPgYozAaLltsZKZrRFftTXvVJfedLMmSHFeEdDfyYhsUVxAphHhUuHYUuGgamWwoOMZgCKydfFDeGlXlLCSFAPpBxXyjJZNnuUzuACyYxXcaVIgGaFaAfgGtpsSPTajsSKxXdDuUqQkJabBAjAahTtZevhHGzjeEUHhukKzZOhxqJjQZzqQsSbBLlaAkKCuUcWpqQPwgJjGkFfRWwrKLgzQqZmMGeNnmMAabqovVJHmuDTtUOouciqVvHkZzzZImMiqQPNnMmpyqxRpbBFDdVvkjJKoDdSsXrkKLjqJGgqlLEgMmxXQqQqEsSbDdNiIaKkwWYydDaAyePSvkNPpnXxqQnNKXxojHaRooOzDRrkaArqQRGgLxXcwqYLcCTXmMsyYSCmwbtTdfFTFeElLjJBkKLCcrRdzZUugvNXcxifuOhHoUgBuUAavVmAGgaROoFoOzkKDVgGtTPDVUaQGgqNZznZzAHhuDdSHhbgGsSTtBiIqBbhHMmxXxATeElcYQMmqyCJINnNnQlMEWbBEOAaoewFfpCcPQqrDnNKhZbBzgGHWwuUuUvUqQuimFfjJMIRrwpPSpPswWQoCujAbKkmHSsoOAaYyoyYOhoOMtTtbMEeLjJKYykcLvFfHDGgOxXCcuAaTICcUuituUEedPYyuUVvteEnMmlaXkgGpPKxXHGgKkJjhlLwqQymMYyYKkoKkOqObBoUGggsSXxRYsSUuPDAElLBbYVvEMmvVTtmgneENOHhgGooBpPZzXtThtAaTHTttNmMuxXURrhHJcTtWwkuUaQUulLKkrqTFCcftJEejGgbBraAxXEdbBjKeEQBxXpPsaZCcrDdGacCAXxnNnnnFcCfTtHhNtjJIijRrwWJewWEYRyYEqQyYfFhEFtWVZznNvwzZsSWkmMIiKhjsSbtgGskKtrdMfTYrsqpPQjJMCOgGdDkCcKNnLHhlpPkEeKiIoGgGxXQqfDMmQrfPtTrCKmMBbRPiIyYfFTCcOcCdmMDGgLSkbBEzZuUgGLlBbkRhpSYyoUuOskKqQvVHZtTVvzciKoFZzfAyYVjQBbqJvaOrJTtBbyYoOuPsTtQAKkQFPKkyYkUuFfezcCdDrDOofFpPnNCmtTnRrNgUuGMGMopPgpPZzGQXhrRSyYstuRrrRizmEVjeEOoYySAjJYyMmoZzOOoQtTqiIIiuotlclLCIPLHhlpDxXKkdKkHhPpTtOodDiXgEEeeGVvYyiFhNeEnJkmkKyYMKAAajLKkhHEeTtlLlLRraAaAaaAwWUuCVJWwjiIXQqkKPtTeElqQHLuLZziHMSsXUoQXShHDaiNnDdLzZlUWoiIVFdPpATtaiwWFfCpPvVcIQCcGpPIQzkKxpPLliZzIaAcXxcbIRrWdGoHhttTtTQbEtTUHACSstTwWdMmcCyQqVvTbBTvVAaiIGrRZzxeEEeXDdFWpXtTNmMCbyYZwWzRgGrkXxuUKBcCBbBBZzbDdEelwMxXbBmvuDCcdmIiazwciICWGteEZcCUBZzmMiXyYxoOIeEAaZkOoHhehHYyQWXmGxRENnBoTtzEeFflLGgdDbfFBZCcqKVvSOxXDqQoOQqaAZvBJBzZbxXpzZcCAaQGYyKhHporROPSYysBbkYyNYynIRriXLJjGgoPtTtTCuUAbOdDouUBQdiIDGDdmMmHhvJFfIfgGKkqQiIngGNqjkKqQJegoOZztmMTHNnTWwtOyTYyaTFfthplLPwWZQqztTNndcBhHVvWwpPNhHAaoOokKCzZiIMMlLmDdyYxXBbmBbVmemMCcjJnNhYyHOowWzZaVvKhcCkGzvJUujtThHnCcNbBHuUhRTmaMmLiIQGgzZqtaATtcfFYyCfwCcWFThQqvViSpPaAVmMzZeEvHaAuUwfCcJpAqPpQNnVdDQkKqotTSWwuUskGNjJbaQqmOQqooPpOCoOCclLcCmvVtHhTdDdJFfhbzkKmMGgAEIiekKgpHgGVvhQqUuzxHhnHKkhNcgiINnDKkjiqhHQyauUYyAOoYEiycCYtlTUPanNAdDOoPwDkKFpYBbyPckmJjMKCSPpXxvVuIFKkfqFfQNEeYyIiIieMmMmjuUJLgMbQsSuDZNHCchMmwIaAiPhEexqWrzZRWIiwWwsdDRkKrWESselLwyrRwHhIiTtGJAPgONngURruOoTEeXaAxmqQMOonsxhhHHSdDsjJfdrRDFfXxzZMwMYjmXxwEoTtHhgpOJLtTnuUsSRKkrqQMmtTHPphAufFaAUPpanYyAabBNkLldDKwiDdjplApAChBbHgYyKkYBNJgELleGnNecChgGHuRrrNnOokKuUViIAaaAeQqDdhMmcCHEviIRYyzZPpzJxXjZSHhUyjJXxFfYuqQQqsRkPpRClLdswoOQqJQqjQqrDdnqQNSYVBNtTnbdDbAKOwXhuMmpleEmMLWwpgGPoTgGbnNKkeFKkqQOomMiIhHPpaUCcOouPOYnVvgBbGGrDdRGgkqQKpPyqQlLWJayYFTYyttUEWwRpfiNnIHhdDOoKrbBrSsTtgGRRkMctSseEOoTCmKxRrCcxXxAaYkKtsSUuioOXxxXEeoZWwznXxcCNeWwNCcnriISLqQWwfsgZzvVdDJXYYnNlKkiUuoOIDkKWwdWlLmMwAayZzPjoDKYyBjcIiaiXxiSsWwIBzZdaADKksEXxeSbISHEehSsAaLlGgQqrFPpfRKkgGLlZLFDhHshHRQqrSRrNzZDTLdDLlipvVPpPZSszIlwYyzZWXuRrUeEFfxzzZnNKlLmUuMkUOoZuoOUuUzVvJAjJadDgMLlUucCtTwWmsKCVMvgZzaAWzbBaAZMFfBbBiIRrdDWwqNgGeEnUuQPRrXxpXJWsSUsSdHwWslLMmRrZhHzxXSPjJzFfXxkeMmCcfCcjJjJFEZzPpCpPJdDHhHhpohHDdOhHBPphHHhYlJjGVtWwTvgzwLlBbWZxDdaAwWeEHZiIBGHhsSIxXiPBbxJkTsSKfFJyYjtyCcuUYtTTnVvBbQqxeEqpSSsBTIitiqQiIhEeYkKJaAtzwWMmOoZXxZzapPqQqzZwvVJrNnRWwSsZzHAuEeUkjJYyKWtTuUohHOhHmwWMsKDdkDduekKpPpPMmEIKkfFoOaAbBiUuDdAaQHhnNsVUOOooXxboOBAadZzeJjCPpwWwWdwWRKPLsxXSIilAXcTtAaWwjJrRCWwwWGGNhHhHsSEAaNnaAesSSsthHnNiIPHhTtUuZXMcuUiIRAarZkKgejDdJoOHhIiwWNnwWZXxUAaqsvVhfhnNYUUJjuLHhgGOZnNIhHEjJeQIiBbBcNnCsSwMmpPWwUpPumIiKCcBbNnuZzbBFfAwWVvToOtZzIiDVvdmMmNnNnAaGDXfqIQqiJjXxQpPIicDFffFtTKiIFxXSsYWwEVveqvVQPZzAcmlSrTtUMGgawWQQLlCpPkqQTtMgoOGmKczOohHsdiaAINnDOoBHhbhHZfFVRyCrRcitTIyiIiIzZYGgYrzObBqkmMoOKfzNlLnNdoODpPaRrATtQqXxXtTAaSsPEZzepPuwwWWOqQoUGgwWWwXIZziTtuEzZeUHhMmTgFamOoliIYbdZzDRriIiIAacIBfJEeUIiuUfFwWawWYyZzWwuUFnNfFfFTwlOoYyJjLPIiTEewWCcwERreyYjJrRWpYsSyIWUulJjiEeIMurRUBrRrRPpKXxkLlrPpguyYUpPGoOaAjLlrRJSrZzGgREevVswWJcTtEeLlzZOwWodVvDKlLUNgGnWhbBHCzfFfFHqbBQkhsSHTtKLlPpYnNmMcnzZiINrRvajUZzuJKKyYkELcqQZzdDnNCfFErWwRXxepPbJjKFwWfkUpPuJbiMmIbBpPkKmYywXxWmRrMSsMvoNnlBbXdDoSpPoOWnNwxGtdDGgTJHhVvQSsSstyjElLAKkaBbezZHbPpBRrOotneYyEWXxwgGgAIiRraqQICcEeUupPZEezsSzZNdDaLJjfFpHcCUuBHcpPChGNngRXxiwWhHRKqQdDkczZCDdhCAajBxXbJPptTdDvHcCzHNnhZhAaVCTMTtmttTwBvVbtDdTWVljXbBBAabZzbEeBMevcCsSVmJjMqQTtLlmMaZzADlLDvrRbBVvQqVdhHjJdnNNIiiIbBnSsoOBbRrEvVmSwHhQLyYArwyYEegGezZzZEWwWfIiFwLlgGJjjJNuUuUwlFfzZLpPcVvZupPuUjJUuYrRyUwqDdcxXCMmWwUbBaAaAFRrBbkKbBpHhgGTtLDvFfVdmMlHhPuKkpPuXJvrfFpPEebBtgEeGTDdAoOnNnaEeAYyQJjgJjZzrRIiGDdqooOOiWwRANnDdXSspsSLZzByEeYzZblbaADdBHcChIFfvVWzLSgOLrgGzZAAaEkTwWmMtwDKkdWLzFfNnZlLOTtNbBnNfFnoVrRLAalMmPXdDUuVJjNnvZnNlxXsSHUUuudHhvbBkKrbsSLXjQqTtAsSTFcCffqNSeEDdsnOoyoOtTDdhqQMtAxOcCNaAnovVPpaAXuEmWwMCcPpwWSkIiOoKvsSVzZTEkKetcCUuqLlRiIrkCcmwWMYySyYVvpNnPCcwWSVvfFGgsJxuQqKJXxkadqQDAgGdbmMiItTxXBDHhIjJBcLXxyoVvhHOYjJkKiIGgjJGgcCfFNijIiJYyInlkvNUEeubJqQYIZzpPiVvyfnZzrRNIqQtTeEhIEeEAaeiHioOksBqQZSZzbvVGgBamMANfFhGgwDdWvEexLlXVIiHTtoAaevYwonNPpdDdDVvlPpVvLcCZzOqQRrxXJjCHHhhmMIOoYycCUuJsSjJRrvVjiMmBbRgGrNwWlLGlLCcyYxYyXbBxhHPTtOQqjJopEeXEtTvVoIiUuORLlKnNRVkLYyFjJwWdoKhyYEUugGUuVCcXxnaANxXhgGJoOIAJjaYyAaaAGEmTtMHVvcDSsdCKSsKboOBkkWwVvpKxgDdGYyXkPHgVvkVQmiIZzjGgPeEuTKgBbGTtRrkWdcCDeXUtTprxIifmMVvFXOuURSeaAEsrTOWwuUPpakUuKDSsdDdiItduUsWSZSsqcCwWcNFfxXDLlNjJsSnTlLtTtiIvVvzZHhgGVdoOOQqbOoyYMmspXmMxerRfFExOoNUbIiButTJHhGdDHhqQgoOlQqLAavbBNnFCHaAheiIpvVPOoEmMGuUIGEegfFMpPtIMPpmqsSwqQWKkthHTCcvVckwenNEpPvZLtTcClNnqQNdBIWwiBbbQqwWhHlLWwJjPpZzYyJIiqQjlLGgoOogGrRHhOPEepCYeEmMhHCcUJxXjyYBbakKmIiiIMmtTFqQfpbnDdIizGgLlZRrRrkcCDxkeEiIPsSAaxXpUhbBmbBYyMHRATHhGZcDNndCniUuGgIkKYyOokKBWwbZDNndEOoaXqQJDCSZzsmeEmMUubBNuxXUUgGuiIDdnMZzwWBqQoOMBqQYybmkIilAarKkjJrRReOoEVEuUeSfFWiXxIIiuUWvGgifFIKkJtTrXsrcCRJjmMSnqQgGaAaAnlWRrToOWniRrIPdDPTtpCcpgIdDipPWTtehHEwGCcCveEVaAvpPSkKsAFfbBaQxXcCqcCLZzloWwVpPbsEeSBFfDMRBbBbQyNJGggIiGjCmMKgvVGkGgIUuihHzZhHxXPpGgSjGgXxJssoOaAPHyYbVynNZrRoOrRUhbBHhHubBzUBbsSuEgGkwWRrMmMJHhGgvVjzUtOoTuZdnNDkbBWvsKkSVhcCgGKkHeUufFEAFfNnaGgwEvVeIiKRFfnqQGgnYkKkKyQqNlLxXcJjCNnNTxXyYSsgGtcTtCrPqtlLyYGgjUuJNeEeErhDdqJtTjVnNMmGJGgTtjvfFVwVvgafvWwVFwWfqQvpDdPCZtRrTbpMWwiLfFiIBzMYyRRrrmVCcJjaKkmyYUETSsJjtenLCZsSMmoOLlFSQaAqEecCrRseEbBlLbmxoOwWXMAamMTtFiIfVvvIeXxElLzWwfFMmnayYHruMmxaGDdgVvVcCysSPpBbtBmMbgGTFgjrjJLlAaCchHJGgjuUfFpOAzZqHhQBbVfHhFvVyoOYaEekVRrgGVvbBAOoaKJjIidDvVLlKpjJPIXrRLlxiKkNctLSIJOoQPvVpQqqHeErRwwWWMfmMFQKkqzyYzZbaoOAVvBCcFlLfxXPCccZzqQheEHCaAtTVvqQpMctTLlCOoowqQWeNDdnxXHhEmMehHELlhHggGVvnNneEgGSsaAvVWoOwxAauUXRTvVJjwbBxXWtiTtIsSCNnvzZVyYXxhcrRPAapiuReEaAgIpPeBKkbEkrRKrlkoOKvRrxSsenBbNcTtdUhHutTDCEjJpPWnNPCcVvtaAFnNkKWNyCcYLloOnCcwtXxzYyZMmTPuHhQqZAOoASszZXxRradrRpIiPDfFaijJXgqQHhGFlLSsZzALMOowkSsKeGgECUuGjnNbCcBRuiIUxXrsSJDAZzaJIinNjdszZTrRtbpPBSIiHhGgLfFfeErqQYySbBsdkKpPDRSLlHOkVPJGtlLnNTgnNlnNLUwWjjJJuiIyYYfFynuUeFAafEkMmxLlXYLlkAaKygGSsvVFtTQgGgGHaAhMyfFYouUIizUOQJjzZJJjjqoeEMmOgGousdvvVVEZzeoOdZzDLuUJjlBgGbEtyYrRxXTeGQPppPnyYlPpLNCcZFfzeESsyiIYgBsAbBalLSvrRqgGQbjzoOGgEecCnNSqQXpuUPOxXoLlpRkKxhHeEXsSUzZugJjsbBhIiHSGwOSspPKNnkGlBbGLWwlgLNnqbBQgMVvoOfTtFVcCBUOoCcEeAawWfFZzgGEehDdrReEziLlIAeEaSsjJhNvVwWFfPhHxXUJCcSsjYyDduGglaALfFJpDdPIixDbBxXzZEWwewWxXPpMmSsxuwWgGwfFWGrRgUmYykKPpfFNnhHwtTdDWMbbDpPdBBgGuUXxXvVMLlmPIQqzVJjvAfSsFjJdDqHhKjSzZsJDoOqQkKzZbBdvVtbBhnZzNgGnNBfFgFpPrfFNIinRrkKqQFeEzrRZfOyYoOqQqQnNsjLlxXVvtTheECcvkKdDIiGmMgSyYGgNcCnAFfadmwWTtMmZzBbMOlLAeEIiQsSqmLleEKsSkMLlpPamMgtTGuUoOFfxXKkOwWDdaAiEeCcBVQqgGvlLlCYyYylLMmcLviIXxpPVNKknKOYyiIlLoRxXfFGgrkLlbwEeWDdYMmpPyOvtTMmVoeEvNcCnVxxXXydvVBbDdqQFfQcEeqQVvzEuUeZCBbuOobaAiIBOqQoWwxXxMFfVvKkskUuKnTtNMbMzfFfEeFZiIxXvVpPYIigGGgyIihHjXnzZNxVKrRRrkvjJdpWwPLlnNMmDOoHhdsShYwGglLWUuDdzZyxXIiDSsCLlcRIQqiAIiFfWweRDdrEyNnYaoOKkoGLliEGdDiDRLlrcfFWwxHhPpXqIiiIQQqCyYKkdCcIiWweIiOQqyYoWBLlGgjQqJbUuqQoXsSxjJOMuWwvVaAIMmioOIiUmLQqlnNOowobnNimMxXYyIbHhBBOOEmIiMTJjtXrHhLDdlPpRxDnQqHhNxeEZzbtiVYyEBbyQqfFwWYvVJjBbTtgEMWwmoOJMmQUWiImMwPFPpfpXiIxDlLvVdwSNniIbBDdsWPpVqQdEeDzZzZcCWMmxXHiDdIhYyiIFfVFHMwpPWmVKkRrLTtvVQqvtbmZzrhHRQqJZzxXtFfTiwaAWHhIbdDBhHFfQtTtwWNnkYysSOoAaptTJKkjflArRQqgRaAOwWGgTtorfJjQqFyJjeSsELMmlosBbSOTtTtBbVUuvTwWtLYXxtRrspPfUuQqFIiCKkcsSSFHHhqQyYgRrXuUuGlLXxRrgwWZzYyUNGgqQymMYMdDmnWwEeOvVoxubgEeGBHhbPpaLlFiINnOtnNTKkoAacCfFfnzZBnNbkKNMmmwWMoWwpsSKkPreNnpPEBbcrKkRnNbBlLSsDdwWxpLlPXhHYzZyuUUQzZaAIPpipCffFFcuUbXxBsHeEkjJKhSKkTtPMmSVvvVMmNHhOoHheReEJjluUNnaQqAiIZzGgIAwWainfqQyVvYTBgrRaAgGoOYyZzrRuUGbthESsZzpaMWwmAPpPedBbTtDllLLOoHaAVIivVsSpsStTPvhykKEeYkCcwHAaAahFIifWFIVvMmifkKWXiIxwjJIaEeFkKfAcCiXxWwzZUOoziAaIFfTtOTttTYytTolZzdyYDLqMmYyqKPpkWwUuQRmdDaAMrUXxxyoONnjrRJoCLlcUuOiIkKvqQVGzTtZrFHTtNbBdBbFftLlWwQqiITXxjtaCGgcoOLlGgAFfSNYynsYyoOUuCcMLypIiPYhHRrdXxhHwjJWwWlnNLNndDleELrrRtTQqHtTUuhRelLcvTJjtOooOAPpaaFfgGAVjJAaEenNEeyYKkmMSxVveEMktTigGtTSsFhHHhfHaATtgRrGqXxQMmvVXyYxxRrRrlLPpTtZzXFfQjfFJqPprRwGPpdQqDgLlpgcWwFfCJjGrRwbBtHhEmvVMeTrvVPpvVRDdIkzZsYyqQSKgGHXxhnNMmrZzRuUbLleEUuYqQyBQGfhHdqQFfFybnBjJbNEEemMeBOtThHsSHlvVUuLhUuCciwWVrRbBNnFfeEUEeujJkKlHvVlhHLLlVvhnNIizaAZUuLQqvXbBxSgpiIPuxjlLJcCmMGgXxXCcbGEegBrRrxXWAYyWwNnMmhdDVGggGWvVwEeDQmMqdHhnUuNcCxOorRXxXEXxeGgTqDdQJqQjUuVvnNLmMhNnUuJfHyZrRzWwfFYKkBmMgGFfbAsdDolMmyYIiLDRIirdgwWGOLlNsruwWyYizZhHIUZRbBrzlLEePzZMaqQAcCmyYpIiYZqAahHBXDdxbdDYnNyWAawcCwWUujJUQqEehHukKQfvVXxzZziINnBzZWyYwTtLlbCWwRtTdDNnrVvwgbuUssSSBaANneEtTxXSsdDEnNeGcCqCcQpMmbBzZuvEecvVEeGgLlCifFIrETtegGRfFrzmMvVgHNWwnsDFTtsyNnYSKkoyIgwWsSGfFiXxYFfrRtTbvgGOogGVNpPntTfFQqkKeESsKkZjJWFCcWwfZzcCDUWwIiHhFLyQTtUuqYNdDnBblhEeHlYZzyJPpGgwMmWQqjMUuhHmWwrReELTVvthHNnvzhHZVSsHIuUihWSshHNnwTtPKmMgGyYOjVvUyYBbUwWutGgTFMmfZUuzBbmMpPpPuaAoOpNWJjwUunxXPAUuacClLrZOosCcSEAazZeuUbBQqsSWQQgGfptTPBbFoOPmMpNNnBbbBnaAFfWJSxbBiIgmMGgGXsJHuUhjPpjAatQqTRnNCcLluUYyZzoONnWaAVTtvjJwrmoOMrSoOsQqRvOwWoMsGgSmNneEVAaRCOocdZzfFviIBQqmzZMYEeHhxXtyYNnTkKimMQBfFbcSsTtpPCxXDdBwWmMllJjiIpPLHzZuUvVOOnOorRHhNYyoqQuUCcgDXxdDdGorFfRqQjcCAVCdpPDcPpNniIKtiITCiIckfFTTtqdtTPpnNQqWwDmMntDdTeEoOVvmMNSsnNQfFPpplzZKkLgGjatTAoEeOJJjxXkPpEecplLPhHPppPKaAkAabByYCKTmMuyfLlmMtTFYtNOonTvcCBSsoObVtvVTIiBooObBVvuFfhHoOncCNUOYyuOoUuUeWwlKKkkLHhEpPpPeiIhHpPatqQTQqAnIOoiNjAahHDdJlbBMmLOlLoOoYVvGvVbbBBrMmWwDdRtjJTQqClLMmcYIiQqeNnaWwBbqQAlJjtThHLZOoGSsZzgzzZJjgHhGIiSsZBbdDhsSHGYGgyMmuULlJjNtTnapJjPWPHkKVptTPqQCcUQuUWwquJjvZlsSLGYkKhHQqPpJjlLyYnEeNzZCDdzvVMmyYEeAaqtHhtTIiJjTYJrkKRrRnNnNMmEewWHsShjwEejJcCZzEaAeMuZzaAyiIYAKwWROorNuUnkqrRQazfFZayWwdqJjQDGgjJfcmMoOCjJFrRlLGKkVvTtJjQqYygXxsSnLkBbKlnNumXxyYMnNqQmxgGkDdKRrXMmnNDdByYysSYmMWcCwpQIiXxzZqdklLKZdTcCLpPJjyYEbBelbBtDzrRfGgCcvVFuUyYpLlLtTQDdtyMmYxXpPtTHMmhiIOZUwaAzVvZQAaokKkVvKMOsDdYSspPYyyvPpnMmNVQNnqjJSASsapMmHhPRrLKksSLLbXxnNBRIireQtiITUPpjJuFfeEqtTmpPdaAHoOHSseESshheSsEmrRIBbTurRUpPtqzyYZbBGgQqQucCUMWZzwmvtTUuVDddDhAaHyYjvKkcCBIisSbXxhmMoOeEGzWwZgFfmMJjoTtGgFXUuJfFjaAxfyYycCaBmMPpqQbAOYnNyPpRFRrfTEetmMCVXxOeERrTKkiILlYypPXWwxtmBbuUmMswWSJBbYyjljXxgGJsSZxXnNzWwhHhHeEIiDvVdRrsPWoOwbBEepjJLlwhHizZISjjpPJCiHhIpPcnNKkuUCcDdIiekwWIiLzZkKlIJjCsSSscjBgGbRrJIizVCcviIvVEepPHhZzTtoOXxzNBoObpPnAaXxiIpPOXxgGbGgBoESseFTGOogLsSWyGgYyYwRniINrMIimlwWxXiIHhSsnaANmMCiIcteEiIcCaAerRbBfxAMmamMXFVRrvXxnNDdmMpPlUuLLUujJIilmMujJUkbBwWKJhuZzUHIiVvjjCcJEWTtpPsShqJjQJjiIZzHQqwaAbuUvKkhHhHVhHjJBXxbUcCeEQqZkWzZwKdDkKziSshHLlIEhbDdBbaYHhyABnNOonNIiNnXMmmMxMLlCzZDkKIYyfFinNbBvVvVdcCAaDdsSZwGgKkWzOOooAabBGgnNzQqbfFBHRruUVvhyuzDbBUuMmpPdZUnNQqYUuIiPpDdJjMmoOCcPpliIzDdZQMyYmjJuUoOqurRrRULKwWgGeEtTaEBbeHhAQquwNnimMIWUkZZYyIJfFjizGlLgJIuUijrRXxTDddDKkiItbOoBAaGgzOohHVrRnNZCcpPjJjJzDdvelLzpPZEDXxZzgGmMzZdZUQoOMmRiIdDrBbBbZdDpPgGeLlEzpEePoXxOqTtQqGEeOowNnNnQqiLlIzRKkrsSZqQyYWUePxXpEocCbgGEeuUzNnZmMmMBDbBfwWeEFZZzzYydDuUdmEKoOHhkWwRrwOoWSNnsMaAWlLwmeMIizFfMmQqwWZOUuAaMlLJoOnNjtTmsTttoOtvVTMOexPpXuUeEUwWulQqLEomTaAwWKkXfFxtTkKSEeEeUunBbUulLNcCrREerRuKnNqQknNEeRrSsUsSpPlLIJctTEepIiPZPpDdzCaAlLWgGlKqQkLwjUuyYgEeGuUYUhHTtuyntTIiIuUNniNwBbiIHhWESsehYyVLlvtvVOkKKkkTMmUutqQtTTqQbCcqQEeBMVvcCOocCmTRQqrtxpPlgGMtTOohHAaEevPpsSViIPpjvxXKAaIVLlvZzsSiSPpuvViIUoOjJsSOolUuXxLsJtkKslLiISTjTSkKsKktbByYkRrzBLlSsyYWmMQGgqwyYpPbZfFCsSXzZjFtTfJJjsSqQvVsSxVvSsXzIlLiZuUaAaLMmWwYyAGsSgaltTXxfvpWwPDQqsSwWdDdVamMxXAyYFSsdDfWwZzQqwiInNDdBbiItTsSKkOoyYvVGgJjHhKvTtVkKlLwWkNbBzZrSsrRdDRnKdVmMvhHFkKFfftTvVzSWwsUuvVZtTZTtmMzDGVmMvgsSghHkKpPdDwWGkMKkrRmpPihHJjIvVKFtYyTgGvnNVzZfYyIicCoiIDnNLUuldNnEUuMmefkQqAaKFaAgyyjJYCRrlLcYGgGqhHQOIjJfdDFiyYGDdeEGgoCcOgCcSsRjJwWoYyyYUuAEeDSAasSsaANnLldjJXxbBpEePxzZXTsfFStLuUcViIRrBbvCaAlJjqlLQdDaQKmMkBbpPBbIicCOoDLlQqjVvnNJWwdRrqgGJJjjLXxdDDdlXHhiIxZzPpLlSsELlegZzGpPHhjJRrOeGgEJjDbwWYFfysSBdU diff --git a/2018/day07/day07.ss b/2018/day07/day07.ss new file mode 100644 index 0000000..839128c --- /dev/null +++ b/2018/day07/day07.ss @@ -0,0 +1,35 @@ +(import :gerbil/gambit/ports) +(import :std/iter) +(import :std/pregexp) +(import :std/srfi/1) +(import :std/sort) + +(export main) + +(def (no-incoming? edges m) + (not (member m (map cadr edges)))) + +(def (find-no-incoming edges) + (sort + (filter (lambda (m) (no-incoming? edges m)) (delete-duplicates (apply append edges))) + charlist s))) + (cdr (pregexp-match "Step (.) must be finished before step (.) can begin." e)))) + (call-with-input-file "input.txt" (lambda (p) (read-all p read-line))))) + (displayln (list->string (topological-sort edges)))) diff --git a/2018/day07/input.txt b/2018/day07/input.txt new file mode 100644 index 0000000..41e50b9 --- /dev/null +++ b/2018/day07/input.txt @@ -0,0 +1,101 @@ +Step C must be finished before step P can begin. +Step V must be finished before step Q can begin. +Step T must be finished before step X can begin. +Step B must be finished before step U can begin. +Step Z must be finished before step O can begin. +Step P must be finished before step I can begin. +Step D must be finished before step G can begin. +Step A must be finished before step Y can begin. +Step R must be finished before step O can begin. +Step J must be finished before step E can begin. +Step N must be finished before step S can begin. +Step X must be finished before step H can begin. +Step F must be finished before step L can begin. +Step S must be finished before step I can begin. +Step W must be finished before step Q can begin. +Step H must be finished before step K can begin. +Step K must be finished before step Q can begin. +Step E must be finished before step L can begin. +Step Q must be finished before step O can begin. +Step U must be finished before step G can begin. +Step L must be finished before step O can begin. +Step Y must be finished before step G can begin. +Step G must be finished before step I can begin. +Step M must be finished before step I can begin. +Step I must be finished before step O can begin. +Step A must be finished before step N can begin. +Step H must be finished before step O can begin. +Step T must be finished before step O can begin. +Step H must be finished before step U can begin. +Step A must be finished before step I can begin. +Step B must be finished before step R can begin. +Step V must be finished before step T can begin. +Step H must be finished before step M can begin. +Step C must be finished before step A can begin. +Step B must be finished before step G can begin. +Step L must be finished before step Y can begin. +Step T must be finished before step J can begin. +Step A must be finished before step R can begin. +Step X must be finished before step L can begin. +Step B must be finished before step L can begin. +Step A must be finished before step F can begin. +Step K must be finished before step O can begin. +Step W must be finished before step M can begin. +Step Z must be finished before step N can begin. +Step Z must be finished before step S can begin. +Step R must be finished before step K can begin. +Step Q must be finished before step L can begin. +Step G must be finished before step O can begin. +Step F must be finished before step Y can begin. +Step V must be finished before step H can begin. +Step E must be finished before step I can begin. +Step W must be finished before step Y can begin. +Step U must be finished before step I can begin. +Step F must be finished before step K can begin. +Step M must be finished before step O can begin. +Step Z must be finished before step H can begin. +Step X must be finished before step S can begin. +Step J must be finished before step O can begin. +Step B must be finished before step I can begin. +Step F must be finished before step H can begin. +Step D must be finished before step U can begin. +Step E must be finished before step M can begin. +Step Z must be finished before step X can begin. +Step P must be finished before step L can begin. +Step W must be finished before step H can begin. +Step C must be finished before step D can begin. +Step A must be finished before step X can begin. +Step Q must be finished before step I can begin. +Step R must be finished before step Y can begin. +Step B must be finished before step A can begin. +Step N must be finished before step L can begin. +Step H must be finished before step G can begin. +Step Y must be finished before step M can begin. +Step L must be finished before step G can begin. +Step G must be finished before step M can begin. +Step Z must be finished before step R can begin. +Step S must be finished before step Q can begin. +Step P must be finished before step J can begin. +Step V must be finished before step J can begin. +Step J must be finished before step I can begin. +Step J must be finished before step X can begin. +Step W must be finished before step O can begin. +Step B must be finished before step F can begin. +Step R must be finished before step M can begin. +Step V must be finished before step S can begin. +Step H must be finished before step E can begin. +Step E must be finished before step U can begin. +Step R must be finished before step W can begin. +Step X must be finished before step Q can begin. +Step N must be finished before step G can begin. +Step T must be finished before step I can begin. +Step L must be finished before step M can begin. +Step H must be finished before step I can begin. +Step U must be finished before step M can begin. +Step C must be finished before step H can begin. +Step P must be finished before step H can begin. +Step J must be finished before step F can begin. +Step A must be finished before step O can begin. +Step X must be finished before step M can begin. +Step H must be finished before step L can begin. +Step W must be finished before step K can begin. diff --git a/2018/day08/day08.ss b/2018/day08/day08.ss new file mode 100644 index 0000000..724de74 --- /dev/null +++ b/2018/day08/day08.ss @@ -0,0 +1,46 @@ +(import :gerbil/gambit/ports) +(import :std/pregexp) +(import :std/srfi/1) +(import :std/iter) + +(export main) + +(defstruct node (children metadata)) + +(def (parse-node lst) + (match lst + ([m n . rest] + (let*-values (((children rest) (parse-children rest m)) + ((metadata rest) (split-at rest n))) + (values (make-node children metadata) rest))))) + +(def (parse-children lst m) + (if (= m 0) + (values [] lst) + (let*-values (((children rest) (parse-children lst (1- m))) + ((child rest) (parse-node rest))) + (values (cons child children) rest)))) + +(def (dfs node f g) + (if (null? (node-children node)) + (f (node-metadata node)) + (g (cons (f (node-metadata node)) + (map (lambda (n) (dfs n f g)) (node-children node)))))) + +(def (node-value node) + (if (null? (node-children node)) + (apply + (node-metadata node)) + (apply + (for/collect ((m (node-metadata node))) + (if (and (> m 0) (< (1- m) (length (node-children node)))) + (node-value (list-ref (reverse (node-children node)) (1- m))) + 0))))) + +(def (main . args) + (def example-lst [2 3 0 3 10 11 12 1 1 0 1 99 2 1 1 2]) + (define-values (example _) (parse-node example-lst)) + (displayln (dfs example (lambda (m) (apply + m)) (lambda (m) (apply + m)))) + (displayln (node-value example)) + (def lst (map string->number (pregexp-split " " (call-with-input-file "input.txt" read-line)))) + (define-values (tree _) (parse-node lst)) + (displayln (dfs tree (lambda (m) (apply + m)) (lambda (m) (apply + m)))) + (displayln (node-value tree))) diff --git a/2018/day08/input.txt b/2018/day08/input.txt new file mode 100644 index 0000000..227ab5f --- /dev/null +++ b/2018/day08/input.txt @@ -0,0 +1 @@ +9 11 6 2 4 5 3 5 1 7 0 9 2 9 5 7 1 6 1 2 6 2 1 2 1 3 3 1 1 7 0 9 7 7 9 4 9 1 5 2 1 1 1 2 1 1 1 3 1 5 0 11 4 3 8 3 8 1 1 4 1 8 1 2 3 2 2 1 4 1 1 3 3 3 6 1 5 0 9 7 4 8 8 9 1 1 6 6 3 1 3 2 1 1 9 0 9 3 7 9 1 5 7 1 1 6 3 1 2 1 3 2 2 3 1 1 7 0 8 9 8 7 5 1 1 1 4 2 2 3 3 1 2 3 5 3 3 4 2 4 3 6 1 6 0 10 9 1 9 4 5 4 2 9 4 7 3 2 1 1 1 2 1 7 0 7 3 7 3 5 3 1 2 1 1 2 1 2 3 2 1 7 0 9 2 1 8 1 8 2 5 5 9 1 3 1 1 2 2 3 5 1 4 2 5 2 3 7 1 8 0 10 9 7 2 4 2 9 9 1 8 2 1 2 3 3 2 1 3 1 1 9 0 8 3 9 6 1 7 7 2 6 3 3 1 1 3 1 1 1 1 1 8 0 9 9 3 1 2 8 7 6 3 7 1 3 2 3 1 1 2 1 4 3 4 2 3 3 2 2 2 2 3 3 5 3 3 6 1 8 0 8 4 9 8 1 2 9 6 1 3 2 3 1 1 1 2 3 1 8 0 6 5 7 6 9 6 1 2 2 3 1 1 2 1 1 1 9 0 10 1 7 1 8 9 8 1 8 4 4 2 1 2 1 1 1 1 2 3 3 5 2 2 3 1 3 7 1 9 0 10 2 5 4 1 5 8 1 7 9 9 1 3 1 3 2 3 3 1 2 1 5 0 8 6 4 6 5 2 1 8 7 1 3 3 1 2 1 8 0 9 7 5 4 3 2 8 8 1 8 2 1 1 3 2 1 2 2 2 2 4 3 1 4 4 3 4 1 7 0 9 5 9 8 5 3 5 1 1 9 3 3 1 2 2 1 1 1 9 0 8 9 4 4 9 1 6 6 1 1 1 2 2 3 3 3 1 1 1 6 0 7 9 2 4 1 3 8 5 1 1 3 3 1 3 1 2 1 3 3 7 1 9 0 7 3 7 7 9 5 1 2 3 3 1 2 3 1 1 1 2 1 5 0 7 7 5 1 6 4 4 5 1 2 1 1 1 1 8 0 9 1 3 6 9 8 1 9 9 8 3 3 2 1 1 1 3 3 3 4 3 3 1 2 1 3 6 1 7 0 7 5 7 6 8 7 1 3 2 3 1 1 1 2 3 1 5 0 6 2 2 8 5 1 8 1 3 1 1 3 1 8 0 7 2 7 1 1 7 9 1 3 2 3 1 3 1 1 1 1 4 3 1 5 3 3 7 2 4 4 3 4 1 8 0 7 9 4 1 7 2 8 2 2 3 3 1 2 1 1 2 1 8 0 6 4 6 7 2 5 1 1 3 2 2 1 2 3 1 1 8 0 11 4 5 1 8 1 9 1 2 5 7 7 2 2 2 2 2 1 2 2 3 2 2 3 3 4 1 6 0 9 5 3 6 3 1 9 1 2 4 2 2 1 1 3 2 1 7 0 7 6 3 7 1 1 8 9 2 1 2 2 3 2 2 1 9 0 9 4 7 1 1 7 8 5 2 6 3 2 1 3 1 3 3 1 2 5 2 4 4 3 4 1 9 0 11 2 2 1 4 7 1 2 1 7 3 1 1 2 1 1 2 2 1 1 2 1 5 0 6 4 1 4 1 3 3 3 1 2 2 3 1 9 0 6 2 1 7 2 5 1 3 3 2 1 1 1 1 3 2 5 1 1 1 3 4 1 6 0 11 8 1 1 5 4 4 8 6 6 9 2 3 1 1 2 1 1 1 9 0 9 9 1 5 6 7 1 1 9 1 3 1 1 3 1 2 2 1 3 1 7 0 8 3 6 2 4 5 5 7 1 3 1 1 3 2 3 1 5 1 5 1 2 3 1 1 5 3 3 4 1 9 0 8 4 6 2 4 5 1 6 5 2 3 3 1 1 3 1 2 3 1 8 0 11 5 4 1 1 8 5 8 6 4 3 7 2 1 1 3 3 3 3 3 1 9 0 9 3 6 8 6 5 5 4 1 4 2 1 3 3 2 2 2 1 3 1 3 2 4 3 7 1 9 0 9 2 4 5 3 6 9 4 1 6 1 3 1 1 2 2 1 1 3 1 9 0 7 4 1 5 9 5 9 8 3 2 2 1 2 3 3 3 2 1 9 0 11 3 2 1 2 1 6 1 5 3 8 8 3 1 3 1 3 2 1 1 2 3 5 3 5 5 2 2 3 5 1 8 0 9 9 1 2 2 4 1 1 6 5 1 1 2 3 2 2 1 2 1 9 0 8 9 7 2 5 4 8 8 1 1 1 1 1 1 2 2 1 2 1 6 0 7 2 4 4 1 7 3 2 1 2 2 1 1 3 2 5 2 4 2 3 7 1 7 0 6 9 8 7 3 5 1 1 2 1 3 2 2 3 1 7 0 10 6 1 4 5 5 5 9 8 2 5 1 3 1 3 1 1 1 1 6 0 8 4 7 1 5 2 5 3 6 3 3 2 1 2 2 2 3 2 2 5 2 3 3 4 1 8 0 9 4 6 2 3 1 7 4 1 3 1 3 1 1 1 2 1 2 1 7 0 10 7 1 5 5 3 1 3 8 9 9 1 1 3 3 1 2 1 1 5 0 9 4 5 2 8 5 5 4 1 1 3 1 1 3 1 2 3 3 4 1 2 5 5 4 3 5 1 9 0 11 9 7 6 9 2 1 3 3 5 1 1 1 1 3 2 1 3 1 1 2 1 6 0 10 8 2 5 1 5 7 3 2 5 5 2 1 2 3 2 1 1 6 0 10 1 5 6 2 6 5 7 7 2 9 1 2 1 2 1 1 1 4 2 4 4 3 6 1 8 0 11 7 3 3 2 2 3 7 3 1 8 5 1 3 3 1 2 1 2 1 1 5 0 10 7 1 8 6 7 6 4 6 1 3 3 1 1 3 3 1 8 0 8 3 5 7 8 5 3 1 7 2 2 2 3 3 1 3 1 2 1 1 5 3 4 3 7 1 6 0 7 2 1 7 3 7 3 8 3 1 3 3 1 2 1 8 0 11 2 6 7 3 6 1 1 6 3 5 1 1 1 1 1 2 2 2 2 1 9 0 11 1 4 3 2 3 9 9 9 4 8 6 2 1 2 2 1 1 1 1 1 4 3 5 3 2 1 4 3 4 1 9 0 8 9 1 4 8 3 2 6 7 1 1 1 2 1 2 3 1 2 1 5 0 6 9 5 6 1 1 4 1 1 1 1 2 1 8 0 8 7 1 1 1 6 9 7 4 3 2 1 2 2 1 1 3 3 3 4 3 3 7 1 7 0 7 1 7 4 4 7 5 7 1 2 2 1 1 2 3 1 7 0 10 3 3 1 8 4 1 4 2 9 1 2 2 1 1 3 2 1 1 8 0 11 8 2 8 4 7 7 6 1 4 1 4 3 2 1 3 1 1 1 3 3 3 4 3 3 5 5 4 1 5 1 4 4 3 6 1 7 0 11 7 6 3 1 7 8 7 6 9 7 7 1 1 1 1 2 1 3 1 7 0 11 6 4 9 9 1 7 6 9 7 7 1 3 1 2 3 3 1 1 1 5 0 8 1 4 1 2 6 2 8 2 1 3 2 2 1 1 4 5 2 3 1 3 7 1 6 0 9 2 1 9 6 9 1 3 4 3 1 1 2 1 3 3 1 8 0 10 9 1 3 6 3 1 4 4 9 9 1 3 2 2 1 2 2 2 1 7 0 11 7 4 1 5 2 8 3 7 3 1 2 1 1 3 1 2 2 3 3 4 1 1 4 2 1 3 6 1 8 0 6 8 5 8 1 9 5 3 2 2 1 1 1 2 1 1 8 0 10 6 2 1 7 1 5 3 6 8 5 1 2 1 1 2 2 3 2 1 9 0 9 6 8 7 6 2 9 1 4 4 2 1 3 1 3 2 3 2 3 3 1 4 2 2 4 3 7 1 6 0 6 8 4 3 9 2 1 3 3 1 3 1 1 1 7 0 9 9 1 8 3 3 1 7 1 2 3 1 1 2 1 3 1 1 7 0 8 1 1 9 4 9 8 7 9 1 2 3 3 3 1 1 1 3 1 5 5 1 4 3 6 5 4 6 6 7 3 4 3 3 6 1 5 0 11 1 5 2 7 4 2 4 1 3 9 8 3 3 1 3 1 1 6 0 6 5 3 1 5 5 7 2 2 1 1 1 1 1 7 0 11 5 6 1 1 6 4 6 7 4 2 9 2 3 2 3 1 1 1 3 3 2 2 2 4 3 4 1 7 0 11 7 3 4 7 3 8 1 5 9 8 4 1 3 1 1 1 2 1 1 8 0 8 3 1 2 8 1 2 1 5 1 2 3 3 1 1 3 2 1 5 0 7 1 9 6 3 6 1 2 2 2 1 3 2 1 3 1 1 3 4 1 5 0 9 6 7 1 4 4 5 1 9 6 2 1 2 3 1 1 7 0 6 8 2 8 1 5 8 1 1 1 3 1 3 3 1 7 0 11 9 5 9 1 3 4 9 6 4 8 2 2 3 2 1 3 2 2 5 2 2 3 3 5 1 9 0 6 5 9 7 1 4 7 2 1 2 3 3 3 1 1 3 1 7 0 6 2 3 1 4 2 8 1 2 1 3 1 1 1 1 8 0 9 6 8 3 9 2 3 5 1 7 2 2 1 2 3 1 3 1 1 1 5 2 2 1 6 1 4 5 3 6 1 7 0 9 2 8 8 6 9 5 1 6 6 3 1 2 3 2 1 1 1 6 0 8 3 3 1 3 8 2 3 5 1 2 2 2 1 3 1 9 0 9 7 8 6 9 1 3 6 9 6 2 1 1 1 2 3 2 3 1 1 4 2 5 1 1 3 7 1 5 0 7 5 2 5 6 1 3 1 2 1 1 2 3 1 8 0 8 1 6 7 9 9 3 3 5 2 3 3 1 3 3 3 2 1 5 0 6 1 1 2 1 4 9 3 2 1 3 1 3 5 2 4 3 3 3 3 4 1 5 0 7 9 7 7 1 5 9 4 1 3 3 1 3 1 7 0 6 7 1 8 3 8 4 3 2 2 1 2 3 3 1 9 0 9 6 5 1 8 4 2 7 1 3 1 3 3 1 3 3 1 1 1 1 4 5 3 3 4 1 7 0 7 2 8 1 2 5 9 1 1 1 3 2 3 1 1 1 8 0 11 1 2 6 4 6 4 6 7 1 7 5 1 3 3 1 2 3 2 3 1 7 0 6 5 3 6 6 9 1 3 2 1 1 3 1 2 3 5 2 1 2 1 3 3 1 5 4 3 5 1 6 0 8 5 1 7 1 9 7 2 3 2 1 2 3 2 2 1 5 0 6 8 8 3 3 1 6 3 3 3 2 1 1 9 0 11 8 3 2 5 5 8 1 1 3 3 3 2 1 1 1 3 2 2 2 1 5 4 4 5 1 3 7 1 7 0 7 9 7 1 3 5 6 2 3 2 2 3 1 1 1 1 6 0 9 6 6 1 5 7 4 9 8 8 2 3 2 2 1 1 1 6 0 9 7 6 7 8 2 1 9 7 1 3 3 1 1 3 1 2 5 1 3 2 5 3 3 7 1 9 0 10 6 5 2 2 1 1 3 3 8 4 3 2 2 1 3 3 1 2 1 1 8 0 10 2 2 3 1 9 8 8 1 8 6 2 2 1 1 2 3 1 3 1 8 0 6 6 1 2 6 6 3 2 2 2 3 1 2 1 1 5 2 3 1 5 4 1 3 4 1 9 0 7 5 3 8 4 7 1 8 2 2 2 3 2 2 1 3 1 1 6 0 11 5 1 7 2 1 5 2 8 2 2 7 3 3 1 1 1 1 1 5 0 6 1 1 3 5 5 6 3 1 3 1 3 2 5 4 4 3 5 1 6 0 11 2 4 8 1 3 6 5 9 5 9 7 2 2 1 3 3 1 1 8 0 10 8 5 7 3 8 3 3 2 1 2 2 2 1 2 2 3 1 1 1 5 0 6 5 8 5 1 1 2 1 1 3 2 3 5 5 2 1 3 5 4 5 3 5 3 3 6 1 6 0 9 7 8 1 6 6 2 7 2 2 3 1 2 1 1 2 1 5 0 11 3 1 8 4 4 2 6 7 4 9 1 1 2 1 3 1 1 7 0 11 8 7 1 2 5 3 7 8 7 7 5 2 2 1 1 1 2 2 4 5 1 1 4 5 3 7 1 8 0 10 4 5 9 3 3 8 1 1 6 8 2 2 2 2 2 1 2 1 1 7 0 8 3 6 1 2 2 1 4 1 3 3 1 3 1 3 1 1 5 0 9 7 3 1 2 1 9 8 6 1 2 3 1 1 3 5 2 4 2 2 4 1 3 5 1 8 0 9 1 9 3 4 9 4 9 1 9 3 3 1 3 3 1 1 3 1 7 0 10 3 9 9 1 2 2 9 3 6 9 2 2 1 1 1 3 1 1 5 0 6 1 9 6 1 1 7 1 2 3 1 1 4 1 2 4 3 3 5 1 9 0 11 2 3 1 9 3 3 9 3 8 5 6 1 2 2 1 3 1 3 1 2 1 5 0 9 7 1 1 1 6 2 3 7 1 1 2 1 3 1 1 7 0 7 7 5 6 3 1 5 9 1 3 1 2 1 2 1 4 1 4 1 2 3 7 1 8 0 7 9 1 3 7 9 1 2 1 1 1 1 1 1 2 1 1 7 0 7 1 1 1 6 5 2 4 3 2 3 3 1 3 2 1 7 0 8 4 5 3 8 6 1 8 9 1 1 3 3 1 1 3 2 5 1 3 4 3 2 4 4 7 5 3 3 4 1 7 0 11 5 8 6 8 1 3 9 5 7 3 3 2 3 1 2 1 2 2 1 9 0 10 5 2 3 5 2 1 5 7 6 6 2 1 2 3 1 3 1 1 3 1 6 0 6 9 7 3 5 1 9 1 1 2 1 1 3 5 5 1 3 3 5 1 9 0 11 1 8 3 6 3 1 6 2 8 9 4 1 3 3 3 3 1 2 1 3 1 9 0 9 2 6 8 7 9 6 6 1 9 2 2 1 3 3 2 2 3 1 1 6 0 8 6 4 2 8 3 1 2 6 3 2 1 2 1 1 4 2 4 5 2 3 7 1 8 0 9 6 1 2 2 1 9 6 8 7 1 2 1 1 2 1 1 3 1 5 0 9 7 1 7 8 8 3 4 2 1 2 1 3 3 1 1 9 0 11 2 1 3 5 2 2 5 4 7 2 2 2 1 2 1 1 3 2 3 3 2 4 5 1 4 3 2 3 5 1 9 0 6 4 7 5 1 1 3 1 3 2 1 3 3 1 1 2 1 8 0 8 3 4 8 1 1 6 8 7 1 2 1 1 3 2 1 2 1 7 0 11 3 5 4 9 7 2 1 3 6 9 1 2 2 2 1 2 1 1 3 2 3 5 4 3 5 1 9 0 9 4 6 2 1 6 8 4 1 1 1 2 1 1 3 3 1 3 1 1 6 0 8 6 7 5 1 4 9 1 6 3 1 3 1 1 3 1 9 0 10 2 7 2 6 6 1 1 1 6 3 2 2 3 1 1 3 3 2 2 3 3 5 3 3 4 1 7 4 4 3 6 1 9 0 11 1 9 2 6 7 6 8 1 1 4 2 1 1 1 2 2 2 1 1 1 1 5 0 11 8 4 1 9 2 4 8 8 5 9 2 1 1 2 3 1 1 8 0 11 7 1 7 2 3 5 3 4 5 3 1 1 1 3 3 1 1 2 2 2 2 4 2 2 3 3 4 1 6 0 8 1 9 9 7 3 2 3 1 1 3 1 2 2 1 1 5 0 11 1 8 1 4 4 2 2 1 1 1 9 2 2 1 2 1 1 6 0 10 5 8 2 6 9 9 2 5 1 5 1 3 2 1 2 3 2 4 5 4 3 4 1 7 0 11 2 7 8 7 8 7 9 8 3 1 7 1 2 3 3 2 1 1 1 8 0 7 4 6 9 4 3 1 2 1 1 1 2 1 1 1 3 1 5 0 7 1 1 8 6 2 5 8 1 3 3 2 3 4 3 1 3 3 4 1 5 0 7 1 7 6 3 6 9 1 2 1 2 3 2 1 7 0 7 3 1 7 1 4 2 2 2 1 1 2 1 3 1 1 5 0 7 6 5 4 1 9 1 6 2 1 2 2 2 1 2 3 4 2 3 6 5 4 3 3 6 1 7 0 6 1 6 6 2 7 5 3 2 3 1 3 2 1 1 7 0 9 4 3 7 9 8 1 1 3 5 3 3 3 2 2 1 1 1 6 0 10 4 9 2 2 5 8 8 9 1 1 1 3 3 2 1 3 1 2 4 2 3 1 3 5 1 8 0 10 8 3 2 1 2 1 4 7 8 2 2 3 2 2 1 1 1 3 1 6 0 8 8 8 9 2 9 1 8 5 1 1 2 3 1 1 1 6 0 10 4 4 8 1 2 5 1 5 9 2 1 1 2 1 2 1 3 2 2 2 2 3 6 1 5 0 11 8 7 5 1 1 9 2 3 5 3 1 2 3 1 1 3 1 9 0 7 8 5 6 1 3 8 8 1 2 2 1 2 2 2 1 2 1 8 0 9 1 7 3 7 9 3 4 9 1 1 1 1 1 2 1 1 1 2 1 5 1 1 4 3 5 1 9 0 9 8 8 4 1 1 1 2 7 5 2 1 3 1 3 3 3 1 1 1 5 0 7 5 9 3 5 1 5 9 3 1 2 1 3 1 7 0 8 4 7 1 8 3 9 8 1 3 3 2 2 3 2 1 4 3 2 3 3 1 2 1 2 6 4 7 3 5 4 3 6 1 5 0 7 5 1 4 4 1 7 3 3 1 1 3 2 1 6 0 11 6 7 5 1 9 8 4 9 2 4 7 1 1 1 1 3 2 1 9 0 9 8 2 5 1 6 9 1 2 5 1 1 1 1 1 2 1 2 2 1 2 3 3 3 3 3 7 1 5 0 7 3 9 9 1 9 3 1 2 1 3 1 3 1 7 0 6 6 1 3 7 1 8 1 1 2 2 1 2 1 1 7 0 11 7 9 6 6 5 1 7 2 9 8 1 2 2 1 3 3 1 3 4 3 4 3 2 5 5 3 7 1 5 0 10 4 9 4 1 5 8 4 3 1 7 1 1 2 1 1 1 8 0 10 4 8 2 5 8 5 6 9 1 3 1 3 1 1 2 3 1 2 1 5 0 6 1 8 9 1 8 6 1 1 1 1 1 2 4 1 3 4 1 3 3 7 1 8 0 7 5 1 7 1 4 1 5 1 1 1 1 1 3 1 3 1 7 0 6 2 9 9 1 4 7 1 2 2 1 1 2 1 1 5 0 11 5 6 5 7 1 2 5 7 6 5 9 1 1 1 3 3 3 3 2 4 1 3 3 3 5 1 5 0 6 1 6 7 1 4 3 1 1 2 3 1 1 8 0 6 1 4 3 2 6 2 3 1 1 1 2 3 1 3 1 8 0 11 2 1 3 5 1 5 9 8 9 5 5 2 1 2 2 3 2 1 1 5 4 2 2 3 3 3 5 2 5 5 3 5 1 8 0 9 6 2 3 6 1 5 7 1 8 1 1 2 2 3 1 3 3 1 6 0 11 9 1 3 1 8 1 6 4 8 5 1 1 2 1 1 1 3 1 5 0 7 2 6 1 7 7 5 7 2 3 1 1 2 5 4 5 3 1 3 4 1 6 0 9 7 9 5 1 3 2 1 5 7 1 3 1 3 3 1 1 5 0 10 1 7 6 7 7 5 5 9 7 9 2 1 1 1 1 1 8 0 7 1 7 8 9 1 2 5 1 2 1 1 2 1 2 1 1 1 4 5 3 5 1 9 0 6 5 1 7 3 8 5 3 3 2 1 3 1 1 3 1 1 7 0 9 4 1 8 3 8 1 4 7 4 2 1 1 2 1 1 2 1 7 0 11 7 3 1 2 9 6 3 1 6 9 1 3 1 2 3 3 1 2 3 2 2 4 2 3 4 1 7 0 10 4 5 9 1 9 1 1 8 5 6 3 3 2 3 2 1 1 1 5 0 9 2 8 6 7 5 1 3 2 8 2 1 1 3 3 1 8 0 11 7 4 9 2 9 1 8 4 7 6 5 3 1 1 1 1 2 1 1 1 1 3 4 3 4 1 9 0 8 5 3 5 4 1 1 3 7 1 2 2 1 3 1 2 3 3 1 6 0 9 6 2 5 3 5 4 1 5 8 1 2 3 2 1 1 1 5 0 11 9 4 5 7 6 3 1 1 1 2 3 2 2 1 1 1 2 3 1 4 1 1 3 3 4 5 3 3 5 1 8 0 11 2 2 9 9 7 6 1 8 8 2 9 2 1 2 2 1 1 1 1 1 9 0 11 6 1 8 4 2 6 7 1 3 5 3 1 3 3 1 2 1 2 1 3 1 6 0 8 9 6 3 2 1 8 8 2 1 1 1 2 3 1 3 3 5 5 3 3 4 1 8 0 9 6 2 3 7 7 4 8 1 1 3 3 1 3 1 2 3 3 1 6 0 6 1 1 2 2 1 1 1 1 3 3 1 1 1 6 0 11 7 9 7 2 2 1 4 9 4 8 2 2 1 3 1 3 3 4 1 1 3 3 4 1 5 0 8 4 1 2 5 2 1 8 5 2 1 3 2 1 1 6 0 10 9 1 1 2 2 5 5 8 4 5 3 1 3 2 3 1 1 8 0 10 3 6 1 7 4 3 2 8 7 4 3 3 1 1 1 1 1 3 1 2 4 5 3 7 1 8 0 9 3 7 5 5 9 8 1 4 8 1 3 1 1 2 3 2 1 1 7 0 7 8 5 7 1 2 3 7 1 3 1 1 3 3 1 1 9 0 7 1 7 9 7 1 9 9 1 1 2 1 1 2 1 1 2 4 3 2 1 3 3 1 3 6 1 7 0 7 3 7 1 3 4 3 6 3 2 1 1 1 1 2 1 9 0 11 2 7 9 3 1 8 3 1 9 7 7 1 1 3 1 1 1 3 2 3 1 5 0 9 1 9 8 4 2 6 9 2 7 1 3 3 1 1 3 2 2 1 3 2 3 1 2 4 4 3 6 1 7 0 7 9 2 7 6 4 7 1 3 2 1 1 2 2 1 1 7 0 9 1 3 7 7 5 9 9 4 2 3 3 2 3 1 3 1 1 5 0 8 6 9 5 3 6 4 1 8 1 1 2 1 3 2 2 1 3 4 3 3 4 1 9 0 8 1 2 2 9 6 6 2 6 3 2 3 3 3 2 1 1 3 1 9 0 9 6 3 4 8 7 1 6 1 4 3 2 1 2 2 1 3 3 3 1 5 0 10 7 9 5 2 8 9 1 1 6 9 3 3 2 2 1 4 5 2 5 3 7 1 7 0 8 1 7 1 6 4 9 4 3 1 3 3 2 3 2 2 1 6 0 10 9 2 1 2 6 2 8 6 1 5 1 1 2 3 1 2 1 8 0 7 4 2 6 7 4 4 1 1 3 3 2 3 1 1 1 4 3 3 4 5 5 2 3 4 1 8 0 10 6 7 8 6 3 1 7 5 3 9 2 2 2 1 2 1 3 2 1 6 0 10 5 6 8 6 4 1 8 3 5 2 2 2 3 2 1 3 1 6 0 11 7 1 1 1 1 2 4 3 6 6 4 3 2 1 1 3 3 5 2 2 5 4 4 2 2 4 4 3 6 1 5 0 10 1 4 5 2 3 8 8 6 1 9 1 3 2 3 1 1 7 0 9 2 7 5 1 6 7 7 9 2 1 2 3 3 2 1 1 1 5 0 6 9 2 7 7 1 6 2 1 2 2 1 2 1 5 5 3 1 3 6 1 7 0 8 1 1 7 8 2 3 7 5 1 3 2 3 1 2 2 1 7 0 6 5 3 8 5 1 1 1 2 2 2 2 1 2 1 7 0 8 5 1 1 4 6 1 1 8 2 1 1 2 1 2 1 3 3 1 2 1 1 3 4 1 8 0 7 1 7 3 4 9 3 3 3 2 1 2 1 1 3 3 1 8 0 7 4 3 5 1 2 9 1 2 1 3 2 3 1 1 1 1 6 0 11 5 9 7 9 8 1 1 9 6 9 4 3 3 2 3 1 3 5 2 5 3 3 7 1 9 0 8 3 1 8 4 9 3 8 4 1 1 3 2 1 3 1 1 3 1 9 0 10 9 8 5 6 8 2 6 8 1 3 2 3 1 2 1 2 1 1 2 1 9 0 7 8 7 8 4 5 1 8 2 3 1 2 1 2 3 1 1 1 3 3 5 5 3 3 4 3 2 1 5 5 3 6 1 6 0 11 1 6 3 5 2 9 5 9 3 9 6 1 2 3 3 1 3 1 9 0 10 1 5 1 5 1 8 3 7 4 9 3 2 3 1 1 3 1 2 2 1 8 0 9 5 8 8 6 1 7 4 8 6 1 1 1 2 1 3 2 3 1 3 2 4 2 3 3 5 1 7 0 9 3 6 3 4 1 4 1 9 7 3 1 2 1 1 2 1 1 6 0 7 1 8 2 8 3 5 8 2 1 2 1 1 3 1 5 0 6 4 9 6 1 2 2 3 3 1 3 1 3 3 1 1 5 3 7 1 6 0 8 5 9 6 8 7 7 4 1 3 2 1 2 3 2 1 6 0 7 1 4 1 5 6 1 9 2 1 2 3 3 1 1 8 0 11 6 6 2 7 1 6 7 4 7 5 6 1 2 3 1 2 1 1 3 2 2 2 1 1 1 4 3 7 1 8 0 7 5 1 3 2 9 5 5 1 3 3 1 2 3 1 1 1 9 0 10 1 9 5 8 6 5 9 2 3 5 1 3 3 3 3 3 3 1 1 1 5 0 6 6 6 2 7 1 3 2 3 1 1 3 3 4 5 4 5 3 4 3 4 1 6 0 10 8 2 1 7 5 3 4 3 7 1 1 3 2 2 3 2 1 6 0 10 2 3 4 1 2 2 9 8 5 6 1 1 1 3 1 3 1 8 0 8 8 1 1 8 1 8 6 8 3 3 1 3 1 1 2 3 4 1 2 1 7 5 7 2 6 5 3 3 4 1 6 0 10 3 7 3 1 5 5 5 8 7 7 1 2 1 3 3 2 1 9 0 11 4 6 9 8 1 2 1 4 9 6 8 1 2 3 3 3 2 1 3 3 1 8 0 11 1 9 6 4 3 6 5 4 7 7 1 3 2 1 3 2 2 2 1 4 1 1 3 3 5 1 6 0 8 5 8 1 8 3 8 1 3 3 1 2 1 3 1 1 9 0 7 1 6 1 4 6 5 8 1 1 3 1 1 2 3 3 1 1 6 0 7 5 9 8 9 8 1 8 1 1 1 2 1 1 4 5 4 2 1 3 5 1 7 0 7 3 6 1 9 6 4 6 2 1 1 3 1 1 1 1 7 0 8 6 5 6 2 5 5 1 3 2 2 3 3 3 1 3 1 8 0 8 3 9 7 5 1 2 8 3 1 1 3 3 2 3 2 3 1 3 1 4 1 3 7 1 6 0 6 1 9 8 1 8 3 1 1 3 1 2 1 1 8 0 6 1 8 7 5 2 2 3 3 3 3 1 3 1 2 1 9 0 7 4 1 2 9 1 4 6 2 2 2 3 1 2 1 2 2 4 1 5 3 1 3 1 3 7 1 9 0 11 5 4 7 4 1 6 2 1 2 9 4 2 1 1 1 3 1 2 1 3 1 7 0 10 3 5 1 3 5 1 5 3 1 4 1 1 1 3 2 2 1 1 5 0 10 2 6 5 7 7 2 3 1 2 9 1 3 1 3 2 4 2 5 1 3 2 3 7 3 3 1 6 4 6 2 4 3 3 6 1 8 0 10 1 6 9 9 1 2 5 9 1 4 2 2 1 1 1 1 3 3 1 8 0 10 3 3 2 6 1 6 6 9 4 9 1 2 3 1 1 1 1 1 1 5 0 6 9 8 2 9 1 1 3 3 2 1 2 2 4 1 3 1 1 3 6 1 9 0 8 1 7 5 3 8 6 1 4 1 1 1 1 2 1 2 3 2 1 5 0 10 1 9 2 4 8 2 3 1 4 3 1 1 2 3 2 1 6 0 7 7 6 1 5 4 2 9 1 1 3 1 3 2 1 2 1 5 3 1 3 4 1 6 0 6 7 1 6 9 1 5 3 3 3 1 2 2 1 6 0 8 8 2 1 9 8 2 9 9 2 1 3 1 1 1 1 5 0 10 1 5 1 5 1 3 2 8 1 3 1 1 1 1 3 2 5 3 3 3 7 1 8 0 8 3 1 6 8 5 1 8 2 2 3 2 1 2 3 2 2 1 5 0 8 1 6 7 3 1 5 7 9 1 2 2 1 2 1 7 0 11 6 8 4 7 9 1 1 4 8 9 6 1 1 3 2 2 2 3 1 2 3 1 1 2 3 3 4 1 5 3 3 6 1 7 0 9 5 1 1 9 1 1 9 1 5 2 2 2 1 3 3 3 1 6 0 6 4 6 4 1 3 6 1 2 1 1 1 1 1 8 0 6 1 5 3 3 7 1 1 1 2 1 1 3 2 3 2 3 3 5 3 1 3 4 1 9 0 7 3 1 6 9 3 5 9 2 2 2 1 1 2 3 3 2 1 8 0 8 4 9 6 1 7 8 1 8 2 2 2 3 3 2 1 2 1 7 0 11 3 7 3 1 5 7 3 7 8 3 5 2 1 1 1 3 2 1 2 3 5 3 3 6 1 8 0 7 5 1 9 3 6 7 8 1 2 3 1 1 1 2 1 1 5 0 8 4 1 3 6 1 7 4 9 2 1 2 1 2 1 6 0 8 1 4 7 9 7 9 1 6 3 2 3 3 2 1 2 2 1 1 3 3 3 4 1 6 0 8 4 9 9 4 6 3 6 1 1 2 1 2 1 3 1 8 0 11 8 1 7 1 8 5 4 7 7 4 2 2 1 2 1 3 3 3 2 1 8 0 8 2 6 2 9 1 6 1 2 1 1 2 2 1 1 2 1 2 5 4 3 3 4 1 7 0 11 1 6 1 5 3 1 5 7 1 8 5 2 1 3 3 3 2 3 1 7 0 10 7 3 1 1 1 8 4 9 9 3 1 3 1 3 3 2 1 1 8 0 8 5 7 2 2 3 4 5 1 2 2 2 1 2 2 1 2 4 2 1 5 1 4 4 4 4 3 4 1 9 0 7 1 8 4 7 9 1 5 3 2 3 1 2 2 1 1 3 1 6 0 8 1 9 8 9 6 6 5 6 3 3 1 2 1 3 1 5 0 7 1 9 8 3 5 3 9 1 2 3 1 2 4 1 2 3 3 7 1 7 0 7 6 1 1 7 7 7 2 1 1 1 1 2 3 1 1 8 0 8 1 6 4 4 2 9 8 6 1 2 1 2 1 1 3 2 1 7 0 6 6 1 6 5 6 6 1 1 2 2 3 1 2 1 5 1 5 2 3 2 3 6 1 7 0 8 7 8 7 4 1 3 5 1 1 1 2 2 3 3 1 1 6 0 7 1 1 9 9 6 4 6 2 1 3 1 1 1 1 5 0 11 2 1 3 2 5 8 6 1 9 1 1 3 3 1 1 1 1 3 1 3 5 3 3 7 1 5 0 8 5 9 1 1 4 5 9 3 2 1 3 3 1 1 8 0 11 4 1 5 6 4 3 3 6 2 4 2 2 2 3 1 1 3 2 1 1 5 0 6 3 5 1 2 1 8 1 1 1 2 2 2 4 1 3 1 1 2 3 5 1 2 5 3 3 5 1 8 0 6 1 6 4 1 9 6 1 3 1 2 3 1 3 1 1 5 0 10 1 1 3 7 9 4 7 2 7 1 3 1 2 2 1 1 9 0 6 1 6 4 1 1 1 1 2 1 2 2 1 1 2 1 5 4 1 3 3 3 7 1 8 0 11 3 7 5 1 6 4 6 6 9 4 1 1 1 2 1 1 1 1 2 1 6 0 9 5 6 1 4 6 7 5 5 4 1 3 1 2 1 3 1 8 0 9 1 4 1 7 5 7 7 1 3 3 3 1 2 2 1 3 1 4 3 4 1 2 3 1 3 4 1 6 0 11 7 2 2 7 5 6 1 4 1 7 8 2 1 1 3 1 2 1 5 0 7 7 3 9 7 1 6 2 3 1 1 3 2 1 5 0 6 1 1 5 5 4 3 1 3 1 1 1 3 5 5 3 3 7 1 9 0 9 3 7 5 3 1 8 5 3 2 1 1 3 1 1 3 2 2 3 1 9 0 9 9 3 6 1 1 1 5 3 8 1 1 2 3 1 2 3 2 1 1 9 0 10 4 1 6 2 9 8 1 2 5 7 3 2 1 1 1 3 2 3 2 4 2 3 1 2 3 4 3 7 1 5 0 7 1 4 6 3 2 2 8 1 1 1 1 2 1 9 0 8 1 7 9 4 8 4 2 4 3 1 1 1 2 2 2 2 2 1 5 0 11 7 7 1 1 6 1 8 8 4 4 5 2 1 1 2 1 3 4 4 3 5 5 2 2 3 6 5 3 3 4 1 7 0 10 7 1 9 6 2 6 3 6 6 1 1 3 2 1 2 3 1 1 5 0 8 3 7 1 8 5 5 6 4 1 2 1 3 2 1 6 0 10 1 6 2 2 6 6 1 1 4 1 1 1 1 1 1 3 4 2 2 1 3 6 1 8 0 7 9 7 9 1 7 7 2 3 2 1 1 3 1 2 2 1 5 0 11 2 7 1 1 7 7 2 8 9 8 9 2 1 1 3 3 1 9 0 9 1 1 7 6 9 4 1 8 1 3 2 1 2 3 1 1 1 1 4 2 1 1 3 2 3 7 1 6 0 10 1 8 1 4 9 6 5 6 1 1 1 3 3 1 1 1 1 8 0 7 1 7 2 7 2 8 5 2 3 1 2 2 1 2 1 1 9 0 6 1 7 9 3 3 5 2 3 1 1 1 1 2 1 1 4 1 3 1 1 1 4 3 7 1 6 0 8 8 9 4 5 9 1 4 7 3 2 3 1 1 1 1 8 0 8 9 3 7 1 4 2 9 2 2 1 1 3 2 1 3 1 1 5 0 11 5 1 7 7 1 8 2 2 9 9 4 1 2 2 3 2 2 1 1 1 5 3 2 3 7 1 8 0 9 1 4 6 8 4 1 6 4 4 1 1 1 1 1 1 1 3 1 8 0 7 1 9 6 3 5 3 1 3 3 3 2 2 1 2 2 1 8 0 10 5 9 2 5 9 8 3 8 1 3 1 1 3 2 2 1 3 1 1 3 4 5 4 3 3 1 6 2 4 4 3 6 1 7 0 7 3 2 6 1 3 9 6 3 1 2 1 2 2 3 1 8 0 6 8 1 6 1 6 9 3 1 2 3 1 3 3 1 1 7 0 8 9 1 5 2 6 5 3 1 3 2 3 2 1 3 1 5 3 2 2 3 5 3 4 1 9 0 10 6 5 2 5 1 1 7 4 5 9 1 2 3 3 3 1 3 2 3 1 6 0 10 7 6 1 4 3 3 2 7 6 6 3 1 3 1 1 1 1 6 0 6 7 3 3 3 1 4 1 1 1 1 2 2 3 2 4 3 3 4 1 5 0 6 1 9 1 1 8 6 1 3 1 2 1 1 9 0 6 5 1 2 9 4 9 1 1 3 1 2 1 3 2 2 1 9 0 11 3 3 9 1 9 6 5 6 1 2 3 2 3 3 3 2 1 2 1 3 1 5 2 1 3 6 1 5 0 10 4 1 9 6 9 1 3 6 6 2 3 1 3 1 2 1 6 0 7 7 6 9 3 1 4 1 1 2 3 3 3 3 1 9 0 7 5 1 6 3 6 5 2 2 1 3 3 3 1 1 3 2 2 4 3 5 1 1 5 6 2 2 4 1 6 2 5 3 3 4 1 9 0 9 8 3 5 8 4 7 5 1 6 2 1 1 2 3 1 1 2 1 1 9 0 7 1 7 6 9 4 7 7 3 1 2 1 1 2 3 3 2 1 5 0 9 9 8 3 6 6 1 4 1 1 3 2 1 2 1 3 3 4 3 3 4 1 8 0 10 6 2 8 7 7 1 1 7 7 3 1 1 2 3 3 3 1 3 1 6 0 10 1 9 3 7 1 6 5 9 8 2 3 2 2 1 2 2 1 9 0 6 8 7 7 1 1 5 2 1 2 3 3 3 1 3 3 3 2 3 3 3 7 1 5 0 11 9 2 8 6 9 8 9 1 5 6 1 2 2 1 1 1 1 9 0 8 2 9 2 1 7 7 9 7 3 3 2 1 1 2 1 1 1 1 7 0 9 7 1 6 5 4 1 7 1 8 3 3 3 2 2 1 3 2 2 1 5 2 2 5 3 5 1 5 0 11 6 6 3 4 1 6 6 1 9 2 7 1 1 3 1 3 1 7 0 10 2 4 1 7 9 8 1 6 7 7 1 3 2 2 2 2 1 1 7 0 11 9 1 1 2 2 1 7 1 9 6 7 1 1 1 2 3 2 2 5 2 2 1 2 3 7 1 5 0 7 3 6 8 5 8 1 6 1 1 1 1 3 1 5 0 7 6 1 1 4 1 3 8 1 2 3 2 2 1 7 0 7 5 4 1 1 3 4 1 3 1 1 1 2 2 1 5 2 2 2 1 5 3 7 4 5 5 3 3 7 1 5 0 11 8 3 4 3 1 2 4 5 8 1 8 2 2 1 2 3 1 5 0 8 7 1 2 9 8 6 9 9 3 3 1 3 1 1 6 0 8 8 6 7 7 7 1 5 1 1 3 1 3 1 2 5 5 1 4 4 2 2 3 6 1 6 0 7 7 9 8 1 5 7 9 2 3 1 2 1 3 1 6 0 10 8 8 5 1 1 1 5 5 1 5 3 1 3 1 3 1 1 7 0 8 1 7 3 9 3 3 6 1 1 3 3 2 1 1 1 1 4 5 3 1 2 3 6 1 9 0 11 8 3 7 4 1 5 5 2 4 1 9 2 1 3 2 3 1 1 1 2 1 9 0 6 1 6 3 4 5 6 1 2 1 3 3 2 2 1 1 1 6 0 6 6 5 2 9 1 1 1 2 1 1 3 1 5 3 1 2 5 3 3 4 1 8 0 8 2 9 3 1 7 1 4 4 3 1 2 2 3 2 2 2 1 8 0 9 1 7 4 4 4 1 2 7 8 2 1 2 1 1 1 1 2 1 6 0 6 5 9 5 6 7 1 3 2 2 1 3 1 5 3 3 1 3 5 1 6 0 9 3 9 3 9 3 7 7 1 1 1 3 2 3 2 2 1 8 0 10 8 2 9 6 1 6 7 1 3 9 1 2 1 1 1 2 1 3 1 8 0 10 3 5 5 1 4 8 5 5 1 5 1 2 3 3 2 3 2 2 2 1 1 1 5 2 2 3 4 4 3 4 1 9 0 7 1 1 8 6 9 3 7 1 1 2 2 2 3 3 1 1 1 8 0 11 6 3 5 1 1 8 5 6 1 8 7 3 3 3 3 2 2 1 1 1 8 0 9 2 1 6 2 6 9 9 2 7 2 1 1 3 2 3 3 1 3 5 2 1 3 6 1 9 0 6 4 4 3 1 4 6 2 1 1 1 2 3 2 1 1 1 8 0 6 9 3 7 9 1 1 1 3 1 3 2 1 1 1 1 5 0 7 1 9 1 8 6 3 9 1 3 1 1 2 3 3 4 3 3 2 3 4 1 5 0 9 4 1 2 4 1 3 1 5 4 1 1 1 1 3 1 8 0 7 3 1 3 5 4 2 3 3 1 3 1 2 2 1 1 1 7 0 6 7 9 8 9 1 3 3 1 2 3 2 2 3 3 4 4 5 3 7 1 5 0 11 4 9 3 1 4 3 7 4 4 1 6 3 1 2 3 2 1 8 0 8 1 8 1 6 2 2 8 9 3 1 3 1 2 1 1 2 1 9 0 7 1 5 6 9 9 1 6 1 3 3 2 2 2 1 2 2 5 1 5 5 2 2 4 3 3 3 4 5 3 3 6 1 9 0 8 1 4 6 7 1 3 4 3 3 2 3 3 3 2 2 1 2 1 6 0 8 9 3 7 1 8 8 9 1 1 2 1 3 1 2 1 6 0 8 5 5 1 9 2 5 9 6 1 3 1 1 1 2 3 5 5 2 4 2 3 7 1 8 0 11 1 9 9 1 3 1 2 6 8 5 4 3 1 3 2 3 1 1 3 1 6 0 8 2 2 3 8 5 1 1 8 1 1 1 3 1 3 1 5 0 11 5 9 8 2 4 4 9 1 7 2 1 2 3 1 1 2 5 1 1 5 2 3 3 3 4 1 8 0 9 2 1 2 8 3 6 8 5 3 2 1 3 3 3 3 1 2 1 7 0 7 4 4 6 1 1 4 3 3 1 1 3 1 3 2 1 5 0 7 4 9 1 7 1 3 2 1 3 3 1 3 5 2 3 2 3 4 1 7 0 7 9 1 7 3 9 2 9 1 1 1 1 2 3 3 1 6 0 10 5 7 7 4 8 8 5 1 4 3 3 1 1 1 2 2 1 5 0 8 9 6 6 5 2 2 1 3 3 1 3 3 3 3 3 2 4 3 4 1 7 0 6 9 3 7 1 7 4 2 1 3 1 2 3 2 1 8 0 8 7 3 7 5 1 1 1 5 2 2 1 1 1 3 3 2 1 9 0 10 1 2 1 9 3 2 1 1 4 6 3 2 1 1 3 1 3 1 1 2 4 4 1 1 4 4 5 5 3 4 1 8 0 11 1 7 3 5 3 4 2 3 8 5 2 3 2 1 1 2 3 3 3 1 6 0 11 9 5 6 2 1 9 7 7 8 6 1 1 2 1 2 3 1 1 7 0 10 3 5 6 1 1 3 3 9 1 1 2 3 1 1 3 1 3 5 1 3 1 3 5 1 5 0 9 1 3 1 1 3 9 1 7 4 3 1 3 1 3 1 6 0 7 1 5 6 6 5 1 5 2 2 1 1 1 1 1 9 0 11 1 3 5 7 2 4 1 4 9 8 9 1 1 1 2 1 2 3 1 1 3 5 5 2 2 3 7 1 8 0 9 8 4 2 3 7 1 7 1 1 1 3 3 3 2 3 2 1 1 9 0 8 2 2 4 8 1 1 4 7 1 3 2 1 3 3 3 3 3 1 9 0 8 5 2 1 9 7 2 3 3 1 2 3 1 1 3 2 1 2 4 4 1 2 5 1 5 3 5 1 9 0 11 3 6 1 1 6 6 2 1 4 2 8 2 1 3 1 2 2 3 3 3 1 9 0 11 1 6 3 5 8 8 5 1 6 9 6 2 3 1 3 1 2 3 3 2 1 8 0 7 1 3 6 4 8 6 3 3 3 2 1 1 1 1 3 2 2 2 4 2 3 7 1 8 0 7 6 6 8 1 5 7 1 2 3 1 1 2 3 2 1 1 9 0 9 2 4 1 1 3 5 2 7 5 1 1 2 2 2 2 1 3 1 1 8 0 10 3 7 1 7 4 7 1 5 9 2 1 1 3 3 1 1 1 2 5 4 2 4 4 4 4 2 7 6 4 5 5 3 3 6 1 5 0 6 7 1 4 9 1 8 1 1 1 3 1 1 7 0 10 5 2 2 1 4 3 5 7 2 5 1 1 2 1 3 1 1 1 9 0 8 1 9 8 1 2 3 4 5 2 2 3 1 2 2 3 3 2 5 2 2 3 2 5 3 6 1 9 0 6 4 9 1 8 2 7 1 3 1 3 1 2 3 2 2 1 5 0 10 9 1 6 1 9 6 3 9 1 5 3 2 2 1 2 1 6 0 8 1 1 4 6 5 9 2 7 1 3 1 2 2 3 2 1 2 3 3 5 3 7 1 9 0 7 7 6 1 6 8 1 4 3 2 1 1 2 3 2 1 2 1 8 0 7 1 6 5 1 5 8 1 1 3 2 1 1 2 2 1 1 7 0 10 9 3 1 9 9 5 5 6 1 8 1 1 3 2 3 1 2 1 5 1 5 3 4 5 3 7 1 8 0 8 4 6 3 1 8 1 1 3 2 1 3 3 2 3 3 1 1 9 0 8 2 6 9 4 4 4 1 8 2 1 3 2 2 2 1 3 1 1 9 0 10 5 5 1 2 7 1 2 9 6 7 1 2 1 3 2 1 3 2 3 1 2 1 3 4 3 3 3 5 1 7 0 6 1 7 8 5 4 4 1 3 1 2 1 1 3 1 5 0 7 4 1 3 1 6 4 9 1 1 1 3 3 1 7 0 10 2 5 3 1 3 7 2 9 1 9 2 1 2 1 3 3 3 5 4 5 3 3 3 2 1 5 5 6 2 4 3 3 6 1 8 0 11 1 7 9 8 9 4 8 8 7 5 1 3 3 2 1 3 1 3 1 1 7 0 9 7 4 1 9 8 2 3 2 9 2 1 1 3 2 1 3 1 9 0 6 4 5 1 5 4 3 2 1 1 3 3 3 2 3 1 4 4 3 3 4 2 3 7 1 7 0 8 1 6 3 9 6 6 6 8 2 1 3 1 1 1 3 1 6 0 8 8 7 1 7 7 1 4 5 2 1 2 1 1 3 1 7 0 10 1 5 3 4 8 9 3 9 8 8 3 3 1 1 2 2 1 1 2 5 1 5 2 5 3 4 1 9 0 8 9 3 4 3 8 6 8 1 3 3 1 2 2 1 1 3 3 1 9 0 10 4 1 8 4 3 2 1 7 4 5 1 1 2 2 3 2 1 1 2 1 7 0 6 1 8 6 4 1 8 1 1 1 3 2 1 1 2 3 1 5 3 7 1 5 0 9 6 3 6 1 2 8 8 4 9 1 1 3 2 2 1 6 0 6 9 1 8 8 6 8 3 2 3 1 1 1 1 7 0 11 4 7 1 1 7 3 3 6 6 3 5 1 3 2 1 1 2 1 4 1 4 4 3 1 1 5 3 3 5 5 3 7 1 7 0 7 4 3 2 7 5 1 1 1 3 2 1 2 1 3 1 8 0 9 7 2 8 6 4 9 6 1 2 1 3 1 1 3 3 2 2 1 6 0 7 1 4 3 8 8 5 1 2 2 2 1 2 1 2 2 3 5 3 4 3 3 6 1 6 0 8 6 8 3 7 3 8 3 1 3 1 1 2 1 1 1 8 0 11 6 1 7 5 6 4 8 2 4 1 6 1 1 3 1 1 1 1 2 1 5 0 10 2 4 3 5 5 7 8 7 1 8 3 1 1 1 3 2 1 3 2 4 2 3 4 1 6 0 7 1 4 5 1 9 1 1 2 1 3 1 3 1 1 7 0 8 6 3 1 3 7 6 1 6 3 3 3 1 2 1 1 1 6 0 6 1 2 2 6 7 7 1 3 3 3 1 2 4 4 1 3 3 5 1 7 0 6 1 9 1 5 1 8 1 1 1 1 3 1 2 1 9 0 7 1 7 1 9 4 9 6 1 1 3 1 1 3 1 1 3 1 7 0 9 2 3 6 4 6 1 6 7 7 2 2 1 3 1 2 3 5 2 4 2 3 3 6 1 8 0 7 3 9 1 1 5 1 3 1 1 3 1 1 2 1 1 1 7 0 10 9 2 7 1 2 1 9 9 3 3 3 1 2 1 3 2 3 1 8 0 6 6 4 1 6 9 1 3 2 2 3 2 3 1 1 5 3 4 3 5 1 2 1 7 4 2 4 3 3 4 1 6 0 9 1 6 1 1 9 3 7 5 4 3 2 3 1 1 2 1 7 0 7 6 2 5 4 2 1 7 2 1 1 3 3 3 2 1 5 0 10 1 4 1 5 9 7 6 5 6 7 1 1 2 2 2 4 1 1 3 3 7 1 7 0 10 5 4 7 9 9 9 6 1 6 6 1 2 1 3 1 1 1 1 8 0 8 1 1 8 1 3 3 2 3 2 1 1 1 1 3 3 1 1 8 0 7 1 4 1 5 8 3 1 2 3 1 2 1 1 3 1 5 1 1 4 2 2 2 3 5 1 6 0 6 3 2 6 1 5 9 3 1 2 1 2 2 1 6 0 11 4 8 5 1 7 7 1 1 4 7 2 1 1 2 2 1 2 1 8 0 10 9 1 4 2 4 6 2 1 7 6 3 3 1 2 3 3 2 2 5 3 3 3 3 3 6 1 8 0 10 7 3 5 3 4 2 2 1 9 6 3 1 1 2 1 1 1 3 1 7 0 11 2 8 1 4 6 7 7 8 8 1 2 3 2 1 1 2 3 1 1 6 0 10 9 3 4 5 6 6 9 1 9 2 2 1 1 1 2 3 4 1 4 1 3 2 2 1 5 5 4 3 4 1 8 0 9 4 6 8 6 6 1 9 1 4 3 2 3 1 3 3 2 1 1 9 0 9 3 5 8 8 1 2 8 7 8 3 1 3 1 1 2 2 2 1 1 7 0 10 1 2 4 9 3 7 2 2 6 1 1 1 2 1 2 1 1 3 1 2 3 3 7 1 8 0 6 8 1 5 5 4 8 1 3 2 1 3 1 2 1 1 9 0 11 7 2 2 1 3 4 4 1 7 7 3 1 3 3 3 2 3 1 2 2 1 8 0 10 6 4 4 4 9 7 8 1 4 3 2 3 2 1 1 1 1 2 2 1 1 3 1 2 2 3 7 1 7 0 10 8 7 5 7 9 4 9 4 5 1 2 1 3 2 1 1 3 1 7 0 10 7 2 5 6 4 7 6 3 6 1 3 1 2 3 2 1 2 1 8 0 10 6 4 2 7 1 8 1 6 3 9 1 1 1 1 2 1 2 2 3 2 4 3 1 4 4 3 6 1 9 0 6 7 8 3 1 3 1 2 3 2 1 2 3 2 2 3 1 6 0 8 2 6 8 3 2 8 5 1 3 1 3 1 3 1 1 6 0 7 6 3 2 3 5 8 1 1 3 2 1 1 3 4 2 4 4 3 1 3 7 1 7 0 10 7 4 5 8 1 8 1 2 1 7 3 1 1 1 1 2 3 1 5 0 8 8 2 9 8 5 8 1 4 1 1 1 3 3 1 6 0 10 6 6 1 9 4 1 5 1 6 2 1 3 1 2 1 1 2 3 5 2 1 4 4 1 1 4 1 5 4 3 7 1 9 0 8 1 2 6 4 2 1 1 9 2 1 3 3 1 3 1 1 3 1 5 0 7 1 6 8 4 2 8 7 1 3 3 1 1 1 8 0 11 4 8 8 1 5 8 2 9 5 8 1 3 3 2 1 3 1 2 2 5 2 1 3 5 2 3 3 6 1 9 0 6 4 9 8 1 5 7 1 3 2 2 3 2 2 2 2 1 8 0 6 1 3 1 5 4 1 1 3 1 1 1 2 1 1 1 9 0 7 1 9 7 9 8 6 1 3 1 1 1 1 3 1 1 2 1 1 3 2 1 5 3 4 1 8 0 11 5 9 5 8 7 1 9 2 9 5 7 2 3 3 1 1 1 3 2 1 5 0 11 1 9 3 8 1 9 9 5 1 5 6 2 3 3 1 3 1 5 0 9 2 7 5 4 1 2 9 1 5 3 2 3 1 2 2 5 1 5 3 7 1 8 0 9 6 4 3 6 9 1 2 5 1 1 1 3 2 1 1 3 1 1 8 0 8 9 2 8 4 9 1 5 4 2 2 2 3 1 1 3 3 1 9 0 7 8 4 9 1 8 4 8 3 2 1 1 3 1 1 2 1 2 3 2 2 5 1 1 3 6 1 6 0 7 5 5 2 3 8 1 1 2 1 1 1 2 2 1 5 0 10 9 9 3 3 3 6 3 7 1 3 3 1 1 2 1 1 5 0 6 3 7 1 2 4 1 3 3 1 1 3 3 3 5 1 5 1 2 3 4 7 5 4 3 7 1 7 0 8 3 4 9 1 1 7 2 4 1 3 2 3 1 3 3 1 9 0 8 1 9 4 9 8 9 1 1 1 2 2 3 1 3 2 2 2 1 6 0 6 3 4 1 7 6 1 3 2 2 2 3 1 3 2 4 1 2 2 3 3 6 1 6 0 7 3 5 1 3 9 7 1 1 2 3 1 2 3 1 9 0 6 5 1 8 3 8 1 3 1 3 1 1 1 2 1 2 1 5 0 8 4 7 5 8 5 7 1 8 2 1 2 1 2 5 2 3 3 3 5 3 7 1 9 0 8 1 7 2 6 6 7 3 4 1 1 2 2 1 2 1 1 2 1 8 0 7 1 5 6 9 9 4 2 3 3 3 3 3 2 1 2 1 5 0 9 9 3 6 8 3 5 1 1 4 1 2 3 2 2 4 1 1 2 5 4 2 3 7 1 5 0 7 1 9 2 3 1 9 1 1 1 3 1 1 1 7 0 7 1 8 3 1 8 5 2 3 3 1 1 1 3 1 1 6 0 7 2 8 6 4 1 4 3 3 2 3 2 1 3 1 3 3 2 4 5 3 3 4 1 5 0 10 1 8 5 4 6 5 5 1 5 6 3 2 1 3 3 1 6 0 10 9 9 4 9 4 7 5 9 1 4 3 2 1 2 1 1 1 7 0 9 9 8 5 7 6 2 9 1 9 3 1 2 2 2 1 2 1 1 1 1 1 6 7 1 3 8 6 3 4 5 3 4 1 9 0 8 7 3 6 7 8 9 1 2 2 2 2 1 2 1 2 2 2 1 9 0 10 1 7 2 8 3 3 1 6 3 8 1 1 1 2 3 2 3 1 3 1 6 0 10 2 2 1 5 4 5 1 7 6 4 1 2 3 1 3 3 1 3 5 2 3 7 1 7 0 6 9 9 9 4 9 1 1 3 1 1 3 2 2 1 7 0 9 4 7 1 2 6 7 5 5 1 2 2 1 3 1 2 3 1 8 0 7 2 7 7 1 6 5 4 3 1 1 2 1 3 1 2 1 3 3 3 5 3 2 3 5 1 7 0 9 2 4 2 9 8 4 1 3 6 2 1 1 3 2 3 1 1 8 0 10 1 7 4 3 6 7 4 9 1 2 3 3 1 3 2 1 1 3 1 7 0 7 7 8 9 1 9 4 8 2 3 3 1 1 1 1 2 3 1 1 2 3 6 1 6 0 7 1 2 9 7 6 5 6 2 3 1 2 3 2 1 6 0 8 2 8 4 9 2 1 3 2 3 3 3 2 3 1 1 6 0 8 4 4 1 4 2 3 5 4 3 2 1 1 2 1 4 1 1 2 3 2 2 5 3 2 2 5 4 3 5 1 5 0 8 1 7 3 5 9 2 9 7 1 2 2 3 3 1 8 0 7 9 9 1 8 8 1 6 1 1 2 3 1 3 3 1 1 6 0 11 9 8 4 6 7 1 8 2 1 7 5 3 2 2 3 1 2 5 1 2 5 1 3 7 1 6 0 8 1 5 8 3 8 4 8 2 3 1 2 1 2 2 1 6 0 7 9 5 2 5 1 8 1 3 3 3 3 2 1 1 6 0 10 2 3 3 2 6 1 4 3 1 2 1 1 2 1 1 2 1 5 1 3 3 1 4 3 4 1 8 0 10 9 6 9 2 5 3 1 6 2 5 3 2 1 2 2 3 1 1 1 6 0 11 8 1 1 6 4 1 1 6 3 5 3 3 1 1 2 1 1 1 8 0 6 7 1 6 1 3 9 3 3 1 3 1 1 2 1 2 1 3 1 3 6 1 5 0 11 8 1 9 7 5 1 1 3 2 9 9 3 1 1 1 1 1 9 0 11 7 7 1 9 8 7 1 3 7 2 6 1 3 2 1 1 3 3 3 1 1 8 0 11 9 5 1 1 7 5 6 5 3 5 1 1 2 1 1 1 3 2 1 3 2 5 3 3 5 3 7 1 8 0 11 8 3 8 7 6 5 4 2 1 7 1 1 2 3 1 1 2 1 1 1 8 0 10 9 2 3 2 1 9 3 9 7 9 1 2 2 3 1 2 2 2 1 8 0 8 7 3 3 4 1 7 2 1 1 2 2 1 3 3 1 2 5 3 2 1 4 2 2 6 7 2 4 4 3 3 6 1 9 0 9 1 9 1 6 6 7 9 6 5 3 3 2 3 2 1 1 1 2 1 8 0 10 1 2 6 3 8 3 4 3 8 2 2 1 2 3 3 2 1 3 1 5 0 11 7 7 4 1 6 7 2 4 5 2 9 1 3 1 1 2 2 3 5 4 4 3 3 5 1 8 0 9 5 9 1 5 2 6 2 7 6 2 1 3 3 1 3 2 3 1 6 0 9 3 5 1 1 3 7 6 2 1 1 3 2 2 1 1 1 5 0 8 6 4 3 1 4 7 5 1 1 3 2 2 2 1 1 1 5 2 3 7 1 8 0 11 3 8 6 7 1 8 4 6 6 1 5 2 1 3 1 2 2 1 3 1 9 0 6 3 2 1 9 4 8 1 3 2 2 3 3 1 3 2 1 7 0 7 5 5 1 1 2 9 3 1 2 2 1 2 1 1 2 3 3 4 5 4 5 3 7 1 7 0 7 7 4 1 1 1 8 9 2 1 1 2 3 2 1 1 7 0 6 1 5 8 4 6 9 1 2 2 1 1 3 2 1 6 0 7 2 7 1 8 1 3 6 2 1 1 3 3 2 4 1 5 1 1 3 1 2 5 1 4 3 3 4 1 7 0 10 2 7 4 6 9 7 6 7 1 7 2 3 2 3 1 1 3 1 5 0 9 5 7 5 2 9 1 1 8 6 1 1 1 1 3 1 7 0 11 3 1 9 6 6 5 3 1 5 5 5 2 3 3 1 1 1 1 4 1 2 1 3 7 1 5 0 9 9 9 9 7 1 3 2 8 9 2 1 1 2 1 1 6 0 11 8 8 2 1 2 7 5 5 1 1 6 2 1 1 3 3 2 1 8 0 9 1 9 1 8 9 7 3 9 4 1 2 1 1 1 1 2 1 3 4 3 5 1 1 2 3 6 1 5 0 10 1 1 6 2 1 6 4 4 5 7 3 3 3 2 1 1 9 0 8 1 6 2 1 1 7 1 4 2 2 1 2 2 2 1 3 1 1 6 0 7 3 1 4 6 5 1 7 2 1 3 3 1 1 5 3 4 2 1 5 3 5 1 8 0 6 7 5 5 1 1 5 3 1 3 1 3 1 1 1 1 6 0 9 4 4 1 1 3 2 1 3 7 1 1 3 2 1 1 1 8 0 10 6 2 2 8 8 1 3 9 8 1 1 1 1 3 3 2 1 3 4 3 2 1 5 4 5 4 5 4 3 6 1 8 0 6 1 6 1 3 6 5 1 3 3 3 3 1 2 3 1 7 0 7 7 4 1 4 5 8 1 1 1 3 3 2 2 2 1 9 0 7 5 4 1 9 5 4 1 1 2 2 2 2 3 2 3 3 1 5 2 1 5 1 3 4 1 8 0 11 4 4 2 5 7 9 1 7 5 1 7 1 1 3 1 2 2 2 3 1 8 0 11 4 1 9 9 6 9 2 1 7 4 7 3 1 1 1 2 3 1 1 1 8 0 6 7 5 1 3 7 1 2 1 3 3 3 3 1 2 1 1 1 3 3 5 1 7 0 7 6 2 9 8 1 5 5 2 2 3 2 2 2 1 1 9 0 8 1 2 1 4 8 2 8 7 3 1 2 3 2 3 1 1 3 1 5 0 10 6 1 8 6 9 5 2 6 5 2 1 3 1 3 3 3 2 5 3 2 3 6 1 5 0 6 7 4 1 1 3 4 1 1 1 3 1 1 6 0 7 3 5 4 1 8 7 1 2 1 1 3 1 1 1 7 0 9 2 6 9 4 8 9 8 2 1 1 2 1 3 3 2 3 2 4 5 5 5 5 3 6 1 6 0 6 7 4 4 8 1 1 2 1 1 3 2 1 1 7 0 6 3 1 7 1 7 6 2 3 2 3 1 2 1 1 5 0 10 6 1 7 2 9 4 8 4 3 4 2 3 1 1 3 4 4 4 2 2 4 7 1 2 1 5 4 3 6 1 9 0 7 2 1 1 5 8 1 3 1 1 3 3 3 1 1 1 1 1 5 0 7 7 7 1 1 1 7 2 3 3 1 1 1 1 9 0 9 3 2 8 2 2 4 6 1 6 2 2 1 2 1 2 3 2 2 3 4 4 3 5 4 3 4 1 6 0 6 9 6 1 6 1 8 2 2 1 1 1 1 1 6 0 10 5 2 1 9 2 4 7 1 4 2 1 2 1 3 2 2 1 7 0 6 3 5 5 1 9 5 3 1 3 3 2 3 3 4 1 1 3 3 6 1 6 0 8 4 8 1 7 8 3 6 2 1 1 1 2 1 2 1 7 0 7 9 6 7 6 7 6 1 1 3 1 2 1 3 3 1 6 0 10 1 9 3 1 1 3 5 8 9 3 2 1 3 1 3 1 4 2 3 1 1 1 3 5 1 8 0 6 4 1 1 9 4 2 1 3 3 2 1 2 3 1 1 6 0 9 5 9 3 7 5 7 4 1 2 3 1 2 3 1 3 1 7 0 8 5 6 8 1 3 2 1 6 3 2 2 3 1 1 1 5 2 5 4 2 3 5 1 7 0 10 2 8 1 7 1 6 5 9 6 5 3 3 3 2 1 3 2 1 5 0 10 1 4 5 5 9 3 2 3 9 1 2 2 2 3 1 1 9 0 11 5 8 2 9 6 1 3 8 9 5 9 1 1 2 1 1 2 2 3 2 2 1 3 2 2 2 3 4 6 6 3 6 7 3 4 3 3 5 1 6 0 7 2 6 6 3 1 3 6 2 1 1 2 2 2 1 6 0 10 7 8 1 7 4 4 8 1 5 6 2 3 1 1 2 2 1 6 0 7 8 7 3 1 7 9 1 3 1 2 1 1 2 1 5 3 5 3 3 4 1 7 0 10 2 5 6 2 8 1 8 1 1 5 1 1 3 3 1 1 3 1 8 0 9 4 5 7 1 4 1 6 4 1 2 3 3 1 1 2 3 3 1 7 0 11 6 7 8 2 8 6 1 8 4 3 4 3 3 2 1 2 1 1 1 1 3 5 3 4 1 8 0 8 1 8 4 3 8 3 9 1 3 1 3 2 1 3 2 3 1 9 0 7 8 4 6 2 1 5 5 3 2 1 1 1 2 3 1 1 1 5 0 7 1 2 1 1 4 1 7 1 1 2 1 3 1 1 1 2 3 6 1 6 0 6 9 4 1 4 9 4 1 1 3 3 1 2 1 7 0 11 1 6 4 1 9 2 8 8 1 3 8 3 1 1 1 1 1 2 1 6 0 6 1 9 2 1 4 1 3 1 1 2 2 1 1 2 2 2 3 2 4 2 6 5 5 3 4 1 6 0 10 6 2 4 8 2 1 8 9 5 6 3 1 1 2 1 3 1 5 0 10 4 1 1 7 4 5 4 5 3 1 3 3 1 1 2 1 8 0 11 2 4 3 1 8 8 7 4 5 4 1 3 1 1 1 1 2 3 2 3 4 2 2 3 6 1 9 0 9 6 1 8 5 2 2 1 7 4 3 1 1 1 2 1 1 1 2 1 7 0 7 2 1 7 2 4 3 5 2 2 3 2 1 1 3 1 8 0 8 3 8 8 1 8 1 1 2 1 3 3 2 2 1 2 3 2 1 1 5 2 2 3 7 1 7 0 7 5 6 6 9 6 1 6 1 3 3 3 1 2 3 1 5 0 11 8 6 9 1 4 3 5 1 6 6 1 3 2 1 2 3 1 5 0 8 6 6 2 6 1 1 2 3 3 2 1 2 1 3 4 1 3 1 3 2 3 6 1 9 0 8 1 5 6 2 8 1 9 6 3 2 2 1 2 1 1 3 1 1 7 0 6 3 5 5 4 1 1 1 3 2 3 1 2 1 1 9 0 8 2 6 9 1 5 1 6 1 2 2 3 3 1 1 1 1 2 3 1 1 5 3 5 3 7 1 7 0 10 7 3 1 7 6 8 1 5 6 7 1 1 1 2 1 3 1 1 9 0 8 2 1 9 1 2 8 3 5 1 1 3 1 1 2 2 2 1 1 9 0 9 9 8 7 2 4 8 6 3 1 2 1 2 1 2 1 1 3 3 2 2 1 2 4 5 2 7 5 6 3 7 5 3 3 4 1 6 0 7 9 7 8 4 4 9 1 1 3 1 3 3 3 1 5 0 9 6 1 6 2 1 1 7 6 2 2 1 3 2 1 1 9 0 9 7 2 1 5 7 7 2 8 9 3 2 2 2 1 1 1 3 2 1 3 3 4 3 5 1 7 0 6 3 1 7 1 5 4 3 2 3 1 2 2 1 1 9 0 6 4 5 6 4 2 1 2 2 2 2 1 1 3 2 1 1 7 0 9 9 2 2 1 1 2 1 4 3 1 1 3 2 1 3 2 1 3 3 5 1 3 6 1 8 0 10 1 3 6 7 6 8 8 3 1 3 1 3 1 1 2 1 2 1 1 9 0 9 4 9 7 1 1 1 9 8 5 2 1 1 1 3 1 2 1 3 1 5 0 10 4 3 9 3 7 9 2 1 6 1 1 3 2 2 1 4 3 2 5 1 1 3 7 1 6 0 10 4 1 3 3 5 8 1 6 3 8 2 1 3 2 1 2 1 6 0 9 8 7 8 3 7 3 1 1 6 3 3 2 1 1 3 1 6 0 7 1 7 3 8 1 7 6 2 2 3 3 1 1 1 3 5 2 2 3 5 3 5 1 6 0 10 5 8 3 5 1 1 7 1 5 9 1 1 3 2 3 3 1 8 0 7 7 1 6 6 4 6 3 3 1 1 1 2 3 1 1 1 7 0 6 9 7 4 7 7 1 3 2 1 2 2 2 1 4 2 1 3 5 7 2 2 5 5 3 4 1 8 0 10 3 1 1 4 5 4 4 1 9 8 2 2 1 3 1 2 1 1 1 7 0 10 1 6 4 6 1 7 4 1 6 6 3 1 1 2 2 3 3 1 9 0 8 8 9 9 7 1 1 2 5 1 1 1 1 2 3 3 2 1 1 3 2 2 3 5 1 6 0 8 5 1 8 2 4 1 6 6 1 2 1 2 2 2 1 9 0 10 3 3 3 1 5 1 3 9 4 7 3 1 3 1 3 1 1 1 1 1 8 0 7 7 9 1 8 5 7 7 3 1 3 1 1 1 1 3 5 3 3 1 2 3 6 1 6 0 11 9 7 6 6 2 4 4 3 1 2 9 2 1 1 1 3 1 1 8 0 11 6 7 3 7 1 8 8 1 1 4 1 2 2 2 1 2 2 2 1 1 9 0 9 5 6 5 9 7 9 4 3 1 2 2 1 3 1 3 1 3 1 5 3 5 1 5 3 3 5 1 5 0 10 6 3 1 1 2 6 8 1 3 4 1 3 3 3 2 1 7 0 8 2 7 6 7 5 4 1 9 1 3 1 2 3 3 2 1 6 0 6 5 3 3 5 8 1 2 1 2 2 3 1 5 2 4 3 3 3 7 1 6 0 6 4 6 4 1 3 6 1 2 3 2 1 3 1 9 0 10 3 6 4 9 8 7 6 1 7 1 1 1 2 2 1 3 2 3 3 1 9 0 11 9 1 1 5 3 6 5 9 6 2 2 3 1 1 3 1 1 2 1 2 3 4 1 3 3 4 2 5 4 5 1 2 5 5 3 5 1 5 0 8 1 1 9 7 5 7 4 1 3 3 2 3 1 1 6 0 6 1 1 7 6 4 5 3 1 1 2 2 1 1 8 0 11 3 9 5 1 2 2 4 3 1 4 2 1 1 2 1 1 2 3 1 2 3 1 4 4 3 4 1 9 0 10 1 9 9 6 7 9 1 8 3 4 2 3 3 1 1 2 3 1 1 1 5 0 8 3 5 8 9 6 4 4 1 3 2 1 3 1 1 5 0 10 4 9 8 1 1 1 2 8 1 7 3 1 1 2 3 3 4 3 2 3 5 1 7 0 9 1 9 1 6 5 4 3 9 1 3 1 1 2 1 2 2 1 6 0 6 1 1 3 1 9 1 1 2 2 3 2 1 1 6 0 7 1 6 4 1 7 3 8 3 1 2 1 3 1 1 5 3 3 3 3 6 1 5 0 6 1 4 8 6 3 1 1 3 2 1 3 1 8 0 7 8 4 1 4 3 1 2 1 3 2 1 3 1 1 1 1 5 0 11 3 1 3 4 9 6 6 6 1 1 3 1 2 1 1 3 2 2 5 1 4 2 3 5 1 8 0 8 6 5 8 5 5 2 1 9 1 3 2 1 1 3 1 1 1 8 0 6 8 1 8 3 7 2 2 1 3 3 1 1 1 3 1 9 0 11 5 8 6 1 3 5 5 5 8 3 7 2 1 2 2 1 3 2 2 2 1 1 4 3 4 3 7 3 3 4 5 4 3 5 1 9 0 11 2 4 2 4 9 2 9 6 6 1 4 2 1 2 1 1 3 2 1 1 1 7 0 8 9 3 3 4 1 1 5 4 2 1 2 2 2 1 2 1 8 0 11 8 9 1 8 9 1 2 1 9 2 4 2 2 2 3 1 1 1 1 5 3 2 4 4 3 4 1 8 0 7 6 2 8 8 1 3 9 1 1 2 3 3 2 3 3 1 5 0 8 2 7 2 1 6 4 9 6 2 2 2 1 3 1 9 0 7 1 6 1 2 1 1 5 1 2 2 1 1 1 1 2 1 2 5 3 5 3 5 1 7 0 9 5 4 9 3 1 1 6 2 1 1 2 3 3 2 1 1 1 6 0 9 1 5 4 7 6 3 9 5 7 1 3 1 2 1 3 1 5 0 7 9 1 9 6 9 1 2 1 1 3 1 3 2 5 3 3 2 3 4 1 8 0 10 2 4 1 8 9 8 2 3 9 1 1 3 1 1 2 1 1 1 1 9 0 6 8 3 3 5 1 7 1 2 2 2 1 3 3 3 2 1 6 0 11 6 7 9 9 2 4 8 1 6 6 6 1 2 1 3 1 3 3 1 2 2 3 5 1 7 0 11 2 4 5 7 3 7 7 3 1 6 7 3 1 2 2 1 3 3 1 6 0 9 8 8 5 3 8 6 2 3 1 3 1 2 3 2 1 1 5 0 8 4 1 2 6 6 1 5 9 3 1 1 1 1 1 5 3 1 1 1 3 6 1 5 4 3 4 1 5 0 8 1 7 7 1 6 2 4 7 1 1 2 1 2 1 5 0 11 2 9 6 8 6 7 2 8 1 8 4 2 2 2 1 2 1 5 0 6 1 4 7 2 5 9 1 3 3 2 3 3 4 1 3 3 6 1 6 0 10 1 1 8 4 9 9 7 7 8 4 1 1 2 3 2 2 1 7 0 9 4 3 4 8 3 1 1 3 9 2 2 1 1 3 1 1 1 6 0 8 5 4 3 1 1 1 5 9 1 1 1 3 2 2 3 1 3 2 5 4 3 4 1 5 0 6 9 1 9 9 3 8 1 1 2 1 1 1 5 0 7 1 2 3 4 9 3 6 1 1 3 1 1 1 7 0 7 6 1 5 1 2 2 5 2 1 1 1 3 1 1 2 4 3 4 3 4 1 5 0 10 5 1 9 9 1 3 9 3 5 3 2 1 3 3 3 1 6 0 8 3 8 1 9 9 8 8 9 3 1 1 1 3 2 1 6 0 11 9 5 3 4 6 1 9 4 9 3 1 1 1 2 3 3 3 5 3 1 2 3 4 1 5 0 10 1 1 8 5 8 4 9 9 2 2 1 2 2 3 1 1 9 0 7 2 1 2 6 9 8 3 1 1 1 3 1 3 3 1 1 1 9 0 6 3 1 5 6 6 1 2 2 2 1 1 3 3 3 1 3 2 3 1 2 1 6 3 5 5 4 6 3 5 5 3 4 1 7 0 10 1 8 6 5 1 3 2 4 1 2 2 1 3 1 3 2 2 1 5 0 9 3 8 4 1 1 9 1 6 2 3 1 2 3 1 1 6 0 8 1 3 3 3 3 7 1 4 1 1 2 1 2 1 4 3 3 4 3 5 1 5 0 9 7 4 1 9 6 9 8 9 5 1 1 1 2 1 1 8 0 10 1 9 7 5 9 3 1 1 7 2 3 2 1 2 1 2 1 2 1 5 0 9 9 5 1 1 2 9 6 5 3 1 1 2 2 2 4 1 3 5 4 3 7 1 9 0 6 7 1 4 2 2 2 2 1 3 3 3 2 2 3 2 1 7 0 7 3 3 5 1 1 5 8 1 3 2 1 3 3 1 1 5 0 6 1 8 7 5 9 2 1 1 1 3 1 2 5 5 4 3 1 3 3 4 1 6 0 6 1 3 1 3 1 6 3 3 2 1 3 3 1 6 0 6 1 5 1 7 2 9 1 1 2 2 3 3 1 9 0 9 2 8 7 1 4 1 3 1 4 1 3 1 3 1 1 1 1 1 1 3 5 1 3 5 1 5 0 6 1 6 5 6 3 3 2 1 2 1 3 1 9 0 9 5 1 8 1 4 7 3 4 4 2 1 1 2 1 1 3 1 3 1 5 0 11 8 6 4 7 1 7 1 9 6 3 6 1 1 1 1 1 3 5 2 1 4 5 1 6 2 5 4 4 3 6 1 9 0 7 9 7 1 1 5 3 9 1 2 3 2 2 2 1 2 1 1 5 0 9 7 1 4 9 3 5 5 4 1 1 3 3 3 3 1 7 0 11 2 3 5 1 9 8 2 7 4 8 7 1 1 3 1 2 3 3 4 4 3 3 3 2 3 4 1 8 0 10 3 1 1 3 8 2 9 6 1 1 1 2 1 2 2 1 1 3 1 5 0 6 3 2 2 5 3 1 2 2 3 3 1 1 9 0 8 8 6 8 2 1 1 9 4 1 1 3 3 1 3 2 1 1 5 1 5 4 3 5 1 8 0 10 1 2 9 1 6 2 7 2 7 1 1 3 1 3 2 1 3 1 1 7 0 6 3 1 1 4 5 2 2 1 3 3 1 1 3 1 6 0 9 9 3 6 8 1 1 7 3 3 2 1 3 2 1 3 3 2 3 2 3 3 4 1 5 0 10 9 3 4 5 4 3 7 2 1 4 1 2 1 3 2 1 9 0 7 3 4 1 3 6 8 8 1 1 1 1 3 2 3 2 2 1 9 0 10 7 2 5 6 7 7 4 1 8 9 2 3 2 2 3 3 3 3 1 5 3 3 4 3 3 2 5 4 3 3 5 1 5 0 11 6 6 5 7 4 1 1 6 4 8 9 1 1 1 1 2 1 8 0 6 9 7 5 3 1 8 2 1 3 1 3 1 2 1 1 8 0 11 5 7 3 2 6 7 2 6 6 9 1 1 2 1 1 2 2 3 3 3 3 2 2 4 3 6 1 8 0 6 3 8 3 3 8 1 3 2 1 2 2 2 1 2 1 5 0 7 3 1 7 6 5 2 1 2 1 1 1 3 1 5 0 11 5 5 8 6 1 6 5 7 7 8 4 1 1 3 1 1 3 3 2 3 3 5 3 7 1 9 0 10 1 1 3 5 5 3 9 5 8 1 1 1 2 3 3 3 2 1 3 1 9 0 11 3 7 1 9 6 1 7 6 2 1 1 3 1 1 2 1 3 1 2 1 1 8 0 7 5 1 5 9 8 3 5 2 2 3 1 1 1 2 3 2 1 1 2 5 3 3 3 5 1 9 0 9 7 3 9 1 1 9 7 8 8 2 3 1 2 1 1 1 2 3 1 6 0 10 9 4 1 7 1 4 6 9 9 2 1 3 3 3 1 1 1 9 0 8 4 1 7 1 9 8 7 4 1 1 3 3 1 2 1 2 2 3 3 1 4 1 4 3 4 5 4 3 4 1 7 0 8 1 8 2 6 2 3 2 1 1 3 1 1 2 2 3 1 5 0 7 6 5 1 8 8 3 8 1 3 3 3 3 1 6 0 7 3 4 3 1 3 2 1 2 1 1 2 2 1 3 4 2 4 3 4 1 8 0 8 2 1 1 8 7 9 8 1 1 2 1 1 1 1 1 3 1 9 0 11 1 5 8 7 8 1 4 1 9 5 7 2 3 1 3 3 2 2 2 1 1 9 0 11 5 8 1 7 4 6 9 3 4 5 1 2 2 3 2 1 1 1 1 1 2 1 4 1 3 7 1 9 0 6 1 1 4 1 1 9 3 3 1 2 3 3 1 1 3 1 9 0 7 7 7 9 1 1 3 7 1 1 3 3 3 1 1 2 2 1 9 0 6 4 2 7 1 2 3 1 1 3 2 3 2 3 1 3 4 2 2 1 5 2 4 3 6 1 9 0 7 1 3 4 4 3 8 6 2 3 3 3 1 2 2 1 3 1 8 0 7 2 1 1 1 4 8 1 3 3 2 1 1 3 1 1 1 9 0 7 1 9 9 6 8 7 4 1 3 1 2 2 1 1 3 1 1 3 4 3 2 3 3 7 1 8 0 8 1 2 1 1 9 2 7 8 1 1 2 2 1 3 1 1 1 7 0 8 8 1 9 2 6 1 7 4 3 1 1 3 2 1 1 1 8 0 11 6 8 3 1 4 1 6 4 4 2 6 2 2 1 3 2 1 3 3 2 1 3 5 2 4 5 3 4 2 5 5 4 3 5 1 7 0 11 1 3 6 7 8 1 9 4 2 9 5 2 1 3 1 1 2 3 1 5 0 10 2 5 1 7 7 3 4 3 4 1 3 1 3 1 2 1 9 0 10 1 5 7 8 7 2 5 8 8 9 1 3 3 3 3 1 3 2 1 1 4 1 4 5 3 5 1 5 0 10 5 1 3 8 4 1 4 5 4 3 3 1 1 3 1 1 5 0 11 7 4 1 7 6 3 5 2 5 7 5 1 2 3 2 1 1 7 0 6 1 7 3 3 4 5 1 2 2 1 3 1 1 5 2 4 3 5 3 6 1 7 0 10 3 2 3 1 2 8 6 7 8 7 1 3 2 1 2 1 3 1 9 0 6 4 1 1 4 8 7 2 2 3 1 2 1 2 1 3 1 6 0 11 5 1 2 9 2 9 1 9 3 6 7 1 1 1 2 3 3 4 3 4 5 5 3 3 7 1 8 0 11 7 1 6 6 9 4 1 9 9 4 1 1 3 3 1 3 3 2 1 1 9 0 9 8 4 2 9 6 5 1 3 5 2 1 3 1 2 3 3 2 2 1 6 0 6 7 1 1 8 1 9 2 3 1 3 1 1 5 5 4 1 3 1 1 3 4 1 8 0 6 8 7 1 1 8 4 1 1 1 2 2 3 1 2 1 8 0 11 1 6 3 3 5 1 7 5 9 5 5 2 1 2 1 1 1 3 2 1 5 0 10 7 9 8 2 4 8 2 7 1 5 3 2 2 3 1 2 2 1 1 2 7 7 6 5 5 3 4 1 5 0 7 4 8 4 2 1 7 8 2 1 3 1 1 1 6 0 10 8 4 1 7 3 2 7 1 9 7 1 1 1 3 2 3 1 6 0 9 4 5 5 2 1 9 1 1 5 2 1 2 1 1 1 4 1 1 1 3 6 1 5 0 11 1 7 6 1 9 4 6 2 3 9 1 2 1 3 1 2 1 7 0 10 9 1 8 9 2 7 7 1 5 4 2 2 1 2 2 3 1 1 8 0 10 1 5 8 6 2 6 8 7 1 7 2 2 3 2 1 3 1 1 3 3 1 4 2 5 3 7 1 6 0 10 4 5 3 9 2 9 1 7 1 1 1 3 1 1 1 1 1 5 0 11 7 7 2 9 1 9 9 4 7 1 4 2 3 1 3 1 1 6 0 10 2 9 7 8 2 1 1 6 2 4 3 2 3 1 1 3 5 2 5 2 2 2 3 3 4 1 8 0 9 5 1 4 8 1 1 2 4 4 1 1 3 2 2 3 1 2 1 5 0 7 3 1 1 1 2 4 4 1 2 2 2 1 1 5 0 6 6 6 2 5 1 1 1 2 3 1 2 3 1 1 5 3 7 1 7 0 6 5 1 9 4 2 9 3 2 1 2 2 3 2 1 8 0 7 1 7 3 1 9 5 5 3 3 1 3 1 1 2 3 1 9 0 11 2 5 2 8 3 7 1 6 8 6 1 3 2 1 3 3 3 3 1 1 5 4 1 4 3 4 3 3 3 4 1 2 4 4 2 3 7 10 9 1 7 1 7 10 1 6 diff --git a/2018/day09/day09.ss b/2018/day09/day09.ss new file mode 100644 index 0000000..984c77f --- /dev/null +++ b/2018/day09/day09.ss @@ -0,0 +1,61 @@ +(import :std/srfi/1) + +(export main) + +(def (rotate-right deque k) + (def left (car deque)) + (def right (cadr deque)) + (if (= k 0) + deque + (if (null? right) + (rotate-right [[] (reverse left)] k) + (rotate-right [(cons (car right) left) (cdr right)] (1- k))))) + +(def (rotate-left deque k) + (def left (car deque)) + (def right (cadr deque)) + (if (= k 0) + deque + (if (null? left) + (rotate-left [(reverse right) '()] k) + (rotate-left [(cdr left) (cons (car left) right)] (1- k))))) + +(def (deque-car deque) + (match deque + ([left right] (car right)))) + +(def (deque-cdr deque) + (match deque + ([left right] [left (cdr right)]))) + +(def (deque-cons x deque) + (match deque + ([left right] [left (cons x right)]))) + +(def (display-deque deque) + (displayln (reverse (car deque)) " " (cadr deque))) + +(def (play circle marbles scores player) + ;; (display-deque circle) + (match marbles + ([] scores) + ([marble . rest] + (def new-player (remainder (1+ player) (vector-length scores))) + (if (= 0 (remainder marble 23)) + (let ((new-circle (rotate-left circle 7))) + (vector-set! scores player (+ marble (deque-car new-circle) (vector-ref scores player))) + (play (deque-cdr new-circle) (cdr marbles) scores new-player)) + (let ((new-circle (deque-cons marble (rotate-right circle 2)))) + (play new-circle (cdr marbles) scores new-player)))))) + +(def (marbles-game n-players last-marble) + (apply max (vector->list (play [[] [0]] (iota last-marble 1) (make-vector n-players 0) 0)))) + +(def (main (n-players "9") (last-marble "25") . args) + (displayln (marbles-game 9 25)) + (displayln (marbles-game 10 1618)) + (displayln (marbles-game 13 7999)) + (displayln (marbles-game 17 1104)) + (displayln (marbles-game 21 6111)) + (displayln (marbles-game 30 5807)) + (displayln (marbles-game (string->number n-players) (string->number last-marble)))) diff --git a/2018/day09/input.txt b/2018/day09/input.txt new file mode 100644 index 0000000..f6f284d --- /dev/null +++ b/2018/day09/input.txt @@ -0,0 +1 @@ +463 players; last marble is worth 71787 points diff --git a/2018/day10/day10.ss b/2018/day10/day10.ss new file mode 100644 index 0000000..5e6119d --- /dev/null +++ b/2018/day10/day10.ss @@ -0,0 +1,51 @@ +(import :gerbil/gambit/ports) +(import :std/pregexp) +(import :std/srfi/1) +(import :std/srfi/13) +(import :std/iter) + +(export main) + +(defstruct point (x y vx vy)) + +(def (step-point p n) + (make-point (+ (* n (point-vx p)) (point-x p)) + (+ (* n (point-vy p)) (point-y p)) + (point-vx p) + (point-vy p))) + +(def (step-points points n) + (map (lambda (p) (step-point p n)) points)) + +(def (bounding-box points) + (let ((xs (map point-x points)) + (ys (map point-y points))) + [(- (apply max xs) (apply min xs) -1) + (- (apply max ys) (apply min ys) -1)])) + +(def (plot-points points) + (def box (bounding-box points)) + (def min-x (apply min (map point-x points))) + (def min-y (apply min (map point-y points))) + (def new-points + (delete-duplicates + (map (lambda (p) [(- (point-x p) min-x) (- (point-y p) min-y)]) points))) + (def plot (make-vector (cadr box) #f)) + (for ((i (in-range (cadr box)))) (vector-set! plot i (make-string (car box) #\.))) + (for ((p new-points)) + (string-set! (vector-ref plot (cadr p)) (car p) #\#)) + (for ((i (in-range (cadr box)))) + (displayln (vector-ref plot i)))) + +(def (main (n "10240") . args) + (def params + (map (lambda (s) (filter-map string->number (pregexp-split "[<>, ]" s))) + (call-with-input-file "input.txt" (lambda (p) (read-all p read-line))))) + (def points (map (lambda (p) (apply make-point p)) params)) + ;; (def sizes (for/collect ((i (in-range 20000))) + ;; [i (apply * (bounding-box (step-points points i)))])) + ;; (displayln + ;; (foldl (lambda (s acc) (if (< (cadr s) (cadr acc)) s acc)) + ;; (car sizes) + ;; (cdr sizes))) + (plot-points (step-points points (string->number n)))) diff --git a/2018/day10/input.txt b/2018/day10/input.txt new file mode 100644 index 0000000..00d6c7c --- /dev/null +++ b/2018/day10/input.txt @@ -0,0 +1,379 @@ +position=<-50948, 20587> velocity=< 5, -2> +position=< 20732, -51094> velocity=<-2, 5> +position=<-30471, -10131> velocity=< 3, 1> +position=<-40758, 10355> velocity=< 4, -1> +position=< 30912, 20590> velocity=<-3, -2> +position=< 30927, 30827> velocity=<-3, -3> +position=<-20237, 20591> velocity=< 2, -2> +position=< 51423, -51086> velocity=<-5, 5> +position=<-40732, -20370> velocity=< 4, 2> +position=<-20271, -51094> velocity=< 2, 5> +position=<-40764, -30605> velocity=< 4, 3> +position=<-30492, 41073> velocity=< 3, -4> +position=<-30473, -30614> velocity=< 3, 3> +position=<-51004, 41074> velocity=< 5, -4> +position=<-30481, 30829> velocity=< 3, -3> +position=<-50961, -10130> velocity=< 5, 1> +position=<-50968, 51306> velocity=< 5, -5> +position=<-30489, -40850> velocity=< 3, 4> +position=<-20273, 51307> velocity=< 2, -5> +position=<-40732, 10351> velocity=< 4, -1> +position=<-40764, -30612> velocity=< 4, 3> +position=< 10483, 51307> velocity=<-1, -5> +position=<-30511, -30614> velocity=< 3, 3> +position=< 20719, -40848> velocity=<-2, 4> +position=<-20249, -10129> velocity=< 2, 1> +position=< 30919, -51090> velocity=<-3, 5> +position=<-20281, 20595> velocity=< 2, -2> +position=< 30931, 30830> velocity=<-3, -3> +position=<-20240, 41071> velocity=< 2, -4> +position=< -9988, -51087> velocity=< 1, 5> +position=<-50991, 51315> velocity=< 5, -5> +position=<-10022, 30826> velocity=< 1, -3> +position=<-20241, 30830> velocity=< 2, -3> +position=< 10492, -30610> velocity=<-1, 3> +position=<-30525, 51313> velocity=< 3, -5> +position=< 10492, -20370> velocity=<-1, 2> +position=< 10492, -20371> velocity=<-1, 2> +position=<-20255, 30830> velocity=< 2, -3> +position=< 51403, 20595> velocity=<-5, -2> +position=< 10489, -20370> velocity=<-1, 2> +position=< 10492, 41067> velocity=<-1, -4> +position=< 20722, -40854> velocity=<-2, 4> +position=< 10451, 30830> velocity=<-1, -3> +position=< 10452, -10125> velocity=<-1, 1> +position=< 41151, 51306> velocity=<-4, -5> +position=< 51410, -30610> velocity=<-5, 3> +position=<-20289, -51093> velocity=< 2, 5> +position=<-40708, 30828> velocity=< 4, -3> +position=<-20244, -40851> velocity=< 2, 4> +position=<-20257, -30612> velocity=< 2, 3> +position=< 30943, -10131> velocity=<-3, 1> +position=<-40718, 10346> velocity=< 4, -1> +position=<-40769, -51091> velocity=< 4, 5> +position=< 30967, 41074> velocity=<-3, -4> +position=<-40728, -30614> velocity=< 4, 3> +position=<-40711, 20589> velocity=< 4, -2> +position=< 10487, -51090> velocity=<-1, 5> +position=< 10459, 20595> velocity=<-1, -2> +position=<-10025, 10346> velocity=< 1, -1> +position=< 30913, 41066> velocity=<-3, -4> +position=< 51407, 20595> velocity=<-5, -2> +position=< 30911, -10134> velocity=<-3, 1> +position=<-40769, 51310> velocity=< 4, -5> +position=<-10001, -51085> velocity=< 1, 5> +position=<-10004, 20594> velocity=< 1, -2> +position=<-20281, -40849> velocity=< 2, 4> +position=< 51444, -20365> velocity=<-5, 2> +position=<-40769, 20593> velocity=< 4, -2> +position=< 41183, 20588> velocity=<-4, -2> +position=< 30932, 51315> velocity=<-3, -5> +position=< 41192, -10130> velocity=<-4, 1> +position=< 10488, 41068> velocity=<-1, -4> +position=<-10022, -20370> velocity=< 1, 2> +position=< 30954, 30831> velocity=<-3, -3> +position=<-30513, -40845> velocity=< 3, 4> +position=< 51428, 30831> velocity=<-5, -3> +position=<-40760, -40845> velocity=< 4, 4> +position=<-10009, 30832> velocity=< 1, -3> +position=< 41151, 20586> velocity=<-4, -2> +position=< 30972, 30831> velocity=<-3, -3> +position=< 20675, -30607> velocity=<-2, 3> +position=< 51436, -30606> velocity=<-5, 3> +position=<-50977, -40852> velocity=< 5, 4> +position=< 10471, -40847> velocity=<-1, 4> +position=< 10463, 20590> velocity=<-1, -2> +position=< 30911, -10129> velocity=<-3, 1> +position=< 10476, 41074> velocity=<-1, -4> +position=< 51423, 51309> velocity=<-5, -5> +position=<-50948, -20367> velocity=< 5, 2> +position=< 51419, 30835> velocity=<-5, -3> +position=< 10474, 51306> velocity=<-1, -5> +position=< 10431, 51308> velocity=<-1, -5> +position=<-40733, 41074> velocity=< 4, -4> +position=< 30915, 51306> velocity=<-3, -5> +position=< 30959, 10354> velocity=<-3, -1> +position=< 30972, 20595> velocity=<-3, -2> +position=< 30913, -30610> velocity=<-3, 3> +position=<-10041, -20368> velocity=< 1, 2> +position=<-50972, -20368> velocity=< 5, 2> +position=<-30476, 30828> velocity=< 3, -3> +position=< 41196, -40851> velocity=<-4, 4> +position=<-40753, -20374> velocity=< 4, 2> +position=< 30927, -20368> velocity=<-3, 2> +position=<-20271, -10130> velocity=< 2, 1> +position=<-10046, -40850> velocity=< 1, 4> +position=<-20244, 51308> velocity=< 2, -5> +position=<-20280, 30835> velocity=< 2, -3> +position=< 51391, -30610> velocity=<-5, 3> +position=< 20724, -20365> velocity=<-2, 2> +position=<-40710, 10352> velocity=< 4, -1> +position=<-20289, 41075> velocity=< 2, -4> +position=< 20690, -51085> velocity=<-2, 5> +position=<-40729, 30834> velocity=< 4, -3> +position=< 51428, 51313> velocity=<-5, -5> +position=< -9998, -10129> velocity=< 1, 1> +position=< 20728, -30612> velocity=<-2, 3> +position=< 51447, 41075> velocity=<-5, -4> +position=< 41159, -30605> velocity=<-4, 3> +position=<-40744, -20374> velocity=< 4, 2> +position=< 41188, -51085> velocity=<-4, 5> +position=< 30943, -10126> velocity=<-3, 1> +position=<-10006, -10134> velocity=< 1, 1> +position=< 51399, -10131> velocity=<-5, 1> +position=< 41204, 30834> velocity=<-4, -3> +position=< 30914, -40850> velocity=<-3, 4> +position=< 30948, -51093> velocity=<-3, 5> +position=<-30486, 30826> velocity=< 3, -3> +position=< 10439, 10346> velocity=<-1, -1> +position=< 20721, -51089> velocity=<-2, 5> +position=<-50956, -10130> velocity=< 5, 1> +position=< 10464, -30613> velocity=<-1, 3> +position=< 10492, -30608> velocity=<-1, 3> +position=<-10031, 10346> velocity=< 1, -1> +position=< 30953, 30830> velocity=<-3, -3> +position=< 41204, 51308> velocity=<-4, -5> +position=< 20695, -10127> velocity=<-2, 1> +position=<-40709, -10126> velocity=< 4, 1> +position=<-30497, -20369> velocity=< 3, 2> +position=< 51396, 10354> velocity=<-5, -1> +position=< 20698, 41075> velocity=<-2, -4> +position=<-20286, -51089> velocity=< 2, 5> +position=< 30955, 41066> velocity=<-3, -4> +position=<-10046, 30830> velocity=< 1, -3> +position=<-20254, 10352> velocity=< 2, -1> +position=< -9993, -51094> velocity=< 1, 5> +position=<-50967, -40850> velocity=< 5, 4> +position=<-40753, -51088> velocity=< 4, 5> +position=<-20272, 30835> velocity=< 2, -3> +position=< 10475, 51313> velocity=<-1, -5> +position=<-40769, -40851> velocity=< 4, 4> +position=< 51447, -10128> velocity=<-5, 1> +position=<-10036, 20595> velocity=< 1, -2> +position=< 51431, -40852> velocity=<-5, 4> +position=< 41204, -10127> velocity=<-4, 1> +position=< 51448, 51307> velocity=<-5, -5> +position=<-51008, -51094> velocity=< 5, 5> +position=< 20727, -20369> velocity=<-2, 2> +position=<-50969, 41075> velocity=< 5, -4> +position=< 20707, 10353> velocity=<-2, -1> +position=< 51447, -10130> velocity=<-5, 1> +position=< 10439, 20588> velocity=<-1, -2> +position=< 10490, -20368> velocity=<-1, 2> +position=<-40769, 41068> velocity=< 4, -4> +position=< 30915, -51090> velocity=<-3, 5> +position=<-20273, 30831> velocity=< 2, -3> +position=< 10463, 20586> velocity=<-1, -2> +position=< 51417, 41075> velocity=<-5, -4> +position=<-50948, 41071> velocity=< 5, -4> +position=<-30470, 20591> velocity=< 3, -2> +position=< 51439, 51311> velocity=<-5, -5> +position=< 51399, 51307> velocity=<-5, -5> +position=<-30478, -40849> velocity=< 3, 4> +position=<-40727, 41070> velocity=< 4, -4> +position=<-30503, 51306> velocity=< 3, -5> +position=<-20252, 51308> velocity=< 2, -5> +position=<-20265, -51094> velocity=< 2, 5> +position=<-30468, -40846> velocity=< 3, 4> +position=<-30501, -30611> velocity=< 3, 3> +position=<-20263, -40849> velocity=< 2, 4> +position=< 20714, 20591> velocity=<-2, -2> +position=<-20252, -40854> velocity=< 2, 4> +position=<-40729, -40853> velocity=< 4, 4> +position=<-10047, 30826> velocity=< 1, -3> +position=< 10479, -51088> velocity=<-1, 5> +position=< 51443, 41071> velocity=<-5, -4> +position=<-50969, -40854> velocity=< 5, 4> +position=<-40742, -20374> velocity=< 4, 2> +position=< 41155, 20592> velocity=<-4, -2> +position=< 41175, 41074> velocity=<-4, -4> +position=< 20679, 20594> velocity=<-2, -2> +position=<-20265, 10355> velocity=< 2, -1> +position=< 41184, 20587> velocity=<-4, -2> +position=< 41177, -40845> velocity=<-4, 4> +position=< 30938, -20374> velocity=<-3, 2> +position=< 20732, 30830> velocity=<-2, -3> +position=<-20273, 51314> velocity=< 2, -5> +position=< 41178, 51310> velocity=<-4, -5> +position=< 20687, 30829> velocity=<-2, -3> +position=<-50964, 10347> velocity=< 5, -1> +position=< 51391, -51093> velocity=<-5, 5> +position=<-30485, -51088> velocity=< 3, 5> +position=<-30468, -30611> velocity=< 3, 3> +position=<-30513, 51312> velocity=< 3, -5> +position=<-40753, 10347> velocity=< 4, -1> +position=<-50993, 51308> velocity=< 5, -5> +position=< 41194, -51089> velocity=<-4, 5> +position=< 30919, -30607> velocity=<-3, 3> +position=< 51436, 51315> velocity=<-5, -5> +position=<-20245, -20368> velocity=< 2, 2> +position=< 30913, -20370> velocity=<-3, 2> +position=< 30943, -51086> velocity=<-3, 5> +position=<-20273, 41073> velocity=< 2, -4> +position=< 10484, -40850> velocity=<-1, 4> +position=< 10492, -40848> velocity=<-1, 4> +position=<-10009, 30826> velocity=< 1, -3> +position=< 20679, -20368> velocity=<-2, 2> +position=<-50959, -30614> velocity=< 5, 3> +position=<-40741, -10134> velocity=< 4, 1> +position=< 30919, 30834> velocity=<-3, -3> +position=<-10033, 30833> velocity=< 1, -3> +position=<-30489, 30831> velocity=< 3, -3> +position=<-30492, -40848> velocity=< 3, 4> +position=<-40720, -30613> velocity=< 4, 3> +position=<-50993, -30612> velocity=< 5, 3> +position=<-40745, -20365> velocity=< 4, 2> +position=<-10024, -20368> velocity=< 1, 2> +position=< 41152, 30830> velocity=<-4, -3> +position=< 30951, 20586> velocity=<-3, -2> +position=<-40740, 41075> velocity=< 4, -4> +position=< 51416, -40845> velocity=<-5, 4> +position=<-30527, -51090> velocity=< 3, 5> +position=< 41161, 51315> velocity=<-4, -5> +position=<-40764, -20365> velocity=< 4, 2> +position=< 51448, -51093> velocity=<-5, 5> +position=<-30521, 10349> velocity=< 3, -1> +position=<-20249, 51312> velocity=< 2, -5> +position=<-30513, 10354> velocity=< 3, -1> +position=< 30945, 30830> velocity=<-3, -3> +position=< -9996, 30832> velocity=< 1, -3> +position=< 10468, -51085> velocity=<-1, 5> +position=<-30487, 10346> velocity=< 3, -1> +position=< 51391, 10352> velocity=<-5, -1> +position=< 10471, 41067> velocity=<-1, -4> +position=<-10033, 30830> velocity=< 1, -3> +position=< 30932, 30835> velocity=<-3, -3> +position=< 41199, 51308> velocity=<-4, -5> +position=<-40713, -10134> velocity=< 4, 1> +position=<-10005, -51088> velocity=< 1, 5> +position=< 10475, -20370> velocity=<-1, 2> +position=< 10484, 41071> velocity=<-1, -4> +position=< 10439, -20367> velocity=<-1, 2> +position=< 10448, -51090> velocity=<-1, 5> +position=<-30529, 20591> velocity=< 3, -2> +position=< 41188, 41068> velocity=<-4, -4> +position=< 51419, 10349> velocity=<-5, -1> +position=<-20289, 10348> velocity=< 2, -1> +position=<-20265, -10134> velocity=< 2, 1> +position=< 30927, 30831> velocity=<-3, -3> +position=< 41183, -40849> velocity=<-4, 4> +position=< 10487, -10128> velocity=<-1, 1> +position=<-20236, -51086> velocity=< 2, 5> +position=< 30943, -20371> velocity=<-3, 2> +position=< 30948, 20589> velocity=<-3, -2> +position=<-10015, -30611> velocity=< 1, 3> +position=< 41208, -20372> velocity=<-4, 2> +position=< 51431, -20372> velocity=<-5, 2> +position=<-10016, 41068> velocity=< 1, -4> +position=< 41180, -40852> velocity=<-4, 4> +position=<-20230, -10129> velocity=< 2, 1> +position=<-40713, -51092> velocity=< 4, 5> +position=<-40712, 41067> velocity=< 4, -4> +position=< 51418, 20595> velocity=<-5, -2> +position=< 41191, 30827> velocity=<-4, -3> +position=<-20233, -10133> velocity=< 2, 1> +position=< 51395, 10352> velocity=<-5, -1> +position=< 41212, -30609> velocity=<-4, 3> +position=< 41167, -51086> velocity=<-4, 5> +position=<-40737, 20595> velocity=< 4, -2> +position=<-10040, -10125> velocity=< 1, 1> +position=<-40753, -10129> velocity=< 4, 1> +position=< 30927, 51310> velocity=<-3, -5> +position=< 20676, 20589> velocity=<-2, -2> +position=<-30529, -10128> velocity=< 3, 1> +position=< 20729, 51310> velocity=<-2, -5> +position=<-20229, -40847> velocity=< 2, 4> +position=< 41196, 20587> velocity=<-4, -2> +position=< 10468, 51314> velocity=<-1, -5> +position=< 20676, 41067> velocity=<-2, -4> +position=< -9993, 30834> velocity=< 1, -3> +position=<-51004, 51307> velocity=< 5, -5> +position=< 51410, 30835> velocity=<-5, -3> +position=<-30476, 41075> velocity=< 3, -4> +position=<-20281, 20590> velocity=< 2, -2> +position=< 20727, -40852> velocity=<-2, 4> +position=<-10001, -30609> velocity=< 1, 3> +position=< 20691, 30826> velocity=<-2, -3> +position=<-51001, 20587> velocity=< 5, -2> +position=<-51001, 51310> velocity=< 5, -5> +position=<-20252, -30612> velocity=< 2, 3> +position=<-20257, -30610> velocity=< 2, 3> +position=< 20703, -20370> velocity=<-2, 2> +position=< 41207, -51093> velocity=<-4, 5> +position=<-30481, 20593> velocity=< 3, -2> +position=<-30510, -30614> velocity=< 3, 3> +position=<-10001, -20366> velocity=< 1, 2> +position=<-30485, 20590> velocity=< 3, -2> +position=< 10460, -51094> velocity=<-1, 5> +position=< 51410, -40850> velocity=<-5, 4> +position=<-20236, 20589> velocity=< 2, -2> +position=<-20241, 20594> velocity=< 2, -2> +position=<-10044, -10132> velocity=< 1, 1> +position=<-10048, 20586> velocity=< 1, -2> +position=<-20245, -10130> velocity=< 2, 1> +position=< 30951, -10131> velocity=<-3, 1> +position=< -9993, -40852> velocity=< 1, 4> +position=< 30971, -30607> velocity=<-3, 3> +position=< 51391, 20594> velocity=<-5, -2> +position=<-50951, -51091> velocity=< 5, 5> +position=< -9993, 20593> velocity=< 1, -2> +position=< 10480, -10129> velocity=<-1, 1> +position=< 41211, 51314> velocity=<-4, -5> +position=< 30912, -10134> velocity=<-3, 1> +position=< 30944, 30828> velocity=<-3, -3> +position=< 30915, -51090> velocity=<-3, 5> +position=< -9999, 10351> velocity=< 1, -1> +position=< 51395, 51312> velocity=<-5, -5> +position=<-40729, 20588> velocity=< 4, -2> +position=<-20229, -40846> velocity=< 2, 4> +position=<-10033, 30833> velocity=< 1, -3> +position=< 41168, 41066> velocity=<-4, -4> +position=< 20703, 51306> velocity=<-2, -5> +position=< 20732, 51309> velocity=<-2, -5> +position=<-10020, 10347> velocity=< 1, -1> +position=<-40716, -10130> velocity=< 4, 1> +position=< 41212, 10352> velocity=<-4, -1> +position=< 10464, -51093> velocity=<-1, 5> +position=< 10434, 41066> velocity=<-1, -4> +position=< 10451, 51315> velocity=<-1, -5> +position=<-40764, -10133> velocity=< 4, 1> +position=<-10049, -10126> velocity=< 1, 1> +position=< 10463, 10347> velocity=<-1, -1> +position=< 20732, 41075> velocity=<-2, -4> +position=<-30488, -10130> velocity=< 3, 1> +position=<-10009, 10349> velocity=< 1, -1> +position=<-40744, -10134> velocity=< 4, 1> +position=< 20703, 41073> velocity=<-2, -4> +position=< 41204, -51092> velocity=<-4, 5> +position=<-50960, -51093> velocity=< 5, 5> +position=<-40748, 20586> velocity=< 4, -2> +position=< 51428, 20591> velocity=<-5, -2> +position=<-30489, 30831> velocity=< 3, -3> +position=< 10472, 10350> velocity=<-1, -1> +position=< 41199, -20371> velocity=<-4, 2> +position=<-30489, 41069> velocity=< 3, -4> +position=<-20241, 10352> velocity=< 2, -1> +position=< 41188, -51090> velocity=<-4, 5> +position=<-10004, -40845> velocity=< 1, 4> +position=<-30497, -51088> velocity=< 3, 5> +position=< 30943, 20591> velocity=<-3, -2> +position=<-50956, -10129> velocity=< 5, 1> +position=< 41186, -20369> velocity=<-4, 2> +position=< 30948, 41066> velocity=<-3, -4> +position=< 30919, 51309> velocity=<-3, -5> +position=< 10451, 10355> velocity=<-1, -1> +position=< 10475, 20586> velocity=<-1, -2> +position=< 30959, 20588> velocity=<-3, -2> +position=< 41187, -51087> velocity=<-4, 5> +position=< 30956, 51309> velocity=<-3, -5> +position=<-30497, 41075> velocity=< 3, -4> +position=< 51396, 51309> velocity=<-5, -5> +position=< 30962, -51094> velocity=<-3, 5> +position=< 30967, -51091> velocity=<-3, 5> +position=< 10487, 20587> velocity=<-1, -2> +position=<-40732, 30826> velocity=< 4, -3> +position=<-50985, 10354> velocity=< 5, -1> +position=<-40753, -40850> velocity=< 4, 4> +position=< 10476, -51092> velocity=<-1, 5> +position=<-50966, 10350> velocity=< 5, -1> +position=< 30930, 51306> velocity=<-3, -5> diff --git a/2018/day11/day11.ss b/2018/day11/day11.ss new file mode 100644 index 0000000..f907dd8 --- /dev/null +++ b/2018/day11/day11.ss @@ -0,0 +1,75 @@ +(import :std/srfi/1) +(import :std/srfi/43) +(import :std/iter) +(import :gerbil/gambit/hvectors) + +(export main) + +(def (hundreds-digit n) + (remainder (quotient n 100) 10)) + +(def (power serial-number x y) + (def rack-id (+ x 10)) + (- (hundreds-digit (* rack-id (+ (* rack-id y) serial-number))) 5)) + +(def (build-grid serial-number grid-size) + (def grid (make-vector grid-size #f)) + (for ((i (in-range grid-size))) + (vector-set! grid i (make-s32vector grid-size 0))) + (for* ((i (in-range grid-size)) + (j (in-range grid-size))) + (s32vector-set! (vector-ref grid i) + j + (power serial-number i j))) + (for* ((i (in-range grid-size)) + (j (in-range grid-size))) + (if (> i 0) + (let ((cur-row (vector-ref grid i)) + (prev-row (vector-ref grid (- i 1)))) + (s32vector-set! cur-row j + (+ (s32vector-ref cur-row j) + (if (> j 0) (s32vector-ref cur-row (- j 1)) 0) + (s32vector-ref prev-row j) + (if (> j 0) (- (s32vector-ref prev-row (- j 1))) 0)))) + (let ((cur-row (vector-ref grid i))) + (s32vector-set! cur-row j + (+ (s32vector-ref cur-row j) + (if (> j 0) (s32vector-ref cur-row (- j 1)) 0)))))) + grid) + +(def (largest-power-cell grid cell-size) + (def grid-size (vector-length grid)) + (def max -10000) + (def max-idx [0 0]) + (for* ((i (in-range (- grid-size cell-size))) + (j (in-range (- grid-size cell-size)))) + (let* ((top-row (vector-ref grid i)) + (bottom-row (vector-ref grid (+ i cell-size))) + (sum (- (+ (s32vector-ref bottom-row (+ j cell-size)) + (s32vector-ref top-row j)) + (+ (s32vector-ref bottom-row j) + (s32vector-ref top-row (+ j cell-size)))))) + (when (> sum max) + (begin + (set! max sum) + (set! max-idx [(1+ i) (1+ j)]))))) + (cons max max-idx)) + +(def (largest-power-cell-size grid) + (def grid-size (vector-length grid)) + (def max-size 0) + (def max -1000) + (def res #f) + (for ((size (in-range grid-size))) + (let ((x (largest-power-cell grid size))) + (when (> (car x) max) + (begin + (set! max (car x)) + (set! max-size size) + (set! res (cons size x)))))) + res) + +(def (main (serial-number "9005") . args) + (def grid (build-grid (string->number serial-number) 300)) + (displayln (largest-power-cell grid 3)) + (displayln (largest-power-cell-size grid))) diff --git a/2019/.gitignore b/2019/.gitignore new file mode 100644 index 0000000..a932a38 --- /dev/null +++ b/2019/.gitignore @@ -0,0 +1,3 @@ +*\~ +*.fasl +compiled/ diff --git a/2019/README.org b/2019/README.org new file mode 100644 index 0000000..1318b66 --- /dev/null +++ b/2019/README.org @@ -0,0 +1,10 @@ +* Advent of Code 2019 + +My answers for [[https://adventofcode.com/2019][Advent of Code 2019]]. + +Racket tests: + +#+begin_src sh + raco make **/*.rkt + raco test **/*.rkt +#+end_src diff --git a/2019/day01/day01.dyalog b/2019/day01/day01.dyalog new file mode 100644 index 0000000..f0e1bc7 --- /dev/null +++ b/2019/day01/day01.dyalog @@ -0,0 +1,4 @@ +p←⍎¨⊃⎕nget'input.txt'1 +f←{0⌈⌊2-⍨⍵÷3} ++/f p ⍝ part 1 ++/,↑{(f⍣⍵)p}¨⍳10 ⍝ part 2 diff --git a/2019/day01/day01.lisp b/2019/day01/day01.lisp new file mode 100644 index 0000000..ad7a3d7 --- /dev/null +++ b/2019/day01/day01.lisp @@ -0,0 +1,16 @@ +(defparameter *input-file* #P"input.txt") +(defparameter *input* (uiop:read-file-lines *input-file*)) + +(defun part1 () + (loop for line in *input* + sum (- (floor (/ (parse-integer line) 3)) 2))) + +(defun total-fuel-requirements (total-fuel fuel) + (let ((new-fuel (max 0 (- (floor (/ fuel 3)) 2)))) + (if (= new-fuel 0) + (+ total-fuel fuel) + (total-fuel-requirements (+ total-fuel fuel) new-fuel)))) + +(defun part2 () + (loop for line in *input* + sum (total-fuel-requirements 0 (- (floor (/ (parse-integer line) 3)) 2)))) diff --git a/2019/day01/input.txt b/2019/day01/input.txt new file mode 100644 index 0000000..f7ecc94 --- /dev/null +++ b/2019/day01/input.txt @@ -0,0 +1,100 @@ +120847 +60347 +63340 +72773 +57020 +133960 +98163 +121548 +87233 +59150 +59712 +146816 +93205 +61936 +75319 +141998 +97125 +73450 +106250 +129939 +94854 +113782 +112044 +127923 +67114 +119770 +130034 +70876 +82204 +101939 +132604 +142836 +117066 +95861 +75597 +94630 +50085 +101107 +77937 +94286 +74091 +140875 +118543 +52767 +54544 +93062 +115681 +142065 +111737 +131214 +75160 +115432 +140504 +115376 +86589 +104631 +133012 +108690 +85993 +99533 +133725 +87698 +133480 +68379 +107852 +111209 +116623 +98717 +130227 +114356 +144516 +89663 +118355 +77816 +149914 +105080 +116793 +65259 +143900 +67838 +148389 +129753 +140524 +90005 +147305 +118428 +79940 +59110 +78120 +87066 +64722 +142066 +81410 +106958 +92984 +95584 +108534 +66362 +126340 +143660 diff --git a/2019/day02/day02.dyalog b/2019/day02/day02.dyalog new file mode 100644 index 0000000..3e200c4 --- /dev/null +++ b/2019/day02/day02.dyalog @@ -0,0 +1,5 @@ + ⎕io←0 + p←⍎¨','(≠⊆⊢)⊃⊃⎕nget'input.txt'1 + f←{i←0 ⊣ s[1 2]←⍵ ⊣ s←p ⋄ ⊃s⊣{i+←4 ⊣ a x y z←s[i+⍳4] ⋄ s[z]←(a-1)⌷s[x](+,×)s[y]}⍣{99=i⌷s}0} + f 12 2 ⍝ part 1 + nv←1+,⍳99 99 ⋄ +/100 1×⊃nv[(19690720=f¨nv)⍳1] ⍝ part 2 diff --git a/2019/day02/day02.lisp b/2019/day02/day02.lisp new file mode 100644 index 0000000..80d2b1b --- /dev/null +++ b/2019/day02/day02.lisp @@ -0,0 +1,32 @@ +(ql:quickload "str") + +(defparameter *input-file* #P"input.txt") +(defparameter *input* (uiop:read-file-string *input-file*)) + +(defun execute (program) + (loop for i from 0 by 4 until (= 99 (aref program i)) + do (let ((opcode (aref program i))) + (cond ((= opcode 1) + (setf (aref program (aref program (+ 3 i))) + (+ (aref program (aref program (+ 1 i))) + (aref program (aref program (+ 2 i)))))) + ((= opcode 2) + (setf (aref program (aref program (+ 3 i))) + (* (aref program (aref program (+ 1 i))) + (aref program (aref program (+ 2 i))))))))) + program) + +(defun execute-with-inputs (program-string noun verb) + (let ((program (map 'vector #'parse-integer (str:split "," program-string)))) + (setf (aref program 1) noun) + (setf (aref program 2) verb) + (aref (execute program) 0))) + +(defun part1 (program-string) + (execute-with-inputs program-string 12 2)) + +(defun part2 (program-string) + (dotimes (noun 99) + (dotimes (verb 99) + (when (= 19690720 (execute-with-inputs program-string noun verb)) + (return-from part2 (+ (* 100 noun) verb)))))) diff --git a/2019/day02/day02.rkt b/2019/day02/day02.rkt new file mode 100644 index 0000000..b268ed3 --- /dev/null +++ b/2019/day02/day02.rkt @@ -0,0 +1,34 @@ +#lang racket/base + +(require "../intcode.rkt" + racket/vector) + +(module+ test + (require rackunit)) + +(define (part1 filename) + (define program (parse-file filename)) + (vector-set! program 1 12) + (vector-set! program 2 2) + (define vm (execute (start-machine program '()))) + (vector-ref (machine-program vm) 0)) + +(module+ test + (check-equal? (part1 "input.txt") 6627023)) + +(define (try-inputs program noun verb) + (define my-program (vector-copy program)) + (vector-set! my-program 1 noun) + (vector-set! my-program 2 verb) + (define vm (execute (start-machine my-program '()))) + (vector-ref (machine-program vm) 0)) + +(define (part2 filename) + (define program (parse-file filename)) + (for*/first ([noun (in-range 100)] + [verb (in-range 100)] + #:when (eq? 19690720 (try-inputs program noun verb))) + (+ (* 100 noun) verb))) + +(module+ test + (check-equal? (part2 "input.txt") 4019)) diff --git a/2019/day02/input.txt b/2019/day02/input.txt new file mode 100644 index 0000000..6478cca --- /dev/null +++ b/2019/day02/input.txt @@ -0,0 +1 @@ +1,0,0,3,1,1,2,3,1,3,4,3,1,5,0,3,2,9,1,19,1,9,19,23,1,23,5,27,2,27,10,31,1,6,31,35,1,6,35,39,2,9,39,43,1,6,43,47,1,47,5,51,1,51,13,55,1,55,13,59,1,59,5,63,2,63,6,67,1,5,67,71,1,71,13,75,1,10,75,79,2,79,6,83,2,9,83,87,1,5,87,91,1,91,5,95,2,9,95,99,1,6,99,103,1,9,103,107,2,9,107,111,1,111,6,115,2,9,115,119,1,119,6,123,1,123,9,127,2,127,13,131,1,131,9,135,1,10,135,139,2,139,10,143,1,143,5,147,2,147,6,151,1,151,5,155,1,2,155,159,1,6,159,0,99,2,0,14,0 diff --git a/2019/day03/day03.dyalog b/2019/day03/day03.dyalog new file mode 100644 index 0000000..b6749b3 --- /dev/null +++ b/2019/day03/day03.dyalog @@ -0,0 +1,7 @@ + ⎕io←0 + p←','(≠⊆⊢)¨⊃⎕nget'input.txt'1 + segment←{x y←⍺ ⋄ 'R'=⊃⍵:{x y+⍵}¨1↓,⍳(1+⍎1↓⍵),1 ⋄ 'L'=⊃⍵:{x y+⍵}¨1↓,-⍳(1+⍎1↓⍵),1 ⋄ 'D'=⊃⍵:{x y+⍵}¨1↓,-⍳1,1+⍎1↓⍵ ⋄ 'U'=⊃⍵:{x y+⍵}¨1↓,⍳1,1+⍎1↓⍵} + path←{x←⊂0 0 ⋄ 1↓x⊣{x,←(⊃⌽x) segment ⍵}¨⍵} + ⌊/+/↑(path ⊃0⌷p) ∩ path ⊃1⌷p ⍝ part 1 + c←(path ⊃0⌷p)∩path ⊃1⌷p + 2+⌊/((path ⊃0⌷p)⍳c)+(path ⊃1⌷p)⍳c ⍝ part 2 diff --git a/2019/day03/input.txt b/2019/day03/input.txt new file mode 100644 index 0000000..976d615 --- /dev/null +++ b/2019/day03/input.txt @@ -0,0 +1,2 @@ +R990,U803,R777,U157,R629,D493,R498,D606,R344,U241,L708,D403,R943,U961,L107,D755,R145,D77,L654,D297,L263,D904,R405,U676,R674,U139,L746,U935,R186,U433,L739,D774,R470,D459,R865,D209,L217,U525,R747,D218,R432,U769,L876,D477,R606,D161,R991,D338,R647,D958,R777,D148,R593,D873,L95,U707,R468,U518,R845,U285,R221,U771,R989,D107,R44,U833,L343,D420,R468,D954,L604,D270,L691,U401,R850,U70,R441,U461,R638,D743,R65,U673,L999,U110,R266,U759,R768,U569,L250,D577,R247,U420,L227,U437,L80,D647,L778,U935,R585,U35,L735,D201,R694,U635,L597,U215,R743,D542,L701,U946,L503,U589,R836,D687,L444,U409,L473,U132,L570,U374,R193,D908,L800,U294,L252,U851,R947,D647,L37,D20,L27,U620,L534,D356,L291,U611,L128,D670,L364,U200,L749,D708,R776,U99,R606,D999,L810,D373,R212,D138,R856,D966,L206,D23,L860,D731,L914,U716,L212,U225,R766,U348,L220,D69,L766,D15,L557,U71,R734,D295,R884,D822,R300,D152,L986,D170,R764,U24,R394,D710,L860,U830,L305,U431,R201,D44,R882,U667,R37,D727,R916,U460,L834,D771,R373,U96,L707,D576,R607,D351,R577,D200,L402,U364,L32,D512,L152,D283,L232,U804,R827,U352,R104,D323,L254,U273,L451,D967,R739,D53,L908,D866,R998,U897,L581,U538,R206,U644,L70,D17,L481,U912,L377,D922,L286,U547,R35,U292,L318,U256,R79,D52,R92,U160,R763,U428,R663,D634,R212,D325,R460,U142,L375,U382,R20,D321,L220,D578,R915,D465,L797,D849,L281,D491,L911,D624,R800,U629,L675,U428,L219,U694,R680,U350,R113,D903,L22,D683,L787,D1,R93,U315,L562,U756,R622,D533,L587,D216,L933,U972,R506,U536,R797,U828,L12,D965,L641,U165,R937,D675,R259 +L998,D197,L301,D874,L221,U985,L213,D288,R142,D635,R333,D328,R405,D988,L23,D917,R412,D971,R876,U527,R987,D884,R39,D485,L971,U200,R931,U79,L271,U183,R354,D18,R346,D866,L752,D204,L863,U784,R292,U676,R811,U721,L53,U983,L993,U822,R871,U539,L782,D749,R417,U667,R882,U467,R321,U894,R912,U756,L102,U154,L57,D316,R200,U372,L44,U406,L426,D613,R847,U977,R303,U469,R509,U839,L633,D267,L487,D976,R325,U399,L359,U161,L305,U935,R522,D848,R784,D273,L337,D55,L266,U406,L858,D650,L176,D124,R231,U513,L462,U328,L674,D598,R568,D742,L39,D438,L643,D254,R577,U519,R325,U124,R91,U129,L79,D52,R480,D46,R129,D997,R452,D992,L721,U490,L595,D666,R372,D198,R813,U624,L469,U59,R578,U184,R117,D749,L745,U302,R398,D951,L683,D360,R476,D788,R70,U693,R295,D547,L61,U782,R440,D818,L330,D321,L968,U622,R160,U571,L886,D43,L855,U272,R530,D267,L312,D519,L741,D697,R206,U148,L445,U857,R983,D192,L788,U826,R805,U932,R888,D250,L682,D52,R406,D176,R984,D637,L947,D416,L687,U699,L544,D710,L933,D171,L357,D134,L968,D538,R496,D240,L730,U771,R554,U708,R265,D748,L839,U668,L333,U335,R526,U809,L653,D6,R234,D130,R871,U911,R538,U372,L960,D535,L196,U236,L966,D185,L166,U789,L885,U453,R627,D586,R501,U222,L280,U124,R755,D159,L759,U78,R669,D889,L150,D888,L71,D917,L126,D97,L138,U726,R160,D971,R527,D988,R455,D413,R539,U923,R258,U734,L459,D954,R877,U613,R343,D98,R238,U478,R514,U814,L274,U119,L958,U698,R761,U693,R367,D111,L800,D531,L91,U616,R208,D255,R169,U145,R671,U969,L468,U566,R589,D455,R323,D303,R374,D890,R377,D262,L40,U85,L719 diff --git a/2019/day04/day04.dyalog b/2019/day04/day04.dyalog new file mode 100644 index 0000000..ccf4c65 --- /dev/null +++ b/2019/day04/day04.dyalog @@ -0,0 +1,14 @@ + ⎕io←0 + a b←245182 790572 + p←⊃(,(∘.,))/6/⊂⍳10 + x←{(1↓⍵)-¯1↓⍵}¨p + n←10⊥¨((∨/¨0=x)∧∧/¨0≤x)/p + ≢((n>a)∧na)∧n2list quine))) + (test-case "16-digit number" + (define program (parse "1102,34915192,34915192,7,4,7,99,0")) + (define vm (execute (start-machine program '()))) + (check-true (machine-terminated vm)) + (check-equal? (string-length (number->string (car (machine-outputs vm)))) 16)) + (test-case "large number" + (define program (parse "104,1125899906842624,99")) + (define vm (execute (start-machine program '()))) + (check-true (machine-terminated vm)) + (check-equal? (car (machine-outputs vm)) 1125899906842624)) + (check-equal? (part12 (parse-file "input") 1) 3601950151) + (check-equal? (part12 (parse-file "input") 2) 64236)) diff --git a/2019/day09/input b/2019/day09/input new file mode 100644 index 0000000..007b858 --- /dev/null +++ b/2019/day09/input @@ -0,0 +1 @@ +1102,34463338,34463338,63,1007,63,34463338,63,1005,63,53,1101,0,3,1000,109,988,209,12,9,1000,209,6,209,3,203,0,1008,1000,1,63,1005,63,65,1008,1000,2,63,1005,63,904,1008,1000,0,63,1005,63,58,4,25,104,0,99,4,0,104,0,99,4,17,104,0,99,0,0,1101,0,30,1016,1101,37,0,1005,1101,362,0,1023,1101,0,20,1014,1101,39,0,1013,1102,34,1,1007,1101,682,0,1027,1102,664,1,1025,1102,1,655,1028,1101,0,26,1002,1102,1,38,1015,1101,669,0,1024,1101,0,28,1017,1102,1,21,1000,1101,0,27,1012,1102,1,29,1008,1102,1,23,1019,1101,0,24,1011,1101,685,0,1026,1102,646,1,1029,1102,1,369,1022,1101,0,31,1003,1102,1,36,1001,1101,0,0,1020,1102,1,35,1009,1101,32,0,1010,1101,0,1,1021,1102,33,1,1004,1101,22,0,1006,1102,1,25,1018,109,14,1205,6,197,1001,64,1,64,1105,1,199,4,187,1002,64,2,64,109,-4,21107,40,39,9,1005,1019,219,1001,64,1,64,1105,1,221,4,205,1002,64,2,64,109,9,1206,1,239,4,227,1001,64,1,64,1106,0,239,1002,64,2,64,109,-9,2101,0,-8,63,1008,63,26,63,1005,63,261,4,245,1106,0,265,1001,64,1,64,1002,64,2,64,109,-6,2108,37,1,63,1005,63,287,4,271,1001,64,1,64,1105,1,287,1002,64,2,64,109,15,21108,41,44,-2,1005,1017,307,1001,64,1,64,1106,0,309,4,293,1002,64,2,64,109,-16,1207,1,34,63,1005,63,327,4,315,1105,1,331,1001,64,1,64,1002,64,2,64,109,8,1208,-9,29,63,1005,63,347,1106,0,353,4,337,1001,64,1,64,1002,64,2,64,109,4,2105,1,8,1001,64,1,64,1105,1,371,4,359,1002,64,2,64,109,-22,1201,9,0,63,1008,63,27,63,1005,63,391,1106,0,397,4,377,1001,64,1,64,1002,64,2,64,109,18,21107,42,43,5,1005,1016,415,4,403,1106,0,419,1001,64,1,64,1002,64,2,64,109,-8,1201,2,0,63,1008,63,37,63,1005,63,441,4,425,1105,1,445,1001,64,1,64,1002,64,2,64,109,27,1205,-9,463,4,451,1001,64,1,64,1106,0,463,1002,64,2,64,109,-1,1206,-8,475,1105,1,481,4,469,1001,64,1,64,1002,64,2,64,109,-6,21101,43,0,-8,1008,1015,43,63,1005,63,507,4,487,1001,64,1,64,1106,0,507,1002,64,2,64,109,-15,2101,0,-3,63,1008,63,35,63,1005,63,531,1001,64,1,64,1106,0,533,4,513,1002,64,2,64,109,-2,2102,1,-6,63,1008,63,18,63,1005,63,553,1105,1,559,4,539,1001,64,1,64,1002,64,2,64,109,7,21102,44,1,3,1008,1016,44,63,1005,63,581,4,565,1105,1,585,1001,64,1,64,1002,64,2,64,109,-11,1202,7,1,63,1008,63,34,63,1005,63,609,1001,64,1,64,1105,1,611,4,591,1002,64,2,64,109,6,1202,1,1,63,1008,63,35,63,1005,63,637,4,617,1001,64,1,64,1106,0,637,1002,64,2,64,109,16,2106,0,4,4,643,1001,64,1,64,1106,0,655,1002,64,2,64,109,-1,2105,1,1,4,661,1106,0,673,1001,64,1,64,1002,64,2,64,109,5,2106,0,-1,1105,1,691,4,679,1001,64,1,64,1002,64,2,64,109,-24,1208,-2,26,63,1005,63,709,4,697,1105,1,713,1001,64,1,64,1002,64,2,64,109,-10,2102,1,6,63,1008,63,21,63,1005,63,735,4,719,1105,1,739,1001,64,1,64,1002,64,2,64,109,25,21108,45,45,-9,1005,1010,757,4,745,1106,0,761,1001,64,1,64,1002,64,2,64,109,-12,1207,-7,20,63,1005,63,777,1106,0,783,4,767,1001,64,1,64,1002,64,2,64,109,-13,2108,22,6,63,1005,63,799,1106,0,805,4,789,1001,64,1,64,1002,64,2,64,109,17,21102,46,1,0,1008,1011,45,63,1005,63,825,1105,1,831,4,811,1001,64,1,64,1002,64,2,64,109,-6,2107,21,1,63,1005,63,849,4,837,1105,1,853,1001,64,1,64,1002,64,2,64,109,-3,2107,27,0,63,1005,63,873,1001,64,1,64,1105,1,875,4,859,1002,64,2,64,109,12,21101,47,0,0,1008,1014,48,63,1005,63,899,1001,64,1,64,1105,1,901,4,881,4,64,99,21102,27,1,1,21101,0,915,0,1105,1,922,21201,1,42931,1,204,1,99,109,3,1207,-2,3,63,1005,63,964,21201,-2,-1,1,21101,942,0,0,1106,0,922,21202,1,1,-1,21201,-2,-3,1,21102,1,957,0,1106,0,922,22201,1,-1,-2,1106,0,968,22101,0,-2,-2,109,-3,2106,0,0 diff --git a/2019/day10/day10.rkt b/2019/day10/day10.rkt new file mode 100644 index 0000000..0277f26 --- /dev/null +++ b/2019/day10/day10.rkt @@ -0,0 +1,87 @@ +#lang racket + +(module+ test + (require rackunit)) + +(define (read-input filename) + (string->grid (file->string filename))) + +(define (string->grid str) + (for/set ([line (string-split str)] + [i (in-naturals)] + #:when #t + [c (in-string line)] + [j (in-naturals)] + #:when (eq? c #\#)) + (make-rectangular j i))) + +(define (segment->direction x) + (define a (real-part x)) + (define b (imag-part x)) + (define r (gcd a b)) + (make-rectangular (/ a r) (/ b r))) + +(define (detected grid) + (for/hash ([x (in-set grid)]) + (values x (for/set ([y (in-set grid)] + #:unless (= x y)) + (segment->direction (- y x)))))) + +(define (find-station grid) + (define visible (detected grid)) + (define max-visible (apply max (map set-count (hash-values visible)))) + (define pos (for/first ([(k v) (in-hash visible)] + #:when (= max-visible (set-count v))) + k)) + (values pos (hash-ref visible pos))) + +(define (part1 filename) + (define grid (read-input filename)) + (define-values (loc dirs) (find-station grid)) + (set-count dirs)) + +(module+ test + (check-equal? (part1 "test") 8) + (check-equal? (part1 "input") 286)) + +(define (find-target grid station direction) + (define targets + (for/list ([x (in-set grid)] + #:unless (= x station) + #:when (real? (/ (- x station) direction)) + #:when (<= 0 (/ (- x station) direction))) + x)) + (car (sort targets + (λ (x y) (< (magnitude (- x station)) + (magnitude (- y station))))))) + +(define (rotate-left lst) + (if (empty? lst) + '() + (append (cdr lst) (list (car lst))))) + +(define (rotate-right lst) + (reverse (rotate-left (reverse lst)))) + +(define (find-nth-target grid n) + (define-values (station directions) (find-station grid)) + (define directions-sorted (rotate-right + (sort (set->list directions) + (λ (x y) (< (angle (* -i x)) (angle (* -i y))))))) + (define-values (final-grid targets) + (for/fold ([grid grid] + [targets '()]) + ([i (in-range n)] + [dir (in-cycle directions-sorted)]) + (define target (find-target grid station dir)) + (values (set-remove grid target) + (cons target targets)))) + (car targets)) + +(define (part2 filename) + (define grid (read-input filename)) + (define target (find-nth-target grid 200)) + (+ (* 100 (real-part target)) (imag-part target))) + +(module+ test + (check-equal? (part2 "input") 504)) diff --git a/2019/day10/input b/2019/day10/input new file mode 100644 index 0000000..3d1b1f7 --- /dev/null +++ b/2019/day10/input @@ -0,0 +1,30 @@ +.#.####..#.#...#...##..#.#.##. +..#####.##..#..##....#..#...#. +......#.......##.##.#....##..# +..#..##..#.###.....#.#..###.#. +..#..#..##..#.#.##..###....... +...##....#.##.#.#..##.##.#...# +.##...#.#.##..#.#........#.#.. +.##...##.##..#.#.##.#.#.#.##.# +#..##....#...###.#..##.#...##. +.###.###..##......#..#...###.# +.#..#.####.#..#....#.##..#.#.# +..#...#..#.#######....###..... +####..#.#.#...##...##....#..## +##..#.##.#.#..##.###.#.##.##.. +..#.........#.#.#.#.......#..# +...##.#.....#.#.##........#..# +##..###.....#.............#.## +.#...#....#..####.#.#......##. +..#..##..###...#.....#...##..# +...####..#.#.##..#....#.#..... +####.#####.#.#....#.#....##.#. +#.#..#......#.........##..#.#. +#....##.....#........#..##.##. +.###.##...##..#.##.#.#...#.#.# +##.###....##....#.#.....#.###. +..#...#......#........####..#. +#....#.###.##.#...#.#.#.#..... +.........##....#...#.....#..## +###....#.........#..#..#.#.#.. +##...#...###.#..#.###....#.##. diff --git a/2019/day10/test b/2019/day10/test new file mode 100644 index 0000000..737ae7f --- /dev/null +++ b/2019/day10/test @@ -0,0 +1,5 @@ +.#..# +..... +##### +....# +...## diff --git a/2019/day11/day11.rkt b/2019/day11/day11.rkt new file mode 100644 index 0000000..374750f --- /dev/null +++ b/2019/day11/day11.rkt @@ -0,0 +1,58 @@ +#lang racket/base + +(require "../intcode.rkt" + racket/set) + +(module+ test + (require rackunit)) + +(define (part12 program start-panel [show-grid #f]) + (define vm (execute (start-machine program '()))) + (define grid (make-hash)) + (hash-set! grid 0 start-panel) + (define painted (mutable-set)) + (let loop ([vm vm] + [direction 0+1i] + [position 0]) + (define new-vm + (execute (machine (machine-program vm) + (list (hash-ref grid position 0)) + (machine-pc vm) + (machine-relative-base vm) + #f + '()))) + (unless (machine-terminated new-vm) + (hash-set! grid position (cadr (machine-outputs new-vm))) + (set-add! painted position) + (define new-direction (if (= 0 (car (machine-outputs new-vm))) + (* direction 0+1i) + (* direction 0-1i))) + (define new-position (+ position new-direction)) + (loop new-vm new-direction new-position))) + (when show-grid + (display-grid grid)) + (set-count painted)) + +(define (display-grid grid) + (define min-x (apply min (map real-part (hash-keys grid)))) + (define max-x (apply max (map real-part (hash-keys grid)))) + (define min-y (apply min (map imag-part (hash-keys grid)))) + (define max-y (apply max (map imag-part (hash-keys grid)))) + (for* ([j (in-range max-y (sub1 min-y) -1)] + [i (in-range min-x max-x)]) + (if (= 1 (hash-ref grid (make-rectangular i j) 0)) + (printf "#") + (printf " ")) + (when (= i (sub1 max-x)) + (printf "\n")))) + +(module+ test + (check-equal? (part12 (parse-file "input") 0) 2511)) + +;; > (part12 (parse-file "input") 1 #t) +;; # # ## # # ## # # ## ### # # +;; # # # # # # # # # # # # # # +;; #### # ## # ## # # # #### +;; # # # # # # # # # ## ### # # +;; # # # # # # # # # # # # # # # +;; # # ## # # ## # # ### # # # diff --git a/2019/day11/input b/2019/day11/input new file mode 100644 index 0000000..1b53324 --- /dev/null +++ b/2019/day11/input @@ -0,0 +1 @@ +3,8,1005,8,328,1106,0,11,0,0,0,104,1,104,0,3,8,1002,8,-1,10,1001,10,1,10,4,10,1008,8,0,10,4,10,1001,8,0,29,1,104,7,10,3,8,1002,8,-1,10,101,1,10,10,4,10,1008,8,0,10,4,10,1001,8,0,55,1,2,7,10,1006,0,23,3,8,102,-1,8,10,1001,10,1,10,4,10,1008,8,0,10,4,10,1001,8,0,84,1006,0,40,1,1103,14,10,1,1006,16,10,3,8,102,-1,8,10,101,1,10,10,4,10,108,1,8,10,4,10,1002,8,1,116,1006,0,53,1,1104,16,10,3,8,102,-1,8,10,101,1,10,10,4,10,1008,8,1,10,4,10,102,1,8,146,2,1104,9,10,3,8,102,-1,8,10,101,1,10,10,4,10,1008,8,1,10,4,10,1001,8,0,172,1006,0,65,1,1005,8,10,1,1002,16,10,3,8,102,-1,8,10,1001,10,1,10,4,10,108,0,8,10,4,10,102,1,8,204,2,1104,9,10,1006,0,30,3,8,102,-1,8,10,101,1,10,10,4,10,108,0,8,10,4,10,102,1,8,233,2,1109,6,10,1006,0,17,1,2,6,10,3,8,102,-1,8,10,101,1,10,10,4,10,108,1,8,10,4,10,102,1,8,266,1,106,7,10,2,109,2,10,2,9,8,10,3,8,102,-1,8,10,101,1,10,10,4,10,1008,8,1,10,4,10,1001,8,0,301,1,109,9,10,1006,0,14,101,1,9,9,1007,9,1083,10,1005,10,15,99,109,650,104,0,104,1,21102,1,837548789788,1,21101,0,345,0,1106,0,449,21101,0,846801511180,1,21101,0,356,0,1106,0,449,3,10,104,0,104,1,3,10,104,0,104,0,3,10,104,0,104,1,3,10,104,0,104,1,3,10,104,0,104,0,3,10,104,0,104,1,21101,235244981271,0,1,21101,403,0,0,1105,1,449,21102,1,206182744295,1,21101,0,414,0,1105,1,449,3,10,104,0,104,0,3,10,104,0,104,0,21102,837896937832,1,1,21101,0,437,0,1106,0,449,21101,867965862668,0,1,21102,448,1,0,1106,0,449,99,109,2,22102,1,-1,1,21101,40,0,2,21102,1,480,3,21101,0,470,0,1106,0,513,109,-2,2106,0,0,0,1,0,0,1,109,2,3,10,204,-1,1001,475,476,491,4,0,1001,475,1,475,108,4,475,10,1006,10,507,1101,0,0,475,109,-2,2106,0,0,0,109,4,1201,-1,0,512,1207,-3,0,10,1006,10,530,21102,1,0,-3,22102,1,-3,1,21201,-2,0,2,21102,1,1,3,21102,549,1,0,1106,0,554,109,-4,2105,1,0,109,5,1207,-3,1,10,1006,10,577,2207,-4,-2,10,1006,10,577,21202,-4,1,-4,1106,0,645,21202,-4,1,1,21201,-3,-1,2,21202,-2,2,3,21101,596,0,0,1106,0,554,21201,1,0,-4,21102,1,1,-1,2207,-4,-2,10,1006,10,615,21101,0,0,-1,22202,-2,-1,-2,2107,0,-3,10,1006,10,637,22102,1,-1,1,21101,637,0,0,105,1,512,21202,-2,-1,-2,22201,-4,-2,-4,109,-5,2106,0,0 diff --git a/2019/day12/day12.rkt b/2019/day12/day12.rkt new file mode 100644 index 0000000..f583ebc --- /dev/null +++ b/2019/day12/day12.rkt @@ -0,0 +1,64 @@ +#lang racket + +(struct moon + (x y z vx vy vz) + #:transparent) + +(define (read-input filename) + (with-input-from-file filename + (lambda () + (for/list ([line (in-lines)]) + (define positions-str + (cdr (regexp-match #rx"" line))) + (define positions (map string->number positions-str)) + (apply moon (append positions '(0 0 0))))))) + +(define (step moons) + (for/list ([cur moons]) + (define new-vx (moon-vx cur)) + (define new-vy (moon-vy cur)) + (define new-vz (moon-vz cur)) + (define (gravity-pull pos-cur pos-other) + (cond + [(> pos-other pos-cur) 1] + [(< pos-other pos-cur) -1] + [else 0])) + (for ([other moons] #:unless (eq? other cur)) + (set! new-vx (+ new-vx (gravity-pull (moon-x cur) (moon-x other)))) + (set! new-vy (+ new-vy (gravity-pull (moon-y cur) (moon-y other)))) + (set! new-vz (+ new-vz (gravity-pull (moon-z cur) (moon-z other))))) + (moon (+ (moon-x cur) new-vx) + (+ (moon-y cur) new-vy) + (+ (moon-z cur) new-vz) + new-vx + new-vy + new-vz))) + +(define (total-energy moons) + (for/sum ([m moons]) + (* (+ (abs (moon-x m)) + (abs (moon-y m)) + (abs (moon-z m))) + (+ (abs (moon-vx m)) + (abs (moon-vy m)) + (abs (moon-vz m)))))) + +(define (part1 filename) + (define moons (read-input filename)) + (total-energy (for/fold ([ms moons]) ([i (in-range 1000)]) (step ms)))) + +(define (cycle-length moons pos speed) + (define-values (states final) + (for/fold ([states (mutable-set)] [ms moons]) + ([_ (in-naturals)] + #:break (set-member? states (append (map pos ms) (map speed ms)))) + (set-add! states (append (map pos ms) (map speed ms))) + (values states (step ms)))) + (set-count states)) + +(define (part2 filename) + (define moons (read-input filename)) + (define cycle-x (cycle-length moons moon-x moon-vx)) + (define cycle-y (cycle-length moons moon-y moon-vy)) + (define cycle-z (cycle-length moons moon-z moon-vz)) + (lcm cycle-x cycle-y cycle-z)) diff --git a/2019/day12/input b/2019/day12/input new file mode 100644 index 0000000..63c4bb2 --- /dev/null +++ b/2019/day12/input @@ -0,0 +1,4 @@ + + + + diff --git a/2019/day12/test b/2019/day12/test new file mode 100644 index 0000000..89cc805 --- /dev/null +++ b/2019/day12/test @@ -0,0 +1,4 @@ + + + + diff --git a/2019/day12/test2 b/2019/day12/test2 new file mode 100644 index 0000000..1078293 --- /dev/null +++ b/2019/day12/test2 @@ -0,0 +1,4 @@ + + + + diff --git a/2019/day13/day13.rkt b/2019/day13/day13.rkt new file mode 100644 index 0000000..c245387 --- /dev/null +++ b/2019/day13/day13.rkt @@ -0,0 +1,74 @@ +#lang racket/base + +(require "../intcode.rkt" + racket/list) + +(module+ test + (require rackunit)) + +(define (part1 program) + (define vm (execute (start-machine program '()))) + (define screen + (let loop ([screen (hash)] + [instructions (reverse (machine-outputs vm))]) + (if (empty? instructions) + screen + (let ([x (car instructions)] + [y (cadr instructions)] + [tile-id (caddr instructions)]) + (loop (hash-set screen (list x y) tile-id) + (cdddr instructions)))))) + (for/sum ([(k v) (in-hash screen)] + #:when (= v 2)) + 1)) + +(module+ test + (check-equal? (part1 (parse-file "input")) 363)) + +(define (ball-x screen) + (for/first ([(k v) (in-hash screen)] + #:when (= v 4)) + (car k))) + +(define (paddle-x screen) + (for/first ([(k v) (in-hash screen)] + #:when (= v 3)) + (car k))) + +(define (block-count screen) + (for/sum ([(k v) (in-hash screen)] + #:when (= v 2)) + 1)) + +(define (draw-screen screen instructions) + (if (empty? instructions) + screen + (let ([x (car instructions)] + [y (cadr instructions)] + [tile-id (caddr instructions)]) + (draw-screen (hash-set screen (list x y) tile-id) + (cdddr instructions))))) + +(define (part2 program) + (vector-set! program 0 2) + (define vm (execute (start-machine program '()))) + (define screen + (let loop ([vm vm] + [screen (hash)]) + (define new-screen (draw-screen screen (reverse (machine-outputs vm)))) + (define ball-pos (ball-x new-screen)) + (define paddle-pos (paddle-x new-screen)) + (define joystick (cond + [(< ball-pos paddle-pos) -1] + [(= ball-pos paddle-pos) 0] + [(> ball-pos paddle-pos) 1])) + (define new-vm + (execute (machine (machine-program vm) (list joystick) + (machine-pc vm) (machine-relative-base vm) #f '()))) + (if (= 0 (block-count new-screen)) + new-screen + (loop new-vm new-screen)))) + (hash-ref screen (list -1 0))) + +(module+ test + (check-equal? (part2 (parse-file "input")) 17159)) diff --git a/2019/day13/input b/2019/day13/input new file mode 100644 index 0000000..3af9123 --- /dev/null +++ b/2019/day13/input @@ -0,0 +1 @@ +1,380,379,385,1008,2617,718741,381,1005,381,12,99,109,2618,1102,1,0,383,1102,0,1,382,20101,0,382,1,21001,383,0,2,21102,1,37,0,1105,1,578,4,382,4,383,204,1,1001,382,1,382,1007,382,43,381,1005,381,22,1001,383,1,383,1007,383,23,381,1005,381,18,1006,385,69,99,104,-1,104,0,4,386,3,384,1007,384,0,381,1005,381,94,107,0,384,381,1005,381,108,1105,1,161,107,1,392,381,1006,381,161,1101,0,-1,384,1105,1,119,1007,392,41,381,1006,381,161,1102,1,1,384,21002,392,1,1,21102,21,1,2,21101,0,0,3,21101,138,0,0,1105,1,549,1,392,384,392,20101,0,392,1,21101,21,0,2,21101,3,0,3,21102,161,1,0,1105,1,549,1101,0,0,384,20001,388,390,1,21001,389,0,2,21101,180,0,0,1105,1,578,1206,1,213,1208,1,2,381,1006,381,205,20001,388,390,1,20101,0,389,2,21101,0,205,0,1106,0,393,1002,390,-1,390,1101,0,1,384,20101,0,388,1,20001,389,391,2,21101,0,228,0,1105,1,578,1206,1,261,1208,1,2,381,1006,381,253,20101,0,388,1,20001,389,391,2,21101,253,0,0,1106,0,393,1002,391,-1,391,1101,1,0,384,1005,384,161,20001,388,390,1,20001,389,391,2,21101,0,279,0,1106,0,578,1206,1,316,1208,1,2,381,1006,381,304,20001,388,390,1,20001,389,391,2,21101,0,304,0,1105,1,393,1002,390,-1,390,1002,391,-1,391,1102,1,1,384,1005,384,161,20101,0,388,1,21001,389,0,2,21102,0,1,3,21101,0,338,0,1106,0,549,1,388,390,388,1,389,391,389,20101,0,388,1,20101,0,389,2,21102,4,1,3,21101,0,365,0,1106,0,549,1007,389,22,381,1005,381,75,104,-1,104,0,104,0,99,0,1,0,0,0,0,0,0,363,19,18,1,1,21,109,3,21201,-2,0,1,21202,-1,1,2,21102,1,0,3,21102,1,414,0,1105,1,549,21201,-2,0,1,21201,-1,0,2,21101,0,429,0,1105,1,601,1202,1,1,435,1,386,0,386,104,-1,104,0,4,386,1001,387,-1,387,1005,387,451,99,109,-3,2105,1,0,109,8,22202,-7,-6,-3,22201,-3,-5,-3,21202,-4,64,-2,2207,-3,-2,381,1005,381,492,21202,-2,-1,-1,22201,-3,-1,-3,2207,-3,-2,381,1006,381,481,21202,-4,8,-2,2207,-3,-2,381,1005,381,518,21202,-2,-1,-1,22201,-3,-1,-3,2207,-3,-2,381,1006,381,507,2207,-3,-4,381,1005,381,540,21202,-4,-1,-1,22201,-3,-1,-3,2207,-3,-4,381,1006,381,529,21202,-3,1,-7,109,-8,2105,1,0,109,4,1202,-2,43,566,201,-3,566,566,101,639,566,566,2102,1,-1,0,204,-3,204,-2,204,-1,109,-4,2105,1,0,109,3,1202,-1,43,593,201,-2,593,593,101,639,593,593,21001,0,0,-2,109,-3,2106,0,0,109,3,22102,23,-2,1,22201,1,-1,1,21102,1,499,2,21102,1,317,3,21102,989,1,4,21102,630,1,0,1105,1,456,21201,1,1628,-2,109,-3,2106,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,2,2,0,0,2,2,2,2,2,0,2,2,2,2,2,2,0,2,2,2,0,2,0,2,2,2,2,0,0,2,0,2,2,2,0,2,2,0,2,0,1,1,0,2,2,0,2,0,0,2,2,2,2,0,2,2,2,2,0,0,2,2,0,0,0,0,0,0,2,2,2,0,0,2,2,0,0,2,2,0,2,2,0,1,1,0,0,2,2,0,2,2,2,2,0,2,0,2,2,0,0,0,2,2,2,0,2,0,0,2,2,2,0,2,0,2,2,2,2,2,2,2,2,2,2,0,1,1,0,2,2,0,0,0,2,2,0,2,2,0,0,0,2,2,2,0,2,0,2,0,2,0,2,0,2,2,2,0,0,2,0,0,0,2,0,0,2,2,0,1,1,0,2,2,0,2,2,0,0,0,0,2,2,2,0,0,0,2,2,2,2,2,0,0,2,2,2,2,0,0,2,0,0,0,0,2,2,0,2,0,0,0,1,1,0,2,0,2,0,2,2,0,2,2,0,0,0,0,2,0,2,0,2,0,0,2,2,0,0,0,0,0,0,0,0,2,2,0,2,2,2,2,0,2,0,1,1,0,2,2,2,0,2,2,0,2,0,2,2,0,2,2,2,2,2,2,2,2,2,2,2,0,2,2,2,0,2,2,2,0,2,0,2,2,0,0,2,0,1,1,0,2,0,0,2,2,2,2,2,0,2,0,0,2,0,2,0,0,2,0,0,2,2,2,0,2,2,2,2,2,2,2,2,0,0,2,2,0,0,2,0,1,1,0,0,2,2,2,0,2,2,0,2,2,2,2,0,0,2,2,2,0,2,2,2,2,2,2,2,0,0,0,2,0,2,0,0,2,0,2,2,2,2,0,1,1,0,2,2,0,0,0,2,2,2,2,2,0,0,2,0,2,0,2,0,0,2,2,0,2,2,2,2,0,2,0,2,0,2,0,2,2,2,0,2,2,0,1,1,0,0,2,2,0,2,0,0,2,2,2,2,2,0,2,0,0,2,0,2,2,0,2,2,2,2,0,2,2,0,0,0,0,0,2,0,2,0,2,0,0,1,1,0,2,0,0,2,0,2,2,2,2,2,0,0,2,0,2,2,0,2,2,2,2,2,2,2,0,2,2,0,0,0,2,0,0,2,2,0,2,0,0,0,1,1,0,2,2,0,2,0,2,2,2,0,2,0,0,2,0,0,2,2,2,2,2,0,2,0,0,2,0,2,0,0,2,0,0,2,0,2,2,2,2,2,0,1,1,0,2,2,0,0,2,2,2,2,2,0,2,2,2,2,2,0,2,2,2,2,0,0,2,0,2,2,0,2,2,2,0,2,2,2,0,2,0,2,2,0,1,1,0,2,2,2,0,2,0,0,2,2,0,2,2,2,2,2,0,2,2,2,2,2,0,2,2,2,2,2,2,0,2,0,0,2,2,2,2,2,2,2,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,62,61,33,96,12,3,42,31,62,61,69,2,65,62,56,36,70,53,51,12,11,2,34,79,44,80,63,26,53,77,25,41,86,27,22,53,2,91,21,83,29,72,43,97,90,39,16,31,81,19,60,98,12,7,47,34,12,79,25,34,37,39,8,1,42,23,54,50,9,89,1,87,34,75,96,69,28,67,15,87,10,13,71,26,48,63,30,64,41,79,48,15,80,3,76,93,46,50,46,95,68,70,1,49,19,8,73,30,28,62,73,22,3,36,31,6,4,25,20,23,95,48,82,27,68,88,53,40,24,21,85,69,71,94,77,63,4,79,74,95,72,37,4,46,10,32,46,79,94,54,31,35,46,32,39,44,53,55,48,3,26,92,81,43,56,23,62,15,82,94,20,26,59,22,47,32,68,37,64,8,28,61,90,24,49,47,36,80,8,2,57,11,65,45,22,44,67,29,48,16,82,94,19,11,46,55,79,64,94,84,6,78,12,88,16,95,47,41,8,60,34,85,59,88,49,78,34,61,83,52,58,16,54,24,29,5,87,68,18,60,22,76,35,87,75,42,75,98,43,56,77,12,64,40,53,67,79,31,94,17,65,70,12,67,12,80,62,9,83,72,75,97,52,86,80,19,82,75,80,62,46,3,19,59,97,67,41,22,15,12,48,43,11,98,59,75,48,23,6,16,66,9,8,15,16,90,84,75,24,15,92,44,14,23,87,14,43,70,41,27,65,57,22,45,15,49,10,95,29,41,38,5,81,48,94,6,9,97,43,77,80,61,29,88,37,20,52,96,36,77,25,80,87,90,95,77,67,68,2,80,6,92,98,53,95,35,66,61,40,57,74,50,13,86,38,45,29,74,39,87,97,75,12,22,20,74,24,15,28,20,82,53,32,18,15,54,16,53,65,61,59,72,6,28,6,49,54,65,59,56,12,41,15,90,82,27,94,41,80,63,72,80,33,98,42,49,22,30,93,93,66,5,79,65,42,49,68,43,79,78,14,76,68,22,29,86,47,51,2,61,91,27,68,32,96,84,54,52,3,73,43,27,62,16,68,22,88,57,67,92,92,42,1,95,14,56,92,3,32,42,36,75,4,9,23,49,78,92,87,69,19,37,15,44,44,65,88,69,76,91,5,96,89,33,31,48,32,39,8,1,22,80,96,20,11,65,60,77,47,1,8,27,58,51,47,52,76,4,31,18,89,94,82,97,63,49,95,24,53,35,28,88,39,23,20,44,22,96,86,4,1,15,52,30,18,1,48,34,1,68,12,84,89,83,31,12,98,10,9,10,91,60,97,46,23,88,71,32,38,29,58,21,95,81,86,57,13,7,82,23,63,74,79,1,30,32,53,33,56,25,70,62,17,8,53,21,43,17,27,67,5,4,64,5,65,65,75,25,60,75,42,87,27,40,36,9,7,10,90,91,3,34,57,55,57,25,83,91,88,66,75,22,88,68,67,3,97,40,90,52,60,3,66,78,78,75,41,71,36,5,78,2,50,96,2,35,60,36,61,47,11,11,48,52,4,51,62,57,70,55,60,81,89,25,74,1,26,13,18,31,52,36,31,3,49,60,94,29,15,67,96,25,22,80,69,47,97,11,68,40,17,70,82,42,10,94,30,70,7,3,3,69,47,16,8,8,8,28,35,36,6,42,52,56,22,31,28,69,20,24,90,48,30,70,61,95,45,10,74,3,65,54,46,96,61,31,72,49,92,88,12,49,19,92,11,69,66,78,12,79,32,17,33,41,70,87,71,41,78,12,94,90,36,63,18,64,21,62,24,47,10,77,16,12,1,62,69,13,55,94,11,16,7,35,79,21,18,67,96,60,21,31,21,97,33,90,55,41,14,50,41,3,32,89,22,44,57,55,6,87,9,19,21,22,43,78,16,8,67,25,93,28,43,33,89,83,73,61,70,65,16,77,59,80,78,22,97,77,41,7,27,82,51,42,82,91,18,56,64,33,39,16,70,34,83,85,2,5,67,81,86,19,10,44,15,3,29,2,92,85,8,92,65,51,65,91,59,57,26,2,56,33,52,40,70,98,71,47,27,43,52,78,91,16,83,83,30,32,26,57,77,16,57,65,5,60,81,23,70,51,37,55,94,25,74,10,7,30,25,10,60,41,88,61,4,79,38,67,85,51,98,30,39,81,86,10,55,66,72,18,64,86,69,25,62,37,55,21,79,38,59,4,28,88,65,11,62,79,89,52,21,10,37,7,34,26,47,62,57,718741 diff --git a/2019/day14/day14.rkt b/2019/day14/day14.rkt new file mode 100644 index 0000000..ef0380e --- /dev/null +++ b/2019/day14/day14.rkt @@ -0,0 +1,81 @@ +#lang racket + +(module+ test + (require rackunit)) + +(module+ main + (displayln "Day 14")) + +(define (read-rules filename) + (with-input-from-file filename + (lambda () + (define h (make-hash)) + (for ([line (in-lines)]) + (define rule + (for/list ([elt (regexp-match* #rx"([0-9]+) ([A-Z]+)" line #:match-select cdr)]) + (list (string->number (car elt)) (string->symbol (cadr elt))))) + (define output (last rule)) + (hash-set! h + (cadr output) + (cons (car output) + (make-hash (for/list ([elt (drop-right rule 1)]) + (cons (cadr elt) (car elt))))))) + h))) + +(define (generate! rules needed available) + (for ([(target target-amount) (in-hash needed)] + #:unless (eq? target 'ORE)) + (define inputs (cdr (hash-ref rules target))) + (define output-amount (car (hash-ref rules target))) + (define new-target-amount (- target-amount (hash-ref available target 0))) + (define multiple (ceiling (/ new-target-amount output-amount))) + (hash-set! available target (- (* multiple output-amount) new-target-amount)) + (hash-set! needed target 0) + (for ([(input input-amount) (in-hash inputs)]) + (hash-update! needed input (lambda (v) (+ v (* multiple input-amount))) 0)))) + +(define (ore-per-fuel rules amount) + (define needed (make-hash `((FUEL . ,amount)))) + (define available (make-hash)) + (for ([i (in-naturals)] + #:break (= (apply + (hash-values needed)) (hash-ref needed 'ORE 0))) + (generate! rules needed available)) + (hash-ref needed 'ORE)) + +(define (part1 filename) + (define rules (read-rules filename)) + (ore-per-fuel rules 1)) + +(module+ test + (check-eq? 31 (part1 "test1")) + (check-eq? 165 (part1 "test2")) + (check-eq? 13312 (part1 "test3")) + (check-eq? 180697 (part1 "test4")) + (check-eq? 2210736 (part1 "test5"))) + +(module+ main + (display "Part 1: ") + (displayln (part1 "input"))) + +(define (part2 filename) + (define rules (read-rules filename)) + (define max-fuel 1000000000000) + (define min-fuel 1) + (bisect rules 1000000000000 min-fuel max-fuel)) + +(define (bisect rules target-ore min-fuel max-fuel) + (define mid-fuel (floor (+ min-fuel (/ (- max-fuel min-fuel) 2)))) + (define ore (ore-per-fuel rules mid-fuel)) + (cond + [(= 1 (- max-fuel min-fuel)) min-fuel] + [(< ore target-ore) (bisect rules target-ore mid-fuel max-fuel)] + [(< target-ore ore) (bisect rules target-ore min-fuel mid-fuel)])) + +(module+ test + (check-eq? 82892753 (part2 "test3")) + (check-eq? 5586022 (part2 "test4")) + (check-eq? 460664 (part2 "test5"))) + +(module+ main + (display "Part 2: ") + (displayln (part2 "input"))) diff --git a/2019/day14/input b/2019/day14/input new file mode 100644 index 0000000..a8e9529 --- /dev/null +++ b/2019/day14/input @@ -0,0 +1,60 @@ +29 PQJGK => 4 SRPZP +6 XKJP, 4 LDSMT => 6 ZVSMJ +9 CGCPW, 2 CFVS => 7 DWZH +1 VQWZC, 1 FRTJG => 1 MGLKL +3 GCTBC, 4 RGKB => 4 RLZR +2 LGLCP => 9 GCTBC +3 DFPW, 12 FRTJG => 2 XVSRT +1 VBXFG => 3 VQWZC +1 GCTBC, 1 BVHM => 8 DGMZB +7 DFPW, 3 JQNL => 7 FRTJG +6 BHQN, 4 VXNP => 5 HBLQT +1 XNBR, 27 FTBNQ, 2 RGKB => 7 JZPMK +6 HKMV, 4 JHDHS, 11 NMSKF => 9 STCX +129 ORE => 5 NVXTP +13 BVHM, 5 XNBR => 3 LKXML +3 SBPM, 4 LDSMT, 13 GPBG => 6 HXFCJ +1 XVSRT, 1 JHDHS => 4 FTBNQ +6 LKXML, 6 HRLWP => 5 PSJK +5 HRLWP, 19 PDHVG => 1 VRQD +3 FTBNQ, 1 QLKTZ => 7 SBPM +2 VXNP => 3 XKJP +4 SRPZP, 7 XVSRT => 8 LMVF +2 GPBG, 8 DWZH, 3 JTCHR, 10 RLZR, 1 CFVS, 20 BFCZ => 2 WZSTV +130 ORE => 9 JQNL +100 ORE => 4 VBXFG +4 XNBR => 8 RDSHN +2 CDBTL, 2 XNBR, 8 QLKTZ => 6 CGCPW +7 CGCPW => 6 BFCZ +7 FTBNQ, 7 VXNP => 1 BVHM +1 HXFCJ, 15 CSXD => 1 DFXPB +1 MCRW, 6 MGLKL, 1 HBLQT => 8 SWRV +19 BZQGL, 10 NMSKF, 20 WZSTV, 15 LVGB, 26 FTBNQ, 45 DWZH, 2 FJWVP, 56 JZPMK => 1 FUEL +12 JTCHR => 4 CDBTL +1 MGLKL => 6 PQJGK +1 NVXTP => 1 LDSMT +3 SWRV, 1 LGLCP => 2 GHVJ +4 DGMZB, 11 HXFCJ, 2 RLZR => 4 SHTB +5 GHVJ, 1 RGKB, 1 GCTBC => 6 HKMV +1 SRPZP => 9 XNBR +1 ZVSMJ => 2 JHDHS +9 SWRV => 5 NMSKF +1 NVXTP => 3 XKBS +7 BHQN => 2 GPBG +21 NMSKF, 12 FTBNQ, 12 SBPM => 3 CMXK +2 GPBG, 12 ZVSMJ, 2 PDHVG => 4 LGLCP +158 ORE => 8 DFPW +3 BVHM, 1 HXFCJ, 5 CGCPW, 5 BFCZ, 6 VRQD, 3 LDSMT => 7 LVGB +1 XVSRT, 1 XKJP => 8 PDHVG +3 VRQD, 16 SHTB, 5 SBPM => 9 BZQGL +1 BVHM, 3 HKMV => 4 CFVS +13 JQNL => 7 VXNP +1 XKJP, 6 XVSRT => 7 MCRW +15 NVXTP, 19 XKBS => 4 BHQN +8 JHDHS, 5 CMXK, 2 GPBG => 8 CSXD +1 JZBR, 13 LKXML, 1 HKMV, 9 DFXPB, 3 XKBS, 2 PSJK, 2 LMVF, 15 HRLWP => 7 FJWVP +1 CGCPW, 3 RDSHN => 8 JZBR +24 PQJGK => 5 JTCHR +1 XVSRT, 5 LDSMT => 6 QLKTZ +17 GPBG => 7 RGKB +4 STCX => 1 HRLWP diff --git a/2019/day14/test1 b/2019/day14/test1 new file mode 100644 index 0000000..65ad5cc --- /dev/null +++ b/2019/day14/test1 @@ -0,0 +1,6 @@ +10 ORE => 10 A +1 ORE => 1 B +7 A, 1 B => 1 C +7 A, 1 C => 1 D +7 A, 1 D => 1 E +7 A, 1 E => 1 FUEL diff --git a/2019/day14/test2 b/2019/day14/test2 new file mode 100644 index 0000000..85c4b1e --- /dev/null +++ b/2019/day14/test2 @@ -0,0 +1,7 @@ +9 ORE => 2 A +8 ORE => 3 B +7 ORE => 5 C +3 A, 4 B => 1 AB +5 B, 7 C => 1 BC +4 C, 1 A => 1 CA +2 AB, 3 BC, 4 CA => 1 FUEL diff --git a/2019/day14/test3 b/2019/day14/test3 new file mode 100644 index 0000000..4d6b9f0 --- /dev/null +++ b/2019/day14/test3 @@ -0,0 +1,9 @@ +157 ORE => 5 NZVS +165 ORE => 6 DCFZ +44 XJWVT, 5 KHKGT, 1 QDVJ, 29 NZVS, 9 GPVTF, 48 HKGWZ => 1 FUEL +12 HKGWZ, 1 GPVTF, 8 PSHF => 9 QDVJ +179 ORE => 7 PSHF +177 ORE => 5 HKGWZ +7 DCFZ, 7 PSHF => 2 XJWVT +165 ORE => 2 GPVTF +3 DCFZ, 7 NZVS, 5 HKGWZ, 10 PSHF => 8 KHKGT diff --git a/2019/day14/test4 b/2019/day14/test4 new file mode 100644 index 0000000..c670978 --- /dev/null +++ b/2019/day14/test4 @@ -0,0 +1,12 @@ +2 VPVL, 7 FWMGM, 2 CXFTF, 11 MNCFX => 1 STKFG +17 NVRVD, 3 JNWZP => 8 VPVL +53 STKFG, 6 MNCFX, 46 VJHF, 81 HVMC, 68 CXFTF, 25 GNMV => 1 FUEL +22 VJHF, 37 MNCFX => 5 FWMGM +139 ORE => 4 NVRVD +144 ORE => 7 JNWZP +5 MNCFX, 7 RFSQX, 2 FWMGM, 2 VPVL, 19 CXFTF => 3 HVMC +5 VJHF, 7 MNCFX, 9 VPVL, 37 CXFTF => 6 GNMV +145 ORE => 6 MNCFX +1 NVRVD => 8 CXFTF +1 VJHF, 6 MNCFX => 4 RFSQX +176 ORE => 6 VJHF diff --git a/2019/day14/test5 b/2019/day14/test5 new file mode 100644 index 0000000..a5ca2c3 --- /dev/null +++ b/2019/day14/test5 @@ -0,0 +1,17 @@ +171 ORE => 8 CNZTR +7 ZLQW, 3 BMBT, 9 XCVML, 26 XMNCP, 1 WPTQ, 2 MZWV, 1 RJRHP => 4 PLWSL +114 ORE => 4 BHXH +14 VRPVC => 6 BMBT +6 BHXH, 18 KTJDG, 12 WPTQ, 7 PLWSL, 31 FHTLT, 37 ZDVW => 1 FUEL +6 WPTQ, 2 BMBT, 8 ZLQW, 18 KTJDG, 1 XMNCP, 6 MZWV, 1 RJRHP => 6 FHTLT +15 XDBXC, 2 LTCX, 1 VRPVC => 6 ZLQW +13 WPTQ, 10 LTCX, 3 RJRHP, 14 XMNCP, 2 MZWV, 1 ZLQW => 1 ZDVW +5 BMBT => 4 WPTQ +189 ORE => 9 KTJDG +1 MZWV, 17 XDBXC, 3 XCVML => 2 XMNCP +12 VRPVC, 27 CNZTR => 2 XDBXC +15 KTJDG, 12 BHXH => 5 XCVML +3 BHXH, 2 VRPVC => 7 MZWV +121 ORE => 7 VRPVC +7 XCVML => 6 RJRHP +5 BHXH, 4 VRPVC => 5 LTCX diff --git a/2019/day15/day15.rkt b/2019/day15/day15.rkt new file mode 100644 index 0000000..e9647b4 --- /dev/null +++ b/2019/day15/day15.rkt @@ -0,0 +1,64 @@ +#lang racket/base + +(require racket/random + racket/list + racket/match + graph + "../intcode.rkt") + +(module+ test + (require rackunit)) + +(define (possible-directions grid pos) + (define unexplored-directions + (for/list ([step '(-1 -i 1 +i)] + #:unless (hash-has-key? grid (+ pos step))) + step)) + (if (empty? unexplored-directions) + (for/list ([step '(-1 -i 1 +i)] + #:unless (eq? 'wall (hash-ref grid (+ pos step) 'floor))) + step) + unexplored-directions)) + +(define (shortest-distances grid source) + (define g (unweighted-graph/undirected + (for*/list ([(pos tile) (in-hash grid)] + #:unless (eq? 'wall tile) + [step '(-1 -i 1 +i)] + #:unless (eq? 'wall (hash-ref grid (+ pos step) 'wall))) + (list pos (+ pos step))))) + (define-values (distances predecessors) (dijkstra g source)) + distances) + +(define (part12 program) + (define grid (make-hash '((0 'floor)))) + (let loop ([vm (execute (start-machine program '()))] + [pos 0] + [i 0]) + (define direction (random-ref (possible-directions grid pos))) + (define direction-code (match direction + [+i 1] + [-i 2] + [-1 3] + [1 4])) + (define new-vm (execute (struct-copy machine vm [inputs (list direction-code)]))) + (define next-pos (+ pos direction)) + (unless (> i 100000) + (match (car (machine-outputs new-vm)) + [0 (hash-set! grid next-pos 'wall) + (loop new-vm pos (add1 i))] + [1 (hash-set! grid next-pos 'floor) + (loop new-vm next-pos (add1 i))] + [2 (hash-set! grid next-pos 'oxygen) + (loop new-vm next-pos (add1 i))]))) + (define oxygen (for/first ([(pos tile) (in-hash grid)] + #:when (eq? 'oxygen tile)) + pos)) + (define distances (shortest-distances grid oxygen)) + (values (hash-ref distances 0) + (apply max (hash-values distances)))) + +(module+ test + (define-values (p1 p2) (part12 (parse-file "input"))) + (check-equal? p1 296) + (check-equal? p2 302)) diff --git a/2019/day15/input b/2019/day15/input new file mode 100644 index 0000000..0fe22b7 --- /dev/null +++ b/2019/day15/input @@ -0,0 +1 @@ +3,1033,1008,1033,1,1032,1005,1032,31,1008,1033,2,1032,1005,1032,58,1008,1033,3,1032,1005,1032,81,1008,1033,4,1032,1005,1032,104,99,102,1,1034,1039,1001,1036,0,1041,1001,1035,-1,1040,1008,1038,0,1043,102,-1,1043,1032,1,1037,1032,1042,1105,1,124,102,1,1034,1039,102,1,1036,1041,1001,1035,1,1040,1008,1038,0,1043,1,1037,1038,1042,1105,1,124,1001,1034,-1,1039,1008,1036,0,1041,101,0,1035,1040,1002,1038,1,1043,1001,1037,0,1042,1105,1,124,1001,1034,1,1039,1008,1036,0,1041,102,1,1035,1040,1002,1038,1,1043,102,1,1037,1042,1006,1039,217,1006,1040,217,1008,1039,40,1032,1005,1032,217,1008,1040,40,1032,1005,1032,217,1008,1039,5,1032,1006,1032,165,1008,1040,1,1032,1006,1032,165,1101,0,2,1044,1105,1,224,2,1041,1043,1032,1006,1032,179,1102,1,1,1044,1105,1,224,1,1041,1043,1032,1006,1032,217,1,1042,1043,1032,1001,1032,-1,1032,1002,1032,39,1032,1,1032,1039,1032,101,-1,1032,1032,101,252,1032,211,1007,0,56,1044,1105,1,224,1102,0,1,1044,1106,0,224,1006,1044,247,102,1,1039,1034,1001,1040,0,1035,101,0,1041,1036,102,1,1043,1038,102,1,1042,1037,4,1044,1106,0,0,40,31,67,22,98,81,11,5,82,25,86,22,69,15,21,97,6,6,62,50,91,14,90,37,26,50,98,4,55,61,39,20,93,19,70,47,50,8,85,97,24,91,12,79,38,62,13,99,4,63,48,75,93,2,4,62,72,51,63,23,12,8,80,87,54,13,99,85,2,66,45,93,13,2,87,86,14,25,27,12,87,49,58,51,77,25,5,97,13,35,48,64,63,11,76,32,18,79,37,88,12,85,85,4,69,71,29,27,66,33,7,66,72,51,74,87,13,48,42,34,67,26,13,96,25,65,83,46,72,99,25,62,3,50,72,99,65,37,75,39,68,39,11,75,27,70,90,39,62,69,31,17,57,43,27,28,54,87,7,97,72,25,93,30,59,20,74,59,7,8,94,96,36,86,9,35,81,74,21,73,15,59,6,80,42,5,67,34,55,95,96,31,98,70,50,17,64,36,79,34,31,20,58,60,9,4,55,39,94,49,17,95,81,85,31,26,62,80,4,71,80,17,37,80,97,9,16,25,89,6,46,76,50,99,20,62,73,6,79,66,96,2,42,72,45,96,30,94,73,42,38,63,12,36,68,70,50,54,26,74,49,92,26,33,38,66,65,79,90,55,37,71,48,66,5,57,86,17,42,89,5,97,81,46,99,74,19,69,13,86,60,93,7,16,86,42,81,26,95,91,93,14,94,76,91,33,44,42,58,87,26,41,9,22,63,1,82,63,20,49,50,71,75,5,32,73,14,45,98,50,91,54,69,61,27,60,40,88,16,34,18,64,18,50,81,67,67,28,95,7,89,80,37,26,97,25,29,58,77,60,22,22,43,64,15,66,69,33,20,50,84,70,53,11,64,80,16,80,74,15,90,67,33,12,57,8,52,78,10,18,25,40,82,63,93,93,28,18,51,68,58,6,60,58,14,54,72,68,91,41,70,67,3,74,18,3,27,65,71,11,11,99,49,88,21,42,7,78,35,4,78,2,2,82,26,65,97,67,46,63,1,68,55,85,94,16,1,22,41,67,86,35,10,83,64,11,95,50,46,86,74,5,68,81,62,22,75,68,26,58,40,62,44,38,65,22,69,20,90,5,10,42,99,96,51,63,64,7,64,36,92,89,54,4,68,63,85,9,38,95,89,51,50,75,86,5,41,40,59,31,82,99,8,95,5,43,45,60,60,29,84,15,5,96,64,55,97,44,35,7,93,96,43,22,50,20,70,81,39,8,90,50,66,49,31,29,34,97,90,1,59,3,5,82,85,85,47,29,6,65,31,70,76,33,35,82,43,98,62,29,44,76,70,59,89,30,25,97,83,75,79,43,98,93,40,59,36,55,64,29,31,98,65,47,33,91,75,62,71,68,38,33,81,10,73,83,6,13,88,92,45,94,15,1,88,59,22,7,36,89,59,36,12,80,3,80,78,29,85,75,28,7,15,82,41,1,81,26,7,72,46,85,71,16,40,73,11,81,7,24,10,87,75,9,87,35,40,86,5,16,69,98,45,43,8,68,20,83,73,47,86,77,35,89,71,1,37,62,62,65,44,26,83,52,87,89,40,62,61,97,7,42,79,9,1,64,99,86,5,86,51,23,25,32,71,28,91,26,87,64,47,17,2,90,64,42,10,85,36,31,79,75,79,21,59,5,9,88,12,36,74,59,72,6,82,34,80,10,78,81,33,91,22,94,18,88,10,63,23,87,58,65,20,66,74,65,18,96,22,98,13,86,48,67,14,96,58,73,14,67,2,65,48,92,42,93,18,96,32,81,0,0,21,21,1,10,1,0,0,0,0,0,0 diff --git a/2019/day16/day16.rkt b/2019/day16/day16.rkt new file mode 100644 index 0000000..60359fc --- /dev/null +++ b/2019/day16/day16.rkt @@ -0,0 +1,73 @@ +#lang racket + +(require racket/sequence) + +(module+ test + (require rackunit)) + +(define (pattern n i) + (define index (remainder (add1 i) (* 4 n))) + (cond + [(< index n) 0] + [(< index (* 2 n)) 1] + [(< index (* 3 n)) 0] + [(< index (* 4 n)) -1])) + +(define (last-digit n) + (abs (remainder n 10))) + +(define (phase signal) + (for/list ([i (in-range (length signal))]) + (last-digit (for/sum ([d (in-list signal)] + [j (in-naturals)] + #:when (>= j i)) + (* d (pattern (add1 i) j)))))) + +(define (number->digits n) + (define (aux n) + (define-values (q r) (quotient/remainder n 10)) + (if (> q 0) + (cons r (aux q)) + (list r))) + (reverse (aux n))) + +(define (digits->number lst) + (for/sum ([d (in-list (reverse lst))] + [i (in-naturals)]) + (* d (expt 10 i)))) + +(define (apply-n-times f n x) + (for/fold ([val x]) ([i (in-range n)]) + (f val))) + +(define (part1 n) + (digits->number (take (apply-n-times phase 100 n) 8))) + +(module+ test + (check-eq? (part1 (number->digits 80871224585914546619083218645595)) 24176176) + (check-eq? (part1 (number->digits 19617804207202209144916044189917)) 73745418) + (check-eq? (part1 (number->digits 69317163492948606335995924319873)) 52432133)) + +(module+ main + (define input (number->digits + (string->number + (string-trim + (port->string (open-input-file "input") #:close? #t))))) + (displayln (part1 input))) + +(define (phase2 signal) + (define-values (s res) + (for/fold ([s (apply + signal)] + [res '()]) + ([d (in-list signal)]) + (values (- s d) (cons (last-digit s) res)))) + (reverse res)) + +(define (part2 input) + (define offset (digits->number (take input 7))) + (define n (drop input offset)) + (digits->number (take (apply-n-times phase2 100 n) 8))) + +(module+ main + (define input2 (flatten (make-list 10000 input))) + (displayln (part2 input2))) diff --git a/2019/day16/input b/2019/day16/input new file mode 100644 index 0000000..98e2ba3 --- /dev/null +++ b/2019/day16/input @@ -0,0 +1 @@ +59749012692497360857047467554796667139266971954850723493205431123165826080869880148759586023048633544809012786925668551639957826693687972765764376332866751104713940802555266397289142675218037547096634248307260671899871548313611756525442595930474639845266351381011380170903695947253040751698337167594183713030695951696818950161554630424143678657203441568388368475123279525515262317457621810448095399401556723919452322199989580496608898965260381604485810760050252737127446449982328185199195622241930968611065497781555948187157418339240689789877555108205275435831320988202725926797165070246910002881692028525921087207954194585166525017611171911807360959 diff --git a/2019/day17/day17.rkt b/2019/day17/day17.rkt new file mode 100644 index 0000000..dec8dcc --- /dev/null +++ b/2019/day17/day17.rkt @@ -0,0 +1,105 @@ +#lang racket/base + +(require "../intcode.rkt" + racket/match + racket/set + racket/list + racket/string) + +(module+ test + (require rackunit)) + +(define (get-grid program) + (define vm (execute (start-machine program '()))) + (define map-str (list->ascii (reverse (machine-outputs vm)))) + (define-values (grid robot-pos robot-dir pos) + (for/fold ([grid (set)] + [robot-pos #f] + [robot-dir #f] + [pos 0]) + ([c (in-list (reverse (machine-outputs vm)))]) + (match (integer->char c) + [#\newline (values grid robot-pos robot-dir (make-rectangular 0 (add1 (imag-part pos))))] + [#\# (values (set-add grid pos) robot-pos robot-dir (add1 pos))] + [#\^ (values grid pos -i (add1 pos))] + [#\v (values grid pos +i (add1 pos))] + [#\< (values grid pos -1 (add1 pos))] + [#\> (values grid pos 1 (add1 pos))] + [x (values grid robot-pos robot-dir (add1 pos))]))) + (values map-str grid robot-pos robot-dir)) + +(define (part1 program) + (define-values (map-str grid robot-pos robot-dir) (get-grid program)) + (define intersections + (for/list ([x (in-set grid)] + #:when (for/and ([step '(-i -1 +i 1)]) + (set-member? grid (+ x step)))) + x)) + (for/sum ([int (in-list intersections)]) + (* (real-part int) (imag-part int)))) + +(module+ test + (check-equal? (part1 (parse-file "input")) 5972)) + +(define (find-direction grid robot-pos robot-dir) + (for/first ([step '(-i +i -1 1)] + #:unless (= step (- robot-dir)) + #:when (set-member? grid (+ robot-pos step))) + step)) + +(define (get-path grid robot-pos robot-dir) + (define path + (let loop ([pos robot-pos] + [dir robot-dir] + [len 0] + [path '()]) + (if (set-member? grid (+ pos dir)) + (loop (+ pos dir) dir (add1 len) path) + (let ([new-dir (find-direction grid pos dir)] + [new-path (cons len path)]) + (if new-dir + (loop pos new-dir 0 (cons (match (/ new-dir dir) [+i 'R] [-i 'L]) new-path)) + (cdr (reverse new-path))))))) + path) + +(define (remove-substring lst sublst) + (cond + [(empty? lst) '()] + [(list-prefix? sublst lst) (remove-substring (drop lst (length sublst)) sublst)] + [else (cons (car lst) (remove-substring (cdr lst) sublst))])) + +(define (compress path) + (define (prefixes lst) + (for/list ([size (in-range 2 10 2)]) + (take lst size))) + (define possibilities + (for*/list ([a (in-list (prefixes path))] + [b (in-list (prefixes (remove-substring path a)))] + [c (in-list (prefixes (remove-substring (remove-substring path a) b)))] + #:when (empty? (remove-substring (remove-substring (remove-substring path a) b) c))) + (list a b c))) + (for/last ([poss (in-list possibilities)]) + (match-define (list a b c) poss) + (define result (let loop ([lst path]) + (cond + [(empty? lst) '()] + [(list-prefix? c lst) (cons 'C (loop (drop lst (length c))))] + [(list-prefix? b lst) (cons 'B (loop (drop lst (length b))))] + [(list-prefix? a lst) (cons 'A (loop (drop lst (length a))))] + [else '(#f)]))) + #:final (last result) + (list result a b c))) + +(define (lst->str path) + (string-join (map (λ (v) (format "~a" v)) path) ",")) + +(define (part2 program) + (define-values (map-str grid robot-pos robot-dir) (get-grid program)) + (define path (get-path grid robot-pos robot-dir)) + (define inputs (string-join (append (map lst->str (compress path)) '("n\n")) "\n")) + (vector-set! program 0 2) + (define vm (execute (start-machine program inputs))) + (car (machine-outputs vm))) + +(module+ test + (check-equal? (part2 (parse-file "input")) 933214)) diff --git a/2019/day17/input b/2019/day17/input new file mode 100644 index 0000000..7ad82d9 --- /dev/null +++ b/2019/day17/input @@ -0,0 +1 @@ +1,330,331,332,109,3546,1101,0,1182,15,1101,1481,0,24,1001,0,0,570,1006,570,36,102,1,571,0,1001,570,-1,570,1001,24,1,24,1105,1,18,1008,571,0,571,1001,15,1,15,1008,15,1481,570,1006,570,14,21102,58,1,0,1106,0,786,1006,332,62,99,21101,0,333,1,21101,0,73,0,1106,0,579,1101,0,0,572,1101,0,0,573,3,574,101,1,573,573,1007,574,65,570,1005,570,151,107,67,574,570,1005,570,151,1001,574,-64,574,1002,574,-1,574,1001,572,1,572,1007,572,11,570,1006,570,165,101,1182,572,127,1002,574,1,0,3,574,101,1,573,573,1008,574,10,570,1005,570,189,1008,574,44,570,1006,570,158,1105,1,81,21102,1,340,1,1106,0,177,21102,1,477,1,1106,0,177,21101,0,514,1,21102,1,176,0,1105,1,579,99,21102,1,184,0,1106,0,579,4,574,104,10,99,1007,573,22,570,1006,570,165,102,1,572,1182,21102,375,1,1,21101,211,0,0,1106,0,579,21101,1182,11,1,21101,0,222,0,1106,0,979,21102,388,1,1,21102,1,233,0,1106,0,579,21101,1182,22,1,21102,1,244,0,1106,0,979,21101,0,401,1,21102,255,1,0,1106,0,579,21101,1182,33,1,21102,266,1,0,1105,1,979,21102,414,1,1,21102,1,277,0,1105,1,579,3,575,1008,575,89,570,1008,575,121,575,1,575,570,575,3,574,1008,574,10,570,1006,570,291,104,10,21102,1,1182,1,21102,1,313,0,1105,1,622,1005,575,327,1102,1,1,575,21101,0,327,0,1106,0,786,4,438,99,0,1,1,6,77,97,105,110,58,10,33,10,69,120,112,101,99,116,101,100,32,102,117,110,99,116,105,111,110,32,110,97,109,101,32,98,117,116,32,103,111,116,58,32,0,12,70,117,110,99,116,105,111,110,32,65,58,10,12,70,117,110,99,116,105,111,110,32,66,58,10,12,70,117,110,99,116,105,111,110,32,67,58,10,23,67,111,110,116,105,110,117,111,117,115,32,118,105,100,101,111,32,102,101,101,100,63,10,0,37,10,69,120,112,101,99,116,101,100,32,82,44,32,76,44,32,111,114,32,100,105,115,116,97,110,99,101,32,98,117,116,32,103,111,116,58,32,36,10,69,120,112,101,99,116,101,100,32,99,111,109,109,97,32,111,114,32,110,101,119,108,105,110,101,32,98,117,116,32,103,111,116,58,32,43,10,68,101,102,105,110,105,116,105,111,110,115,32,109,97,121,32,98,101,32,97,116,32,109,111,115,116,32,50,48,32,99,104,97,114,97,99,116,101,114,115,33,10,94,62,118,60,0,1,0,-1,-1,0,1,0,0,0,0,0,0,1,12,18,0,109,4,2102,1,-3,587,20101,0,0,-1,22101,1,-3,-3,21101,0,0,-2,2208,-2,-1,570,1005,570,617,2201,-3,-2,609,4,0,21201,-2,1,-2,1106,0,597,109,-4,2106,0,0,109,5,2102,1,-4,630,20102,1,0,-2,22101,1,-4,-4,21101,0,0,-3,2208,-3,-2,570,1005,570,781,2201,-4,-3,653,20102,1,0,-1,1208,-1,-4,570,1005,570,709,1208,-1,-5,570,1005,570,734,1207,-1,0,570,1005,570,759,1206,-1,774,1001,578,562,684,1,0,576,576,1001,578,566,692,1,0,577,577,21101,0,702,0,1105,1,786,21201,-1,-1,-1,1106,0,676,1001,578,1,578,1008,578,4,570,1006,570,724,1001,578,-4,578,21102,731,1,0,1105,1,786,1106,0,774,1001,578,-1,578,1008,578,-1,570,1006,570,749,1001,578,4,578,21102,1,756,0,1105,1,786,1105,1,774,21202,-1,-11,1,22101,1182,1,1,21101,0,774,0,1106,0,622,21201,-3,1,-3,1106,0,640,109,-5,2106,0,0,109,7,1005,575,802,21001,576,0,-6,20102,1,577,-5,1106,0,814,21102,1,0,-1,21102,0,1,-5,21102,0,1,-6,20208,-6,576,-2,208,-5,577,570,22002,570,-2,-2,21202,-5,59,-3,22201,-6,-3,-3,22101,1481,-3,-3,2101,0,-3,843,1005,0,863,21202,-2,42,-4,22101,46,-4,-4,1206,-2,924,21102,1,1,-1,1105,1,924,1205,-2,873,21102,35,1,-4,1105,1,924,2101,0,-3,878,1008,0,1,570,1006,570,916,1001,374,1,374,1202,-3,1,895,1101,0,2,0,2101,0,-3,902,1001,438,0,438,2202,-6,-5,570,1,570,374,570,1,570,438,438,1001,578,558,921,21002,0,1,-4,1006,575,959,204,-4,22101,1,-6,-6,1208,-6,59,570,1006,570,814,104,10,22101,1,-5,-5,1208,-5,35,570,1006,570,810,104,10,1206,-1,974,99,1206,-1,974,1101,0,1,575,21102,973,1,0,1105,1,786,99,109,-7,2105,1,0,109,6,21101,0,0,-4,21102,0,1,-3,203,-2,22101,1,-3,-3,21208,-2,82,-1,1205,-1,1030,21208,-2,76,-1,1205,-1,1037,21207,-2,48,-1,1205,-1,1124,22107,57,-2,-1,1205,-1,1124,21201,-2,-48,-2,1106,0,1041,21102,1,-4,-2,1106,0,1041,21101,0,-5,-2,21201,-4,1,-4,21207,-4,11,-1,1206,-1,1138,2201,-5,-4,1059,1202,-2,1,0,203,-2,22101,1,-3,-3,21207,-2,48,-1,1205,-1,1107,22107,57,-2,-1,1205,-1,1107,21201,-2,-48,-2,2201,-5,-4,1090,20102,10,0,-1,22201,-2,-1,-2,2201,-5,-4,1103,1202,-2,1,0,1105,1,1060,21208,-2,10,-1,1205,-1,1162,21208,-2,44,-1,1206,-1,1131,1105,1,989,21101,0,439,1,1106,0,1150,21102,477,1,1,1106,0,1150,21101,0,514,1,21102,1,1149,0,1105,1,579,99,21101,0,1157,0,1106,0,579,204,-2,104,10,99,21207,-3,22,-1,1206,-1,1138,2101,0,-5,1176,1201,-4,0,0,109,-6,2105,1,0,6,13,27,13,6,1,11,1,27,1,11,1,6,1,11,1,27,1,11,1,6,1,11,1,27,1,11,1,6,1,11,1,27,1,11,1,6,1,11,1,27,1,11,1,6,1,11,1,1,9,9,11,9,1,6,1,11,1,1,1,7,1,9,1,7,1,1,1,9,1,6,1,11,13,7,1,7,1,1,1,9,1,6,1,13,1,7,1,1,1,7,1,7,1,1,1,9,1,6,1,13,1,7,1,1,1,5,11,1,1,9,1,6,1,13,1,7,1,1,1,5,1,1,1,9,1,9,1,6,11,3,1,7,1,1,1,5,1,1,1,9,1,1,9,16,1,3,1,7,1,1,1,5,1,1,1,9,1,1,1,24,1,3,1,7,13,7,1,1,1,24,1,3,1,9,1,5,1,1,1,1,1,7,1,1,1,24,1,3,1,9,9,1,1,7,11,16,1,3,1,15,1,3,1,9,1,7,1,12,9,15,1,3,1,9,1,7,1,16,1,19,1,3,1,9,1,7,1,16,1,19,11,3,1,7,1,16,1,23,1,5,1,3,1,7,1,8,9,23,11,7,1,8,1,37,1,11,1,8,1,37,1,11,1,8,1,37,1,11,1,8,1,37,1,11,1,8,1,37,1,11,1,8,1,37,13,8,1,58,1,58,1,58,1,58,1,50,9,50 diff --git a/2019/day19/day19.rkt b/2019/day19/day19.rkt new file mode 100644 index 0000000..60accc2 --- /dev/null +++ b/2019/day19/day19.rkt @@ -0,0 +1,29 @@ +#lang racket/base + +(require "../intcode.rkt") + +(module+ test + (require rackunit)) + +(define (pulled? program x y) + (define vm (execute (start-machine program (list x y)))) + (= 1 (car (machine-outputs vm)))) + +(define (part1 program) + (length (for*/list ([x (in-range 50)] + [y (in-range 50)] + #:when (pulled? program x y)) + (list x y)))) + +(module+ test + (check-equal? (part1 (parse-file "input")) 229)) + +(define (part2 program) + (let loop ([x 0] [y 99]) + (cond + [(not (pulled? program x y)) (loop (add1 x) y)] + [(pulled? program (+ x 99) (- y 99)) (+ (* 10000 x) (- y 99))] + [else (loop x (add1 y))]))) + +(module+ test + (check-equal? (part2 (parse-file "input")) 6950903)) diff --git a/2019/day19/input b/2019/day19/input new file mode 100644 index 0000000..1dfa206 --- /dev/null +++ b/2019/day19/input @@ -0,0 +1 @@ +109,424,203,1,21101,11,0,0,1105,1,282,21102,1,18,0,1106,0,259,1201,1,0,221,203,1,21101,0,31,0,1106,0,282,21101,0,38,0,1105,1,259,21002,23,1,2,21201,1,0,3,21101,0,1,1,21101,0,57,0,1106,0,303,2102,1,1,222,21002,221,1,3,20102,1,221,2,21102,259,1,1,21101,0,80,0,1105,1,225,21102,1,118,2,21102,91,1,0,1105,1,303,2102,1,1,223,21001,222,0,4,21102,259,1,3,21101,0,225,2,21101,225,0,1,21101,0,118,0,1105,1,225,20101,0,222,3,21102,1,72,2,21102,133,1,0,1106,0,303,21202,1,-1,1,22001,223,1,1,21102,1,148,0,1105,1,259,1201,1,0,223,20101,0,221,4,20101,0,222,3,21101,22,0,2,1001,132,-2,224,1002,224,2,224,1001,224,3,224,1002,132,-1,132,1,224,132,224,21001,224,1,1,21102,1,195,0,106,0,108,20207,1,223,2,20101,0,23,1,21102,-1,1,3,21102,214,1,0,1105,1,303,22101,1,1,1,204,1,99,0,0,0,0,109,5,1201,-4,0,249,22101,0,-3,1,22101,0,-2,2,22101,0,-1,3,21101,0,250,0,1105,1,225,21202,1,1,-4,109,-5,2105,1,0,109,3,22107,0,-2,-1,21202,-1,2,-1,21201,-1,-1,-1,22202,-1,-2,-2,109,-3,2106,0,0,109,3,21207,-2,0,-1,1206,-1,294,104,0,99,22102,1,-2,-2,109,-3,2105,1,0,109,5,22207,-3,-4,-1,1206,-1,346,22201,-4,-3,-4,21202,-3,-1,-1,22201,-4,-1,2,21202,2,-1,-1,22201,-4,-1,1,22101,0,-2,3,21101,0,343,0,1106,0,303,1105,1,415,22207,-2,-3,-1,1206,-1,387,22201,-3,-2,-3,21202,-2,-1,-1,22201,-3,-1,3,21202,3,-1,-1,22201,-3,-1,2,21202,-4,1,1,21101,384,0,0,1106,0,303,1106,0,415,21202,-4,-1,-4,22201,-4,-3,-4,22202,-3,-2,-2,22202,-2,-4,-4,22202,-3,-2,-3,21202,-4,-1,-2,22201,-3,-2,1,21201,1,0,-4,109,-5,2106,0,0 diff --git a/2019/day21/day21.rkt b/2019/day21/day21.rkt new file mode 100644 index 0000000..5e67007 --- /dev/null +++ b/2019/day21/day21.rkt @@ -0,0 +1,43 @@ +#lang racket/base + +(require "../intcode.rkt") + +(module+ test + (require rackunit)) + +(define (part1 program) + (define inputs #<number (last (string-split line " "))))] + [(string-prefix? line "deal with increment") `(increment ,(string->number (last (string-split line " "))))] + [else 'other]))))) + +(define (deal deck) + (reverse deck)) + +(define (cut deck n) + (define split-fn (if (> n 0) split-at split-at-right)) + (define-values (a b) (split-fn deck (abs n))) + (append b a)) + +(define (increment deck n) + (for/list ([i (in-range (length deck))]) + (list-ref deck + (remainder (* i (modular-inverse n (length deck))) (length deck))))) + +(define (execute instruction deck) + (match instruction + ['deal (deal deck)] + [(list 'cut n) (cut deck n)] + [(list 'increment n) (increment deck n)])) + +(define (shuffle deck instructions) + (for/fold ([d deck]) ([i instructions]) + (execute i d))) + +(module+ test + (check-equal? (shuffle (range 10) (read-instructions "test1")) '(0 3 6 9 2 5 8 1 4 7)) + (check-equal? (shuffle (range 10) (read-instructions "test2")) '(3 0 7 4 1 8 5 2 9 6)) + (check-equal? (shuffle (range 10) (read-instructions "test3")) '(6 3 0 7 4 1 8 5 2 9)) + (check-equal? (shuffle (range 10) (read-instructions "test4")) '(9 2 5 8 1 4 7 0 3 6))) + +(module+ main + (displayln "Part 1:") + (define instructions (read-instructions "input")) + (define deck (range 10007)) + (time (index-of (shuffle deck instructions) 2019))) + +(define (deal-card deck-size card) + (- (sub1 deck-size) card)) + +(define (cut-card deck-size n card) + (modulo (- card n) deck-size)) + +(define (increment-card deck-size n card) + (modulo (* n card) deck-size)) + +(define (execute-card deck-size instruction card) + (match instruction + ['deal (deal-card deck-size card)] + [(list 'cut n) (cut-card deck-size n card)] + [(list 'increment n) (increment-card deck-size n card)])) + +(define (shuffle-card deck-size instructions card) + (for/fold ([c card]) ([i instructions]) + (execute-card deck-size i c))) + +(module+ main + (displayln "Part 1 (better):") + (time (shuffle-card 10007 instructions 2019))) + +(define (deal-card-inv deck-size card) + (- (sub1 deck-size) card)) + +(define (cut-card-inv deck-size n card) + (modulo (+ card n) deck-size)) + +(define (increment-card-inv deck-size n card) + (remainder (* card (modular-inverse n deck-size)) deck-size)) + +(define (execute-card-inv deck-size instruction card) + (match instruction + ['deal (deal-card-inv deck-size card)] + [(list 'cut n) (cut-card-inv deck-size n card)] + [(list 'increment n) (increment-card-inv deck-size n card)])) + +(define (shuffle-card-inv deck-size reversed-instructions card) + (for/fold ([c card]) ([i reversed-instructions]) + (execute-card-inv deck-size i c))) + +(module+ main + (displayln "Part 2:") + (define deck-size 119315717514047) + (define iterations 101741582076661) + + ;; Operations are linear, we find the coefficients and apply them directly + (define x 2020) + (define y (shuffle-card-inv deck-size (reverse instructions) x)) + (define z (shuffle-card-inv deck-size (reverse instructions) y)) + + (define a (modulo (* (- z y) (modular-inverse (- y x) deck-size)) deck-size)) + (define b (modulo (- y (* a x)) deck-size)) + + (modulo (+ (* (modular-expt a iterations deck-size) + x) + (* (sub1 (modular-expt a iterations deck-size)) + (modular-inverse (sub1 a) deck-size) + b)) + deck-size)) diff --git a/2019/day22/input b/2019/day22/input new file mode 100644 index 0000000..b012a28 --- /dev/null +++ b/2019/day22/input @@ -0,0 +1,100 @@ +deal with increment 55 +cut -6984 +deal into new stack +cut -2833 +deal with increment 75 +cut 2488 +deal with increment 54 +cut 9056 +deal with increment 52 +cut -2717 +deal with increment 4 +deal into new stack +cut -852 +deal with increment 21 +cut -3041 +deal with increment 38 +cut -6871 +deal into new stack +deal with increment 32 +cut 988 +deal with increment 29 +deal into new stack +deal with increment 68 +cut 5695 +deal with increment 36 +cut -27 +deal with increment 33 +deal into new stack +cut -1306 +deal with increment 30 +cut -4033 +deal with increment 28 +cut -442 +deal into new stack +deal with increment 30 +cut -6295 +deal with increment 56 +cut -4065 +deal into new stack +cut 5275 +deal with increment 64 +cut 9747 +deal into new stack +deal with increment 63 +cut -3772 +deal with increment 61 +deal into new stack +cut 1021 +deal with increment 73 +deal into new stack +deal with increment 7 +cut -1232 +deal with increment 52 +cut -3439 +deal with increment 31 +cut 1128 +deal into new stack +deal with increment 55 +deal into new stack +deal with increment 39 +cut -3424 +deal with increment 11 +deal into new stack +cut 4139 +deal with increment 15 +deal into new stack +cut 5333 +deal with increment 16 +cut -6787 +deal with increment 39 +cut -5817 +deal into new stack +deal with increment 62 +cut -2704 +deal with increment 64 +deal into new stack +deal with increment 70 +cut 3436 +deal with increment 65 +cut -8686 +deal with increment 22 +cut -6190 +deal with increment 13 +cut -100 +deal into new stack +cut -619 +deal into new stack +cut 3079 +deal with increment 53 +cut 1725 +deal with increment 19 +cut 3440 +deal with increment 64 +cut 8578 +deal with increment 5 +cut 2341 +deal with increment 45 +cut 2217 +deal with increment 13 +deal into new stack diff --git a/2019/day22/test1 b/2019/day22/test1 new file mode 100644 index 0000000..d2232b3 --- /dev/null +++ b/2019/day22/test1 @@ -0,0 +1,3 @@ +deal with increment 7 +deal into new stack +deal into new stack diff --git a/2019/day22/test2 b/2019/day22/test2 new file mode 100644 index 0000000..63aa219 --- /dev/null +++ b/2019/day22/test2 @@ -0,0 +1,3 @@ +cut 6 +deal with increment 7 +deal into new stack diff --git a/2019/day22/test3 b/2019/day22/test3 new file mode 100644 index 0000000..bc354e8 --- /dev/null +++ b/2019/day22/test3 @@ -0,0 +1,3 @@ +deal with increment 7 +deal with increment 9 +cut -2 diff --git a/2019/day22/test4 b/2019/day22/test4 new file mode 100644 index 0000000..480cbce --- /dev/null +++ b/2019/day22/test4 @@ -0,0 +1,10 @@ +deal into new stack +cut -2 +deal with increment 7 +cut 8 +cut -4 +deal with increment 7 +cut 3 +deal with increment 9 +deal with increment 3 +cut -1 diff --git a/2019/day23/day23.rkt b/2019/day23/day23.rkt new file mode 100644 index 0000000..ca7143d --- /dev/null +++ b/2019/day23/day23.rkt @@ -0,0 +1,30 @@ +#lang racket/base + +(require "../intcode.rkt" + racket/match + racket/list) + +(module+ test + (require rackunit)) + +(define (get-packets vms) + (let loop ([packets (reverse (append* (map machine-outputs vms)))] + [h (hash)]) + (match packets + ['() h] + [(list* addr x y r) (loop r (hash-update h addr (λ (lst) (append (list x y) lst)) '()))]))) + +(define (part1 program) + (define vms (for/list ([i (in-range 50)]) + (execute (start-machine program (list i))))) + (let loop ([vms vms]) + (define packets (get-packets vms)) + (if (hash-has-key? packets 255) + (cadr (hash-ref packets 255)) + (loop + (for/list ([i (in-range 50)] + [vm (in-list vms)]) + (execute (struct-copy machine vm [inputs (hash-ref packets i '(-1))]))))))) + +(module+ test + (check-equal? (part1 (parse-file "input")) 23266)) diff --git a/2019/day23/input b/2019/day23/input new file mode 100644 index 0000000..32baff9 --- /dev/null +++ b/2019/day23/input @@ -0,0 +1 @@ +3,62,1001,62,11,10,109,2255,105,1,0,2061,1550,1927,1618,1090,672,1649,870,1783,810,1818,2102,2030,1253,571,1154,841,779,1185,1412,1447,2224,907,1016,602,936,1519,1284,1121,1581,1055,2193,1686,1348,707,1752,1482,1317,1958,969,746,1379,1999,2162,1851,1886,2131,637,1220,1717,0,0,0,0,0,0,0,0,0,0,0,0,3,64,1008,64,-1,62,1006,62,88,1006,61,170,1106,0,73,3,65,20102,1,64,1,21002,66,1,2,21102,105,1,0,1106,0,436,1201,1,-1,64,1007,64,0,62,1005,62,73,7,64,67,62,1006,62,73,1002,64,2,132,1,132,68,132,1001,0,0,62,1001,132,1,140,8,0,65,63,2,63,62,62,1005,62,73,1002,64,2,161,1,161,68,161,1101,1,0,0,1001,161,1,169,1001,65,0,0,1101,0,1,61,1102,0,1,63,7,63,67,62,1006,62,203,1002,63,2,194,1,68,194,194,1006,0,73,1001,63,1,63,1106,0,178,21101,210,0,0,106,0,69,2102,1,1,70,1102,0,1,63,7,63,71,62,1006,62,250,1002,63,2,234,1,72,234,234,4,0,101,1,234,240,4,0,4,70,1001,63,1,63,1105,1,218,1106,0,73,109,4,21102,1,0,-3,21102,0,1,-2,20207,-2,67,-1,1206,-1,293,1202,-2,2,283,101,1,283,283,1,68,283,283,22001,0,-3,-3,21201,-2,1,-2,1106,0,263,21202,-3,1,-3,109,-4,2105,1,0,109,4,21102,1,1,-3,21101,0,0,-2,20207,-2,67,-1,1206,-1,342,1202,-2,2,332,101,1,332,332,1,68,332,332,22002,0,-3,-3,21201,-2,1,-2,1106,0,312,21202,-3,1,-3,109,-4,2105,1,0,109,1,101,1,68,359,20101,0,0,1,101,3,68,366,21001,0,0,2,21101,376,0,0,1106,0,436,21202,1,1,0,109,-1,2105,1,0,1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768,65536,131072,262144,524288,1048576,2097152,4194304,8388608,16777216,33554432,67108864,134217728,268435456,536870912,1073741824,2147483648,4294967296,8589934592,17179869184,34359738368,68719476736,137438953472,274877906944,549755813888,1099511627776,2199023255552,4398046511104,8796093022208,17592186044416,35184372088832,70368744177664,140737488355328,281474976710656,562949953421312,1125899906842624,109,8,21202,-6,10,-5,22207,-7,-5,-5,1205,-5,521,21101,0,0,-4,21101,0,0,-3,21101,51,0,-2,21201,-2,-1,-2,1201,-2,385,470,21001,0,0,-1,21202,-3,2,-3,22207,-7,-1,-5,1205,-5,496,21201,-3,1,-3,22102,-1,-1,-5,22201,-7,-5,-7,22207,-3,-6,-5,1205,-5,515,22102,-1,-6,-5,22201,-3,-5,-3,22201,-1,-4,-4,1205,-2,461,1106,0,547,21101,-1,0,-4,21202,-6,-1,-6,21207,-7,0,-5,1205,-5,547,22201,-7,-6,-7,21201,-4,1,-4,1106,0,529,22102,1,-4,-7,109,-8,2105,1,0,109,1,101,1,68,563,21002,0,1,0,109,-1,2105,1,0,1101,0,81181,66,1101,1,0,67,1102,598,1,68,1101,0,556,69,1102,1,1,71,1102,600,1,72,1105,1,73,1,-153,49,88318,1102,1,43591,66,1101,1,0,67,1101,629,0,68,1101,0,556,69,1101,3,0,71,1101,0,631,72,1105,1,73,1,2,23,122289,38,107907,38,215814,1102,39679,1,66,1101,0,3,67,1102,1,664,68,1101,0,302,69,1101,1,0,71,1102,1,670,72,1105,1,73,0,0,0,0,0,0,7,38518,1101,0,102077,66,1102,1,1,67,1101,699,0,68,1101,556,0,69,1101,3,0,71,1101,701,0,72,1105,1,73,1,5,29,33457,29,66914,38,179845,1101,71993,0,66,1101,5,0,67,1102,734,1,68,1102,253,1,69,1101,0,1,71,1101,744,0,72,1106,0,73,0,0,0,0,0,0,0,0,0,0,20,116758,1101,0,83561,66,1102,1,2,67,1101,0,773,68,1102,302,1,69,1102,1,1,71,1101,0,777,72,1105,1,73,0,0,0,0,45,141402,1101,51481,0,66,1102,1,1,67,1102,1,806,68,1102,1,556,69,1102,1,1,71,1102,808,1,72,1106,0,73,1,160,38,35969,1101,0,35999,66,1101,0,1,67,1102,837,1,68,1101,556,0,69,1102,1,1,71,1102,839,1,72,1105,1,73,1,571,6,17551,1102,18773,1,66,1102,1,1,67,1101,0,868,68,1101,0,556,69,1101,0,0,71,1101,0,870,72,1105,1,73,1,1631,1102,1,19259,66,1102,1,4,67,1101,897,0,68,1102,1,253,69,1102,1,1,71,1101,905,0,72,1105,1,73,0,0,0,0,0,0,0,0,41,54877,1101,83777,0,66,1101,0,1,67,1101,934,0,68,1101,556,0,69,1101,0,0,71,1101,0,936,72,1105,1,73,1,1967,1101,12071,0,66,1101,0,2,67,1102,963,1,68,1102,1,302,69,1102,1,1,71,1102,967,1,72,1105,1,73,0,0,0,0,7,19259,1101,0,23687,66,1101,1,0,67,1102,996,1,68,1101,556,0,69,1101,9,0,71,1102,998,1,72,1105,1,73,1,1,48,26783,27,181994,28,21722,40,83561,19,157161,18,118318,6,52653,23,40763,36,168807,1102,1,40763,66,1102,5,1,67,1101,0,1043,68,1102,302,1,69,1101,1,0,71,1101,0,1053,72,1106,0,73,0,0,0,0,0,0,0,0,0,0,34,143986,1102,1,1063,66,1101,0,3,67,1102,1,1082,68,1101,302,0,69,1101,1,0,71,1102,1088,1,72,1105,1,73,0,0,0,0,0,0,7,57777,1102,1,29789,66,1101,0,1,67,1101,0,1117,68,1101,556,0,69,1102,1,1,71,1102,1119,1,72,1105,1,73,1,463,23,203815,1102,10861,1,66,1101,2,0,67,1102,1,1148,68,1101,302,0,69,1101,0,1,71,1102,1152,1,72,1106,0,73,0,0,0,0,40,167122,1101,0,2689,66,1101,0,1,67,1101,1181,0,68,1101,0,556,69,1102,1,1,71,1101,0,1183,72,1105,1,73,1,47,45,47134,1102,59159,1,66,1101,3,0,67,1101,1212,0,68,1101,0,302,69,1102,1,1,71,1101,1218,0,72,1106,0,73,0,0,0,0,0,0,34,71993,1102,1,26783,66,1102,1,2,67,1101,1247,0,68,1102,302,1,69,1101,0,1,71,1101,0,1251,72,1106,0,73,0,0,0,0,27,90997,1101,0,91369,66,1101,1,0,67,1102,1,1280,68,1101,0,556,69,1102,1,1,71,1102,1282,1,72,1105,1,73,1,1346,6,35102,1102,90997,1,66,1102,2,1,67,1101,1311,0,68,1101,0,302,69,1101,0,1,71,1102,1315,1,72,1106,0,73,0,0,0,0,28,10861,1102,20479,1,66,1102,1,1,67,1102,1,1344,68,1101,556,0,69,1102,1,1,71,1102,1346,1,72,1105,1,73,1,113,23,163052,1102,1,40361,66,1102,1,1,67,1101,1375,0,68,1102,1,556,69,1102,1,1,71,1102,1,1377,72,1105,1,73,1,17,45,23567,1102,54877,1,66,1101,2,0,67,1102,1406,1,68,1101,0,351,69,1102,1,1,71,1101,1410,0,72,1105,1,73,0,0,0,0,255,42859,1102,1,52387,66,1102,1,3,67,1101,1439,0,68,1102,302,1,69,1102,1,1,71,1101,0,1445,72,1105,1,73,0,0,0,0,0,0,34,359965,1102,1,58379,66,1101,0,3,67,1101,0,1474,68,1102,302,1,69,1102,1,1,71,1102,1,1480,72,1105,1,73,0,0,0,0,0,0,25,24142,1102,56269,1,66,1101,4,0,67,1101,0,1509,68,1102,1,302,69,1101,0,1,71,1101,1517,0,72,1105,1,73,0,0,0,0,0,0,0,0,34,215979,1102,99469,1,66,1101,0,1,67,1101,0,1546,68,1101,0,556,69,1102,1,1,71,1102,1548,1,72,1106,0,73,1,147,45,117835,1102,94583,1,66,1101,0,1,67,1102,1577,1,68,1102,556,1,69,1102,1,1,71,1102,1,1579,72,1106,0,73,1,-42589,48,53566,1101,0,33457,66,1102,4,1,67,1102,1,1608,68,1102,1,302,69,1101,1,0,71,1101,0,1616,72,1105,1,73,0,0,0,0,0,0,0,0,38,71938,1101,0,22171,66,1101,1,0,67,1102,1,1645,68,1101,556,0,69,1101,1,0,71,1101,0,1647,72,1105,1,73,1,1483,18,177477,1101,0,17551,66,1101,4,0,67,1102,1676,1,68,1101,0,302,69,1102,1,1,71,1102,1,1684,72,1105,1,73,0,0,0,0,0,0,0,0,34,287972,1102,499,1,66,1101,1,0,67,1101,1713,0,68,1101,0,556,69,1101,0,1,71,1102,1,1715,72,1106,0,73,1,-281,18,59159,1102,44159,1,66,1102,1,3,67,1101,1744,0,68,1101,0,302,69,1101,0,1,71,1102,1750,1,72,1105,1,73,0,0,0,0,0,0,47,79358,1102,1,37781,66,1101,1,0,67,1102,1,1779,68,1102,556,1,69,1101,1,0,71,1101,0,1781,72,1105,1,73,1,67,36,225076,1101,0,66683,66,1102,1,1,67,1101,0,1810,68,1101,0,556,69,1101,3,0,71,1102,1812,1,72,1106,0,73,1,3,45,94268,6,70204,23,81526,1101,39461,0,66,1102,1,1,67,1102,1845,1,68,1101,0,556,69,1101,2,0,71,1101,1847,0,72,1106,0,73,1,10,29,100371,38,143876,1101,88289,0,66,1101,0,1,67,1102,1,1878,68,1102,1,556,69,1102,1,3,71,1102,1880,1,72,1106,0,73,1,7,45,70701,20,58379,49,132477,1101,0,23567,66,1101,6,0,67,1101,1913,0,68,1101,0,302,69,1102,1,1,71,1101,1925,0,72,1106,0,73,0,0,0,0,0,0,0,0,0,0,0,0,7,77036,1101,0,1471,66,1101,0,1,67,1101,0,1954,68,1102,1,556,69,1101,0,1,71,1102,1,1956,72,1105,1,73,1,101,36,56269,1101,0,35969,66,1101,6,0,67,1102,1985,1,68,1101,302,0,69,1101,1,0,71,1101,1997,0,72,1106,0,73,0,0,0,0,0,0,0,0,0,0,0,0,41,109754,1101,0,17299,66,1101,0,1,67,1102,1,2026,68,1102,1,556,69,1101,1,0,71,1102,1,2028,72,1106,0,73,1,-360,19,104774,1102,28351,1,66,1101,0,1,67,1102,1,2057,68,1101,0,556,69,1101,1,0,71,1101,2059,0,72,1106,0,73,1,1086,36,112538,1102,42859,1,66,1101,0,1,67,1101,2088,0,68,1102,556,1,69,1101,6,0,71,1102,1,2090,72,1105,1,73,1,25110,25,12071,47,39679,47,119037,30,1063,30,2126,30,3189,1102,1,84481,66,1101,0,1,67,1102,2129,1,68,1102,556,1,69,1101,0,0,71,1101,2131,0,72,1105,1,73,1,1635,1102,92357,1,66,1101,1,0,67,1101,2158,0,68,1102,1,556,69,1102,1,1,71,1102,2160,1,72,1106,0,73,1,49,49,44159,1101,0,39367,66,1101,1,0,67,1101,0,2189,68,1102,1,556,69,1102,1,1,71,1101,2191,0,72,1105,1,73,1,5821,19,52387,1101,0,13381,66,1101,1,0,67,1101,2220,0,68,1101,556,0,69,1102,1,1,71,1101,0,2222,72,1106,0,73,1,31,20,175137,1101,90971,0,66,1101,1,0,67,1101,0,2251,68,1101,0,556,69,1102,1,1,71,1101,2253,0,72,1105,1,73,1,125,29,133828 diff --git a/2019/day24/day24.rkt b/2019/day24/day24.rkt new file mode 100644 index 0000000..642abcd --- /dev/null +++ b/2019/day24/day24.rkt @@ -0,0 +1,66 @@ +#lang racket + +(module+ test + (require rackunit)) + +(define (read-input filename) + (for/set ([line (file->lines filename)] + [i (in-naturals)] + #:when #t + [c (in-string line)] + [j (in-naturals)] + #:when (eq? c #\#)) + (make-rectangular j i))) + +(define (grid-size grid) + (define indices (flatten (map (λ (x) (list (real-part x) (imag-part x))) (set->list grid)))) + (add1 (apply max indices))) + +(define (display-grid grid) + (define size (grid-size grid)) + (for ([j (in-range size)]) + (for ([i (in-range size)]) + (if (set-member? grid (make-rectangular i j)) + (printf "#") + (printf "."))) + (printf "~n"))) + +(define (count-neighbours grid pos) + (for/sum ([step '(-i -1 +i 1)] + #:when (set-member? grid (+ pos step))) + 1)) + +(define (lives? grid pos) + (define n (count-neighbours grid pos)) + (define alive (set-member? grid pos)) + (cond + [(and alive (not (= 1 n))) #f] + [(and (not alive) (or (= 1 n) (= 2 n))) #t] + [else alive])) + +(define (step grid) + (define size (grid-size grid)) + (for*/set ([i (in-range size)] + [j (in-range size)] + #:when (lives? grid (make-rectangular i j))) + (make-rectangular i j))) + +(define (biodiversity-rating grid) + (define size (grid-size grid)) + (for*/sum ([i (in-range size)] + [j (in-range size)] + #:when (set-member? grid (make-rectangular i j))) + (expt 2 (+ i (* j size))))) + +(define (part1 filename) + (define grid (read-input filename)) + (define final + (car (for/fold ([grids (list grid)]) + ([i (in-naturals)] + #:break (member (car grids) (cdr grids))) + (cons (step (car grids)) grids)))) + (biodiversity-rating final)) + +(module+ test + (check-equal? (part1 "test") 2129920) + (check-equal? (part1 "input") 32573535)) diff --git a/2019/day24/input b/2019/day24/input new file mode 100644 index 0000000..cfcc29a --- /dev/null +++ b/2019/day24/input @@ -0,0 +1,5 @@ +..#.# +#.##. +.#..# +#.... +....# diff --git a/2019/day24/test b/2019/day24/test new file mode 100644 index 0000000..704a112 --- /dev/null +++ b/2019/day24/test @@ -0,0 +1,5 @@ +....# +#..#. +#..## +..#.. +#.... diff --git a/2019/intcode.rkt b/2019/intcode.rkt new file mode 100644 index 0000000..ec3ecbf --- /dev/null +++ b/2019/intcode.rkt @@ -0,0 +1,158 @@ +#lang racket/base + +(provide parse + parse-file + (struct-out machine) + start-machine + ascii->list + list->ascii + execute) + +(require racket/list + racket/string + racket/file + racket/match) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Program I/O ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +(define (parse str) + (list->vector (map string->number (map string-trim (string-split str ","))))) + +(define (parse-file filename) + (parse (string-trim (file->string filename)))) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Instructions ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +(struct instruction + (name + parameter-modes + inparams + outparams) + #:transparent) + +(define opcodes + (hash + 99 'terminate + 1 '(add 2 1) + 2 '(mul 2 1) + 3 '(input 0 1) + 4 '(output 1 0) + 5 '(jmpt 2 0) + 6 '(jmpf 2 0) + 7 '(lt 2 1) + 8 '(eq 2 1) + 9 '(rel 1 0))) + +(define (parse-instruction program pc relative-base) + (define opcode (vector-ref program pc)) + + (define-values (name nin nout) + (match (hash-ref opcodes (remainder opcode 100)) + [(list name n m) (values name n m)] + [name (values name 0 0)])) + + (define parameter-modes (make-hash)) + (for/fold ([n (quotient opcode 100)]) + ([i (in-naturals)] + #:break (= n 0)) + (hash-set! parameter-modes i (remainder n 10)) + (quotient n 10)) + + (define inparams + (for/list ([i (in-range nin)]) + (match (hash-ref parameter-modes i 0) + [0 (vector-ref program (vector-ref program (+ pc i 1)))] + [1 (vector-ref program (+ pc i 1))] + [2 (vector-ref program (+ relative-base (vector-ref program (+ pc i 1))))]))) + + (define outparams + (for/list ([i (in-range nout)]) + (match (hash-ref parameter-modes (+ nin i) 0) + [0 (vector-ref program (+ pc nin i 1))] + [1 (error "output parameter cannot be in immediate mode" name pc)] + [2 (+ relative-base (vector-ref program (+ pc nin i 1)))]))) + + (instruction name parameter-modes inparams outparams)) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Virtual machine interfaces ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +(struct machine + (program + inputs + pc + relative-base + terminated + outputs) + #:transparent + #:guard (lambda (program inputs pc relative-base terminated outputs name) + (when (not (<= 0 pc (vector-length program))) + (error "invalid program counter" pc)) + (values program + (preprocess-inputs inputs) + pc + relative-base + terminated outputs))) + +(define (start-machine program inputs) + (machine program inputs 0 0 #f '())) + +(define (ascii->list str) + (map char->integer (string->list str))) + +(define (list->ascii lst) + (list->string (map integer->char lst))) + +(define (preprocess-inputs inputs) + (cond + [(list? inputs) inputs] + [(string? inputs) (ascii->list inputs)] + [else (error "unsupported input type: " inputs)])) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Virtual machine execution ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +(define (execute vm) + (define p (make-vector 10000 0)) + (vector-copy! p 0 (machine-program vm)) + + (let loop ([pc (machine-pc vm)] + [relative-base (machine-relative-base vm)] + [inputs (machine-inputs vm)] + [outputs (machine-outputs vm)]) + (define instr (parse-instruction p pc relative-base)) + (define inparams (instruction-inparams instr)) + (define outparams (instruction-outparams instr)) + (define next-pc (+ pc (length inparams) (length outparams) 1)) + + (match (instruction-name instr) + ['terminate (machine p inputs pc relative-base #t outputs)] + ['add (vector-set! p (car outparams) (apply + inparams)) + (loop next-pc relative-base inputs outputs)] + ['mul (vector-set! p (car outparams) (apply * inparams)) + (loop next-pc relative-base inputs outputs)] + ['input (if (empty? inputs) + (machine p inputs pc relative-base #f outputs) + (begin + (vector-set! p (car outparams) (car inputs)) + (loop next-pc relative-base (cdr inputs) outputs)))] + ['output (loop next-pc relative-base inputs (cons (car inparams) outputs))] + ['jmpt (if (not (= 0 (car inparams))) + (loop (cadr inparams) relative-base inputs outputs) + (loop next-pc relative-base inputs outputs))] + ['jmpf (if (= 0 (car inparams)) + (loop (cadr inparams) relative-base inputs outputs) + (loop next-pc relative-base inputs outputs))] + ['lt (vector-set! p (car outparams) + (if (< (car inparams) (cadr inparams)) 1 0)) + (loop next-pc relative-base inputs outputs)] + ['eq (vector-set! p (car outparams) + (if (= (car inparams) (cadr inparams)) 1 0)) + (loop next-pc relative-base inputs outputs)] + ['rel (loop next-pc (+ relative-base (car inparams)) inputs outputs)]))) diff --git a/2020/.gitignore b/2020/.gitignore new file mode 100644 index 0000000..abcd991 --- /dev/null +++ b/2020/.gitignore @@ -0,0 +1,4 @@ +*\~ +compiled/ +a.out +.gdb_history diff --git a/2020/README.org b/2020/README.org new file mode 100644 index 0000000..1256689 --- /dev/null +++ b/2020/README.org @@ -0,0 +1,34 @@ +* Advent of Code 2020 + +My answers for [[https://adventofcode.com/2020][Advent of Code 2020]]. + +| Day | [[https://racket-lang.org/][Racket]] | C | [[https://www.dyalog.com/][APL]] | +|-------------+--------+-----+-----| +| Day 1 | 2 | 2 | 2 | +| Day 2 | 2 | 2 | 2 | +| Day 3 | 2 | 2 | 2 | +| Day 4 | 2 | | | +| Day 5 | 2 | 2 | 2 | +| Day 6 | 2 | 2 | 2 | +| Day 7 | 2 | | 2 | +| Day 8 | 2 | 2 | | +| Day 9 | 2 | 2 | 2 | +| Day 10 | 2 | 2 | 2 | +| Day 11 | 2 | | 1 | +| Day 12 | 2 | 2 | | +| Day 13 | 2 | 2 | 2 | +| Day 14 | 2 | 2 | | +| Day 15 | 2 | 2 | | +| Day 16 | 2 | | | +| Day 17 | 2 | 2 | | +| Day 18 | 2 | | 1 | +| Day 19 | 2 | | | +| Day 20 | 2 | | | +| Day 21 | 2 | | | +| Day 22 | 2 | | | +| Day 23 | 2 | 2 | | +| Day 24 | 2 | | | +| Day 25 | 2 | 2 | | +|-------------+--------+-----+-----| +| *Total (%)* | 100 | 60. | 40. | +#+TBLFM: @>$2..$4=50*vmean(@I..@II);ENn3 diff --git a/2020/day01/day01.c b/2020/day01/day01.c new file mode 100644 index 0000000..be2057e --- /dev/null +++ b/2020/day01/day01.c @@ -0,0 +1,49 @@ +#include +#include + +int main(int argc, char *argv[]) { + if (argc < 2) { + printf("Usage: %s \n", argv[0]); + return 0; + } + + FILE *fp = fopen(argv[1], "r"); + if (fp == NULL) { + printf("Could not open file %s\n", argv[1]); + return 1; + } + + int input[1024] = {0}; + int d; + int n = 0; + while (fscanf(fp, "%d\n", &d) == 1) { + input[n] = d; + n++; + } + fclose(fp); + + int res = -1; + for (int i = 0; i < n && res == -1; ++i) { + for (int j = 0; j < n && res == -1; ++j) { + if (input[i] + input[j] == 2020) { + res = input[i] * input[j]; + break; + } + } + } + printf("%d\n", res); + + res = -1; + for (int i = 0; i < n && res == -1; ++i) { + for (int j = 0; j < n && res == -1; ++j) { + for (int k = 0; k < n && res == -1; ++k) { + if (input[i] + input[j] + input[k] == 2020) { + res = input[i] * input[j] * input[k]; + } + } + } + } + printf("%d\n", res); + + return 0; +} diff --git a/2020/day01/day01.dyalog b/2020/day01/day01.dyalog new file mode 100644 index 0000000..252543c --- /dev/null +++ b/2020/day01/day01.dyalog @@ -0,0 +1,6 @@ + ⎕io←0 + x←⍎¨⊃⎕nget'input'1 + ⍝ Part 1 + ×/x[⊃⍸2020=x∘.+x] + ⍝ Part 2 + ×/x[⊃⍸2020=⊃∘.+/3⍴⊂x] diff --git a/2020/day01/day01.rkt b/2020/day01/day01.rkt new file mode 100644 index 0000000..16a0357 --- /dev/null +++ b/2020/day01/day01.rkt @@ -0,0 +1,37 @@ +#lang racket + +(module+ test + (require rackunit)) + +(module+ main + (displayln "Day 1")) + +(define (read-input filename) + (map string->number (file->lines filename))) + +(define (part1 filename) + (define expenses (read-input filename)) + (for*/last ([a (in-list expenses)] + [b (in-list expenses)] + #:final (= 2020 (+ a b))) + (* a b))) + +(module+ test + (check-eq? (part1 "test") 514579)) + +(module+ main + (displayln (part1 "input"))) + +(define (part2 filename) + (define expenses (read-input filename)) + (for*/last ([a (in-list expenses)] + [b (in-list expenses)] + [c (in-list expenses)] + #:final (= 2020 (+ a b c))) + (* a b c))) + +(module+ test + (check-eq? (part2 "test") 241861950)) + +(module+ main + (displayln (part2 "input"))) diff --git a/2020/day01/input b/2020/day01/input new file mode 100644 index 0000000..54eca8f --- /dev/null +++ b/2020/day01/input @@ -0,0 +1,200 @@ +1688 +1463 +1461 +1842 +1441 +1838 +1583 +1891 +1876 +1551 +1506 +2005 +1989 +1417 +1784 +1975 +1428 +1485 +1597 +1871 +105 +788 +1971 +1892 +1854 +1466 +1584 +1565 +1400 +1640 +1780 +1774 +360 +1421 +1368 +1771 +1666 +1707 +1627 +1449 +1677 +1504 +1721 +1994 +1959 +1862 +1768 +1986 +1904 +1382 +1969 +1852 +1917 +1966 +1742 +1371 +1405 +1995 +1906 +1694 +1735 +1422 +1719 +1978 +1641 +1761 +1567 +1974 +1495 +1973 +1958 +1599 +1770 +1600 +1465 +1865 +1479 +1687 +1390 +1802 +2008 +645 +1435 +1589 +1949 +1909 +1526 +1667 +1831 +1864 +1713 +1718 +1232 +1868 +1884 +1825 +1999 +1590 +1759 +1391 +1757 +323 +1612 +1637 +1727 +1783 +1643 +1442 +1452 +675 +1812 +1604 +1518 +1894 +1933 +1801 +1914 +912 +1576 +1961 +1970 +1446 +1985 +1988 +1563 +1826 +1409 +1503 +1539 +1832 +1698 +1990 +1689 +1532 +765 +1546 +1384 +1519 +1615 +1556 +1754 +1983 +1394 +1763 +1823 +1788 +1407 +1946 +1751 +1837 +1680 +1929 +1814 +1948 +1919 +1953 +55 +1731 +1516 +1895 +1795 +1890 +1881 +1799 +1536 +1396 +1942 +1798 +1767 +1745 +1883 +2004 +1550 +1916 +1650 +1749 +1991 +1789 +1740 +1490 +1873 +1003 +1699 +1669 +1781 +2000 +1728 +1877 +1733 +1588 +1168 +1828 +1848 +1963 +1928 +1920 +1493 +1968 +1564 +1572 diff --git a/2020/day01/test b/2020/day01/test new file mode 100644 index 0000000..e3fb011 --- /dev/null +++ b/2020/day01/test @@ -0,0 +1,6 @@ +1721 +979 +366 +299 +675 +1456 diff --git a/2020/day02/day02.c b/2020/day02/day02.c new file mode 100644 index 0000000..2bfe48d --- /dev/null +++ b/2020/day02/day02.c @@ -0,0 +1,45 @@ +#include +#include + +bool is_valid_part1(int lower, int upper, char key, char *pass) { + int count = 0; + for (char *c = pass; *c != 0; ++c) { + if (*c == key) { + count++; + } + } + return (count >= lower) && (count <= upper); +} + +bool is_valid_part2(int pos1, int pos2, char key, char *pass) { + return (pass[pos1 - 1] == key) ^ (pass[pos2 - 1] == key); +} + +int main(int argc, char *argv[]) { + if (argc < 2) { + printf("Usage: %s \n", argv[0]); + return 0; + } + FILE *input = fopen(argv[1], "r"); + + int lower, upper; + char key; + char pass[256]; + + int count1 = 0; + int count2 = 0; + + while (fscanf(input, "%d-%d %c: %s", &lower, &upper, &key, pass) == 4) { + if (is_valid_part1(lower, upper, key, pass)) { + count1++; + } + if (is_valid_part2(lower, upper, key, pass)) { + count2++; + } + } + + printf("Part 1: %d\n", count1); + printf("Part 2: %d\n", count2); + + return 0; +} diff --git a/2020/day02/day02.dyalog b/2020/day02/day02.dyalog new file mode 100644 index 0000000..a33fccf --- /dev/null +++ b/2020/day02/day02.dyalog @@ -0,0 +1,3 @@ + p←↑¨{⍵⊆⍨~⍵∊':- '}¨⊃⎕NGET'input'1 + +/{((⍎1⌷⍵),1+⍎2⌷⍵)(1=⍸)+/(⊃3⌷⍵)⍷4⌷⍵}¨p ⍝ Part 1 + +/{≠/(⊃3⌷⍵)=(4⌷⍵)[⍎¨↓(⊂1 2)⌷⍵]}¨p ⍝ Part 2 diff --git a/2020/day02/day02.rkt b/2020/day02/day02.rkt new file mode 100644 index 0000000..3e4af90 --- /dev/null +++ b/2020/day02/day02.rkt @@ -0,0 +1,61 @@ +#lang racket + +(module+ test + (require rackunit)) + +(module+ main + (displayln "Day 2")) + +(struct policy + (lower upper char) + #:transparent) + +(define (parse-line str) + (define lst (string-split str #px"(\\s+|:\\s+|-)")) + (values (policy (string->number (first lst)) + (string->number (second lst)) + (car (string->list (third lst)))) + (last lst))) + +(define (read-input filename) + (with-input-from-file filename + (lambda () + (for/lists (policies passwords) + ([line (in-lines)]) + (parse-line line))))) + +(define (valid? pol pass) + (define cnt (count (λ (x) (equal? x (policy-char pol))) + (string->list pass))) + (and (<= (policy-lower pol) cnt) + (>= (policy-upper pol) cnt))) + +(define (part1 filename) + (define-values (policies passwords) (read-input filename)) + (for/sum ([pol policies] + [pass passwords] + #:when (valid? pol pass)) + 1)) + +(module+ test + (check-equal? (part1 "test") 2)) + +(module+ main + (displayln (part1 "input"))) + +(define (new-valid? pol pass) + (xor (equal? (string-ref pass (sub1 (policy-lower pol))) (policy-char pol)) + (equal? (string-ref pass (sub1 (policy-upper pol))) (policy-char pol)))) + +(define (part2 filename) + (define-values (policies passwords) (read-input filename)) + (for/sum ([pol policies] + [pass passwords] + #:when (new-valid? pol pass)) + 1)) + +(module+ test + (check-equal? (part2 "test") 1)) + +(module+ main + (displayln (part2 "input"))) diff --git a/2020/day02/input b/2020/day02/input new file mode 100644 index 0000000..7cc565b --- /dev/null +++ b/2020/day02/input @@ -0,0 +1,1000 @@ +5-9 g: ggccggmgn +11-16 l: llllqllllllllflq +3-6 q: qvqqqpzqd +6-11 f: ffffpcffffp +7-8 l: lllqlwtqll +8-10 q: qqglqqqqqqqjqmdbq +4-6 w: hflwkwplswcnhb +6-15 w: wwswwxlwwwwwwww +3-5 f: fffvnpvf +6-8 b: bhwsshbp +1-2 l: lhll +5-6 s: wpsxsss +2-4 w: wswwtwww +9-12 x: xxxxxfxxxxrnx +9-10 s: sssscsqssshsppzsc +1-3 w: wgwtwbksqrrcpvtfbbw +2-9 r: wrrtcmzcrdtlmkldsckq +4-6 g: gttdhlfgpcgrgtwc +1-2 f: fpbcjczfwmrrxk +9-10 z: zzzzzzzzzt +1-8 m: mjjlsbmg +5-7 p: ppkpprp +3-6 w: wwwtwzwww +17-18 q: cqqjvhqhrpqlqvqdjlbb +2-3 n: dnphwnfz +3-4 r: blqrrrr +4-5 v: lsrvvpghqsdwrvppsm +5-15 n: hclnngnhmfnjzqnvz +6-7 d: kddmddd +15-17 v: vvvvvvvvvvvvvvpvl +3-4 q: kndwvq +12-19 t: tktxcppccjlwnnmmntt +6-8 p: ppplpcpc +3-6 p: npprhpsxkq +4-6 v: bvfvvv +1-2 r: rrrr +6-10 r: bsrcqbtrpbr +7-8 w: wwwwwwwvw +12-17 h: hnffmvtrqnmhgsnbhrr +9-13 c: cccjcddcchccc +11-13 c: cwccctccccccc +6-8 d: khjjvdddpkddcddd +1-2 r: lmrr +1-5 t: wtttmt +6-7 m: qdmmmmmxm +5-18 h: hhhhshhhhhhhhhhhhhh +4-11 l: llllllllllcllll +2-8 k: kkbkkkkkkkkk +3-6 q: rqbqmqwqgq +3-6 d: dsrdfh +16-20 m: qmllmddfldjmmrpmmwpt +9-16 j: tjjpjqvhjjjtjjtjj +4-9 b: btbdbbbbrbbb +5-16 w: wwwwpwwwmwwwwwwmwww +1-2 g: gggggbwgggbgg +1-2 l: lllllbcwlllkfb +4-5 h: ghhshkhhhdbs +4-5 s: ssssssvssspssxs +7-12 k: kkpkkkgtrkkk +11-16 t: tgjttttktrtstsxtm +9-13 c: cccccccccccccc +5-9 q: qqqqqqqqq +2-4 q: rqqqq +4-6 l: lllblql +2-4 b: jbbbnvbx +4-9 q: kqqqbxqsq +3-4 q: rzjrcq +1-5 l: rllqsc +1-6 l: lgljslmsmbwbllsjw +2-5 p: psmkj +1-3 v: vvvvv +7-10 k: kbmdkkdkpzxhkqk +3-6 g: ggtgpgxg +1-8 w: wswwwgww +2-6 r: rrqmfs +5-6 r: rrrrpzr +2-5 v: vvfvvv +5-10 r: rdrrrrrnrr +1-7 v: vvvvdvvvv +6-7 r: nhbxnrr +1-4 g: mggr +2-3 g: ggqtgw +7-8 k: qkkkckkkxxwkvt +2-4 g: gbmgx +7-14 w: wrwnftwrbcbxrx +7-10 f: ffkmfftlnf +10-13 j: qjjjjjjjjgjjq +11-13 n: ntnnnnnnnnknsn +1-7 d: lsddrwzzddhxddq +12-17 q: qjqqqrlqdqqvqwqqd +2-3 z: crzz +3-4 d: dtsd +3-5 k: hkgstlvxr +18-19 d: hswndtgrdtwtdddddpl +9-12 x: xxxqxxxxxxxjhxx +1-2 b: dpbb +8-15 h: bhhzkqhghhtphfzh +13-17 d: dnddddddddddddddxd +15-17 m: mmmmmmmmmmmmmmmmmmmm +5-11 r: rrrrwrrrrrwrr +4-6 v: vvvhvf +7-10 l: lllllltxlfllfll +3-7 s: sssssssss +2-7 b: fbfcfdgtbb +4-5 x: xmxxxxx +2-5 g: gqqsqbmgclq +3-5 z: zbzgznzp +7-8 z: hzzxtzzz +2-4 q: qjqqqq +17-19 g: ggggggggggggggggggwg +7-10 s: pwqssvsqmsbfrbfg +8-12 b: bbbbbbbsvbfsfgvbzbk +1-9 n: mnnnnnnnnn +2-3 z: zcwzz +6-18 x: xxxxxtxxxxxxxxxxxlx +6-15 m: mmtmmmmmmmmmmmmdmm +4-8 v: bfbvlmwgrvlh +16-18 m: mmmmmmmmmmmmmmmjmd +8-9 j: hjqdjjjgj +2-3 q: qfkv +10-12 p: kpzvlppqzmpdd +3-4 s: ssss +2-12 c: mcnscktznndc +3-5 l: lllllll +3-4 w: wwww +9-10 s: sssssssssls +11-13 d: dzdddddjddtddw +6-7 x: xxjxxxxdx +7-8 f: dqjhfqfw +8-13 m: mmmmqmmlmmmmcmmmmmmm +7-10 j: bdcmkjjhfjzbfwxgzg +3-8 j: tgmdwwjjnjgjgjhjtx +4-7 l: llllllllvplglld +11-15 z: tzxvzzzzzzmfzzczz +3-6 z: zzzzpzzsgztcpzz +9-13 x: pfzxpqtckxvsxx +7-8 g: gmglbpgxwglxbztbkgcv +3-5 b: vqnbbb +6-7 g: ggggggg +4-10 n: nnqnnnnnnmhqnnnn +7-9 b: bbbbbbqbdbkbqbbb +15-17 h: hhhhhhhhhhhhhhdhjz +2-3 b: bbbxb +1-3 b: bpbvbbbbbbbbzlbrsb +9-13 c: ccccccccpcccvc +10-13 n: hnnnwbnnnntnnn +6-12 s: zssscssfsssszs +2-9 n: pnwkdvknxhvvqpjrqk +1-2 c: hvfdcltktc +3-6 c: cpccblcrqnlfdnd +12-14 h: mxpghswhdlklnb +4-5 b: kbbggvbbxkbsl +1-6 j: chjjjxjjjj +4-6 m: mmmmmmm +13-15 m: mmmmmmmmmmmmrms +9-15 z: zzzzzzzzxzzzzzzz +5-11 q: gqmlbsgjbzv +12-15 t: sgtgscntdttttjt +13-15 h: sgxqbhhhmkfzhmd +7-9 p: dppzplppppt +2-6 v: rzlgcxspgwdwrkxbsqvw +2-5 n: mnlxnnn +17-18 p: pkcjklpppxdqptpnfxk +10-11 s: sssjssssstd +8-11 f: fffffffffffffffff +1-3 h: hhhhhhh +4-5 d: vddxnd +2-10 h: hxhhhhhhhhhh +11-13 c: vrmccccccqcccccchnk +8-14 l: llrlllllllllqljjm +9-15 g: bkglbmgfgkfxnblg +14-16 c: ccccbccccccccccccccc +3-5 l: llglx +1-7 t: qtttgtn +6-8 j: jjjjjjjjkjjjj +11-14 n: btnndcxnbnnjjnnkvn +4-5 r: rgrrq +7-9 l: rxltlljllll +1-5 w: wwrgn +14-18 d: zlxdglmbsstdbqddnq +1-18 m: mmmmmmmmmmmmmmmmmm +13-16 p: prpphpqppplppzpnpppp +3-6 s: nfdsssssss +11-12 b: bmbbstbbwbbt +5-6 x: fstlxx +7-11 w: hwmxkpwwdfmr +2-4 m: lwsrm +11-15 h: hhhhhthhhhhhhdh +11-15 h: hhspzhhghhhhhph +12-13 g: ggggggggggglv +1-2 r: rqgrtrjrrrr +2-5 m: rmmmmmmm +2-12 w: swbdnqjpgkhlgfcwhjtl +3-12 b: bbpbdbbbwbdbb +8-10 z: zzzzzzzzzzzzz +5-12 m: mmmzwmxmmjnhlmdbmm +7-9 q: pqqqqqqqqqqdqq +12-14 z: zmrzqkzmzzwxptz +1-10 n: nnnnwnnnnnnn +2-4 s: gvsw +2-5 f: tbfffff +7-11 p: xpgzpppmppp +6-15 v: jvgvmzvxvvvvvwnvv +1-2 n: nnnnftznb +7-13 t: ttttttttttttttt +19-20 p: pppppppppppppppptplt +1-5 h: xhvbhhpzthh +8-10 b: bbbbbbxwbbbbbbb +7-13 w: wwhbwwwwkwdww +2-4 p: zpppshgljlgzcsp +7-8 p: pngtdrbp +10-12 f: ffffbffffffffff +2-5 t: vttgtqxn +3-4 r: rrfr +4-6 r: rrrrrrr +3-15 c: cnckhgxpwhcgnzw +4-7 d: ldddxzjngg +9-10 b: bgjpmqmjgb +4-5 v: vqhvvvz +9-12 b: wvdsqhdhdcbt +2-3 w: wwww +16-17 w: dwzwwvrjlwlwwnfwlsts +4-5 x: bmbmxpxrg +3-6 p: pjpxbp +1-5 j: vdsjxj +2-3 x: xxsxfxxxxxs +9-15 j: lbwqpstwjjbwpzjkgj +10-13 n: hnvnnnpnnnnnnnnnnnn +10-11 m: tmmmkmmmzmnmvm +6-12 l: lslllllmlllrlxl +8-10 r: rrrrrrrrrrrrrrr +9-11 b: hmhnzhflblcbsrfsj +10-13 h: nhmhwhbhzkrlwh +12-14 s: dsrssjhrsssgsxksssg +2-7 d: nhdlpddffdgdp +1-5 p: pppppp +11-16 k: gcxckpvrtvkhrdkht +9-15 m: lcmmmmkmpmmmmmx +5-6 z: zsrxwzfz +3-4 v: hdvtqqkvz +13-16 w: wwtwlwwnwwwwfwztz +9-11 f: pfwdpfrpfmfmb +4-8 x: wxxxbtzxmrx +9-11 m: mlvmmmzmmmmjnmpkkhm +9-10 w: scpljvzpwnwcbhzntbsw +3-8 h: bgbhhnhndcthhv +8-17 x: xxxxxxxxxxxxxxxxxxxx +5-10 d: dtddddddddd +2-3 v: vvvv +13-14 z: hmrbhfgmdkljtz +5-7 h: hhhtpdd +3-6 w: mwwglwwwwptz +3-4 q: sqqq +12-15 v: vmvvvrvlvvpqvqk +4-9 n: dndmktskr +18-19 d: dddddddmdddddcdgddd +4-5 t: ttttstt +11-17 p: ppppppppppkpqpppvpp +7-11 l: tslnxvldrfhp +14-15 x: xxxxxxxxxxxxxrcxxxx +2-8 b: bbbbbbbbbbbb +12-17 n: nnsnnnnwnpnfnnnnnnnn +3-8 f: crfpffhf +17-18 j: jjwcmkcdxjjjkqtqjj +2-4 n: nnnn +7-9 q: rbrkbqqtj +2-3 j: jstj +18-20 d: dddddddddddddddddddh +7-14 h: hhhhhhxhhhhhhdhh +3-10 g: dgbgpgggxg +11-12 w: wwwwmvqmwlwwj +4-11 s: csrldnzsvhxcc +6-8 n: nnnnnnnnnn +2-5 x: xxxxxld +7-9 m: mkmmmhcbmrj +9-13 p: bppppppppppppppp +3-20 g: ggggnggggggggggvgggt +10-11 d: gddrddddddd +5-10 m: mmmmmmmmmmmmmfmmpm +5-7 n: nnrnccm +11-14 k: khkkknzkrkjkkb +2-10 x: jxrbgfkgjz +19-20 t: tttttttttttttttttkch +1-4 d: vvqfxvrtxldzcmxxdlsj +8-13 n: nnvnnngnnnnnwnnnnb +5-9 n: nnnntnnnwn +2-3 z: zzzz +2-12 b: zblxddslcnbbpcj +5-17 z: zzzzzzzzzzzzzzzzzzzz +14-16 l: pdlllfllllsrgwwf +6-13 j: knwhbnjxwgrwrbjqwcj +3-4 r: rrfwr +2-3 h: hhrh +3-4 l: klll +5-7 b: bqwbbfmbb +5-11 s: shsszsssksssscsssss +6-8 w: mwdbwwgw +2-8 z: tzcqzszzzmq +2-12 f: fgtffwfkxffffffrjsf +4-5 s: sslsk +9-13 s: vsssfsbsssvgzftcss +1-3 g: gkggzr +8-13 d: rchmzwxdkzgpdzwdk +18-19 q: qlmvnrkklmdwrjprzsmv +1-7 r: rrsrrrr +17-19 d: dddddddndpbdwskdddd +7-8 r: rrrrrrcvr +1-3 r: jdrrhq +5-6 r: rwrjtrcmkrrk +2-3 m: mmxmg +1-19 f: ffffffffffffffffffpf +16-17 h: hhhhhhhhhhhhhhhhh +10-13 n: nnnnnnnnnnnnvsn +3-4 g: gggg +7-13 c: ckcvfscqtmckc +4-5 z: zzzdnhzzzf +5-6 n: lznnnnglnk +4-12 q: fjpqwvlbgzqmqmmgdjp +3-4 d: ddldd +5-7 r: cdrlrnrgmtrrrrnr +15-16 j: ppwjfxzqdtpjwwjjndkm +11-12 g: ggggggggggplg +3-4 n: dnjqzsrtc +7-8 t: ttntttbb +4-15 t: tttjtttttttqttztd +5-8 r: rrrrrrrrr +4-5 q: qqqqq +5-7 n: nsvgnnns +12-13 w: wwwwwwwwwwwwwwww +15-17 n: qxtnnnnrcncnmpnnn +3-13 z: mcmvkthxwzkqzglqhfnw +5-7 d: ddddddrdddddd +16-18 m: mmmmmmmmmmlmmmmmmpkk +9-12 l: lllvlnlwlmll +5-12 d: ddxdxdddjjlsddddmpdd +9-18 p: ppppppppbpppppppprpp +1-5 v: lvwpm +7-8 v: hvzvhrvh +9-14 z: zzmzzzzzzzzzlzgzz +3-4 x: wxwtb +2-4 f: fhfszf +2-7 c: chcccctcdccccc +2-12 h: kjctchvdrmlpxqjnqd +3-5 z: pzkbz +3-10 g: ggggpggggsggggg +6-7 c: cccccgbc +3-4 d: ddkjrd +2-3 r: kgwt +8-10 z: mzzzjnzgzzzzzw +12-13 t: tttnztrvttqtttcrht +9-10 x: xxxxdxxxbxxxx +2-4 d: mgdd +1-4 b: bbzb +14-16 b: bsbbbbbbbbbbbkbbb +3-10 n: xnngwgptznfr +16-17 k: kkkkkkrkkkkkkkkrzk +17-18 g: ggtgggggggggggggpw +12-16 j: jjjjjjjjjjjsjxjjj +12-15 f: ffffffffffffffffff +5-6 m: kmmnlmmnm +5-7 j: jbjjlzj +2-3 l: llll +9-12 l: lqzlxljfclwz +14-15 n: nnnnnnnnndnnnsnnn +3-10 l: rpdldkdkpt +4-6 z: mgzzzthzn +4-13 m: jmxtwbnhgmtqggrm +7-8 n: mnnnnnrwnn +5-10 q: qqqqcqqqqqq +1-2 t: kttttt +5-8 b: bbbbbbbbb +4-14 z: zbbffzzlrzzzztzj +6-10 k: kkkkkbkkkk +9-10 j: djjjjjjjmp +4-6 q: qqqwqq +16-17 t: tmtbtcktgtknttkhttq +13-15 x: xxxxcfqxxxxxxxxxx +2-3 f: fzfff +1-3 w: vtlk +9-11 l: lllldzllrbb +9-13 b: zvbbsbbtbbxzp +9-10 v: vvbwvvmvvvvvzznvbv +11-12 w: zwgwhrwpwzlq +1-2 k: cjkk +6-10 b: bbbbbbbbbkrbbbbb +1-3 z: kzvxz +2-3 h: khhh +3-4 h: hhhfdhhh +8-11 l: glllglcxgbwxdfdlp +2-10 j: jsjjjjjjjcjts +2-8 b: bbbbjmbbbbbbbbbbbgbb +1-3 j: cjbtvwm +5-6 f: ffffks +13-14 r: rrrrrrrrrrrrrrr +11-14 v: wpddkmvbgwgttk +4-5 l: pllll +9-10 x: wxxxksxxqxxxwvcqxqw +5-10 h: chgkkkcxgmmqclmxvjs +1-2 x: xsqn +5-10 d: ddxdddkddndddd +2-4 g: jsdggjzvs +2-3 x: xvkx +3-5 b: blbbsb +5-6 r: rrrtrm +12-13 z: rzzjzztpzzszzznb +12-18 h: hmdlhtwrjrlkgzgbkn +6-20 q: fqhwcqqmqqqtqqsqqqkq +1-5 s: shfth +3-12 t: jttjvtdlptrr +4-9 p: ntppvcsxpspr +2-5 j: bjbljfj +4-9 m: mmmwmhmsrmmgnn +4-5 s: vssdg +6-11 p: zpvpppxpvbpjnp +4-5 x: xxxvxx +5-8 x: nxxxxxxlx +3-6 l: lkxnlwwclf +7-8 s: sssssntc +19-20 k: kmkkkkkkjkkzbkjkkkkk +3-4 d: dpjp +3-9 s: lvwsssqss +1-2 c: ccssqkdmxwcmv +7-13 q: qfjqrcqqdqqqn +5-13 x: cqddxmvjwxfnx +1-5 l: lptcl +4-5 h: hvhpt +5-10 g: cggvwnhggggg +2-4 v: nqxvrzmwjbmqnvrb +1-4 t: qtwqrtbssqgtt +9-10 s: ssssssssqf +4-9 v: xwvwvzfwnkvnv +6-7 q: qbpwcqq +2-10 n: nnnnnnnnnbnznnnnnn +5-9 v: vvvvmvvvvv +9-10 l: llllllllll +11-15 m: mmjmxmmmpmxmmmrmmm +1-5 r: hrrrrbr +10-13 g: pkgrbchtpxzrfw +10-11 v: vvvvkvvvvvvf +1-7 p: pprpqpp +1-5 d: dxtqddw +2-4 q: qpqjqqqlqqqqqh +16-17 h: hhhfkhhhhpzhhhhhh +3-6 l: xxclpflwllzh +5-7 z: ztzzzzb +15-16 c: ccccccccccccccqtc +10-11 k: kkkvknkkkkkkk +3-9 n: mnnxxvbhj +6-12 t: tmxlxtxgpnwtkxmk +3-9 k: jkkslslkvb +9-17 n: nnnnnsmjxjgnnhkmn +1-2 c: ccpwch +6-10 p: lfbwlkmzlnxdpsjpsg +9-14 c: cckctccccccccv +12-13 n: nnnnnnnnnnnnnmjn +8-10 n: nnbnnnnjnbnnnnnnnnkn +14-17 h: fkgnhvwvhxrhzhnsh +9-11 w: wwwwwwwwwxwwwwwwww +5-9 q: qqqqqqqqqq +12-13 f: fdfhffmfffffq +4-10 q: wwkqqbttbr +9-10 r: ndrmprfjqf +6-13 h: hhhhhhhhhhhhrh +14-17 t: tkmgwtztkfjtgtttt +2-6 t: vqtcptqrbrs +2-3 r: rrtrrrrrr +3-8 j: nhjtkjhjwlf +5-17 b: vbtctpbhtjtkhtwcw +5-8 z: zsbkkcgqwqqvzr +4-8 c: cpccjpwccccnc +6-13 k: rhkghtnkkbqdz +8-11 p: pcppmwppnvp +12-17 k: jjbsfkkqbbqkkknkk +4-6 h: tddhcllhhhcbwq +3-4 q: sqqqqjqm +4-7 b: tbqwbbqcs +3-10 z: zjzzzzzzzhzz +4-5 m: mhxpzwrcxtgsjxfdq +17-18 q: sqqqqqpbqqqqwqhvsp +3-4 n: njnww +9-10 v: vvdvxvvjvv +2-8 k: fkztgksk +5-17 q: fxvjhclcfkcxwhqqk +3-5 p: rbkxlkfzxvpgcf +2-4 f: wlmv +9-10 b: bzxwbbrwhfbbbb +4-10 d: dddbdddddddd +7-8 b: hzrsbxjbhql +5-9 r: rsjrrbrrlrhmrbcvnbr +6-7 b: bbbbbbbf +14-20 m: ddfhmsxmcbwmmfvmmmmf +2-9 m: mmmvmmmmxmmmmmmmm +9-11 q: wqnttwfdqqjhz +18-19 g: ggggggggggggggggggg +13-15 f: fffffffffffdxtffr +2-7 b: crskznfmbjmch +2-4 c: lcccz +2-6 n: thxnnjnnnnnnn +3-6 h: hwhgdhhhh +15-17 d: dddtddddddkdddddvs +4-7 f: zzptbfkrvzcrxflnp +1-2 m: mmhm +2-3 w: pmww +1-3 f: wfkf +6-8 m: rcpxtmmm +6-9 c: cccccccccc +1-3 j: bjjj +4-6 d: dddhddddd +1-6 l: nllllkll +1-2 x: xjnhzxxxpx +3-13 r: rrkrrrrrrrrrjr +18-19 h: hhhhhhhhhhhhhhhhhhhh +7-9 d: dlvrddbvhdddd +6-11 r: rmvqqrxsjxgvkrrskfp +9-10 k: kkkdkkkkkkk +9-10 v: pcjpkrgqvp +1-3 z: rcqfgzwxgrvml +2-9 j: gjbjvgtqjkxbsrvb +5-7 q: qqqvqqrvqqntkbpj +2-3 h: cgnhphpf +7-10 f: ffffffdcfsfffff +4-7 r: brgkrrrrrrrrrrmrrx +4-7 p: pppwppbfpp +7-9 v: vrlvbtlmv +12-13 x: cxxxxjxxxsvxx +3-5 z: lzzxd +4-6 q: qqqqqqxqf +11-12 h: hhmhhhhhhzhh +15-19 k: kkkkkkzkzkkkkkkkkkmk +8-10 p: pmpppnmppf +5-7 m: mtmmmzlmmmm +6-9 d: gsdhmqqldd +4-11 c: pcrrwnbtckcx +6-12 g: qhjmzgwbhgmgjg +4-9 w: ntwwcgtwt +1-3 k: knkdkdwpg +5-7 l: qslglll +11-15 p: njpkdhkfdgmjdtp +2-6 p: kcvlss +4-13 f: psffmdwqkqlffw +1-17 g: qgggggggglggggggf +9-10 f: fffhfffftp +18-19 r: fwmkgpdvhsmjrzqqtjq +9-10 b: bbbmbbbbvmbbbdb +8-11 n: mndnrlnnnnn +14-16 h: hhhhhhhhhhhhhthh +2-3 l: lztsl +2-4 d: djtp +4-6 f: mpmfzt +2-4 h: tnhh +3-4 d: dcdm +4-10 b: kzblbhccnbkb +2-6 d: ftbdjzns +10-13 l: mllllllllglllllll +11-15 n: nnnntnnnnnjrnnnn +11-13 b: tlsblhbjfbpbrb +2-6 x: fwwxtxw +2-3 t: ttgttttttttttttttttt +6-10 f: gffffffflf +3-4 z: zzzz +5-15 d: rnmfddgdvddvxkdp +6-9 b: bbbbbbbbbb +1-4 k: kkskk +1-3 b: bbbbbbbbbbbbbbbbbb +1-5 b: wbbbpbqbsb +1-4 g: xgfg +1-13 d: ddddddddddhdddd +6-7 p: ppppppw +13-15 b: bbbbtbbbbbpblbb +3-13 h: hkhnkkfkrwrbz +5-6 r: rrrrvn +2-6 w: wwwwzwwvwwzjnrwwwwww +1-4 h: hhhh +4-10 d: dsndddptsdqqgzjlgrwd +4-5 l: glmvll +3-4 c: chwcc +2-7 m: mpmmmmm +1-2 x: xxqxwm +7-8 m: mmmmmmmmm +5-8 h: hbhhwhkhqmkhh +3-4 g: gwggk +4-5 p: pmppp +10-15 p: jcppppphvpvsqlpcdb +2-8 w: wwvkzvmkwrxh +18-19 h: jptsvhzvbnhbghmhghgn +4-8 s: dhrscshhxczcfqdsm +8-10 q: qqqqqqqlql +13-17 c: lbmrzdcjcnwkclgcc +12-13 w: wwtwwwwmrcrkwwwwwww +5-16 j: jvqzfwsnqfdxfzdjj +1-3 h: ddzmhh +4-13 t: tttttttpctctrtztzqn +3-4 z: zzzz +1-18 w: txwwwwkwwwwwwwpwwwww +5-14 l: cvrnvmrzlmkxgllr +9-10 j: jjjjjjjjqv +13-17 g: wgglspgdgxgpspbgwn +13-15 s: sssssssssssssss +8-9 v: mlxvtvjnt +3-7 s: dgdjqnslcvsvdwsdfkvf +2-3 q: mgqd +2-3 x: xxstwczx +2-6 p: nqqjzskbxzg +4-5 g: qcxggbrnjzgdtq +9-16 p: ppppppppcnbpvppphppr +7-11 j: jjjjjjsjjjk +3-6 n: cnnnnk +3-6 l: glcllrllll +2-3 s: scmxssssssssd +8-16 c: cccfcccccccclbhcccc +1-9 f: qfktgmfsgffqmsfsqp +2-6 l: lhltlzlllqlwllzl +5-10 b: flphbpspbbsbjnjf +4-5 q: qbqcqq +2-3 f: fgffstff +3-10 w: wwwwwwwwwwwww +11-12 d: ddddsdddddwkd +6-9 h: hhhhfdqhhhq +13-14 z: zzzzdxszzzzzzgzzzz +3-4 l: lljjcnrlwsg +7-9 c: jccsccccccc +1-13 k: gkkkkkkkkkkksk +6-13 w: wwwwxwwwwhwfrwwww +5-6 z: zzzhjczzzzz +4-5 t: ttttt +5-9 j: jjjfjjjkkjjz +5-11 l: lfzlxtbnlhrdl +16-17 l: llklllllllllllllsl +2-5 b: bbbbbbbd +8-10 l: llllrllxld +4-14 t: vxgtxxcvrlspxw +2-4 b: jkhv +10-11 f: zfffffffwkx +3-4 w: wvvr +6-14 h: rlcvzhgdhsrqchxvktrz +12-16 r: kglbvbwtpfprrshrwc +5-10 x: pktbxxxcxx +4-6 d: dddmdsd +4-7 x: xxxrjxcxxx +1-7 m: tmnlwczfmqmmhfmc +1-5 x: xxxhqkx +5-15 t: trlltgtdqbttwst +2-4 g: gggg +3-6 n: qnnmnnnqwnjn +5-14 g: gdwwwmgjrztgqcgmg +2-4 s: psks +6-7 h: qhbhhrhhh +8-12 p: gdhhpndpkxsl +5-6 p: pnptpp +2-8 n: gnnznvnn +14-19 z: zzkzzzzzzzzzzzzzzzzz +5-10 h: wrzdwvvwftdgnthkfn +2-4 t: lbnt +8-12 b: bbbbbbnbbrbbbb +2-3 x: xldp +4-10 s: srsqqbrjndfwtnvwjww +9-11 s: sssssssssbs +5-9 q: qqqqvqqqvq +2-4 b: jbrbtbtqfbqltb +8-10 w: wwwwwwwwwww +2-3 m: mmsm +7-9 d: dddddkdddddddd +5-6 c: cdxcccclc +2-5 m: bhxmrxf +7-14 w: wwwwdwrwwwwwqt +16-17 d: dddddddddddddddqpd +13-14 f: fffffffffffffd +8-10 b: bnfqbqbxbxbb +1-4 c: lcmb +1-5 m: lmmnbkm +10-18 v: vvvvvvvvvvvvvvvvvvvv +2-3 f: wffrjzmbf +5-11 t: tltkttgtqcttlt +1-3 f: ffxffsscddh +5-6 q: qdtmqqh +2-6 d: jtddnpdmdk +12-13 z: ztfpczcrzzqzzt +11-17 x: xfxxxxhxxxkxxxxxt +7-8 l: fhpcltllq +1-3 k: bkdkk +2-3 k: vkks +6-8 c: pzvhwdlkpfc +10-11 z: zzfzfzzzzzzzz +3-4 p: ppllpvk +12-13 b: bbbbbbbbbbblbb +9-12 x: nlxxcxtxhjhx +2-3 q: zqqqg +5-13 m: mmmmkmmmmmmmm +3-5 r: rsrtt +1-8 d: dkvnxddd +15-17 q: qqghqqqlsqdxqqqqq +5-6 l: bllzxlll +15-16 l: lllllllllllllwqll +2-7 b: brmbptt +2-19 m: wbjmmzmdmccnmjmmmxxm +2-11 m: gmmmvcfmxhn +13-15 v: vvbvxvvdldvnvtv +15-16 t: tkttvttttttttsbf +12-16 k: jkkkkkkkqkkkkfkkk +12-15 d: hdpgdjbktdbsdtpjq +2-10 v: vbvhvvvvvvwrsvvvv +2-6 v: vzvvvvvvvvv +8-11 q: qqqqkqqnqqv +3-5 h: dcrhp +6-7 b: bbpbbbrb +2-17 q: qqqqqqqqqqqqqqqqqq +11-12 h: hhhvhgzhhhxh +12-14 p: pppppppppppppnp +3-4 r: rlrrb +4-9 s: zsskkscxs +1-9 k: kkwkkkkgk +7-10 q: dqnqqqpkqqqqsgbl +11-13 p: ppppphqpppppp +4-5 z: zzzwz +3-7 j: mxjcjjjjbdfsjqhkff +10-14 b: nqbkbplzwqhzhdhfbj +5-6 t: ttnjqtqttt +8-10 g: bkkggbzgctgk +6-8 c: cccccsbf +1-2 w: twwb +3-8 n: snnqvqsfzhm +5-6 z: mvzzzqzzvz +14-18 b: bbbbsbbbbbbbbpbbbw +11-12 f: fffffffffffv +15-20 n: hnnnccnkftnzmszkllsg +9-10 h: gcjhhhhsfmhhc +11-18 t: ttttttttttrttttttpr +6-16 x: xxxxxxxxxxxxxxxxx +7-11 m: lcqggxfsbtphbqc +7-20 t: khkhptldltdrtfcttwcp +1-4 m: dmnxmmm +15-16 n: qbxxtldfstdstbgtrx +2-4 p: hhps +8-18 g: gggggggjggggggggggg +11-14 c: qccccccccclccnc +5-6 s: fsnscs +9-13 w: wkwkwwwwmvjrwdwwwvw +16-17 r: rrrrrrrrrrrrrrrrz +15-17 q: qqqdqqqqqqqrqqqqjqq +6-11 d: dddvdmddndbddtt +5-18 q: dvxkqjbqkkqqmtwjtmq +4-6 k: tkgkkk +2-5 m: mgmmm +3-4 k: kkkkkk +1-4 b: qbbhjjgvlbsrrtbbgx +1-6 n: lnnnft +12-15 d: hdfltndlzbcdzfd +3-8 l: sdlzgldl +11-12 w: wwwpgrwzwwpwwrgdwzw +8-9 f: dplhfcvffffrqf +4-6 w: ztvztwwgwq +3-8 c: zdpcccvzntfc +2-4 w: cgfcrslfwldbzsdxd +7-12 h: hhhhhhxhhhhhhhh +3-5 n: nnnbnnnnnnnnnnnnnnn +14-15 j: jjjdjjjjjcjjjhtjjjj +3-4 j: jszj +2-5 v: vvvvv +1-3 k: tkpk +6-7 l: lllllll +3-4 m: sxcb +3-8 s: wssssssctsk +13-15 t: tltrthphnvrfhtt +2-14 k: krkkkkkkkkkkkpkknkkk +4-7 x: xdzxxlx +11-16 j: jrrtjtjstrjtfjjjj +4-7 r: drrdbnjhb +4-10 q: thqqhgqqfrr +11-12 r: rrpwrrzrsrrr +10-17 g: gmwpvcbxtgjlcgznlrjp +13-17 b: knbpcbzxvnvnnxwhwnzj +2-4 c: ccctcc +7-10 t: kstttdlttn +6-7 b: bbbfbbb +13-14 c: txhkmvxwqjdjph +9-10 n: pknnpbstnnwztsjkfc +4-5 k: kqtqk +13-15 p: kndptjczrnqtphl +1-3 x: pxxxx +11-12 r: lrcgqtrmjjrrxhg +1-4 f: ffdf +7-18 d: cdddddsddddddddddd +4-10 r: rrrrrwrrrrrf +11-12 p: dpvmgjrmfspp +1-2 q: snqqqgq +11-12 x: fxxxhxxxlxbxxqx +3-4 p: kscf +13-16 n: nnnnnnnnnnnnnnnnn +3-4 h: phpqz +1-2 c: ccccc +7-15 f: fffbffhfkfjfftfgf +2-3 q: wqwqqspqq +12-14 j: jqjjjgsjjjjgjj +2-13 b: bbbjbblvgbbbbbbbdb +4-7 t: thxhnps +6-9 n: nvqjgjmxlb +2-5 k: kkmknkkk +9-13 z: szqlkssjlzzzbtcv +9-10 w: hwwwwwwwww +15-16 s: sssssssssssssshk +1-6 q: qqtwqqqw +1-7 s: sssssssss +1-5 n: nnnnkzn +9-16 x: rdxxzkvhnxwxlxnl +16-18 g: gggsgggggggggggbgrgg +10-15 s: sssszsssswcsssg +7-11 n: ndlwfrtcnntdjbtgz +1-3 c: cccdzb +7-9 n: bczssstrkctjxttmhgcg +2-3 d: dthdd +6-10 l: llllllllll +4-5 t: tptttgwtttd +5-6 l: llllzml +4-5 g: ggggggxglgdggggw +2-9 r: rrxrrrrrmrp +19-20 g: gpgbgkqggglqghgghtpl +5-6 k: skfmkk +5-13 f: pwwkfglvfntqntptggfb +7-8 w: wwwwwwwww +4-6 w: wwwwbwdsh +1-2 l: lllp +6-7 q: qqqqqwx +10-11 m: btmwwldfzhw +12-13 j: jfjjjjjjjjjjjjj +2-6 n: cmfsjnrhlsf +4-5 q: qqqlbq +13-15 z: zzzzzzzzzzzzlzzz +4-6 m: mpsqmhmzmn +5-9 s: dswmrsxvkwrfnc +8-10 v: vvvvvvvvvvvv +14-16 h: hhhhhhhhhbhhhhhhh +9-10 p: bphppnwzmpp +6-7 x: xxxxgdzx +3-4 j: smshf +3-4 h: whnj +6-8 z: zzzzzlztzz +5-6 v: vvrcgvlbvczfbqvv +1-3 v: vvdvv +3-5 t: smtgts +6-7 b: fbbkblbxpbnrw +12-15 t: ttttttttttttwtvtttt +3-4 s: psss +13-17 x: xxxxxrzxxxxxxjgbxxx +9-10 r: rdmrrhrrrrprrsrrh +4-5 j: tjpgtjn +2-11 n: ncdwnnwnntnvpnnznjnn +3-5 d: ddmxtddjddddddd +1-5 z: zzzskzc +1-8 d: dwnlmtjdfsdmddrsdwd +4-11 k: hllktmpbndlgphxb +3-6 n: tnncnnnqdbgmgnn +12-13 x: xxcxxxxxxxxctxx +5-10 s: sssslsxmssss +1-6 x: xxxxxxxv +6-9 n: nxjfsbqppwhnn +5-7 j: jjjjjjjjjfjmtln +6-11 d: dddddfddddddjd +3-5 s: fshssvps +1-5 k: tkkfhkk +3-7 h: pwjbmswg +1-5 k: kkkkkkvtkt +8-10 j: jjjjjwjjqj +16-17 g: pggznvrnxlgdrlvgg +2-4 z: zzjf +2-5 h: dmltcxthx +1-3 m: mmmmm +14-15 g: ggggggggggglglgm +4-6 m: wvmmdm +11-14 c: ccccccccccccdcz +9-10 w: qswzbfwbww +15-20 s: qblspjsxzpsqlgktwssc +11-12 q: qzqcqkqqfqqgqqqbpww +3-5 d: ddfdwv +2-10 t: vwjlkzjwztrmrmbwftnj +8-10 s: sssssssssx +13-14 r: rrrrnfrhmrrrrr +6-10 l: mgpjzjshjdc +1-6 l: llllhlldll +11-12 q: qqqqqqqqqqqq +3-4 w: wzzsk +7-9 x: xxxxwbchx +3-4 k: kkbx +8-9 h: bhvhhqhhn +10-11 k: bkbkztrzrfk +3-8 p: gdptpvpp +11-12 s: ssmrsssstsbj +3-4 w: lgxvgbkwdggwfhwn +8-12 z: xmdzgsrzmnck +2-3 g: gjfvtgrrfg +9-11 n: nnnnnnnnnnnn +10-17 d: dddddddddqddddddgd +12-13 b: bbbbbbbbbbvxb +10-14 q: qqqgsxdqdpqrqqcb +2-6 n: fhzqdzp +3-5 n: fknfn +6-7 g: gvtqlgz +16-19 z: jzlhzxtvgzzvfvhmrsb +9-10 z: zkztlzjzmrr +14-15 p: pppppppppppppfpp +8-14 z: zzzzzzzszzzzzxz +11-17 f: vfbzfcffffffffffpf +16-20 p: hqgnrpzcxvqhgnqrbfcp +14-15 x: xdptxmxxnchxxklcxzrx +10-14 p: wxtxgvncxpgppppbflkp +6-7 k: fllvzqjkpkkjnlnkbjk +2-4 p: hxjzvkqflmktcvpk +4-8 m: zpbmcqhmxnbmpmdhkdxz +5-7 d: bnbdcccnvcdrpg +15-19 g: gjgggggggggggfggggj +7-11 v: kvvzjvqfjvlvksrphv +2-15 j: jxzwjwtjjxlxjjjjjjjj +9-13 n: nnnnnnnnznnnznnpbn +8-9 j: ljjjnjgjjvjdjfjl +6-7 q: qqqvqkqqn +5-6 w: twldlwww +10-13 k: kkkkfkkkkglkv +11-19 c: vzgccvbksxwcvhxglkw +3-5 h: hhjhwp +4-5 x: zxkcx +2-3 m: rmjrvlsm +2-4 v: vvvvvv +1-5 g: ggggbg +4-5 q: qqqlkqqq +4-5 j: tjznjjm +1-12 g: ggggggggggggg +1-10 s: dssssssssssss +6-7 r: rfrrrrmrr +3-6 s: hljhqs +2-11 j: jfjjljsjdcr +7-8 m: smzmmmmm +6-8 h: mhhmsxhqthcfb +2-9 w: jwlbwngdw +4-7 v: vvvlvvzvv +5-9 z: bgzbzpfvjqvkbqstg +6-10 v: pvslvlvlvv +6-13 x: tbmsxxxjdwnfr +11-13 r: rrzrpwprrrrrrd +14-15 k: pdbnmhrfppnxfkkvfxvk +10-12 t: tttttttttttgtttt +6-8 g: ltbggnrgr +9-12 d: dpdddddddddd +10-11 q: sqrqqqqqqqq +4-14 j: jjjjjjjjjjjjjjjjjj +15-16 c: cccccccccccccctc +4-9 z: gzzzzzhzzbzzzdv +2-13 x: glxmkxxxxxxxxxx +3-12 n: ccnvfnxxkpdxnpdppcn +4-7 w: wnrwlzwrlbrrwvs +13-16 t: tttttmttttttwtttt +5-6 l: cllhqlzlblv +13-15 s: mtfbvkkjznwsssl +2-13 k: lksdvschkvfchrwkf +3-6 j: fdjnjbf +7-8 l: llrzbldc +2-4 l: ljnrv +1-5 h: qhhpt +2-4 k: rhwkqk +17-20 d: cqdxmvnqtdddddznnddl +1-4 z: zzzzz +3-10 v: vvgvvvvvvtvvvvh +4-9 q: fwqnjqqjkjq +9-17 r: rrrrrrrrrjrrrcwrtf +4-5 k: kkkzkkkk +9-14 m: mmhmmfhhmmmsmm +6-9 h: hshhhhhhh +3-4 n: ngnnn +8-17 b: zbvbpgqbsrzwmxzdbfw +4-8 k: wktkzcbg +8-9 w: wwddwcrwwpkbswswwkx +5-13 d: dndddpfdzfdvpzdhddd +11-16 p: fplppmnxvzpqsngpp +1-12 h: hhbhhhhhqghhhhhhxhh +11-12 z: zzzzzzzzzzhz +3-5 h: bhdhkl +3-4 h: hcvl +3-4 d: zbddddcrpgdxddt +17-18 j: qzwfjjkfpkggsjqvjwx +9-13 j: wfjtjjjgjjmtjjwjlh +2-5 f: xdpsfkpzvfmhf +4-5 c: cccccc +13-14 h: hhhjhhhhhhhmshhh +9-14 t: tttttttttttttntth +5-6 s: ssssdks +1-8 t: tgbtdkht +4-8 h: mhbhpvhh +17-18 x: xxxnxqjgxclqkxxxxx +2-5 g: jmvmgnghr +13-16 n: nnnnnnhqnnnnnvnnn +3-7 v: ngqvtvfbdlr +8-14 c: cnmrshvhlqnchtcbrgh +7-9 n: tfqswnnrg +11-16 x: kgxgvcftmxgxbnxg +2-4 n: zqnd +1-3 w: wwwncwwwkwfww +8-9 z: zzzbzzzzzzzzzzzzz +17-20 k: kkkkkkkkkkkkkkkkkkkk +3-5 q: hjqrqsq +12-13 h: hhhhhhhhfhhhh +3-4 x: gxxjphxx +4-6 g: sbwggg diff --git a/2020/day02/test b/2020/day02/test new file mode 100644 index 0000000..fe19c03 --- /dev/null +++ b/2020/day02/test @@ -0,0 +1,3 @@ +1-3 a: abcde +1-3 b: cdefg +2-9 c: ccccccccc diff --git a/2020/day03/day03.c b/2020/day03/day03.c new file mode 100644 index 0000000..82b8d77 --- /dev/null +++ b/2020/day03/day03.c @@ -0,0 +1,79 @@ +#include +#include + +int count_lines(FILE *fp) { + int count = 0; + + for (char c = getc(fp); c != EOF; c = getc(fp)) { + if (c == '\n') { + count++; + } + } + return count; +} + +int line_length(FILE *fp) { + int count = 0; + + for (char c = getc(fp); c != '\n'; c = getc(fp)) { + count++; + } + + return count; +} + +int count_trees(int n, int m, int grid[n][m], int down_offset, int right_offset) { + int count = 0; + + for (int i = 0; i < n / down_offset; ++i) { + count += grid[i * down_offset][i * right_offset % m]; + } + + return count; +} + +int main(int argc, char *argv[]) +{ + if (argc < 2) { + printf("Usage: %s \n", argv[0]); + return 0; + } + + FILE *fp = fopen(argv[1], "r"); + if (fp == NULL) { + printf("Could not open file %s\n", argv[1]); + return 1; + } + + int n = count_lines(fp); + rewind(fp); + int m = line_length(fp); + rewind(fp); + + printf("Grid size: %d×%d\n", n, m); + + int grid[n][m]; + char c; + for (int i = 0; i < n; ++i) { + for (int j = 0; j < m; ++j) { + c = getc(fp); + if (c == '\n' || c == EOF) { + c = getc(fp); + } + grid[i][j] = (c == '#'); + } + } + fclose(fp); + + printf("%d\n", count_trees(n, m, grid, 1, 3)); + + int total = 1; + int down_offsets[] = {1, 1, 1, 1, 2}; + int right_offsets[] = {1, 3, 5, 7, 1}; + for (int i = 0; i < 5; ++i) { + total *= count_trees(n, m, grid, down_offsets[i], right_offsets[i]); + } + printf("%d\n", total); + + return 0; +} diff --git a/2020/day03/day03.dyalog b/2020/day03/day03.dyalog new file mode 100644 index 0000000..39905a4 --- /dev/null +++ b/2020/day03/day03.dyalog @@ -0,0 +1,5 @@ + ⎕io←0 + p←'#'=↑⊃⎕NGET'input'1 + f←{+/p[↓⍉↑(⍴p)|⍵×2⍴⊂⍳⌈(⊃⍴p)÷⊃⍵]} + f 1 3 ⍝ Part 1 + ×/f¨(1 1)(1 3)(1 5)(1 7)(2 1) ⍝ Part 2 \ No newline at end of file diff --git a/2020/day03/day03.rkt b/2020/day03/day03.rkt new file mode 100644 index 0000000..a875fbd --- /dev/null +++ b/2020/day03/day03.rkt @@ -0,0 +1,52 @@ +#lang racket + +(module+ test + (require rackunit)) + +(module+ main + (displayln "Day 3")) + +(define (parse-line str) + (list->vector + (map (λ (c) (if (equal? c #\#) 1 0)) (string->list str)))) + +(define (read-input filename) + (with-input-from-file filename + (lambda () + (for/vector ([line (in-lines)]) + (parse-line line))))) + +(define (traj grid down right) + (define height (vector-length grid)) + (define width (vector-length (vector-ref grid 0))) + (for/list ([line (in-vector grid 0 #f down)] + [j (in-range 0 (* width height right) right)]) + (vector-ref line (remainder j width)))) + +(define (part1 filename) + (define grid (read-input filename)) + (apply + (traj grid 1 3))) + +(module+ test + (check-equal? (part1 "test") 7)) + +(module+ main + (displayln (part1 "input"))) + +(define slopes + '((1 1) + (1 3) + (1 5) + (1 7) + (2 1))) + +(define (part2 filename) + (define grid (read-input filename)) + (for/product ([slope slopes]) + (apply + (traj grid (car slope) (cadr slope))))) + +(module+ test + (check-equal? (part2 "test") 336)) + +(module+ main + (displayln (part2 "input"))) diff --git a/2020/day03/input b/2020/day03/input new file mode 100644 index 0000000..0fe60b0 --- /dev/null +++ b/2020/day03/input @@ -0,0 +1,323 @@ +...........#..............##... +...#....................#...... +.....####...........#.#..#.#... +....##.#....................... +.......#.##......#.###......... +.#.....#.......##.......#.....# +...........##....##.#....#..... +......#.........#....#......... +..###....#.........#....#.#.... +....#....#.#..#..#.........#.#. +..........................#...# +.##...........#...#.#.......#.. +#....##...#.#....#............. +....#..##......##..#.#....#.... +#..........#.............#..#.# +...#.####.....#..#.#.#..#...#.. +..........#......#........#..#. +............#.....#..#..#....#. +.................#...#......... +..#...#...................#.... +..............##...#........... +..........................#..#. +#...#...#............#...#..... +.................#..##.......#. +............#....#............. +.#......#.#...#....#...#....... +.....#.....##..##.....#.......# +.#..#..##...............#..#... +#...#...##............#........ +.......#....#.......#.......... +............................... +#................#...#......... +...#...#..#..#.............##.# +......#........#..............# +...#.....##.#...#...#.......... +.........#..#........##.#...##. +#.........##..#.......#........ +........##.#.#................. +.#....#............###....#.... +...#.##....#.....##..#..#....#. +....#..#........##..#...#..##.. +..........#............#....... +.........#........##....#..##.. +#....#.........#.#.......#..#.. +...#....#......##.#............ +........#..#...............#... +..............#.....#........#. +......#..#.#........#..#..#.##. +..#........###....#.#.......... +...#..#...#.#....##..#........# +........#..#..............#.... +#.####.................#....##. +.#................#............ +....#....#....#................ +#......#........##....#...#.... +......#..##..#..###...#.#.#.... +.#..........##................. +...#...#....#...#.....#.....#.. +............#......##.........# +..............##............... +##....#....#...#...#....#..###. +...................#.......##.. +#.....##........#....#......... +...#.......#...........#....... +...............##.............. +##.......#......#.....#........ +#....#..#..##..#.......#..#..#. +.....#.............#.......#... +......#..#........#.......#.#.. +..#...#...........#.##......... +..#................####.#..#... +......##....#.........#........ +..#..#.......#...##....#......# +#.#..........#..............#.# +.#.#..............#.##...#..... +................#.....#.#...... +##.........#.........#.....#... +....#.#.....................#.. +..#..#..#........#.......#..... +.....#..#.#....#....#.....#.... +..####....#.#.........#........ +#..##...##..#.#............#..# +.#........#..##.#.....#......## +.##.##.....##....#.#........... +....#..#.#..##............#.#.. +........#.#...#....#.........#. +.....#.#.#.....#....#.....##... +#...#..#....##..#.............. +..#...#....#...##..#.......#... +.#....##....................... +.........#............##.#..#.. +....#................#...#.#... +...................#..#...#.... +#..#...................#....... +..##..............#..........## +...#.##......#.............#... +.........#.#.........#......... +...###......#.................# +..........#....##.............. +.##..#....#.........#.#........ +.........#.......#.......#.#... +#........#............#......#. +....................#.......... +.......#...##..........#...#... +....#.#.......#.#...##..#.#.... +...#..........#..............#. +........##..............#...... +......#...##......#....##...... +....#.....#.#.##..............# +...#...........#.#............. +...........#......#.#.......... +...#.#......#......#...#...#... +..#.......................#.... +...#...#..#..................#. +##.....#.....#..#..#.....#...#. +.#..#.......##.#.#............. +......##.......##............#. +.......#..#..#.......#....#.#.. +......#.....##..##...#........# +.....#........#.##..........#.. +#....##............#........#.. +.....#..#...#............#...#. +##.#....#........#............. +.##...............##......#.#.. +###..#..#.......#.#..........#. +.....#...........#...##........ +..#.#.#.........#.....#....#... +.....#....##.......#..#.#...... +......#.....#...#..#...##..#... +.....#....#................#... +......#....#.#...##......##.#.# +.....###.............#......... +.................#......#####.. +.#.......#..........#.#....##.. +..#..#.......#.....#..#......## +..........#.#.##.......##....#. +##...#...##.##......#..###..... +..#..#..#......#....#.......... +..#...#....#......#....#....#.# +.#...#........#.....#......#..# +#.........#......#.##.##....... +#.##..#.............#.....#.... +....#.......#..#..##...##...... +...#.............#.#......#.... +#.....#..........##...##.....#. +...............#........#....#. +#.....#...#..#.............##.. +.#....##.#.......#.#..........# +....#....#.#.....#....#......#. +......#......#................. +.#.#..#.#.#...#...#..#.##.#..## +.............#.....#........... +............#...#..#..#.....#.. +.#..........#.......#....#..... +......#..###.#...#............. +......#..........#............. +....#.................#..#.#.#. +...##.##.#....##.##............ +####......#........###......#.. +..#.......#.#..#.##............ +.....#.....#.#.......#.....#... +.....#..........#.#............ +#.....#.............#......##.. +......##..........##....#...... +.#..............#..........#... +......#..#...#........#..#....# +.#......#.......#..#........... +..#..#....#.#.......#....##..#. +........#.#................#... +#.......#.##.#......#...#.....# +..#...#.#.....##............... +..........#.....##............. +.......#............#........#. +...#............#......#......# +.#..#.......#...#...#..#..#.... +#....#.#...#......#...#......#. +.#.......#..#.#...........#.... +...##.#...#.......#..........#. +.....#..............#..#...#... +...........................#... +.............#.....#........... +....#.#..#..#...#..#........... +.....#.#.#..#.#....#.#.#....... +.......#..............#.....##. +........#..#..#.#..#...#.#..... +.....#.#...#.#.#.....#..#...#.. +.....#....#.......#......#.#... +.#.#...........#........#...... +.##..##......#......#......#.#. +.....#.###.#.......##.#..#..... +#.......##..#.........#....#... +.#.............#.........#.#.#. +..........#..#..#....#....#.... +#....#...........##..#.....#..# +......#....#...###..#...#...... +.....#....#........#....#..#... +...##..............#.##...#.... +.#............#........##...... +..##........#.#...........#...# +..#.#...##...#..#..........##.. +.................#.......#..... +......#.....#............#..... +.#.....#.........#.#..#.#...... +.............#.#.#..#.......#.# +#......#.....#..##...#.......#. +.......#.#..#...#.........#.... +...#..##...#.........#.#....#.. +........................#..#... +....##..##................#.... +.......#..#.......#........##.. +.....#....#.##....#............ +.#....#............#.....#...#. +..##.....#......#......#.#....# +...#...........#...##....#..... +......#.##.#..##...##.#.#..##.. +.......##....#......#....#.#... +.....####..#............#..##.. +......##..##..##.........#...#. +.#.#...............#.........#. +......#......#...........#..... +.....#.......##.....#..#....... +.....##..#..#....#.#.......#... +...........###.###.##..#.#..#.. +.#...............##.........#.. +......##..........#..#.....##.# +.............#....#....#..##... +.#..............#........#..... +.#..#.........................# +.##..............#..........#.. +..#..#.#.#.#......#............ +....#...#.#.#....#........#..#. +.....#........#....#.....#..... +.#...#.#......#..#........#.##. +.......#.....#................# +.#.#........................#.. +............#..#.......#....... +....##.#........#...#.#.#.#.#.. +.....#.......##................ +...##...#....#.....#.#......... +#...#..............#.......#... +...#.#.#.#..##....##........... +.....##...#....#.....#......... +#......#.....#....#............ +....#..###....#.##.......#...#. +..................##.#......#.. +.....##..............##.#....#. +.........#...#........#..#....# +.##..#.........#....#..##...#.. +#.#.##................#.##..... +..#.#....#.#.......#....#...... +..#.#.##.#.......#............. +..#....#.#..##.#..........#.#.. +#.....#.....#.....#.........#.. +#.......##.....#....##.....#... +..#...#.........##.#..##....... +..#.#.........#.......#........ +#.....#.....##.#.#..#...#..#.## +.........................#.##.. +..#.#..#..#..#........#......#. +..#..............#............. +.....#.......##.##.....#....... +....#...#...............#..#... +....#......#.#........##.#..#.# +....................#..#....... +.....#.......#......#.##....... +#.......##..........#.....#.... +.#.......#....#.#......#....... +......#...#...............#.##. +....##.#.....#.............#.## +#..#................##...#..... +....###......#.#.........#..#.. +...#...#......#...##....#...#.# +..#...#.#.##.#................. +.....##......#..#.#....#....... +##.......#......#.#..#.#....... +.#.#.#.........#...#.#..#...... +#...#.#........#....#.#.....#.. +....#.......##....#......##.... +.....#..........#......#....#.. +#...#....#...#.....#.#......... +...#..##.....##....#.....#.#... +..................#.....##..... +.....#............#............ +...#.....#..#........#.#..##... +.......#.#..................... +......#...#.......#..#...#..#.. +.#..#...#.....##.....#.#.#....# +....##...#.#............#..#..# +...........#............#..#... +.......#.....#................# +..#......#.#.......#.#......... +.....#..#.#.##................. +.....#..#...................... +...#....#...#..#.#..#....#..... +.#............#.....#.......... +#.##..#..#.......#......#.....# +.#.........#....#....#......... +...#.#.#........#.#....#...#... +#........#..#..#..........#..#. +.....#..#.....##......##..##.#. +..............#.......#..#..#.. +....#........#.##.#...#........ +..#.#..#....#........##.....##. +...##.....#...#.......#.#....#. +#.....#..##.##.#...##.......#.. +.....#........#.#.#....#....... +.#................#####..#.#... +..........##..#..###....#...... +.....#.......#..........#..#... +..#....#....................#.. +#.....#..#.....#...##.#.....#.# +...#..##............#.....#.... +##.#..#.......##............... +........##...#.#.....#......#.. +........#...#.................. +#......#................#.#.... +...........#...#..#.........#.. +...#.##..#.##.................. +.....#......###......#..#...... +..#.#.....#...#..#.##........#. +....#..........#.#.....#....... +..#..........#..........#.#.... +..#.##.......#......#.......... diff --git a/2020/day03/test b/2020/day03/test new file mode 100644 index 0000000..7e88cdc --- /dev/null +++ b/2020/day03/test @@ -0,0 +1,11 @@ +..##....... +#...#...#.. +.#....#..#. +..#.#...#.# +.#...##..#. +..#.##..... +.#.#.#....# +.#........# +#.##...#... +#...##....# +.#..#...#.# diff --git a/2020/day04/day04.rkt b/2020/day04/day04.rkt new file mode 100644 index 0000000..5ba800e --- /dev/null +++ b/2020/day04/day04.rkt @@ -0,0 +1,99 @@ +#lang racket + +(module+ test + (require rackunit)) + +(module+ main + (displayln "Day 4")) + +(define (parse-passport str) + (define fields (string-split str #px"\\s+")) + (for/hash ([f fields]) + (apply values (string-split f ":")))) + +(define (read-input filename) + (define passports-str (string-split (file->string filename) "\n\n")) + (map parse-passport passports-str)) + +(define (valid? passport) + (for/and ([key '("byr" "iyr" "eyr" "hgt" "hcl" "ecl" "pid")]) + (hash-has-key? passport key))) + +(define (part1 filename) + (define passports (read-input filename)) + (length (filter valid? passports))) + +(module+ test + (check-equal? (part1 "test") 2)) + +(module+ main + (displayln (part1 "input"))) + +(define (byr-valid? v) + (<= 1920 (string->number v) 2002)) + +(module+ test + (check-pred byr-valid? "2002") + (check-pred (negate byr-valid?) "2003")) + +(define (iyr-valid? v) + (<= 2010 (string->number v) 2020)) + +(define (eyr-valid? v) + (<= 2020 (string->number v) 2030)) + +(define (hgt-valid? v) + (cond + [(string-suffix? v "cm") (<= 150 (string->number (string-trim v "cm")) 193)] + [(string-suffix? v "in") (<= 59 (string->number (string-trim v "in")) 76)] + [else #f])) + +(module+ test + (check-pred hgt-valid? "60in") + (check-pred hgt-valid? "190cm") + (check-pred (negate hgt-valid?) "190in") + (check-pred (negate hgt-valid?) "190")) + +(define (hcl-valid? v) + (regexp-match-exact? #px"#[0-9a-f]{6}" v)) + +(module+ test + (check-pred hcl-valid? "#123abc") + (check-pred (negate hcl-valid?) "#123abz") + (check-pred (negate hcl-valid?) "123abc")) + +(define (ecl-valid? v) + (member v '("amb" "blu" "brn" "gry" "grn" "hzl" "oth"))) + +(module+ test + (check-pred ecl-valid? "brn") + (check-pred (negate ecl-valid?) "wat")) + +(define (pid-valid? v) + (regexp-match-exact? #px"[0-9]{9}" v)) + +(module+ test + (check-pred pid-valid? "000000001") + (check-pred (negate pid-valid?) "0123456789")) + +(define (strict-valid? passport) + (and (for/and ([key '("byr" "iyr" "eyr" "hgt" "hcl" "ecl" "pid")]) + (hash-has-key? passport key)) + (byr-valid? (hash-ref passport "byr")) + (iyr-valid? (hash-ref passport "iyr")) + (eyr-valid? (hash-ref passport "eyr")) + (hgt-valid? (hash-ref passport "hgt")) + (hcl-valid? (hash-ref passport "hcl")) + (ecl-valid? (hash-ref passport "ecl")) + (pid-valid? (hash-ref passport "pid")))) + +(define (part2 filename) + (define passports (read-input filename)) + (length (filter strict-valid? passports))) + +(module+ test + (check-equal? (part2 "valid") 4) + (check-equal? (part2 "invalid") 0)) + +(module+ main + (displayln (part2 "input"))) diff --git a/2020/day04/input b/2020/day04/input new file mode 100644 index 0000000..710a26b --- /dev/null +++ b/2020/day04/input @@ -0,0 +1,1069 @@ +byr:2010 pid:#1bb4d8 eyr:2021 hgt:186cm iyr:2020 ecl:grt + +pid:937877382 eyr:2029 +ecl:amb hgt:187cm iyr:2019 +byr:1933 hcl:#888785 + +ecl:hzl +eyr:2020 +hcl:#18171d +iyr:2019 hgt:183cm +byr:1935 + +hcl:#7d3b0c hgt:183cm cid:135 +byr:1992 eyr:2024 iyr:2013 pid:138000309 +ecl:oth + +ecl:hzl +hgt:176cm pid:346059944 byr:1929 cid:150 eyr:1924 hcl:#fffffd iyr:2016 + +iyr:2011 +cid:99 ecl:amb +eyr:2030 hcl:#18171d +hgt:165cm pid:897123249 byr:1948 + +hcl:#cfa07d pid:827609097 ecl:gry iyr:2017 byr:1963 +eyr:2029 hgt:72in + +hcl:#6b5442 eyr:2028 iyr:2016 ecl:hzl +hgt:152cm +pid:432183209 byr:1984 + +hgt:169cm hcl:#888785 ecl:hzl pid:626107466 byr:1929 iyr:2013 cid:217 +eyr:2026 + +hcl:#bdb95d byr:1935 eyr:2023 ecl:blu iyr:2011 cid:90 hgt:64cm +pid:155167914 + +iyr:2017 +byr:1943 cid:56 +hcl:#888785 hgt:193cm pid:621305634 +ecl:amb +eyr:2024 + +ecl:gry +hcl:#a97842 pid:936999610 cid:169 byr:1991 eyr:2029 hgt:175cm iyr:2017 + +hcl:#866857 ecl:gry +byr:1975 hgt:71in +pid:180628540 eyr:2020 +iyr:2017 + +hcl:#cfa07d hgt:153cm byr:1962 cid:325 +iyr:2018 eyr:2020 +ecl:amb pid:579364506 + +hcl:#6b5442 iyr:2010 ecl:amb byr:2001 +eyr:2020 pid:406219444 +hgt:173cm + +pid:#430c70 +ecl:gry iyr:2018 hcl:#866857 eyr:2021 cid:97 byr:1997 +hgt:75cm + +iyr:2023 pid:#518780 +eyr:2034 +ecl:zzz +hgt:72cm +hcl:z byr:2010 + +pid:1961614335 hcl:#c0946f hgt:157 ecl:grn eyr:2031 byr:1972 iyr:1992 + +cid:142 +eyr:2022 ecl:amb +hgt:68in +hcl:#6b5442 byr:1927 pid:112372155 iyr:2012 + +byr:1972 +hgt:169cm +hcl:#888785 +cid:75 iyr:2015 eyr:2021 ecl:oth +pid:7889059161 + +ecl:brn +iyr:2020 +eyr:2026 hgt:151cm byr:1961 pid:468038868 hcl:#18171d + +ecl:blu +hcl:#b6652a +byr:1959 +hgt:151cm cid:109 pid:708689901 +eyr:2026 iyr:2012 + +ecl:grt byr:2024 iyr:1995 pid:225263933 hcl:z +eyr:2040 hgt:127 cid:162 + +pid:683129831 cid:144 +hcl:#a97842 hgt:155cm eyr:2030 byr:1962 +iyr:2015 +ecl:oth + +byr:2009 hcl:#866857 cid:329 iyr:1955 +eyr:1994 pid:085929595 + +byr:1940 +pid:936748944 hgt:160cm eyr:2024 iyr:2013 cid:205 +ecl:grn hcl:#c0946f + +hgt:193in cid:161 iyr:1984 +pid:#f82e35 +byr:2018 +hcl:b1a551 eyr:2014 ecl:#4d2d5b + +byr:1978 +iyr:2011 hgt:172cm hcl:#efcc98 ecl:brn pid:759624394 eyr:2020 + +eyr:2020 pid:622444743 +hcl:#a97842 +ecl:gry iyr:2014 hgt:157cm byr:1980 + +hgt:181cm eyr:2020 +iyr:2014 +hcl:#602927 ecl:brn byr:1934 + +hgt:188cm +ecl:blu eyr:2029 pid:757878469 hcl:#b6652a iyr:2017 + +byr:1995 ecl:blu hcl:#341e13 eyr:2027 iyr:2020 pid:283341241 +hgt:174cm + +byr:1960 iyr:2012 hcl:dc007d eyr:2011 hgt:166cm +pid:9889788504 +ecl:#a9b3a1 + +ecl:hzl hgt:70in pid:620966688 iyr:1998 hcl:z +eyr:2022 + +hgt:187cm cid:190 pid:818634983 byr:1925 ecl:gry hcl:#ceb3a1 +eyr:2021 iyr:2015 + +hcl:#c0946f iyr:2017 +byr:1953 eyr:2030 hgt:67in pid:085876735 ecl:hzl + +pid:205284134 +hcl:#cfa07d byr:1987 hgt:167cm +eyr:2022 ecl:oth iyr:2020 + +iyr:2018 +hgt:180cm pid:232535961 eyr:2027 byr:1999 +hcl:#18171d ecl:oth + +cid:342 hgt:171cm ecl:blu byr:1920 hcl:#18171d eyr:2023 iyr:2012 +pid:353601791 + +byr:1956 +ecl:brn pid:141896408 iyr:2012 cid:116 eyr:2028 hgt:164cm +hcl:#866857 + +hcl:#fffffd ecl:oth eyr:2030 hgt:67in pid:855777018 byr:1975 +iyr:2012 + +ecl:blu pid:45257034 hcl:#c5447e iyr:1928 cid:212 byr:1974 + +pid:080116868 cid:97 eyr:2021 iyr:2020 ecl:grn byr:1987 hgt:62in hcl:#efcc98 + +eyr:2027 hcl:#efcc98 iyr:2020 ecl:amb cid:111 +pid:143966954 +hgt:165cm + +iyr:2015 byr:1941 pid:798564127 +hgt:183cm ecl:oth eyr:2020 + +byr:1999 +iyr:2017 hcl:#ceb3a1 +pid:640883740 hgt:164cm +cid:105 ecl:hzl +eyr:2022 + +iyr:2014 eyr:2023 +ecl:grn hcl:#ceb3a1 +hgt:188cm byr:1981 pid:185076942 cid:342 + +hgt:150cm +iyr:2013 eyr:2035 cid:184 hcl:#341e13 pid:#e2dd63 byr:2014 ecl:brn + +eyr:2024 iyr:2015 ecl:brn hgt:76in +hcl:#866857 byr:1958 +pid:886486245 + +ecl:amb cid:113 byr:1931 pid:087380735 +iyr:2010 +eyr:2028 +hgt:161cm + +byr:1926 eyr:2024 iyr:2012 pid:036335738 hcl:#c0946f hgt:153cm ecl:brn + +hcl:bf952a +hgt:169in +eyr:1925 pid:166cm iyr:2028 ecl:lzr byr:1938 + +hgt:154cm hcl:#733820 ecl:oth iyr:2016 +byr:1925 +eyr:2020 pid:590365390 + +eyr:2029 hgt:166cm pid:670283165 +hcl:#ceb3a1 iyr:2018 +byr:1955 +ecl:gry + +hgt:181cm +iyr:2016 hcl:#866857 byr:1933 +eyr:2028 ecl:blu + +hgt:184cm +cid:138 hcl:#623a2f +pid:081880232 +byr:1929 ecl:hzl eyr:2030 +iyr:2015 + +pid:825698872 +eyr:2026 hgt:181cm iyr:2015 hcl:#866857 byr:1950 ecl:gry + +eyr:2022 byr:2002 iyr:2013 hcl:#fffffd ecl:hzl pid:687380398 +hgt:173cm + +byr:2016 ecl:zzz pid:0514910377 hcl:ebe8b2 eyr:2025 +iyr:2011 hgt:183cm + +ecl:amb hgt:67in +pid:602547016 byr:1985 +eyr:2021 +iyr:2014 + +iyr:2014 eyr:2020 ecl:grn pid:642261584 +byr:1970 hgt:190cm cid:278 hcl:#7d3b0c + +eyr:2035 cid:226 hcl:64ac73 +byr:2007 +pid:176cm ecl:#927fbf iyr:2006 + +iyr:2019 eyr:2026 ecl:brn hgt:162cm +cid:108 +hcl:#ceb3a1 pid:774441166 byr:1951 + +hgt:166cm eyr:2024 hcl:#b6652a byr:1934 pid:260873380 iyr:2016 + +hcl:z +iyr:2015 ecl:blu +eyr:2040 byr:1927 pid:431855667 +hgt:173cm +cid:209 + +eyr:2034 cid:139 +ecl:#cb7564 +byr:2023 hgt:172in iyr:2027 pid:2877047600 + +ecl:brn +cid:125 hcl:#888785 +iyr:2011 pid:739399822 hgt:184cm byr:1989 + +hcl:#c0946f +pid:891125961 +hgt:175cm +iyr:2010 eyr:2027 ecl:gry +byr:1930 + +hgt:164cm byr:1935 eyr:2023 pid:684366743 +ecl:oth +hcl:#18171d iyr:2013 + +hcl:#341e13 hgt:64in byr:1959 ecl:#c53bbb iyr:2014 eyr:2029 pid:174cm + +eyr:1943 ecl:#e52638 +hcl:06a964 byr:1959 cid:342 iyr:2029 hgt:178in pid:150cm + +byr:1966 hcl:#733820 iyr:2020 +ecl:gry eyr:2021 pid:229789071 + +pid:363947487 +ecl:blu +hcl:#623a2f +byr:1972 +iyr:2017 hgt:184cm +eyr:2023 + +ecl:oth pid:460855562 +iyr:2010 cid:148 hcl:z hgt:74cm byr:2005 + +eyr:2027 iyr:2017 hgt:172cm +byr:1975 +ecl:amb cid:97 hcl:#c0946f pid:591950054 + +eyr:2022 ecl:oth hgt:185cm +hcl:#6b5442 +byr:1978 +iyr:2018 pid:849124937 cid:78 + +iyr:1927 hgt:121 +eyr:2020 ecl:#c73b1a hcl:#cfa07d pid:4505701953 byr:2020 +cid:235 + +hgt:183cm hcl:#341e13 iyr:2019 byr:1932 ecl:#144539 +pid:184cm eyr:1954 + +iyr:2020 cid:332 byr:1930 hcl:#6b5442 hgt:168cm ecl:amb +eyr:2023 pid:332084752 + +ecl:blu +byr:1922 cid:135 iyr:2019 eyr:2028 pid:481801918 +hcl:#efcc98 hgt:76in + +ecl:grn pid:188906975 cid:153 hgt:173cm eyr:2029 iyr:2012 hcl:#733820 byr:2001 + +eyr:2029 +byr:1948 iyr:2020 +hgt:167cm ecl:brn hcl:#623a2f pid:577624152 + +hcl:#18171d +pid:262528276 byr:1949 +iyr:2020 +eyr:2023 + +hcl:#c0946f iyr:2016 byr:1967 ecl:brn +hgt:162cm +pid:139002508 eyr:2030 + +eyr:2030 +hgt:72in iyr:2013 pid:542944485 cid:112 +byr:1950 hcl:#a97842 ecl:amb + +pid:772544664 eyr:2023 ecl:gry hgt:159cm iyr:2012 +byr:1956 hcl:#602927 + +hgt:172in ecl:grt pid:668387651 byr:2019 +iyr:1995 hcl:bc51ff eyr:1921 + +pid:322272953 ecl:brn hcl:#a97842 byr:1990 +eyr:2021 +iyr:2017 +hgt:181cm + +eyr:2029 +iyr:2011 +pid:503169142 byr:1980 +hcl:#a97842 ecl:oth + +pid:514042929 +ecl:amb eyr:2030 hgt:154cm +iyr:2010 hcl:#623a2f +byr:1989 + +byr:1988 pid:156381939 iyr:2016 hgt:161cm eyr:2030 ecl:brn hcl:#7d3b0c + +pid:545819361 hgt:191cm iyr:2012 byr:1982 eyr:2025 ecl:zzz +hcl:z + +pid:872911892 +byr:1924 iyr:1974 +hcl:#602927 +ecl:brn hgt:154cm +eyr:2028 + +hcl:#602927 hgt:188cm +byr:2007 pid:503933918 ecl:utc +eyr:2030 iyr:2020 cid:132 + +ecl:hzl +eyr:2020 hcl:#888785 hgt:181cm +pid:721383537 +iyr:2018 +byr:1983 cid:50 + +pid:8590606 hcl:#18171d +eyr:2039 iyr:2024 +cid:161 byr:2027 + +hgt:160in byr:1956 +cid:214 pid:187cm iyr:2027 +hcl:z +eyr:2033 ecl:grn + +byr:2029 pid:90562860 hcl:4fa0d1 iyr:2024 +eyr:2040 cid:62 ecl:#07ae33 hgt:186in + +pid:557319679 byr:1945 hgt:182cm eyr:2026 iyr:2012 hcl:#866857 ecl:hzl cid:219 + +eyr:2028 iyr:2022 ecl:zzz cid:273 +hgt:133 pid:4084335529 byr:2011 hcl:z + +pid:69196974 hcl:z iyr:2014 ecl:amb byr:1928 + +hgt:183in +eyr:2028 pid:771762218 byr:2003 ecl:dne hcl:70eb58 iyr:2027 cid:330 + +ecl:hzl pid:195721774 hcl:#602927 byr:1945 hgt:186cm +eyr:2037 +iyr:2011 + +ecl:brn eyr:2028 hgt:171cm +byr:1980 hcl:#fffffd pid:563089389 iyr:2016 + +eyr:2027 iyr:2011 ecl:gry byr:1932 hcl:#18171d +pid:398526372 + +pid:97363921 hgt:178cm +ecl:oth eyr:2028 +byr:1930 cid:345 iyr:2018 hcl:#1fb2f0 + +ecl:amb iyr:2012 +byr:1961 pid:679312513 eyr:2026 hcl:#cfa07d +hgt:174cm + +byr:1980 +hcl:#80055d +cid:235 +ecl:oth pid:159696517 eyr:2030 +hgt:191cm +iyr:2012 + +iyr:2013 eyr:2027 hcl:#866857 +pid:621184472 cid:137 hgt:175cm byr:2000 +ecl:hzl + +byr:1998 hgt:166cm +ecl:oth eyr:2025 +iyr:2018 +hcl:#a97842 pid:358495679 + +byr:1928 ecl:oth cid:122 hcl:#6b5442 +hgt:189cm eyr:2020 iyr:2018 + +hgt:186cm +byr:2020 hcl:79d685 ecl:grt iyr:1944 pid:3659998623 eyr:2000 + +hgt:63in ecl:oth eyr:2029 +iyr:2013 pid:942282912 hcl:#c0946f byr:1989 + +byr:1997 hcl:#623a2f eyr:2026 cid:149 +pid:702981538 +ecl:amb hgt:178cm iyr:2017 + +ecl:brn iyr:2015 byr:1932 pid:191192548 cid:318 +hcl:#7d3b0c eyr:2020 + +hcl:#866857 eyr:2028 pid:341036511 cid:343 iyr:2020 hgt:173cm +byr:1973 ecl:blu + +iyr:2016 pid:165707654 hgt:181cm ecl:hzl +cid:119 byr:1973 hcl:#b6652a + +iyr:2014 pid:833337583 byr:1936 cid:91 hcl:#602927 ecl:amb hgt:165cm +eyr:2021 + +byr:1938 ecl:grn hcl:#a55daf eyr:2021 cid:199 pid:701515796 +iyr:2015 hgt:71in + +hcl:#a97842 +ecl:blu +eyr:2030 iyr:2020 +hgt:155cm byr:1927 +pid:524488639 + +pid:385084163 eyr:2025 +hcl:#866857 ecl:oth iyr:2020 hgt:177cm byr:2002 + +eyr:2029 hgt:177cm +cid:142 ecl:hzl hcl:#866857 +iyr:2015 byr:1946 pid:459543573 + +pid:826977286 eyr:2030 iyr:2016 byr:1996 +hcl:#efcc98 +ecl:gry hgt:180cm + +eyr:2029 +iyr:1976 pid:872821863 ecl:gry byr:2030 + +hgt:191cm byr:1924 pid:918753019 ecl:blu +iyr:2019 hcl:#5d69e0 eyr:2024 + +ecl:lzr iyr:2020 pid:991375034 byr:1947 +eyr:1923 hcl:8224f6 hgt:157 + +eyr:2021 byr:1946 +hgt:189cm ecl:grn iyr:2010 hcl:#cfa07d pid:246923037 + +iyr:2016 +ecl:oth hgt:155cm byr:1962 pid:924702739 eyr:2028 hcl:#7d3b0c + +pid:7358100461 hgt:183cm byr:2011 hcl:#a97842 +iyr:2020 eyr:1963 cid:71 + +ecl:hzl hcl:#c0946f +byr:1934 +hgt:183cm +iyr:2018 pid:433993423 eyr:2028 + +hgt:183cm hcl:#cfa07d iyr:2018 +byr:1975 eyr:2024 + +eyr:2021 ecl:amb byr:1992 hgt:164cm iyr:2020 +cid:302 + +pid:271720491 hgt:161cm +iyr:2012 byr:1947 hcl:#6b5442 ecl:grn eyr:2024 + +pid:860852799 eyr:2021 byr:1980 hcl:#6b5442 iyr:2010 hgt:174cm +ecl:hzl + +hcl:#623a2f eyr:2028 iyr:2016 pid:813453232 hgt:173cm cid:131 +byr:1962 + +byr:1975 +hgt:177cm +pid:290098810 cid:241 +ecl:oth hcl:#a5fc9f eyr:2021 iyr:2013 + +byr:1947 pid:762351259 hgt:178cm ecl:amb hcl:#d07b27 iyr:2017 eyr:2028 cid:271 + +iyr:2012 pid:053790533 eyr:2023 ecl:grn hcl:#623a2f byr:1939 cid:70 hgt:189cm + +hcl:#c0946f pid:891312170 byr:1986 iyr:2012 +hgt:163cm eyr:2023 cid:150 + +iyr:2015 +byr:1963 +pid:695024197 hcl:#efcc98 ecl:brn hgt:166cm eyr:2022 +cid:276 + +eyr:1945 hgt:150in byr:2007 +ecl:utc hcl:z cid:272 +pid:186cm iyr:1927 + +pid:956296646 iyr:2015 hgt:168cm +byr:1979 eyr:2029 ecl:gry hcl:#866857 + +pid:745452488 byr:1998 eyr:2025 hcl:#602927 +hgt:158cm iyr:2015 + +eyr:2027 +iyr:2017 +pid:6173634679 byr:2001 ecl:hzl +hcl:babc41 +hgt:76cm + +ecl:grn +iyr:2019 +hcl:#3881ca byr:1975 eyr:2023 hgt:162cm + +hcl:#ceb3a1 hgt:169in pid:398759957 +eyr:2020 byr:2016 +iyr:2011 ecl:#be3622 + +hgt:156cm +hcl:#b6652a pid:166cm iyr:2027 byr:2003 +eyr:2036 ecl:#6d4df1 +cid:109 + +eyr:2026 pid:295161300 ecl:gry +hgt:160cm byr:1950 hcl:#746f08 +iyr:2017 + +iyr:2010 cid:335 +eyr:2024 +hcl:#866857 +byr:1948 hgt:166cm pid:178927953 +ecl:blu + +hgt:161cm cid:210 eyr:2025 +byr:1920 +ecl:gry iyr:2020 +hcl:#7d3b0c pid:443548961 + +iyr:2019 +pid:320015839 eyr:2029 +hcl:#fffffd ecl:oth byr:1953 hgt:182cm + +eyr:2038 hcl:abb3ad iyr:2015 pid:174cm hgt:167cm +ecl:hzl + +byr:1982 pid:798153758 +ecl:brn +hgt:161cm hcl:#341e13 eyr:2023 +iyr:2014 + +byr:1938 +pid:193cm hgt:190cm ecl:amb iyr:2019 +eyr:2028 cid:270 +hcl:#18171d + +pid:711886098 byr:1962 +eyr:2028 ecl:grn +hgt:151cm +hcl:#cfa07d +iyr:2019 + +eyr:2028 iyr:2011 +ecl:gry +pid:550207629 hgt:183cm +hcl:#888785 byr:1920 cid:96 + +ecl:utc +eyr:2021 +byr:1962 hgt:175cm +pid:872298092 +hcl:z iyr:2017 cid:197 + +iyr:2010 +hcl:5b88b0 byr:2021 ecl:gmt +eyr:2040 hgt:179cm pid:161cm + +pid:56869473 eyr:2036 ecl:lzr +iyr:2027 hcl:z + +hcl:#602927 +hgt:151cm pid:780342729 ecl:oth iyr:2015 + +byr:2027 hcl:#fffffd +pid:5609758115 eyr:2037 +iyr:2017 +ecl:#6f0329 hgt:97 + +iyr:2025 hcl:z byr:2007 ecl:gmt +pid:#eda9ab +hgt:154in eyr:2028 cid:247 + +ecl:utc pid:216181141 +hgt:161cm eyr:2026 +hcl:#d38f20 byr:2028 + +ecl:grn byr:1955 hcl:#c0946f +iyr:2017 eyr:2027 pid:746303487 +hgt:72in + +pid:489225602 +iyr:2018 ecl:gry hgt:65in byr:1982 +cid:248 +eyr:2025 + +hcl:#ceb3a1 pid:663798116 byr:1937 iyr:2010 +hgt:167cm ecl:hzl + +pid:329032527 +hcl:#ceb3a1 +iyr:2014 ecl:gry +hgt:169cm +byr:1932 + +hcl:#545d0c +ecl:brn iyr:2023 hgt:186cm cid:209 +pid:886392748 +eyr:2030 byr:1984 + +hgt:80 iyr:1943 hcl:#733820 byr:1937 eyr:2029 pid:625851706 cid:309 + +pid:73586582 hgt:156 +cid:162 ecl:zzz eyr:2025 +iyr:1990 byr:1940 hcl:z + +iyr:2010 +eyr:2023 pid:162901454 +hcl:#733820 byr:1958 ecl:gry +hgt:159cm + +byr:2007 +hcl:#cfa07d +cid:261 pid:148538600 ecl:hzl +hgt:64cm iyr:2021 +eyr:2040 + +iyr:1997 byr:2007 ecl:#24adc8 +pid:55794137 cid:219 eyr:2037 +hgt:75cm hcl:z + +hcl:#efcc98 byr:1940 ecl:amb iyr:2012 +pid:594237790 eyr:2029 cid:112 +hgt:173cm + +byr:1941 cid:70 eyr:2026 hgt:178cm hcl:#733820 +ecl:brn iyr:2013 pid:425263722 + +eyr:2025 byr:1998 iyr:2014 ecl:amb pid:188113611 hcl:#341e13 + +byr:1950 +iyr:2017 hgt:74in cid:238 +pid:897969952 +ecl:hzl eyr:2022 hcl:#0a18bb + +eyr:2022 +iyr:2015 ecl:grn +hgt:179cm byr:1956 hcl:#7fd789 pid:201629099 + +eyr:2024 +pid:483257417 ecl:hzl iyr:2010 hgt:159cm +hcl:z +byr:1968 + +pid:916586207 ecl:amb iyr:2011 eyr:2022 hgt:191cm hcl:#602927 byr:1923 + +pid:175608183 +hgt:190cm hcl:#fffffd iyr:2017 byr:1993 +ecl:blu + +eyr:2029 hgt:173cm +pid:669662258 byr:1997 iyr:2015 ecl:brn cid:153 hcl:#888785 + +hcl:d899cf +ecl:#876029 hgt:76cm iyr:1997 pid:40406158 +eyr:2032 byr:2010 + +eyr:2023 ecl:hzl cid:162 hcl:#602927 iyr:2015 +pid:82885029 +hgt:75cm byr:1946 + +byr:1962 hgt:167in +ecl:brn +hcl:#c0946f iyr:2014 pid:488520708 eyr:2027 cid:271 + +hgt:180cm pid:358771245 eyr:2020 +ecl:grn iyr:2018 hcl:#efcc98 +byr:1979 + +cid:273 ecl:gry pid:424388351 iyr:2010 hcl:#c0946f byr:1988 +hgt:166cm +eyr:2027 + +ecl:gry hcl:#a97842 hgt:189cm +pid:743213778 iyr:2015 byr:1959 + +iyr:2021 byr:2021 +ecl:#a79d2e cid:89 +hcl:#5fb8d7 eyr:2001 pid:#5575b3 hgt:60cm + +eyr:2021 +iyr:2017 +cid:87 hgt:164cm pid:560394910 ecl:hzl hcl:#ceb3a1 +byr:1955 + +iyr:2018 +hcl:#27f7e6 hgt:160cm +eyr:2029 pid:033692111 +ecl:amb byr:1920 + +hgt:160cm eyr:2028 iyr:2010 ecl:blu byr:1974 pid:858060501 hcl:#733820 + +byr:1961 pid:818700605 cid:93 eyr:2024 +hgt:188cm hcl:#866857 +ecl:gry + +eyr:2029 +hgt:180cm iyr:2017 +ecl:hzl byr:1951 cid:158 +hcl:#888785 + +cid:290 +eyr:2027 byr:1986 +ecl:blu +pid:076339632 iyr:2010 +hcl:#341e13 +hgt:167cm + +eyr:2023 iyr:1990 +hcl:#623a2f byr:2005 hgt:116 + +hgt:167in iyr:1944 ecl:dne eyr:2031 hcl:465775 pid:2505694463 + +cid:93 eyr:2024 iyr:2010 +hgt:143 pid:154cm +ecl:#c6f352 +hcl:#a97842 byr:1925 + +pid:600685520 byr:1967 hcl:#ceb3a1 iyr:2014 ecl:oth cid:226 hgt:179cm eyr:2026 + +hcl:#ceb3a1 +pid:789956738 +byr:1938 hgt:171cm cid:183 eyr:2021 iyr:2011 ecl:amb + +hcl:#613f4b hgt:151cm eyr:2025 +ecl:amb byr:1985 pid:493339889 +iyr:2013 + +hcl:78cda6 pid:36823553 +iyr:2021 cid:235 byr:2028 eyr:2011 hgt:113 +ecl:#02ce86 + +pid:529274811 +iyr:2012 hgt:103 ecl:blu hcl:#341e13 eyr:2023 +byr:1959 + +hgt:166cm iyr:2014 ecl:xry cid:276 byr:2014 hcl:#7d3b0c pid:146851133 + +pid:359823289 hgt:181cm byr:1978 hcl:#c0946f +eyr:2022 +iyr:2011 ecl:hzl + +pid:029400877 +eyr:2026 +byr:1983 iyr:2015 hcl:#cfa07d cid:70 ecl:gry + +hcl:#ceb3a1 eyr:2021 hgt:190cm +ecl:amb iyr:2017 +pid:411804678 byr:1950 + +byr:1926 iyr:2017 ecl:blu pid:103821113 eyr:2026 hcl:#c0946f cid:71 hgt:152cm + +cid:108 byr:1955 +iyr:2010 eyr:2022 hgt:169cm hcl:#733820 +pid:208715596 ecl:gry + +pid:352807405 ecl:blu +hcl:#b1214c iyr:2012 hgt:165cm byr:1929 +cid:139 +eyr:2020 + +hcl:#cfa07d hgt:151cm byr:1987 +eyr:2024 +cid:140 pid:884441477 + +pid:#dade9c eyr:1979 hgt:191cm +byr:2026 iyr:2018 hcl:z ecl:lzr + +cid:259 +pid:644561358 +ecl:blu hgt:164cm iyr:2013 byr:1997 +eyr:2023 hcl:#108f16 + +ecl:oth +cid:141 hgt:66in pid:877258886 iyr:2019 byr:1949 hcl:#18171d +eyr:2027 + +byr:1932 cid:103 hgt:175cm pid:464473181 ecl:xry iyr:2013 hcl:51fd65 + +cid:175 iyr:2014 eyr:1959 +ecl:#d83076 hgt:182cm pid:863972537 hcl:#efcc98 byr:1986 + +hgt:181cm pid:869641194 hcl:#efcc98 cid:141 ecl:gmt iyr:2017 byr:1981 eyr:2027 + +eyr:1938 +iyr:2026 cid:278 ecl:brn byr:1936 hgt:150 pid:6902040050 + +eyr:2027 iyr:2014 pid:110887179 +hcl:#a97842 ecl:brn cid:262 hgt:66in +byr:1954 + +ecl:grn +pid:498972747 +eyr:2024 hcl:#341e13 iyr:2011 byr:1932 hgt:186cm + +cid:59 +hcl:#6b5442 iyr:2018 eyr:2028 pid:866696485 +hgt:178cm ecl:gry + +pid:598961001 +eyr:2024 iyr:2019 +byr:1963 ecl:grn +hcl:#c0946f + +eyr:2024 hgt:172cm pid:295056305 ecl:blu byr:1926 +iyr:2017 hcl:#341e13 + +byr:2001 hcl:#6b5442 hgt:164cm +pid:862982189 ecl:grn iyr:2019 eyr:2030 + +hgt:69cm eyr:2014 ecl:hzl iyr:2025 +hcl:2812c9 +cid:74 byr:1980 + +hcl:#888785 +pid:409489862 +iyr:2011 hgt:186cm ecl:gry byr:1985 +eyr:2028 + +cid:221 pid:6849250876 hgt:169cm hcl:z +iyr:2013 +byr:1950 eyr:2022 + +pid:189083891 byr:1983 hcl:#623a2f ecl:hzl iyr:2013 eyr:2026 hgt:66in + +pid:581546673 cid:269 eyr:2030 hgt:191cm byr:1945 hcl:#18171d +iyr:2015 +ecl:amb + +hgt:158cm ecl:hzl +cid:234 eyr:2023 +byr:1996 hcl:#7ac7ad +iyr:2020 pid:666748924 + +iyr:2013 ecl:grn cid:53 hgt:172cm eyr:2028 pid:406602771 hcl:#fffffd byr:1959 + +hgt:63cm hcl:eaaf60 byr:2026 iyr:1981 +pid:#baf2cf cid:117 ecl:hzl + +eyr:2035 byr:2014 +iyr:2028 hcl:z ecl:#acd426 +cid:261 pid:174cm hgt:182in + +ecl:amb pid:#4bb0a8 eyr:2027 hgt:155cm hcl:#623a2f +byr:1956 +iyr:2011 + +eyr:2012 cid:53 byr:2005 ecl:oth +hgt:183in iyr:1974 pid:150cm + +iyr:2020 pid:833821322 ecl:blu byr:1944 hgt:169cm hcl:#623a2f eyr:2020 + +hgt:60in ecl:oth byr:1962 eyr:2022 cid:99 +iyr:2019 +pid:281039464 hcl:#733820 + +ecl:hzl hcl:#7d3b0c hgt:191cm pid:771871096 +iyr:2012 eyr:2027 +byr:2025 + +hgt:188in hcl:z eyr:2032 iyr:1955 +byr:2027 ecl:#517bfe pid:#206bab + +hcl:#733820 iyr:2010 pid:784128823 +hgt:169cm cid:305 +ecl:grn byr:1962 + +cid:50 eyr:2022 +hcl:a916cf pid:407148034 iyr:1926 ecl:#fa1ba7 hgt:69 +byr:2028 + +hgt:193cm pid:507697987 cid:275 byr:1958 eyr:2023 ecl:brn iyr:2013 hcl:#326596 + +eyr:2025 hgt:192cm cid:95 iyr:2011 ecl:grn byr:2002 pid:399623583 hcl:#b6652a + +ecl:brn hcl:#602927 eyr:2023 pid:089068603 hgt:189cm +byr:1953 iyr:2018 +cid:160 + +hcl:f1bf94 byr:2030 +ecl:gry hgt:60in iyr:2016 +pid:4816152 + +hgt:154cm iyr:2015 ecl:gry +eyr:2024 pid:718845487 byr:1999 +hcl:#866857 + +cid:294 +hgt:186cm eyr:2026 byr:1984 +ecl:grn +hcl:#ceb3a1 pid:325370778 iyr:2010 + +pid:156980004 hcl:#c0946f iyr:2013 ecl:brn +hgt:181cm byr:1933 eyr:2023 + +hcl:#efcc98 byr:2002 hgt:158cm ecl:gmt iyr:1964 pid:195262032 +eyr:2021 + +hcl:#602927 eyr:2027 hgt:192cm byr:1945 iyr:2018 pid:366509171 ecl:oth + +pid:163cm iyr:2016 ecl:lzr hcl:#341e13 hgt:79 +cid:130 +eyr:2038 byr:2030 + +hcl:#efcc98 +byr:1979 +ecl:oth eyr:2020 pid:095314628 +hgt:162cm iyr:2015 + +byr:1998 cid:157 +pid:346442779 hcl:#b6652a hgt:162cm +ecl:amb +eyr:2023 iyr:2018 + +hcl:#d6a701 byr:1971 hgt:160cm ecl:#98c896 pid:627704105 eyr:2024 iyr:2010 + +byr:2021 +iyr:2023 +eyr:1981 hgt:68cm ecl:dne +hcl:z pid:20981493 + +pid:159037919 hgt:162cm +ecl:amb cid:244 +byr:1971 eyr:2027 +iyr:2017 hcl:#18171d + +iyr:2011 pid:086826874 +cid:162 +hgt:189cm ecl:gry +byr:1926 hcl:#888785 + +eyr:2022 hgt:152cm pid:919970712 byr:1955 hcl:#733820 iyr:2018 ecl:brn + +cid:111 ecl:#a1843f +byr:2015 hcl:z iyr:1956 +pid:186cm eyr:2030 + +byr:1991 +eyr:2024 pid:050818633 +hcl:#888785 cid:124 hgt:176cm ecl:gry iyr:2018 + +byr:1963 hgt:188cm +eyr:2021 cid:255 +ecl:oth +hcl:#a97842 +iyr:2010 pid:030540064 + +byr:1921 hgt:164cm pid:748078322 hcl:#c0946f ecl:blu +eyr:2027 +iyr:2020 + +eyr:2020 cid:214 hcl:7a942e hgt:191cm byr:1998 iyr:2012 ecl:grn pid:054135231 + +eyr:1927 pid:242147946 iyr:2010 +hcl:ea3cb1 byr:2028 +hgt:186cm ecl:dne + +ecl:brn hcl:#efcc98 eyr:2021 +hgt:160cm pid:333644730 byr:1999 +iyr:2019 + +iyr:2013 byr:1921 +hcl:#a97842 eyr:2027 +ecl:gry hgt:157cm pid:682013109 + +ecl:gry hcl:#733820 byr:1945 hgt:174cm +eyr:2020 pid:505827627 iyr:2019 + +eyr:2021 iyr:2015 ecl:oth hgt:162cm pid:137342936 byr:1922 hcl:#888785 + +hcl:#efcc98 +ecl:oth +hgt:151cm cid:312 byr:1983 +eyr:2030 pid:289512908 iyr:2020 + +byr:1989 iyr:2015 pid:057335770 ecl:grn eyr:2022 hgt:167cm hcl:#602927 + +hgt:184cm iyr:2013 hcl:#c0946f byr:1969 eyr:2028 +pid:802041641 +ecl:brn + +pid:155cm hcl:#b6652a cid:288 byr:2028 iyr:2028 hgt:150cm +ecl:#996e72 eyr:1960 + +eyr:2020 +iyr:2011 +pid:934576102 byr:1994 +ecl:amb +hcl:#18171d + +eyr:1993 byr:1995 +hgt:64cm iyr:2020 pid:15714997 hcl:#b6652a ecl:blu + +iyr:2014 +eyr:2030 pid:866047540 cid:59 hcl:#733820 byr:1951 +hgt:64in ecl:amb + +iyr:2015 +byr:1962 +hgt:69in ecl:brn +hcl:#623a2f eyr:2023 +pid:671492881 + +iyr:2020 ecl:oth hgt:154cm byr:1950 pid:924256973 +eyr:2028 +hcl:#b6652a + +byr:2021 +hgt:116 cid:348 iyr:1930 pid:76948864 hcl:z +eyr:2036 + +hgt:156cm iyr:2014 +byr:1960 +pid:720786216 +cid:99 +ecl:gry +hcl:#a97842 +eyr:2028 diff --git a/2020/day04/invalid b/2020/day04/invalid new file mode 100644 index 0000000..a7fa5bb --- /dev/null +++ b/2020/day04/invalid @@ -0,0 +1,13 @@ +eyr:1972 cid:100 +hcl:#18171d ecl:amb hgt:170 pid:186cm iyr:2018 byr:1926 + +iyr:2019 +hcl:#602927 eyr:1967 hgt:170cm +ecl:grn pid:012533040 byr:1946 + +hcl:dab227 iyr:2012 +ecl:brn hgt:182cm pid:021572410 eyr:2020 byr:1992 cid:277 + +hgt:59cm ecl:zzz +eyr:2038 hcl:74454a iyr:2023 +pid:3556412378 byr:2007 diff --git a/2020/day04/test b/2020/day04/test new file mode 100644 index 0000000..0ff208e --- /dev/null +++ b/2020/day04/test @@ -0,0 +1,13 @@ +ecl:gry pid:860033327 eyr:2020 hcl:#fffffd +byr:1937 iyr:2017 cid:147 hgt:183cm + +iyr:2013 ecl:amb cid:350 eyr:2023 pid:028048884 +hcl:#cfa07d byr:1929 + +hcl:#ae17e1 iyr:2013 +eyr:2024 +ecl:brn pid:760753108 byr:1931 +hgt:179cm + +hcl:#cfa07d eyr:2025 pid:166559648 +iyr:2011 ecl:brn hgt:59in diff --git a/2020/day04/valid b/2020/day04/valid new file mode 100644 index 0000000..ca41800 --- /dev/null +++ b/2020/day04/valid @@ -0,0 +1,12 @@ +pid:087499704 hgt:74in ecl:grn iyr:2012 eyr:2030 byr:1980 +hcl:#623a2f + +eyr:2029 ecl:blu cid:129 byr:1989 +iyr:2014 pid:896056539 hcl:#a97842 hgt:165cm + +hcl:#888785 +hgt:164cm byr:2001 iyr:2015 cid:88 +pid:545766238 ecl:hzl +eyr:2022 + +iyr:2010 hgt:158cm hcl:#b6652a ecl:blu byr:1944 eyr:2021 pid:093154719 diff --git a/2020/day05/day05.c b/2020/day05/day05.c new file mode 100644 index 0000000..4d2eeac --- /dev/null +++ b/2020/day05/day05.c @@ -0,0 +1,60 @@ +#include +#include +#include + +unsigned int bin_to_int(char *buf, int size) { + unsigned int r = 0; + for (int i = 0; i < size; ++i) { + r = r << 1; + if (buf[i] == 'B' || buf[i] == 'R') { + r++; + } + } + return r; +} + +int main(int argc, char *argv[]) +{ + if (argc < 2) { + printf("Usage: %s \n", argv[0]); + return 0; + } + + FILE *fp = fopen(argv[1], "r"); + if (fp == NULL) { + printf("Could not open file %s\n", argv[1]); + return 1; + } + + char buf[12]; + size_t i = 0; + unsigned int ids[1024]; + unsigned int min_id = UINT_MAX; + unsigned int max_id = 0; + while (fgets(buf, sizeof(buf), fp) != NULL) { + ids[i] = bin_to_int(buf, 10); + if (min_id > ids[i]) { + min_id = ids[i]; + } + if (max_id < ids[i]) { + max_id = ids[i]; + } + i++; + } + printf("%u\n", max_id); + + fclose(fp); + + for (int id = min_id; id < max_id; ++id) { + bool present = false; + for (int j = 0; j < i; ++j) { + present = present || (id == ids[j]); + } + if (!present) { + printf("%u\n", id); + break; + } + } + + return 0; +} diff --git a/2020/day05/day05.dyalog b/2020/day05/day05.dyalog new file mode 100644 index 0000000..078a4b0 --- /dev/null +++ b/2020/day05/day05.dyalog @@ -0,0 +1,4 @@ + ⎕IO←0 + p←{2⊥⍵∊'BR'}¨⊃⎕NGET'input'1 + ⌈/p ⍝ Part 1 + ⊢/(⍳⌈/p)~p ⍝ Part 2 diff --git a/2020/day05/day05.rkt b/2020/day05/day05.rkt new file mode 100644 index 0000000..48f66a4 --- /dev/null +++ b/2020/day05/day05.rkt @@ -0,0 +1,38 @@ +#lang racket + +(module+ test + (require rackunit)) + +(module+ main + (displayln "Day 5")) + +(define (seat-id str) + (define binary-str (list->string + (for/list ([c (in-string str)]) + (if (or (equal? c #\B) (equal? c #\R)) + #\1 + #\0)))) + (string->number binary-str 2)) + +(define (read-input filename) + (define seats (file->lines filename)) + (map seat-id seats)) + +(module+ test + (for ([seat '("FBFBBFFRLR" "BFFFBBFRRR" "FFFBBBFRRR" "BBFFBBFRLL")] + [expected-id '(357 567 119 820)]) + (check-equal? (seat-id seat) expected-id))) + +(define (part1 filename) + (apply max (read-input filename))) + +(module+ main + (displayln (part1 "input"))) + +(define (part2 filename) + (define ids (read-input filename)) + (define id-range (range (apply min ids) (apply max ids))) + (set-first (set-subtract (list->set id-range) (list->set ids)))) + +(module+ main + (displayln (part2 "input"))) diff --git a/2020/day05/input b/2020/day05/input new file mode 100644 index 0000000..86c40f6 --- /dev/null +++ b/2020/day05/input @@ -0,0 +1,965 @@ +FBFBBBFRLR +FBBFBBBLLR +FFFFFBBRRL +BBBFFFBRRL +BFFBFBFLRL +FBFFBFFLLR +FBFBBBBRLR +FBFBFBFRLL +BFFBFFBRLR +FBBFFFBLRR +FBFBBBFRRR +BFFBBFBRLR +BFFBFBFRRL +FFFFBBBLRL +FBBFBFFRLL +BBFBBFBRLR +BFFFFBBLLR +FBFFFFFRRR +BFBFFBFLRR +BBFBFFBLLL +BFBFFFFLLR +FBBFBBBRLL +BBBBFFFRRL +FFBBBFFRLR +FFFBFFFRRL +FFFBBBBLRL +BFBBFBFRRL +BFFBBFBLLL +FBFBBFFLRL +BFFBBBBLRL +FFBBBFFLRL +FFBFBFFRRL +BBBFBFBRLR +FBFBBBBRLL +FBBBFBBRRR +FBFBFBFLLL +BBFFFFFLLR +FBFFFBBLRR +FFBFFFBLRR +BBBFBFFRLR +FFFFFFBRRL +BFBBFFFRRR +FBFFBFBRRR +BFFFBBFLRL +BBFBFFFRRR +BBFFFBBLRL +FFBBFFFLLL +FFFFFBBRLR +BFBFFFFRRL +FFBBFBBLRR +BFBBFBBLLR +FFBBBBFRRL +BBBFFFFLRL +BFBFFBFLRL +BFFFFBBLRL +BBBFBBBRLL +BFBBFBBLRR +BFBFFBBRRL +BBFBFFFLLL +FFFFBFFRRL +FFFFBBBRRR +FBBFBBFLRL +FBFFBFBRLR +FBFFBBBLLL +FBFBBBFLLR +FBBFBFBRLL +BBBFBFFLLL +BBFFFFFLRL +FFBFBFBRLL +FBBBFFBLRL +FBFBFFBLRL +FFFBBFBRLR +FBFBBFBLLR +FBFFBBBRLL +BBFBBFBLLL +FBBBBFFRLL +FBBBBBBLRR +FFFFFBFLRR +BFFBFBBLRR +FBFFBFFLRR +BBFFFFBLRL +BBFFBFFLLR +FFFBBBBLRR +FBFBBBFRRL +FBBFFFBLRL +BBFBBFFRRL +FFBBBFBRLR +BBBFBFBRRR +FBFFBFFRRR +FFBFFBFRLR +BFBBFFBLLL +FFBBBFFRRL +FFFBFFFRLL +BBFFFBFLLR +BFFFFFBRLL +FFBFBBBRLL +FFFBFBFLLL +FBBFBBBLRR +BFBFBFBRLL +FFBBBBBLLL +FFBFFFBRRR +BBFBBFFRLL +BFFFFFFLRL +FBFFBFFRLR +BFFBBBFLRR +FFFBBFFRLR +FBFFFFBLLL +BBFFBBBRRR +FFBFBFBLLR +FBBFFBBLLR +BBFBBFBLLR +BBFBBFBLRL +BBBFFBFRRL +FBFFBBBLRL +BFBFBFFLLR +BFFFFFBRLR +FBFBFFBLLR +BFFFBFBRLL +FBFFFFBRRR +BFBBFBBRRL +FBFFFBBLRL +BFBBBBFLRL +BBBBFFBLRL +FFBFFBBLRL +FFFBFFBRLR +FBFBFFBRLR +FBFBFBBRRR +BFFBFBBLRL +FBBBFBBRLR +BFBBBFFLLL +BFBFBBBLLR +BBBFBBBRRR +FFBFFFFRLR +BBFFFBBRRR +BBBFBBFRRL +FFBFFBBLLL +BBFFBFFLRR +BBFFBFBRRL +BBFBBBFLRR +FBFFBFBLRL +BFBFFFFLLL +FFBBBFBRRR +BBBFBBBLLL +FBFBBFBLRL +BBBFFFBRLL +BFFFBBFRRL +BBBBFFFLLR +BBBFBFFRLL +FFBBFBFLRR +FBBFBFBRRR +FBBFBBFLRR +BBFFFBFRRL +FBFFFBBRLL +BBFFFFFRLR +FBBFBBFRRL +FBFFFBBLLL +BFBFBBFLLL +BFFBFFBRLL +FFFFBBBRLR +BBFBBBBRLR +BFBFFFBLRR +BFBFFFBRLL +FBFBBBBLLR +BFFFBFFRRR +FFBBBFFLLR +BFBFFFBLLL +FFBBFFBRLR +FBBFBBBRRL +BBFBFFBLRR +FBBFBBBRRR +FFFBBFBRRL +BFBFBFBLLR +BBFBFFBLRL +BBBFBFBRRL +BFFBFBFLLR +BFBFBBBLRR +FBFFFBFRLL +BFFBFFFRRL +FBFBFFFRRR +BFFBFFFRLL +FFBBFFBLLL +BBBBFFFRLR +BBBFFBFLLR +BFBFBFBRRL +BBFBBBBLLR +BFFBBFFRLR +FFFFBBBRRL +BFFFBBFRLR +FFBBFBBLLL +BBBFFFBLLR +BBFBBBFLLL +FFFFFBFLLR +BBBFBBFLRL +FFFFFBFLLL +BBFBFFFLLR +BFBBFBFLRL +BFBFBBFRRL +BBBFBFFRRL +BFFFBBFRLL +FFFFBFBLRL +BFBBBBBLRR +FFFBFFBLRL +FFFBBBBRLL +BBBFBFBLLR +BBBBFFBLLR +BFFFBBBLLR +BBFFFBBLLR +BBFFBBBLRR +FBBFBFBLLR +BBBFFFFRLL +FBBFBFBRRL +FFBFBFFRLR +BFFFFBFLLL +BBFBBBBLLL +FBFBBBBLRR +BBBBFFFRLL +BFBBFBBRRR +FFFFBBBLLL +BBFFBFBRLL +FBBFFBFLRL +FFBBBFFRLL +FFFBBBFRLR +FFBBFBFLRL +BBFBFBFLLR +BFFFFFBLRR +FBFBBBFRLL +FBFFFFFLLR +FBFBFFBLLL +BFFBFBFRLR +FFBFBFFLLL +FFFFFBBLLR +BBBBFFBRRR +FBFBFBFLLR +BBFFFBFRLR +BBFFBFBLRR +BFFBBFFLRR +BFFFFBFLLR +FBBFBFBLRL +BFFFFBFLRL +BBFFFFFLRR +BBBFFFFRRR +FFBBBFFLRR +BFFFBFBLRL +BBFBFBBLRR +BBFBFFBRLR +FFFBFBFLRR +FBFFFFFRLL +BBFBBBFRLR +BBFFBBFRRL +BFBFFBBRLR +FFBFFFBLLR +BFBFFFBRLR +BBBBFFBRLR +BFBFFBFLLR +BBFFBBFLLR +FBFFFFBLLR +FFFBBFBLRR +FFBBFFBRRR +FBBBFBFLRL +FBFBFBFLRR +BFFFBFBRRL +FBFFFFBRRL +FBFFFBBRLR +FBBFFBBRRL +FBBFBFFLRL +BFBFBBFRLL +FBBBBFFRLR +FFBFFFFRRL +BFBFBBBRRR +BFFBBBFRRR +BBFFFFFLLL +BFBBBBFLRR +FBBBBBFRRL +BBFBFBFRRL +BFFBFFFRLR +FBFFFBFRRR +FFBBBBBLLR +FBFFFBFRLR +BFBFBFBRLR +FFFBBBFRRR +FBBBFFBRLL +BBFBFBBLRL +FFFBFBBLLL +BFBFBFFLLL +FFFBFFFLLL +FBBBFBBRRL +FBFFFBFLRL +FBFFBFBRLL +BBFFBBFRLL +BFFFBFFRLL +FFBBFBFRRR +BBBFFBBRRL +BBFBFBBRLR +FFBBFFFLRR +FFBBBBFLLR +FFBFFBFLLR +FBBFBBFRLL +FBFBBFFLRR +BBBFFFFRRL +FFFFFBBLRR +BFBFBFFRLR +FFBBBBFRRR +FFBBFFFLLR +FFBBBBBLRR +FBBBBFBRRR +FBFFFBBRRR +BFFBFFBRRR +BFBFBBFLRR +FBFBBBBRRL +FBBBBFBRLR +BFFBBFBLLR +FBBBFBBLLL +FFBBBBBRLL +FBBBBBBRLL +FFFBFBBLLR +BFFFFFBRRL +BFFBFBBRRL +FBBBFFBLRR +FFFBFFFLRR +FFBBBBFRLR +BFFBFFFLLL +FBFFBFFRLL +BFBFBFFRLL +FBBFBBBRLR +FBFFBBFRLL +FFBFFFBRLR +BFBBFBFLRR +BFBBBBFRRL +FBFBFBBRLL +BFBBBFBLRL +FFBBFFBLRR +BBFFBBBRLR +FBBBFBBLRL +BBBBFBFLRL +BBBFBBFRRR +FFFBBFBLRL +BFBFFBBLLR +BBBFFFBLRL +BBFFFFBLRR +FFBBBBFLLL +FBFFFBFLLL +FFBBFBBRRL +BFFBBBBLRR +FBBFFBBRLR +BFBBFBFRLL +FFBBBBBLRL +FBFBFFFRLR +BFBBBFBRRR +BFBBBFBRLL +BBFBBBFRRR +BFFBBFBRRR +BBFFBBBRLL +FFBFFBBRLR +FFFFBBBRLL +FFBBBFBLRL +FFFBFBFRLL +BFBFBBFRRR +FBBFFFFRLL +BBBBFBFLLL +FBFBFFBRRR +BFFFBBBRRR +FFFBBFBLLL +BBBFBBBRRL +FBFFBFBLLR +FBBBBBFRLL +FBBFBFFLLL +BFBFFFBRRR +FBFBFBBLRL +FBFBBBBLLL +FFBFFFBRLL +BFFFBFBRLR +BFBFBBBRLL +FFBFBBFLLL +BBBBFFFRRR +FFFBFBFRRR +FFBBFFFRLL +BFBBBBBLLR +FBBBBFFLRL +BFBFBBFLRL +BFFBBBFLRL +BBFFBFBRLR +BBBFFBFLLL +FBFFBFFRRL +FFFBBBBRLR +BBFBFFFLRR +FBBBBBBRLR +BBFFBBBLLL +BBFBBFFLLL +FBBFFBFRLR +FFFFBFBLRR +FFFBBFFRRR +FBFBFBFLRL +BBFFBBFRRR +FFFFBFBRRR +FFBFBBBLRR +FBFFFBBRRL +BFFBBFBRLL +FFBFBFFLRR +FFBBFBBLLR +FBBBBBBLLR +FFFBBBFLLL +FFBBFFBLRL +BBFFFBBRLR +FFFFBFFRLR +BBFBFFBLLR +FFFBFBBLRR +BBFFFFBRLR +FBFBFFFRRL +FBBBFBFLLL +FFFBBBFRLL +FFFBFBBRLL +FFBFFBBLLR +BFFFBBBLRR +FFFBBFBLLR +FFBFBBFLRL +BFFBFBFLLL +BFFFBBFLRR +FBFFFBBLLR +FBBFFBBLLL +FFBBFFFLRL +BBBFFBFLRL +FBBFFFFLLL +BFFBBFFLLR +BBBFFFFLLL +FBFFBBFRRR +BFBBBBBRRR +FBFFFFFLRL +FFBFFBBRRL +FBFBBFFRLL +FFBFBBFRLR +BBBFFBBLLL +FFFBBBFLRL +BBFFFBBRRL +BFFFFFBLLR +FBBBFFBLLR +BBFBBFFLRR +FBFBBFBLLL +BFBBFBFRLR +BFBBFFBRRL +BBFFFBBLRR +FBBFFBFLRR +FFFBFFBRRR +FBFBBBBLRL +BBFFBBBLLR +FFBFFFBLRL +FBBBFFFLRR +BBBBFFBRLL +BFFBBBFLLR +BFBBBBFRLL +BFFBFFBRRL +BFFFFBBRLR +FFBFFFBLLL +FBBFFBFRLL +BFFBBBBRLR +BFFBFBBLLL +BBBFFBFRLR +BBFBBFBRLL +FFFFBBFRRL +FFBFBFBLRR +BFFBBBBLLR +BFFFFBFRRL +FBBBBFBLRL +BBBFFBBLRR +FBBBBFBLLL +FFFBFBBLRL +FFBFBBFRRR +BFBBFFBRLR +BBFFBBFLRR +FBBBFBFRLR +FBBFBFBLLL +BFFFBBFRRR +BFFFFBFRLR +FFBFFBFRRR +FFFFBBFRLR +FBBFFFBLLL +FBFFBBFLRR +BFFFFFFRLL +BFBBBFFLRR +FBFFBFBLRR +FBFBBFFRRR +FFFBBBBRRL +BFFFBFFLLR +FBBBBFFLLR +BFFFFFFRRR +FFBFFFFLRR +FBBFFFFRRL +FBBFFFFRLR +BBFFBBBLRL +FBFFBBBRRR +BFFFBBBRRL +BFFFBBBLLL +BFFFFBBRLL +BFFFFFFLRR +FBFBFBFRLR +FFFBFFFRRR +FFFFBBFLLL +BBBFBFBLRR +BBBFBBFLRR +BBFBFBBLLL +FFFBBBFLRR +FBBFFFBRLL +BFFBFFFLRR +BFBFBBBRRL +BFFBBBBRRR +FBFFBBBLRR +BFFFBBFLLL +BBBFBFBLRL +BFFFBFBLLR +BBBFBFFLLR +FFBFFBBLRR +FBBFBFFLRR +BBBFFBFRRR +BFBBFFFLRL +FFBBBFBLLR +FBBBBFFRRR +BFBBBBBRLR +BBFFBFBLLR +BFFBFBBRLR +BFFBFFFLLR +BFFBBBBRRL +BBFBFBFLRL +BFFBBBFLLL +BBBFFBFLRR +FBFFFFFLRR +BFBFBFBRRR +BBBFFBFRLL +BFFFBBFLLR +BBBFBBFRLR +FFFFBBFLRR +FBBBFBFRRL +FFFBFFBRRL +FFBFFBBRRR +BFBBBBBLLL +FFBFFBFRLL +BFBFFFBLLR +BFFBBFBLRL +BBFBBFFLRL +FFFBFBFRRL +BFFBBBBRLL +FBFBFFBRRL +FFFFFBFRLR +FBBBBFBRLL +FFFFBFFLLL +FBFBFBBRLR +FBFFFFBRLR +BFBBFFBLRR +BFBBBFFRLL +BBFBBFFLLR +FBFBBBFLRR +FFFFBFFRLL +BFBBFFBRRR +BBBFFFFLLR +BBFFFBBLLL +BFFFFFFRRL +BFBBFFBRLL +FFBFFFBRRL +FBFBBFBRLL +BFBBBFBLRR +BBFBFBFLRR +BBBFBBFLLL +FBFBFFFLRR +BBBBFFBLRR +FFFBBFFLRR +BFFFBFBLLL +FFFFBFFLRL +FFBBFBBRLR +FFFBFBFRLR +BFFBFBFRLL +BBBFFFBLLL +BBFBBFBRRR +BFBFBBBLLL +BFFBFFBLLR +BFBBFBBLRL +BBFBFFBRLL +FBFBBFFLLR +BFFFFFBLLL +FBFFFFFRRL +FFFFFFBRRR +BBBFFFFRLR +FBFFFBFRRL +BFBFFBBRLL +BBFBFFBRRR +FFBFBBBLRL +FFFBFFBLRR +FFFBBBFRRL +BFFBBFBRRL +BFBFFFBLRL +FBBFFBBRLL +FFBBBBBRRL +FBBBBFBLRR +BBFBFBBRRL +FBBBFFBRLR +FFBBFBBRLL +FFFBBBFLLR +BFBBFFFLRR +FBBBFFFLRL +BFBFFFBRRL +FFFFBBBLRR +FFFBFFBRLL +BFBBFBBRLR +FFFFFBBLLL +BFBBBFFRLR +BFBFFFFLRR +BFBBFFFLLR +FFFFBFFLRR +FFBFBFBLLL +BFBFBBFRLR +FBFFFBFLLR +FFBBFFBLLR +FBFBBBBRRR +FBBBBBBLLL +FFBFBBBRRR +FBFFBBFRLR +BFFFBFFLRL +FFBFBFFRLL +FBFFFFBLRR +BFBFFFFRLR +FBBBBBBRRL +BFBFBFBLRR +FFBFBBFLLR +FFFBBFFLLL +FFFBBFFLLR +FBBBFBBLLR +BFBBBFBLLL +BFBFFBFRLL +BFBBFFFRRL +BFBBFFBLLR +FBBFFBFRRL +BBFBBBBRRR +FBBBFFBRRR +BFFBBBFRLR +BBFBBBBRRL +FBBBFBFLLR +BFBFFFFRLL +FBBFFFBLLR +BBBBFFFLRL +BFFBFBFLRR +FBFFBFBRRL +BFBBBFFLRL +BBFFBFFRLL +BFBFBBBLRL +BBFFFBFLRR +BBFBFFFRRL +BFFBFBBLLR +FFFFBFBRLR +FFBBBBFLRR +FBBBBBFLLL +BFBBFBFLLL +FBBBBFBLLR +FBFBFFFLLL +BBFFFBFLLL +BBFBBBBLRL +FFFFFBBLRL +FFBFBBBLLR +FFFBFFFLLR +BFBFBFBLRL +FFBFFBFLRL +FBFFBBFLRL +FFBFBBFRRL +BFFBFFBLRR +BFFBBFFRLL +FFBFBFBRRL +FBFBFBBLRR +FBFBFBBLLL +FFFFBBFRLL +FBBBFFFRLR +FBFBBFBRLR +FBFFBBFLLL +BBFBBBFRLL +FBBBBBFLLR +FBBFFBBRRR +BFFBBBFRRL +BBFFBFFRRR +FFBFBBBLLL +FBBBBFFLLL +BBBBFBFLLR +FBBFBFFRRL +BBFBFBFRLR +FFFFBFFRRR +BFBFBFBLLL +BBFBBBBLRR +BBFFBFBLLL +BFBFBFFLRL +FFBFFFFLLR +FFFBBFFRLL +BBBBFFBRRL +BBFBBFBRRL +BBBFBFFLRL +BFFFBBBRLR +FBFBBBFLRL +FFBBBFBLRR +BFBFFFFRRR +BBBFFFBLRR +FFBFFFFRLL +BFBFFBFRRR +BFBBBFFRRL +FFFFFBFRLL +BBBFFBBLLR +BBBFFFFLRR +BFFBBFFRRL +FFBFBFFLLR +FBBBBFBRRL +FBFBFBBRRL +BBFFFFBRLL +FFBFBBBRLR +FBFBBFFLLL +FFBBBBBRLR +BFBBBBBRRL +BBBFBFFRRR +FFFBBFBRLL +BFBBFFFLLL +FFFFBFBRLL +BBFFBBFLRL +FFFBFBBRRL +BBFBFBBRLL +BFBFBBBRLR +FFFFBBBLLR +BFBBBBBRLL +FBBFBFFRRR +FBFFFBFLRR +FBBBFFFLLL +FFBFBFBRLR +FFFBFFBLLL +FFBBFBFLLL +BFBBBFBLLR +FFFFBFBRRL +FFFBFFBLLR +BBFFBBFRLR +BFFFFFBRRR +BFBBFFFRLR +FFFFFBBRLL +BBBFFBBRLL +BFFBFBBRRR +BFBFBFFRRL +FBBFFFBRRL +FFFBBFFLRL +FBBFFBFLLL +FBBFFFFLLR +BBFBBFBLRR +BBBFBBBRLR +FFFFBFFLLR +BFFBBFFLRL +BBFBBBFRRL +BBFFFFFRRL +BFBFFBBLRR +FFBBFFFRRL +BBFBFBFRLL +BFFBFFFRRR +BBFBFFFRLR +BFFBFBBRLL +BFFFFBBRRR +BFBFFBFLLL +FFFFFBFLRL +FBBFBBBLRL +BFBBBFBRLR +BFFFFFFLLL +FFFBFFFRLR +BFBBBFFRRR +FBBFFBBLRL +BBFFFFBRRL +BFFFFBBRRL +BBBFFFBRRR +BFBBFBBRLL +FBBFFBFLLR +FFBBFBBRRR +BBFFBFBLRL +FFBFBFBRRR +BFBBFFBLRL +BFFBBFFLLL +FFFBBBBLLR +FFBFBBFRLL +FBBBFFBLLL +BFBFBFFLRR +BFBBFFFRLL +FFBFBBBRRL +FFBBFBFRRL +FBFBBFBRRL +BFFBBBBLLL +BFBFFBBRRR +BBFBBBFLRL +BFBFFBFRRL +BFFBFFBLLL +FFBFFBFRRL +BBBFFFBRLR +FBBFFFBRRR +FFFBFFFLRL +FFFFBFBLLL +BBBBFFBLLL +BBFFFFBLLL +BBBFBBBLRL +FBFBFBBLLR +BFBFFFFLRL +BFFFFFFRLR +FFFFFFBRLR +BFFFFFBLRL +BBBBFFFLRR +FBBFBFBRLR +BFBBBBFLLR +FBBBBBFLRL +FFBFFFFRRR +FBFFBBFLLR +BBBBFFFLLL +FBBFFFFLRR +BBFBBFFRRR +BFBBBBFRRR +FBBBFFBRRL +BBFFFFBLLR +BBFFFFFRRR +BBFBFFFLRL +BFFFBFFLRR +BBBFBFFLRR +FFFBBFFRRL +FFFBFBFLRL +BFBFFBBLLL +FFBBFBBLRL +FBFFFFBLRL +FFFFBBFLLR +BFFBBFBLRR +BFBBBFBRRL +BBFFFBFLRL +FFBBBBFRLL +BFFFBFBRRR +FBBFBFFRLR +FBFFFFFLLL +BBFFBFFRLR +FBBBBFFRRL +BFFFBBBRLL +BBBFFBBRLR +FBFFBBFRRL +BBFBBBFLLR +FFBFFBFLLL +FBBFFFBRLR +BBFBBBBRLL +FBFBBBFLLL +FBBBBFFLRR +FBBBFBFRLL +FFFBBFBRRR +BBFBFBFLLL +BFBBBBFRLR +BBFBFFFRLL +FBBFBFFLLR +FFBBBFBRLL +FBBBFBFRRR +FBFBFBFRRR +FBBBFFFLLR +BBFFFBFRLL +BBFFBBFLLL +FFFBFBFLLR +FFBBFBFLLR +FBBFBBBLLL +FBBFBBFRLR +BFFFFFFLLR +FBFBBFBLRR +BBFFBFFLRL +BFFFFBFRLL +FBBBBBBLRL +FFFFFBFRRR +FBFFBBBRLR +FBBFFFFLRL +BBFFBFFLLL +FFBBFFFRRR +FFFFBBFLRL +BBFBFBBLLR +FBFBFFBLRR +FBBBFFFRRL +BFBFFBFRLR +BFBFBFFRRR +FBBBFBBLRR +BBFFBFBRRR +FFFFFBBRRR +BBFBFBBRRR +BFBBFBBLLL +FFBFFBBRLL +FBFFBFFLLL +FFBBFBFRLR +BBBFBBFLLR +FBBFBFBLRR +FFFBBBBLLL +BBFFFFBRRR +FBFFBBBLLR +FBFBFBFRRL +BBBFFBBLRL +BBFBFFBRRL +FBBFFBFRRR +FBBBBBFRLR +BFFFFBFLRR +FBBFBBFLLL +BFFFBFFRRL +BBBFFBBRRR +BBBFBFBLLL +BFFFBFBLRR +FBBBFFFRLL +FBFFFFBRLL +FBBFFBBLRR +FFBFFBFLRR +FBBBFFFRRR +BFFBFBFRRR +BBFFBFFRRL +FFBFFFFLLL +BFFFBBBLRL +FBFBFFFRLL +FBFBFFBRLL +BBBFBBBLLR +FFBFBFFRRR +FBFBBFFRLR +BBBFBFBRLL +BFBBBFFLLR +BBFBFBFRRR +FBFBBFFRRL +FFBBBFFLLL +BBFFFBBRLL +FBBBFBFLRR +FBFFBFBLLL +FFBFBFBLRL +FFFBFBBRRR +FBBBBBFRRR +BFFFBFFLLL +FFBBBBBRRR +FFFFFBFRRL +FBBBFBBRLL +FBBFBBFLLR +FBBFFFFRRR +FFBBBFBRRL +BFFBFFFLRL +BFFFFBFRRR +BFFFFBBLLL +FBBBBBFLRR +BFFBBFFRRR +BFBFBBFLLR +FFBBBFFRRR +FFBBFFBRRL +BFBFFBBLRL +BFFBFFBLRL +FFBBBBFLRL +FFBBFFBRLL +FBFFBFFLRL +FFBBBFBLLL +BBFBBFFRLR +BBBFBBBLRR +FFFBBBBRRR +BFFFFBBLRR +FFBFFFFLRL +BFBBBBBLRL +BBBFBBFRLL +FBFFFFFRLR +BBFFFFFRLL +FBFBFFFLRL +FFFBFBBRLR +FBBFBBFRRR +FBFBBFBRRR +BBFFFBFRRR +FFFFBBFRRR +FFFFBFBLLR +BFBBFBFLLR +BBFFBBBRRL +FFBBFBFRLL +FBFBFFFLLR +BFFBBBFRLL +FBBBBBBRRR +FBFFBBBRRL +FFBFBBFLRR +BFFFBFFRLR +BFBBBBFLLL +FFBBFFFRLR +FFBFBFFLRL diff --git a/2020/day06/day06.c b/2020/day06/day06.c new file mode 100644 index 0000000..aa7e79e --- /dev/null +++ b/2020/day06/day06.c @@ -0,0 +1,58 @@ +#include +#include +#include + +int main(int argc, char *argv[]) { + if (argc < 2) { + printf("Usage: %s \n", argv[0]); + return 0; + } + + FILE *fp = fopen(argv[1], "r"); + if (fp == NULL) { + printf("Could not open file %s\n", argv[1]); + return 1; + } + + bool flag_newline = false; + unsigned int answer_count = 0; + unsigned int counts[26] = {0}; + unsigned int part1 = 0; + unsigned int part2 = 0; + for (char c = getc(fp); c != EOF; c = getc(fp)) { + if (c == '\n' && flag_newline) { + for (int i = 0; i < 26; ++i) { + if (counts[i] > 0) { + part1++; + } + if (counts[i] == answer_count) { + part2++; + } + counts[i] = 0; + } + flag_newline = false; + answer_count = 0; + } else if (c == '\n') { + flag_newline = true; + answer_count++; + } else { + counts[c - 'a']++; + flag_newline = false; + } + } + + for (int i = 0; i < 26; ++i) { + if (counts[i] > 0) { + part1++; + } + if (counts[i] == answer_count) { + part2++; + } + } + + printf("%u\n", part1); + printf("%u\n", part2); + + fclose(fp); + return 0; +} diff --git a/2020/day06/day06.dyalog b/2020/day06/day06.dyalog new file mode 100644 index 0000000..b17751e --- /dev/null +++ b/2020/day06/day06.dyalog @@ -0,0 +1,4 @@ + p←⊃⎕NGET'input'1 + p←(~p∊⊂'')⊆p + +/{≢⊃∪/⍵}¨p ⍝ Part 1 + +/{≢⊃∩/⍵}¨p ⍝ Part 2 diff --git a/2020/day06/day06.rkt b/2020/day06/day06.rkt new file mode 100644 index 0000000..fafee09 --- /dev/null +++ b/2020/day06/day06.rkt @@ -0,0 +1,37 @@ +#lang racket + +(module+ test + (require rackunit)) + +(module+ main + (displayln "Day 6")) + +(define (read-input filename) + (string-split (file->string filename) "\n\n")) + +(define (count-unique str) + (set-count (set-remove (list->set (string->list str)) #\newline))) + +(define (part1 filename) + (apply + (map count-unique (read-input filename)))) + +(module+ test + (check-equal? (part1 "test") 11)) + +(module+ main + (displayln (part1 "input"))) + +(define (count-intersection str) + (define answers (string-split str "\n")) + (set-count + (apply set-intersect + (map (compose list->set string->list) answers)))) + +(define (part2 filename) + (apply + (map count-intersection (read-input filename)))) + +(module+ test + (check-equal? (part2 "test") 6)) + +(module+ main + (displayln (part2 "input"))) diff --git a/2020/day06/input b/2020/day06/input new file mode 100644 index 0000000..814e97a --- /dev/null +++ b/2020/day06/input @@ -0,0 +1,2232 @@ +bahmtpujokxdqlyi +efqksvrctzhmngw + +zfyhxoeuljmp +wrpjeymoxhfzul +ouxmhyjzpfle +zfouaelhxmynvptj +zlfojexmyhup + +wgfjlotnrx +xntjogrwfl +wrxgotnjfla + +qjtgski +bfysrculx +vwzdtpsq + +ahsp +saph +pihazus +hzptgacs +dpahksq + +ksvhn +kns + +urswemgxfn +uvgbwjli +yuczthgwp +kbuowg + +egnsbduqwtjpivxoyc +ugiwvsnjobyeqdtcxp +wqtvxseibgjupdcnoy +gecyvoniudwtbjpqsx + +jvtzcy +tzyecu +zvtmyc +ycktzm + +fvlrjwdnyq +nyfvwdjql +dqlyvfwjn +dlfyvxjwnq + +nmvjcdaywoxpbliqteskgr +wjgqutiepyaslbdomxkrvn + +ozv +qsukd + +wnizjvlrxhfpcysgae +bczhtmauekyisoxqv + +ylutpecbv +uylvptbec +ctbveuypl + +cbfwjalevion +nbojqefwcvaigu +nvebcfijoaw +ocjvnfiebaw + +hvpticezgxynwdubsjfmqkr +hwplmrgdvzueatsqnojk + +pe +kpes + +a +a +a +tv + +xudq +dq +qdw +wqvd + +kxuvbd +fiv +kv + +s +b +tif + +qljrage +aqel +qlea +aqelw +elqa + +qjgsamukhebcfo +bmlga +bmag +aivmnbg +mbngai + +kqeifuvcshrplzmj +epfykhvuzqirclms +msvekqzlfchriup +qlpzrfmbivkushcde +zvcqmeiulkhfpsr + +zrgmwqofx +vyltnpxdb + +pvgbidjysfco +jvzdgfpwscbio + +jgratmhklvoxspcef +thoampsijefvkglxc +nslqtmhyejacvkpfxgwo +dlmvpjihfoxgtascke + +wijpaqlbemut +aikhlupztgqbfcmvx +twbieparqnudml + +agn +ansp + +qdgh +oiyuqw + +fgwluhptemdynoivqjx +fgdyphuevzltmjxnoiqw +gwxftqnijohpymlubvedr +xvdeptiqoylfmwgnjuh +wnplvxyufosdijhqmteg + +teocudvi +dzuecotv +ouvectdz +ejdkutvco + +cqzr +sd + +cjrdeiw +q + +rhd +dr +dr + +xtforqiwydpl +ywitfxgopqzd +yioqtxwdgpf + +mej +bmj + +ugkbe +xqa + +imodpvys + +wj +d +y + +szojy +zylgerocjuf +ojytknzh +zqfrojsbey + +axl +dmvbhct + +xnjzefc +juwbz +vjgsoahp + +c +c +xc +khfnc +txc + +nefwt +fcunew +hefcwub +lqpdmxef + +ngbl +gnkl +lamwognj + +hyjlwuvdqfrntko +fjdhlkpcrytvmoqwnxi +jltrhbognsfykawv +rzkwflxnhyojvt + +rdbtkpxaz +yeojqhcm +xtgusirv + +r +r +r +r + +onauykid +ukoaydrnmi +daykuoin +taudikyonj +uidhoynkal + +ieoykzm +gjqxoewibktamr + +p +p + +l +l +l +kpl +l + +xhwdvceitfapro +rhafiptxvwdec +idcftqarphwvemx + +olmj +lmj +lmj +lmj +htmjlc + +zawfukbgp +kygvprw +wgkyt +hcwnokslqxdgie + +dqwpjonvuiembxayc +lfxwyoajbvdumcqpnie +jvwiymopnaucxqbed +duejmownrqabvpicxy +pwcyamvxdosqeujbiln + +kqshcv +uzdt +d + +qdvjtnekczia +jzkfhqeicatxvd +ticadkevjzq +takcjzevdpiq +tlejimqadzvkcu + +glmjdnetfhuy +lumtifngdyjqh +cfsungdmytwplkbhxj +vnltgmodyfhjzu +jfngltyudmh + +ne +xt +n + +qzhcyaflojvukmbsep +aqyvhcklpfjzusbome +lucqpoyhfazmsbkejv +euofsjzympbvklahcq + +ignmejhydvoaxrfcp +goiyvhrqmpnxcejd + +jop +jp +pja +jpo +nbphrji + +cmohreztnbjk +nrchxbeqywdsziua +zbrtnmehc + +eounjkdmztslpfivwxbqgahrcy +nxelikbqufchgwvyosjdatmpzr +yxkjgmepirtqunwsbhdfovcazl + +grjol +cwvaol +xbfpzye +jnt + +sxnrhqubzfdwlmpgy +yqlumgnxwhf +mlufqenxgywh +nfyxqughwvmlc +yquhxngmfwl + +mahnygokcfqisduxtz +ditfxqgaumosyzhkc + +wmuy +ymuw +wumy +uwmy + +my +myhc + +nq +bq +uq + +tehdqinmcv +vimcntehd +ntgvedicmh + +aghtbjvwuf +fhclwutjmgv +ruvfwjhdgi + +jvsmqfbpzndaiwc +zbdamvfcjqstniw +dnimsczgaqfvjbw + +rmd +e +e +y +e + +jgrcvikbaqhx +pfzrkouvldmqstewj + +fiaojcthgskyvurqeb +ediuswoavpjmgqbhy +iuyahnlsgzobveqxj + +sxlznjrvwcoidkp +scudozljrmnqwke + +nzqfsxcd +cqxsdfzn +nqzdfscx +scxnfdqz + +gdeaxvlqtnfb +eqdblnfvtg +dlqvetjbgnf +dtqbngvlef + +btiwohrj +biptgswnhrdj +whjfikbmtlvar + +bnfxzoclm +mzbfnoxlc +omcznvlxfb + +gnbwuvjmthyzr +nhmzubwjryvg +rbwunzmjgyhtv +lrdjvznbygucmhw +nzbwgjvryuhm + +nsq +qns +nqs + +epbdtgmnqrzacs +nazcgserqtpbd +rgteczqnbdaps +nepzbrstdqgca +pzcsudtqbnareg + +zudvpcsjgt +ayljdo + +lhqbfsa +hftvalwdcoq +xphqfal +hpbalqf +lqfpxha + +hplexwybavfud +icmlqntykgsze + +bodngmuwazsr +zwdunxmaorybgs +uszknodwrgmab +dubzawomsrng +zangrkudmbwso + +spvbq +bsvqp +vsqotbm +bveqcs + +meaglyscxhnkvi +ameksynzdjbivtcrhglx +hcnvilsyxmkugae +phioxaelgyvqcnwsmkfu + +hmwiteugrqyovxlzbjp +vcahlzmkurjeidygtwobxpq +tmxewhlypugrzqiosjbv + +maekrxispbwz +wmkdqlgaouzvjh + +xugcy +xygu +xygu + +wzixrtju +jiuwpzx +iguxjczqsw +jiuzwx + +zvbrmfane +srlygevf +refv + +r +zh +x +xk +idmvfnagw + +axcup +xapc + +pymjnecwasfvtgr +gfpqtxcemjrkyn +iegocpdzytm + +pcd +pcd +pcd +pdc +dpc + +mhbaptxcgveqysonukdlfrwi +qyodfrkumpxcslhgteibavwn +lyuigxbpdkhtemnafrvswcoq +nusbavlrchxopediqgwtmyfk + +cdk +r + +j +sj +j +s +n + +xhbmcz +cxb +cxb +bxcy +cbx + +fo +fo +of + +ewcukjogfmvqrxpbthladz +pixhfevqjkawtonrulzbmcgd +vcwdlxujpzfokhbrategmq +whfdrzoaklcgtbjxqumpve + +flkpmgq +gpqtkml + +mprkgn +npkrtmzu +gmkqzrp +adwoclpkjexfrm + +ke +e +e + +of +j +iaj +bhv + +eoxpcijm +pxjmecoa +cmopxije +jmxocpe + +bfrotcepu +ftenzuorcb +foeyucrbtm + +xlho +loh +olh +olh + +omdqx +heuyiont + +qazhxefcgtlnryudomws +tqldxuycfahmonreswzg +dbqrsguozljxmanchywfet +mnsfzuloavqekhygxtcrdw + +x +x +x +epsx + +o +o +o + +wfqogyvcslbhm +vgfhslmwcyobtq +hwbylocgmsfqv + +xzrilvynesmfu +mzeyvifslr +isrxbmvlzqfpey +ivkeyjlfamgczhort +mevziyrfl + +dhamcztn +xyduszkht +mhtdz + +vw +tvwx +wva +vbfw +vxw + +xs +bnvfakpm +o +c + +ebtou +heoutb +eutbo + +dqitrge +derqigc +ykapohqrdlesmwub +ejvrzqdg + +moafibndpvkexrlj +elikpxrnjmbfvdoa +fxbliknpdvjmorea + +jvufzme +udemvfj +umjedfvy +mujverf + +zi +zmia +iz +ziq + +rxeowpctzid +rwifctpoxdez +cdeotwripxz +cedxopwirtmz + +racvsinpgytx +slaetpxcdgry +ntsacpxyrgo +awgzxrpscnty +tyoxvgpiracs + +hbc +hcbn +cbl + +ypicgfklovnxwhj +hojykxcmfpdgbeq +uohwgkftvjzcpyrx + +odmzsbrlhfe +rmzhdolsf + +gqczivybjr +bwoivqz +bsqnlmvhaxd +tuzcqvb + +rekdt +sgw + +kalcwdinzuvjbyotf +bvwactldonzuify +lpbactswdfiovryzxn + +jkelaizpyovqmtwf +zfowivedmajqlk +evfamzwjobliur +fzolxmsinecawvj +gfqmaeyvlbhzjkwoi + +xcqbfopseavihdj +ievfbcoxdpqs + +gwpjtlvixqhr +qupwstlxv +qpvlwxt +unpqlwtxv + +bwreknof +ksdplqhmu + +kq +kq +qk +kq +qk + +hknqf +hqxymkrnpeu +khntvsibq + +ujklgexntmqzoyba +ngamlfbtojkueiyz +etymalonkszgujb +lzkabtgnyuomej + +sbizytmnqdog +wdatnumoxiyqfb + +edtakblzrihnupsv +rlstkdfubinaz +urjatmbkzidnlf +kzatilrdubn +ybdwcolguxktziqrna + +vcmzgolp +vzpcolm +plmvuqocz +pvmzloc + +wljih +kinwlho +wlih + +mpbrlizqgy +nzgtbpiaycvr +lzhbrdigyp + +vocauldtbgmnhqesjyxr +gsmoydtzcjenuhprxlqvab +xcmshnuqavgbjoertlyd + +fienpjg +pgjfnei + +yjr +rywj + +s +q +s +a +n + +ztmgncjxiwedfb +fcwbznixjgdoetm +ngbzocitewxdmfj +ciqwhjegnszfbxrtvdm + +zkqph +qphkz +pkhqz +qpkrizah +phzqk + +pjftsvdlxkcguroh +onrdpctlkujsfehz + +tghbqkwlyozmfisderv +qkfwbidlotevpg +vofjilpxgkbeatdqwc + +sopazrdufgi +lakdcroe +rdoa +jdonhrat +rmdeonax + +dvp +vdp +dvp +pdv + +jhtsp +tshjp +hstijp +hjtps + +r +rd +ls + +erjq +qejr + +oheparulijf +sjfilgrhobqecu +irowuepdvjflhn +reijlfohnu +yirflnjuheo + +fiwbgcqu +wuebcifg +wziugbcarf + +bxnaz +bkxvcnw +sdjwn +xwyavn +fniolegp + +yvpgqde +odzpymgveq +aegvdpyq + +hybklv +lkvgb +dkczvlb +kblv +blvhk + +oeabws +aslm +majpshn +eguaosxwy +tscvikfdrzqa + +ijops +osdjp +hsoupnj +fjsopd +jopsf + +qphlrmao +pcmo +qihopucm +onsptgfdym + +dlcfhoivwm +otmlxkscwihfjdb +whmcfloid +lifamocphwd + +kuy +ky +ky + +ftpwvkgjlxcbienodu +mqicztsohjvbfaryl + +i +i +i + +mbyoshxedcaw +gimxpetyswdbcah +wdqemxachoybs + +t +y +m +y + +intmofjra +rfmjta +afrjmt +amrjtf +jfrmta + +mogkvynhd +nkyodvmgh +khdmnoyvg +gnkhrmovyd +dnmohyvgk + +rdickjlmqpshz +hmdriqskjblp +igvqawdkhrlysjpm +slkjphmzfidqr + +de +ed +ed + +rfz +lrazjwbtud +kfzr + +pdr +galxof + +edsfzramctunoib +rtnxamszcuei +aunzescmriqtl + +i +alycbr + +t +t +t + +xcrtsdylbnikahpfm +zsiwocetrlbd +ldribcsgt + +rhvdngyojzmi +yidrovnj +dnyjxezvromi +vtokidybjpqcnfr +nyjdovari + +fpuvwyen +fewpnvy + +hdnybwlmsvorecpxigzk +qmdeoihrnxkybltjgwasuzv + +zjphxiyvguteqfasbmcowrl +hycqrafsmvgpjbzoxiuwte +pcryiuhzqogmwxafebtjsv +ixveptmrqbcugsjwayhzof +soxbahtfipezqucgmrvwjy + +kbptzgruasony +gbndzuprtwakyocs +aybtlzskjounpger +mrovnzsatqpkugbyifhx +tpbuonrgskyaz + +spknwfajybmlgucov +gmrynoqtpfwbuasvjzclk +lapnjhvoscwfemyguk + +dcynsw +cywnso +cysnw +yqnscw + +yavbzrfmtshuljxdpiqwg +wjzbrnivapfuqymtgsldhx +vaqdtzxjrmyhgeuplwsfbi +mqtpxygsulfahbvjzirwd +paqjxibrtwsfgdlmvhzyu + +t +t +t +t + +etzw +wdjzpvto +zwt +ztw + +egvbrzscuthifdylpmw +drwcmgvtzslhufibype +mtegulvrcdhiyzfbswp + +uenwf +enuwf +wenudyf +fnewguz + +kxgqyf +bkniwax +fbek +cogk +lrsk + +kyioclr +kcyzlmori +kymocjrli +flborikucy + +yfpuwbgmndtrivsh +bztmnpifhwlrjyue +utrmopnijbyhwf +wpfbmnulhryit + +dmit +ik + +fsmdoaw +aos +jsreuzbga +aksfoy +tsayl + +pjawkeqd +kwlqepadjv +qjkpweda +wadkjepq + +bjctaip +oyuiapstgdcj +tbaphixcj +itjcpa + +hp +hbus +bkh +jbhg +had + +qkegijrmhzfbdpsoux +oubjdehpqxmkrifz +phozmqkdiyfxaurjbe +unfehmidzroxqbjpk + +fyrbg +mtqybsvwazju + +hd +rlyh +xdh +hwx + +w +zw +e + +jqgtzikvwslxan +enasqwmbdrfxot + +pnuyvwst +pwnyvsut +bsuvtypwjan + +tabfmouhcpgre +atjrfkmcgqpuob + +vdim +iv +iv +iv +ivh + +ulqhxetamivfyr +tleqvhiarfxyu +fbvltcayeriqgxhj + +minth +iuknmvp +min + +zjfpwytesq +jvtfszqe +zqoemfij +sjzquedf + +xszhfdeuomynvbqwjiprltg +hsytwjnrdlfuqbiopzxvmeg +mgtepujxwyqbvdhiznrlfso +xonlavjhwiyftduezqgbpsrm +pswglfmznodityuqjbxverh + +sjp +jsy +jys +mzcefastxulqjn + +qaocszriptkxygmnefwlvuhb +awgtosevhufknrplbzqmyix +genislqhmubovrwptxzyafk + +xweoluafi +usfxabhwl + +zwqxpnjbhlc +zthplcwnxbd +phxolncbauzw +hpmzxwlbcekn +zcnlhpdxbw + +pxfwbregdscmi +xgdsbwmfriep +sxeprbmgdfiw +egbsripdmwxf +vswemdbgrfxpi + +lac +pla +cla +al +al + +a +i + +vag +grvoa +avg + +oldcjagpxrimusnf +nojxsfpludvmahcg + +mkxpzdhfy +gdkfahvyczsoxm +bdfzyxhkml +mkdfpxzyh +nhfzmdxkiy + +orfsmhebui +bfamvrteisz +ygirsmebofu + +hb +hskb +hfb +bh +bh + +xlzcpwmhrteusnbq +zmluehrcqpsbnvwtx + +fbrjycd +crybdj +bcjfryd +ycrdjb +cbdgtyrj + +fseljtvbymrwgphaxzkoun +vhlwsedcafpbxqjt + +jbflsxaq +ltrbnki +ehzpcduoygwvm + +aymbucz +czvua +ozcqfktgeshn + +ocljnmwkxybhuq +culwxoqhkjnmyb +ncbqwylmkxjuho +wlqyxcjhoubmnk +ojhxwcmukblnqy + +cwbfihts +fqtwibshc +wischtfb + +hdqybfu +dvcaghi + +mzpe +empjz +jmzp +mpbz + +kbgholzavfjutre +vkbflohajtgzdue +laehdtzbkjgvufo + +mksxpqw +kxdlqpwm + +jhewpxntlrvisbycqaok +ceblxiswkntpjqhyrva + +i +gi +i +i + +byceaxmljr +bcajlreym +qcvmsayeljrb +cexralmjby + +xzhdecapmbgqouvry +jrzahoeuyqmxgdcvipb + +vaxhrge +qivl + +x +x +x +o +x + +qoglswaiv +scapvgoi +iwvpagosq +giuktfoajveys + +dmfoth +ybkp +bj + +wfvmze +zefmvw + +ciw +cwsg +cwya +odcwi + +riuva +huprevai +iavur +raivu + +nqrlytspvekxiacgh +hwdvjstbfxucmzoae + +xwyihe +ihwexya +yzxiwoeh +yxfioewhzn + +jymrpqltwzo +ortjpmywqzl +pyqortzlmwj +mzbqpjyrotlcw +zwmproltyjq + +up +n +x +t +t + +vbdjgfiakcwxrntyq +urvxceigtflwqbj + +aepynl +ltenfayp +aepnly + +rskdym +z +u +fvz + +swzboecmj +ofqysr +dlso +rfsol + +bvwgndfhje +wevnbcihpgjd +kbhjuswnzyvodg +qjngblwmhdav +hiwdjfvpbgn + +bulfevqhkcnyxogzadstpr +fpqdxoblcknsevratuhzyg + +wp +pwr +wpr +wp +ypw + +umwny +mnywu +mynuw +uymwn + +zyhjm +myuhbj +jyhkm +yqnhjlxm + +brecz +zcerv +dctszxjrp + +azmkg +ngzm +femogjzhqx + +ujlo +gobszle +ralxodt +iqldo + +ipkcmsehutzngq +ksvchgpeq + +o +zxyv +caqyes +xmp +lfjthgdbink + +qtpmfhdbjgy +dtqbmjhygfp +jtyfwdhbmqp + +zjtcidfwepbvha +ujbcpqyizadrtkfs +dnxglbapmtiojfz + +rplygqnjwhfsuz +hnlaocqyudkpbirfj + +oncarbktqsdjeli +deiwumxnrbgsycktlaohpq +qsntcboridkael +rtoicjbldnvkeqas + +vogznx +eovpxng +qvonxdg +vogxn + +tfyrgliaqpw +rptiedfoycgz + +hvxstno +vixwoth + +uzhlafxegir +izghfexular +lhmieusajzfx +rxufzolhaei + +jhzbgrysnmxipqkdoltwuc +busrxgqjwpkhmdztfvnlcio +ipvqxmtulgdojzswrcknhb +zojluhprndmtgkswqcbxi +nlpcwougbtkdhjzqsmrxai + +guxsefpdcat +euaidxrmpk + +rm +am +mi + +kanjlqisd +nlqjski +kilnjsq +lnjqiks + +ofmj +oljf +fo +oif +ofl + +xsohetukdvfw +clofshvdnuex + +gbrdntxhuaos +bhdrxgatsunol +odtxgharbnsu +asuohtxrbngd + +vs +vs +vs + +difybepzm +yezbdpo +zevdgpby + +icwrnxsaovymfbjlhtzuqepgkd +vindcpwxmkbyejgtozfurhsqla +oevdyibthljamzcqrpxsfnkugw +kbjramizwvlpnxgsodtfyqcehu + +zvwshtxlpbafy +tafplbzhsvygw +kcvshbtylzwdfpa + +gpkzqnfdca +xygqkadpcfnz +nqidzcfpaxgk +nagpsxqukczdf +wqznfmlrkbgcdpa + +afnuj +jna +ju +fj +jq + +waudphkvszbqmf +kswhzumvacd +askzuhmvwd +dhwmkusazlv +kdvsuhazmwc + +xrgbhtluzdicsvjn +lstzbjhavugkyix +gxehjbvsilzut +xblmqszghvtuji +zsxbjulohgvptqiw + +segdrut +eustdjgr +shgervtdu +rgusetd +tesgurd + +arypx +rp +pr +pr +pkr + +ervlysmukiwnb +bkuvyhewrmnli + +jwx +vw +w +ncwi +wmg + +vxjlhgbqcswunpoae +sqbenjxgphwcoualv +ulokbivqwjxghcrspeazn +qousgvehtwlabfncjxp +cvuhawpgqysbolxjne + +eayjmtgdnwhbpri +dpgabyrnhiejt +egdtnjoyrbpaih + +dzrcxijobqhugelwm +lozdwgbcmujhqex +bnzdeuxwmcghqloj +yucoplsqjewmxdbhgz +eoxtdbumhcjlqzgw + +thlgnpdqzxrjmovci +qzmwfrgej +srgukazjmbyq +grmqzjb + +kqaiuy +qiukatd + +unbvhmkcw +blihfmencuw + +ilzpukbaefrcn +xaemrhbdlwkgt + +jotn +xsj + +aiefcuhd +fhdiuaec +tudifcahe +idchfuae +udhecifa + +ewihbavof +xheiodmv + +biemhqwz +ibzemwhq +bzwehimq + +pdo +hvp +jpnx + +homceuqkwtfzlsiajnxp +xwelmjhnpfckasuiqtzo +msxwkpfozinetuhjalcq +lmzkqfexiwsthcaopnju + +rhtd +hty +yth +vhcut +htd + +t +t +t +t + +klubenvtifwzosm +jathfcopmkgwvi +vmxtrwyofiqk + +hknuqsa +cernkmusjp +skanu +sakunx + +nxaodviqstkb +tikaqsfxovd +xavmyopsdqti +atsdvxiolq +iqxvjsowarzetugd + +x +y + +hpqnri +hybnxwqmp + +hxykaufsvezitgwcn +nsvxciguhp +bhvgucxnis +nhugvcxsi +uhgcnivsx + +ndlcpzg +lpczngd +czgdpnl +dglnzcp +gpzalncd + +okhjd +yaziks +xybksiev + +hwgny +fythgn + +y +npa +z + +mfothwgpecuq +epuwhgctofmq +cmhutoweqafpg + +dkeobv +ebvdk +vbkdeo +dkqvbame +kodbve + +ae +e +eq +ex + +mrixcujkpbdagsnzoefl +dojmzlesrncabfxupigk +ifnbcmxzodkpjeaslugr +lxbudepfncoagjkrszim + +t +r +t +k +y + +cetgjhowruyandsixlm +xlhwogaiscjrdm +opivlrbzcxhaqgwjsm + +crpawehus +cpuerawmdh + +vmydxksc +vmxdykscz +symkcvdx +xdysmvkc +xkyvsdcm + +nmavdr +mdvnra +dvmanr + +wehnsuti +uiwsenth +wsheutni +huswitne +usiehnwt + +zqcskloxp +pklczxs +pxcszkl +lxszpck +lpkzxsc + +wnusyg +amsnyiuw +synjmupw +dbtezqsunyof + +avjekgyidul +eivgkujyal +luqvijawykecgt +jkliyeaguv +ldvkgiayeju + +wcjxemvzohnq +cweoxnhqjvmz +hzwxqjcvoemn +voqjmcnxezhw +wxcmjnezvhoq + +sojluqwmcpybn +tinkbwmjcqslxup + +npjkeursaw +kesypranwuj +karejslnwup +rpwnskjeua + +xadl +rdlaf +alrd +dla + +jngt +jtg +jltgc + +nivy +inyv +ynvi +nyiv + +oufe +o +o +vo + +h +eh +jxm + +nswibqrletfzxoadumjky +maxefksqdjnlocztirwuyb +edriwobkmlpusnzjgqatfyx +iukzwoyfaqsljrtmedxnb + +b +b +b +kb +b + +gunvw +vnuwg +uwgnv +wvugn + +k +k +mk + +el +e +e +e + +obswpcdvkthyal +ltsbyizcxvpn +qpsytmclvb + +ktaicp +kpcawit +vptcakqwi +nhctiukp + +kuehwjgn +ukhjnwge +hungkwje +khujweng +gnukhjwe + +wruheclqy +fychwdqlu +qcyuehwlg +vcywupzinslxqho +qywhclu + +esngwivkr +swgeirkvn +vwsrenkig +ekvisrgwn +irekgwsnv + +ivrhjsugaxpeydczoqnfwbtm +hoxwtzbifdpyqvancmujgers +ujgbnsmeayqrpfcxiotzdhwv +bdtrvxfoimpcuegzhnsqajwy + +t +t + +eozdykwi +lwtm + +myiext +qi +riuqjlnp +ipko + +gbaf +gfbtsa + +jliadfuqczs +hjyvdixtngmp + +ncv +cnv +vcn + +so +os + +imkusqbevzwtanlr +aqmeunbxlivzwrtks +msibaqetznukwfvlr + +kavi +viduya + +uahvskndgwrzictfqjoy +iuptfmzxgjrwvdyboahnq +roadwcfyjhuszgqvint + +ivpmqatdsr +gzmitpdus +axtvqijpdsm + +ntuxeg +iezodns +yfcvbnlkh + +kdipzhrjgl +sprqzy +uirdbfcwzpe + +vopubjyhwgqzndexkmacftrl +zeivofqjwrmtkglxpbduahncy +ckarxmehtqwjfubolpvdzgny + +rfwtymkx +xtkwdym +mktcyswixn +ldkwtfmxayq + +of +of +of +of + +grjoqf +kefnujog +gbrofju +fjhztgo +gpjoavfx + +bu +bu +bd +bu +b + +tvnlgr +tlrgnvh +nglvtr +ngrtvl +trvlng + +tlfnpacmrzodus +ucljdqomtxzfs +cosudmxbztijlf + +tcqj +i +xgi + +dfhgkomiswlvnaqtebcuyzx +ceakvtplgudiyszmbohxqfn +zcskdtnlfjigbvoqexuayhm + +genkycqds +psdqgney +seqydngh +sldgyneq +desnyqhgb + +joryigvaehsbpuqlxcdtz +zejtdarybqcvhpulsgi +iclreapvjzbdtguhysq + +hz +zhr +czlwbhqjaos + +pdjavbqnoksgcemr +eqrtcokdvngapmsj +odljrveknqzmywscigpa +rjtepqdhngavmobskc +jgoarvspnxdkcemuq + +ncjzxeila +vpwztj +ozrjdhp +jyzv +zhjqkt + +bqjkozxyrcpgvif +vqryjgzpibckxfo + +mey +g +ixh +eo + +cshyvjlwfrzx +fjlyrcvzohsx +jcfryptdnkvlxsh + +ajrmzwqeyopinfdtvhlub +ynijdwhpqlorfbtzauemv +bwaunojvpzylqiedfrthm +ldecnzpmrjvbyfwtiohgxauq + +d +rdo + +swyfcgqmerv +eqckjrygwl + +z +z +z + +jiqmtd +medqjv +mdqij + +dc +dvbto + +wmqal +lqmaw +lawmq +lmwaq + +eskloxhvcmqidanrg +jgsqokvixcfmerhandl +eqhgyodxrnkmvcisla +hsknqliecgarxodmv + +dowujxam +xjomudwa +amuwdjox +muowxjda + +dnvkzyq +zeyqkvd +jcyedvqkz +kdbzimsqahyufv +dqvzyk + +vtxbmlre +mxrlev + +gvkzdaybmieuon +kunaiozev +inuxovakze +pcskafrzvhineuo +vuzkodinae + +y +y +y +y +uby + +ifpwdumxkasjctgoh +suoipdqckfhlmwjantx +xiscayejzhpukgwtofdm +ymspjiwvxhfokdutac +sdhcmiotaxuwkpfj + +uoqfihpzxtyrg +jfhxoduylrbetzkm +youtwfnzxsrh +prxzoyufhctn + +grcuhy +aoybvc +udlcvq +chg +mjeztsfck + +gytbdpfxejszmc +hliaxrtkc + +oiakun +anhukio +zuakino +koenqduia + +jbtgwvex +rlasxquebch + +kmhlsizfcdyvoea +kfiglaydnhsmvzep +mhvfeylxksazdi +slmaefdiyjzhuvk +ftshlkiydzvemca + +bxvmzrt +mbrxtu +btrxyqpimha +ldbvtxrfm + +uiwertlnygfmjxsdkbzoa +ztjxwbdrfmiusyoge +zybugaximtjwfrodes +uzfijsxymdbrtegow +cyoebvmqipguxjdwzsrtf + +wyhiqzl +uqlyizhw +ifhywlzq +heiwkqzvytl + +mtkiqvcawhlxgd +hwgtadkxqcvim +cixtdmvqwsaghk + +wo +to +o +oj +o + +cyzokbegi +giyeczo +geyiozc + +ejndhrgzbqsptla +jasplgbedhrntzq +jsbtzpanlrehgdq + +ndcvtbgk +ncgkdvr + +potxyvesh +bsfouxewgyv + +wkbcr +jr +r +r +r + +xqpukenjsmyzfw +efyspmkxzuqjwn +fsupyemwxqznkj + +bixsvtrwzu +ralusjgthmpfcvdny +twsvkur +tvoeiurs + +gmpedxaobntlquwsjhciyzfkvr +ijgmfetxwsoyzucvkpqahrbdln + +bzonmpgjfrciqdskv +nkscpmvqrgizodjbf +icsvjbgfnlzrkpomqd +nqorbikmsgcpfdzvj +nomzvcsifkbgpdqjr + +yoel +loye + +kspzboay +upxbvyozsjk + +pnykvmqzhtboxdaljgeirufswc +ndhcexmartsjlypfgzwbkqvou + +lui +ilu +lui +liju +ilu + +eojbguvxs +xhvzenmc + +qtfwzmuhoans +noypqgvrfljc + +pszrwk +dkrwsqp + +sheyiqcwrzbutvplfj +hxqoywagjpukzvlnrise + +kwpqa +qka +qak +kaq + +ojtvri +sbjit +ejit + +etczgwk +ctkzfew +rkdvsqjyxltmhzew +zoebwkt +obwgektz + +qjosv +jxqsov + +mebwuxynkv +byfuknpvmxwe + +qpftwxhlk +gqwifvmcxkpytrl +lqxpfwkt +nhpqzwxlftk + +nu +un +un + +aftyngmwieolzpjdvq +mintwqfdpgjezvyola +mfyvadogzitwjeqlnp +dyjrxgfqmpilenztowva + +vum +mv + +gkxybcujezdwfp +pkdbwlyjxguefc + +akicjusonfe +egkmrouphjf +ryeoufkgj +jxlkfroeuq + +lqgzhrtscypfwajvo +vqstjcyolprwafz +qyrpvjozflwtcas +jvycuptolrnfazkswq +ryazxijfstovpwecql + +wfzjtluc +fjuczlwt +ztjwfucl + +bgpqvhejoic +rcytxhzwudkln + +ueybks +bkued + +gxfbtcizvoejykl +xgycivjhprldof +jvicmoxyflgw + +hor +hro +hro +roh +hor + +ryaewmnbvqxskzg +nwqgtmdkich + +pduyifmqevl +idwqevpfy +pldfveyqi +nxgqoadpyzveifj +yvpdefqci + +tjsmluz +aozs +zgosd +sioza + +huty +okyu +pmgfxjuye +iuhyko +uyoqah + +iqmzkug +qizkmg +mgldirzkx +mikzge +gmzkit + +ov +vo +ovwq +solv +vo + +vqref +qvfre + +bvnksxythm +ztbnvhsmqy +cfstyvnomlbhr +dbhaytszunvim +mybjkhvtns + +ylxvqwrmg +lxroewygv +ahyxvnzsulkrw +mvxlrdiyw + +kpuob +dbop +dpob +pbo + +adijclzeb +eblzjaic +wfbaczjeli +blcjeiazx + +klys +lptsx +kylsw +swl + +moezgwihl +mwhzoeig +iehmdgoz + +ldnau +udl +wdltmcf + +lbdpxuvif +lnqamdcobk +tldifxbzu + +fotkdyu +chvxidoue + +ybmcivurgz +yrzumibvgc +yubczgrmjvhi +zigrvybmcu + +unw +wun + +gyu +uy +yu + +nridthojbluzev +ruhnexqyvzckfat + +wkxevsricdaobfjmgu +vrwijgadcxqbesumfk +jwecbvfikxsurdmag + +krcyexlnpmauqbvhzstfdgiwj +qfgranzpmlwtkcxvsiedyub +axdteyfqvrzulwmnspbcgki + +ya +ya +ya +ay + +ftq +m +m +h + +ysufbamev +uts +stuo +usr +tus + +vhqpgtexomabijdclwur +lmnzriyfupwsgxvjkhqebc + +yvtglrsdauwczfmexhbnk +nsbxdtigmkwcuvreyzlha +sacrwyhlkmpunzvidbxget + +hw +w +w + +ftnkzjopcd +lcqyvegub + +rz +bcl + +ypquzcndevm +xvefdlrycmpzos + +trjcni +niatrc +aticnrj +nceritp + +fkyv +nm +amd + +v +v +upm + +bncvspw +qyzaukrgctjidol + +vqg +qvg +gvq +gqv + +spqfwgejyvbctidxz +brcfnzjtuqdwsiglhyxe +oibsyjtkcgfxdqzwe +pwfzqsycebotxdgij + +ve +ovc + +enmhy +xsovube +yre +raqzem +enht + +posdnhxbacmykvfwzrqelt +kbtpvhyufazdwmncojslq +tuhoavbpqnlydcfswmzk +dsfzkcmtnwovbhpjqlya +kjqdcohmpfvybtwsnlaz + +hertdw +wtdreh +hdtiuwesjrg + +xnydqrlau +xduclranyf +vyrxuldan +xyrusadln + +lvkhfogn +jtiyzaq +rxbpwuk + +kixeqphrutyca +dvjblmosz + +hjcgypifnmtebdwv +dtivyhmgnbeuwfcpj +cbjqeiwdmytvpfgn + +nuojfltd +swkqftlmjn +zarpivltcj +tyjbslq +hlbutqj + +oakrtfhsw +fswahocrkt +hosraktfw +rohwafkst + +insvwpjxgdfryeuo +kczq +zcb + +wa +iq +rq +jq + +gvke +daewubpn +ykzeh + +obuimdwklfzrsct +ruzkwoxadmfytl +tfdzjurxeqnlgokmvw +wtymkalfzderuo +ldrptzhaxmfouwk + +qsnk +ks +ks +szk +ksy + +ypdv +pihd + +vy +osxjmwklf +achbiqyntr +ned + +dcqgyiflm +gqcfn +fcqgwnh +qpgfkhbc + +qesdpalbnfjyrzhim +xocesfutkghymvb diff --git a/2020/day06/test b/2020/day06/test new file mode 100644 index 0000000..0f5b3bc --- /dev/null +++ b/2020/day06/test @@ -0,0 +1,15 @@ +abc + +a +b +c + +ab +ac + +a +a +a +a + +b diff --git a/2020/day07/day07.dyalog b/2020/day07/day07.dyalog new file mode 100644 index 0000000..ac39c7f --- /dev/null +++ b/2020/day07/day07.dyalog @@ -0,0 +1,9 @@ + ⎕IO←0 + p←'(^|\d )\w+ \w+ bag'⎕S'&'¨⊃⎕NGET'input'1 + bags←⊃¨p + edges←1↓¨p + adj←edges∘.{0⌈48-⍨⎕UCS⊃⊃(∨/¨(⊂⍵)⍷¨⍺)/⍺}bags + gold←bags⍳⊂'shiny gold bag' + ¯1+⍴({∪⍵,⊃¨⍸1⌊adj[;⍵]}⍣≡)1⍴gold ⍝ Part 1 + inside←{⊃{∊1↓¨⍸adj[⍵;]}¨⊂⍵} + ¯1+⍴∊{(inside⍣⍵)1⍴gold}¨⍳100 ⍝ Part 2 diff --git a/2020/day07/day07.rkt b/2020/day07/day07.rkt new file mode 100644 index 0000000..d585a34 --- /dev/null +++ b/2020/day07/day07.rkt @@ -0,0 +1,52 @@ +#lang racket/base + +(require racket/list + racket/string + graph) + +(module+ test + (require rackunit)) + +(module+ main + (displayln "Day 7")) + +(define (read-input filename) + (with-input-from-file filename + (lambda () + (weighted-graph/directed + (append* + (for/list ([line (in-lines)] + #:unless (string-contains? line "contain no")) + (define nodes (regexp-match* #px"\\w+\\s\\w+ bag" line)) + (define weights (map string->number (regexp-match* #px"\\d+" line))) + (for/list ([node (cdr nodes)] + [w weights]) + (list w (car nodes) node)))))))) + +(define (part1 filename) + (define g (read-input filename)) + (define-values (dists preds) (bfs (transpose g) "shiny gold bag")) + (for/sum ([(k v) dists] + #:when (< 0 v +inf.0)) + 1)) + +(module+ test + (check-equal? (part1 "test") 4)) + +(module+ main + (displayln (part1 "input"))) + +(define (count-bags g bag) + (add1 (for/sum ([t (in-neighbors g bag)]) + (* (edge-weight g bag t) (count-bags g t))))) + +(define (part2 filename) + (define g (read-input filename)) + (sub1 (count-bags g "shiny gold bag"))) + +(module+ test + (check-equal? (part2 "test") 32) + (check-equal? (part2 "test2") 126)) + +(module+ main + (displayln (part2 "input"))) diff --git a/2020/day07/input b/2020/day07/input new file mode 100644 index 0000000..1390fba --- /dev/null +++ b/2020/day07/input @@ -0,0 +1,594 @@ +mirrored gold bags contain 3 light teal bags. +clear gold bags contain 5 light maroon bags, 4 pale tomato bags, 5 clear blue bags. +dark olive bags contain 5 plaid black bags, 2 dim plum bags, 2 light cyan bags. +bright white bags contain 2 pale violet bags, 5 mirrored orange bags, 3 faded beige bags. +posh green bags contain 4 shiny gray bags. +posh lime bags contain 3 muted lavender bags, 1 clear magenta bag, 5 muted orange bags, 3 mirrored cyan bags. +striped turquoise bags contain 3 pale red bags, 4 wavy lime bags, 4 wavy aqua bags. +pale fuchsia bags contain 1 striped purple bag. +dark magenta bags contain 4 light indigo bags, 1 wavy lavender bag, 1 clear teal bag. +drab teal bags contain 5 pale bronze bags. +muted aqua bags contain 4 wavy bronze bags, 1 pale plum bag. +vibrant brown bags contain 4 dull turquoise bags. +vibrant green bags contain 5 dim violet bags, 2 dotted red bags, 2 dull indigo bags. +wavy black bags contain 3 posh yellow bags, 5 wavy coral bags. +light fuchsia bags contain 1 dull violet bag, 5 dim indigo bags, 4 plaid red bags, 5 dotted bronze bags. +drab bronze bags contain 5 dim tan bags, 4 mirrored yellow bags, 5 dim indigo bags. +plaid silver bags contain 4 pale orange bags. +wavy red bags contain 3 muted chartreuse bags, 4 light silver bags. +light aqua bags contain 4 dark cyan bags, 3 shiny aqua bags, 1 light olive bag, 3 wavy purple bags. +wavy salmon bags contain 1 shiny blue bag, 2 bright green bags, 5 dark beige bags. +vibrant indigo bags contain 4 drab lime bags, 5 plaid turquoise bags. +striped violet bags contain 3 dim violet bags, 3 striped purple bags. +dull salmon bags contain 5 vibrant turquoise bags, 5 muted black bags. +dark lavender bags contain 5 pale gold bags, 5 pale silver bags. +clear lavender bags contain 1 faded turquoise bag. +striped crimson bags contain 2 dull turquoise bags, 1 dotted red bag, 5 striped yellow bags. +posh chartreuse bags contain 2 wavy lavender bags, 2 striped black bags, 5 dim blue bags, 5 bright fuchsia bags. +clear tomato bags contain 1 mirrored violet bag, 4 pale gold bags, 5 bright bronze bags. +clear brown bags contain 3 plaid fuchsia bags. +pale aqua bags contain 3 pale indigo bags, 1 dark lime bag, 4 dim magenta bags. +bright maroon bags contain 4 wavy yellow bags, 4 bright tan bags, 2 posh indigo bags, 4 shiny white bags. +wavy purple bags contain 1 faded beige bag, 2 drab salmon bags, 3 mirrored yellow bags. +muted salmon bags contain 5 bright olive bags, 2 striped white bags, 3 dotted coral bags. +dotted maroon bags contain 4 striped brown bags. +wavy turquoise bags contain 1 dim indigo bag, 3 clear lavender bags. +muted tomato bags contain 2 wavy turquoise bags, 4 pale crimson bags. +faded teal bags contain 2 dotted yellow bags, 4 dull olive bags. +dotted blue bags contain 4 striped plum bags, 4 striped cyan bags, 2 drab bronze bags. +posh teal bags contain 2 vibrant purple bags, 4 plaid fuchsia bags, 2 light green bags, 3 light chartreuse bags. +muted gold bags contain 1 muted green bag, 1 vibrant brown bag, 5 pale crimson bags. +clear olive bags contain no other bags. +dotted beige bags contain 4 posh beige bags, 2 pale silver bags. +vibrant lavender bags contain 4 dark tomato bags, 5 dim black bags, 3 dim aqua bags. +wavy maroon bags contain 1 drab turquoise bag, 1 shiny indigo bag. +muted magenta bags contain 4 posh indigo bags, 4 faded brown bags. +dull tomato bags contain 1 pale green bag, 1 plaid gold bag, 5 plaid yellow bags, 5 mirrored blue bags. +mirrored black bags contain 5 drab crimson bags. +dull green bags contain 4 shiny orange bags. +dark cyan bags contain 3 pale gold bags. +faded black bags contain 2 clear beige bags, 4 bright red bags, 1 striped black bag. +wavy indigo bags contain 2 pale brown bags. +dim white bags contain 3 clear violet bags, 3 vibrant indigo bags. +muted green bags contain 1 bright white bag. +posh coral bags contain 3 shiny purple bags, 2 light brown bags, 3 pale gray bags, 1 dull turquoise bag. +dull white bags contain 5 bright plum bags, 5 light green bags, 3 plaid purple bags, 1 faded white bag. +bright salmon bags contain 3 dull indigo bags, 3 muted plum bags, 3 muted bronze bags. +dotted green bags contain 1 posh purple bag. +posh salmon bags contain 1 shiny brown bag, 2 dark red bags, 3 drab gold bags. +pale olive bags contain 4 shiny maroon bags, 3 shiny white bags, 2 dim lavender bags. +dotted lime bags contain 4 mirrored plum bags, 2 dotted blue bags, 3 light salmon bags. +dim blue bags contain 5 shiny lime bags, 5 wavy cyan bags, 3 dotted cyan bags, 5 vibrant turquoise bags. +dim gold bags contain 3 wavy lavender bags, 4 dark silver bags, 4 striped green bags, 4 posh plum bags. +drab lime bags contain 3 clear black bags. +dim red bags contain 1 mirrored olive bag, 1 plaid violet bag. +posh white bags contain 3 pale indigo bags, 1 pale black bag, 5 light green bags, 2 light maroon bags. +dim brown bags contain 5 dotted black bags, 5 dotted red bags. +drab gold bags contain 4 mirrored orange bags, 5 drab beige bags, 4 pale gold bags. +shiny green bags contain 5 mirrored gray bags, 4 pale maroon bags, 1 striped coral bag. +clear teal bags contain 3 vibrant crimson bags, 4 posh teal bags, 5 striped lime bags, 3 plaid green bags. +wavy coral bags contain 3 drab beige bags, 2 drab magenta bags. +plaid tan bags contain 4 faded yellow bags, 4 dull gray bags, 2 shiny lime bags. +shiny blue bags contain 1 faded white bag, 5 dull turquoise bags. +striped green bags contain 4 dull blue bags, 1 muted tan bag, 1 wavy lavender bag, 1 muted gray bag. +wavy tan bags contain 4 wavy bronze bags, 2 pale plum bags, 2 plaid indigo bags, 2 light lavender bags. +faded violet bags contain 5 dull turquoise bags, 4 bright orange bags, 5 drab lavender bags. +striped magenta bags contain 5 dotted orange bags, 5 wavy red bags. +drab beige bags contain 4 pale gold bags. +shiny coral bags contain 3 mirrored bronze bags. +faded indigo bags contain 5 clear violet bags, 5 vibrant fuchsia bags, 5 posh violet bags. +muted maroon bags contain 4 wavy coral bags. +pale violet bags contain 1 clear olive bag, 1 wavy fuchsia bag, 1 dull lime bag. +wavy chartreuse bags contain 2 faded blue bags. +faded purple bags contain 5 clear olive bags, 1 wavy orange bag, 2 posh beige bags, 1 mirrored salmon bag. +dull fuchsia bags contain 2 dark tan bags. +light gold bags contain 1 pale blue bag, 4 wavy cyan bags, 1 shiny chartreuse bag. +bright tan bags contain 2 shiny brown bags, 4 drab gold bags. +plaid fuchsia bags contain 4 shiny gold bags, 1 mirrored orange bag, 4 dark chartreuse bags, 1 faded tomato bag. +striped indigo bags contain 4 clear brown bags, 3 wavy silver bags, 1 plaid teal bag, 3 pale maroon bags. +drab salmon bags contain 1 wavy bronze bag, 2 pale violet bags, 5 plaid indigo bags. +muted teal bags contain 1 wavy maroon bag, 2 pale purple bags, 4 clear blue bags, 2 bright salmon bags. +clear violet bags contain 2 light chartreuse bags, 1 light silver bag, 4 dark brown bags. +posh red bags contain 4 light lavender bags, 4 plaid brown bags. +muted gray bags contain 1 pale olive bag. +posh black bags contain 1 muted maroon bag. +dotted silver bags contain 3 dull turquoise bags, 4 dotted black bags, 3 mirrored black bags. +wavy olive bags contain 3 dotted coral bags, 5 dim silver bags. +plaid olive bags contain 3 muted plum bags. +dim lavender bags contain 2 pale gold bags, 5 mirrored turquoise bags, 1 dull lime bag, 1 dull beige bag. +dark silver bags contain 4 light silver bags, 1 plaid fuchsia bag. +shiny tomato bags contain 2 pale coral bags, 4 dim lavender bags, 1 dim purple bag, 3 wavy magenta bags. +dull purple bags contain 1 shiny maroon bag. +wavy orange bags contain 2 dim black bags, 1 wavy aqua bag, 4 dull turquoise bags, 3 wavy bronze bags. +dim gray bags contain 2 faded bronze bags, 3 dull beige bags, 3 pale purple bags, 5 drab gold bags. +muted yellow bags contain 4 wavy aqua bags. +striped maroon bags contain 1 plaid plum bag, 5 dotted chartreuse bags, 3 dotted cyan bags, 2 bright plum bags. +muted white bags contain 2 dark blue bags, 4 posh aqua bags, 5 mirrored violet bags, 5 posh lavender bags. +wavy cyan bags contain 3 dim black bags, 2 striped lime bags. +striped teal bags contain 2 bright blue bags, 1 vibrant black bag. +posh olive bags contain 2 dim plum bags, 5 shiny turquoise bags, 1 vibrant tomato bag, 5 bright magenta bags. +dotted crimson bags contain 2 clear gray bags. +clear plum bags contain 4 vibrant teal bags. +vibrant chartreuse bags contain 4 posh bronze bags, 5 light purple bags. +vibrant teal bags contain 3 clear blue bags, 4 muted tan bags, 2 wavy fuchsia bags. +striped beige bags contain 4 faded tomato bags. +muted bronze bags contain 1 clear lavender bag, 4 mirrored gray bags. +light lavender bags contain 2 plaid turquoise bags. +dotted white bags contain 1 light yellow bag, 5 dull maroon bags, 5 posh brown bags, 2 clear olive bags. +pale teal bags contain 4 dark aqua bags, 5 dull violet bags. +wavy lime bags contain 2 drab red bags, 1 clear olive bag. +vibrant black bags contain 3 dim tan bags. +pale coral bags contain 5 dull gold bags. +plaid maroon bags contain 2 light fuchsia bags. +wavy aqua bags contain 5 dark coral bags, 5 mirrored orange bags, 3 muted aqua bags. +bright blue bags contain 3 faded bronze bags, 1 bright red bag, 5 mirrored coral bags. +wavy silver bags contain 1 posh olive bag, 1 shiny lime bag, 3 shiny beige bags. +faded maroon bags contain 1 dull tan bag. +light yellow bags contain 5 light lavender bags, 5 pale black bags, 1 plaid brown bag, 3 pale violet bags. +wavy fuchsia bags contain no other bags. +pale plum bags contain 4 light teal bags, 2 pale black bags, 1 pale green bag, 4 wavy bronze bags. +drab white bags contain 3 dark tan bags, 5 muted orange bags, 5 dull violet bags, 1 mirrored fuchsia bag. +pale salmon bags contain 5 faded violet bags, 1 clear cyan bag. +clear crimson bags contain 4 pale lavender bags, 1 dull turquoise bag, 2 mirrored blue bags. +posh gray bags contain 4 muted brown bags, 3 shiny teal bags. +dark aqua bags contain 1 shiny maroon bag, 5 dim brown bags, 4 striped maroon bags, 5 dim blue bags. +muted red bags contain 3 muted chartreuse bags, 4 wavy red bags, 1 drab tomato bag, 3 shiny yellow bags. +mirrored purple bags contain 2 clear blue bags, 2 mirrored lavender bags, 1 pale gold bag, 3 bright silver bags. +striped yellow bags contain 4 light silver bags, 2 dotted red bags, 3 mirrored black bags, 2 faded tomato bags. +dotted teal bags contain 1 drab bronze bag, 3 muted red bags, 5 mirrored gray bags, 4 bright olive bags. +clear turquoise bags contain 5 dim bronze bags, 3 faded silver bags, 1 dotted olive bag. +dull lavender bags contain 5 clear olive bags, 1 mirrored orange bag. +mirrored indigo bags contain 3 bright fuchsia bags, 3 dotted salmon bags. +shiny salmon bags contain 2 bright turquoise bags, 1 light plum bag. +plaid red bags contain 3 clear brown bags, 4 drab tomato bags, 2 plaid indigo bags. +drab black bags contain 5 dull maroon bags, 2 dark silver bags, 5 bright red bags, 5 bright cyan bags. +pale purple bags contain 5 light blue bags, 1 dull maroon bag. +plaid crimson bags contain 2 dark turquoise bags, 5 mirrored bronze bags, 5 dull gold bags, 2 posh yellow bags. +striped lime bags contain 2 wavy lime bags, 2 shiny teal bags. +plaid yellow bags contain 5 muted chartreuse bags. +dark violet bags contain 2 plaid fuchsia bags, 2 muted bronze bags, 3 posh green bags. +bright red bags contain 4 faded plum bags, 3 dim lavender bags. +striped purple bags contain 3 mirrored turquoise bags, 1 shiny yellow bag. +shiny red bags contain 4 wavy coral bags, 3 vibrant salmon bags. +striped cyan bags contain 2 dark yellow bags. +posh magenta bags contain 3 vibrant indigo bags, 2 pale violet bags, 3 bright fuchsia bags, 1 shiny teal bag. +drab cyan bags contain 3 plaid gold bags, 3 clear black bags, 5 striped green bags. +dim chartreuse bags contain 2 wavy coral bags, 2 striped black bags, 4 dotted tomato bags, 1 muted maroon bag. +faded beige bags contain 5 dim tomato bags, 3 plaid turquoise bags. +mirrored teal bags contain 4 posh silver bags, 3 dotted brown bags. +light turquoise bags contain 2 bright gray bags. +drab fuchsia bags contain 4 shiny brown bags, 1 muted olive bag. +mirrored bronze bags contain 3 dull turquoise bags, 3 mirrored turquoise bags, 2 drab red bags. +shiny fuchsia bags contain 3 striped gray bags, 3 faded blue bags. +dim beige bags contain 4 dark blue bags, 1 vibrant aqua bag, 2 shiny brown bags, 5 dull violet bags. +drab gray bags contain 1 wavy maroon bag. +drab orange bags contain 5 plaid brown bags, 1 vibrant yellow bag, 1 mirrored beige bag, 4 pale white bags. +dull magenta bags contain 4 light purple bags, 3 dark brown bags. +vibrant magenta bags contain 4 clear gray bags, 2 shiny aqua bags, 4 striped yellow bags, 3 shiny magenta bags. +drab tomato bags contain 5 drab crimson bags, 2 dull gold bags, 4 light silver bags. +wavy violet bags contain 3 faded plum bags. +mirrored fuchsia bags contain 1 mirrored black bag. +shiny white bags contain 4 light silver bags, 3 dotted fuchsia bags, 2 faded brown bags, 1 bright bronze bag. +clear chartreuse bags contain 4 plaid cyan bags, 1 striped gold bag. +muted turquoise bags contain 3 drab crimson bags, 3 drab olive bags. +faded aqua bags contain 1 dotted teal bag. +vibrant gold bags contain 2 light green bags, 1 dotted gold bag. +drab plum bags contain 5 dim salmon bags, 3 dotted teal bags. +dotted chartreuse bags contain 2 dull turquoise bags, 1 bright chartreuse bag, 4 faded tan bags, 1 mirrored lavender bag. +dull silver bags contain 1 mirrored indigo bag. +pale yellow bags contain 4 drab coral bags. +clear black bags contain 3 dim coral bags. +faded gold bags contain 3 faded chartreuse bags, 1 posh gray bag, 3 drab tomato bags. +muted chartreuse bags contain 1 clear olive bag. +shiny indigo bags contain 3 vibrant yellow bags, 2 plaid orange bags. +dull indigo bags contain 5 bright fuchsia bags, 2 shiny yellow bags, 2 plaid indigo bags, 4 bright olive bags. +faded silver bags contain 2 vibrant olive bags, 4 muted tomato bags. +pale green bags contain 1 pale red bag, 5 dull lavender bags, 4 clear olive bags. +dull violet bags contain 1 shiny black bag, 1 shiny fuchsia bag, 3 plaid indigo bags, 2 posh crimson bags. +dotted lavender bags contain 2 striped lavender bags. +clear orange bags contain 1 dotted cyan bag, 4 clear tomato bags. +bright crimson bags contain 1 dull black bag, 2 dim tomato bags, 1 drab bronze bag, 4 wavy orange bags. +dark orange bags contain 1 vibrant teal bag, 3 dull maroon bags, 4 light purple bags. +bright teal bags contain 5 mirrored tomato bags, 4 dull lime bags, 4 shiny olive bags. +vibrant beige bags contain 2 dark turquoise bags. +dark yellow bags contain 5 dark orange bags, 4 pale red bags, 2 striped fuchsia bags, 5 faded turquoise bags. +bright fuchsia bags contain 5 striped gray bags, 3 light teal bags, 5 mirrored orange bags. +clear maroon bags contain 2 dotted yellow bags, 1 mirrored green bag, 4 dotted coral bags, 3 dull indigo bags. +dim lime bags contain 3 dull fuchsia bags. +striped olive bags contain 5 wavy fuchsia bags, 2 light purple bags. +dull gray bags contain 4 dark beige bags, 1 mirrored white bag. +dim orange bags contain 5 mirrored white bags. +faded salmon bags contain 2 muted cyan bags. +clear red bags contain 2 dim violet bags, 1 shiny purple bag, 3 faded salmon bags, 2 mirrored brown bags. +plaid white bags contain 1 shiny aqua bag, 1 vibrant teal bag. +shiny violet bags contain 3 striped lime bags, 5 mirrored chartreuse bags, 3 pale red bags, 1 muted orange bag. +wavy green bags contain 2 dark tomato bags. +pale lavender bags contain 3 pale orange bags. +dark fuchsia bags contain 4 pale turquoise bags, 4 pale plum bags, 5 light purple bags, 3 dark beige bags. +posh indigo bags contain 2 pale violet bags, 5 shiny coral bags, 1 faded chartreuse bag, 2 plaid indigo bags. +light brown bags contain 1 posh black bag, 4 clear cyan bags. +faded red bags contain 1 drab maroon bag. +dark bronze bags contain 1 pale green bag, 4 shiny blue bags, 1 mirrored lime bag. +pale orange bags contain 4 plaid violet bags, 5 dim silver bags, 1 dim cyan bag, 3 clear blue bags. +dull brown bags contain 1 light tomato bag, 4 pale tomato bags. +mirrored plum bags contain 1 shiny tan bag, 5 wavy brown bags. +dull lime bags contain 4 mirrored orange bags. +drab yellow bags contain 3 clear teal bags, 3 posh aqua bags, 4 posh fuchsia bags, 3 posh turquoise bags. +bright cyan bags contain 5 muted lavender bags, 1 wavy purple bag. +drab chartreuse bags contain 1 wavy tan bag. +drab tan bags contain 5 drab bronze bags, 5 pale green bags, 1 wavy fuchsia bag. +shiny tan bags contain 1 pale red bag, 5 clear aqua bags. +dotted black bags contain 2 dim black bags. +dull blue bags contain 3 clear blue bags, 5 bright gold bags, 4 pale tomato bags, 4 drab beige bags. +light olive bags contain 2 mirrored salmon bags, 2 drab violet bags, 2 bright beige bags. +mirrored magenta bags contain 4 drab tomato bags, 5 clear teal bags, 3 dark coral bags, 5 shiny white bags. +bright silver bags contain 1 posh brown bag. +vibrant blue bags contain 3 clear tan bags. +dark indigo bags contain 3 dim aqua bags, 5 bright aqua bags. +bright brown bags contain 3 muted purple bags, 1 muted blue bag, 1 light green bag, 1 dark red bag. +dark salmon bags contain 3 dotted fuchsia bags, 2 dim tan bags. +mirrored maroon bags contain 2 posh purple bags. +faded crimson bags contain 1 posh white bag, 2 muted blue bags, 3 dark fuchsia bags, 3 light red bags. +bright lavender bags contain 4 bright chartreuse bags, 5 muted purple bags, 4 dull aqua bags, 1 shiny blue bag. +mirrored orange bags contain no other bags. +wavy bronze bags contain no other bags. +wavy yellow bags contain 2 mirrored yellow bags, 1 muted maroon bag, 2 striped purple bags, 4 pale silver bags. +drab magenta bags contain 3 dim indigo bags, 2 wavy bronze bags, 5 shiny yellow bags. +wavy blue bags contain 3 mirrored gold bags, 3 shiny lavender bags, 1 dim teal bag, 4 clear crimson bags. +clear purple bags contain 2 dark beige bags. +light cyan bags contain 1 dotted white bag, 5 muted yellow bags, 1 wavy lime bag. +clear yellow bags contain 2 plaid olive bags, 1 muted red bag, 1 mirrored bronze bag, 5 striped violet bags. +light plum bags contain 5 dotted fuchsia bags, 4 vibrant white bags, 5 muted red bags, 5 drab red bags. +vibrant fuchsia bags contain 1 posh green bag. +pale maroon bags contain 5 light purple bags, 5 shiny aqua bags, 3 clear teal bags, 2 clear green bags. +dark teal bags contain 2 dark lavender bags, 4 striped black bags, 1 drab lime bag, 2 dim teal bags. +clear fuchsia bags contain 2 shiny violet bags, 4 posh aqua bags, 4 bright red bags. +dotted magenta bags contain 2 dull olive bags, 1 clear magenta bag, 5 light beige bags, 1 dark brown bag. +muted black bags contain 2 clear blue bags, 2 muted red bags. +dim magenta bags contain 4 plaid silver bags, 4 plaid olive bags. +striped lavender bags contain 4 clear blue bags. +dull beige bags contain no other bags. +wavy lavender bags contain 2 shiny blue bags, 3 faded tomato bags, 5 dotted tan bags, 5 dull maroon bags. +light maroon bags contain 5 dim violet bags, 3 wavy turquoise bags, 3 mirrored salmon bags. +plaid green bags contain 1 dim teal bag, 5 pale brown bags, 2 striped chartreuse bags. +shiny plum bags contain 1 posh lavender bag, 3 vibrant red bags, 5 dark maroon bags, 1 dotted bronze bag. +plaid turquoise bags contain 4 light silver bags. +dim cyan bags contain 1 shiny coral bag, 4 bright lime bags. +shiny lime bags contain 3 wavy green bags, 5 posh white bags, 1 striped purple bag. +dim maroon bags contain 1 muted crimson bag. +dim aqua bags contain 1 dotted silver bag, 3 faded blue bags, 4 striped purple bags. +muted blue bags contain 2 posh yellow bags, 3 bright tan bags, 1 vibrant salmon bag. +vibrant olive bags contain 5 clear aqua bags. +plaid black bags contain 3 striped orange bags. +vibrant violet bags contain 2 pale gold bags. +light bronze bags contain 1 shiny maroon bag, 3 light blue bags. +pale magenta bags contain 5 pale tomato bags. +vibrant yellow bags contain 4 striped gray bags, 4 dotted yellow bags, 1 wavy fuchsia bag, 3 wavy purple bags. +shiny black bags contain 5 shiny yellow bags, 3 light purple bags, 1 pale olive bag, 1 clear blue bag. +dim crimson bags contain 5 posh gray bags, 1 bright chartreuse bag. +plaid salmon bags contain 2 wavy fuchsia bags, 1 posh olive bag, 2 dim tan bags. +shiny cyan bags contain 5 light green bags, 1 clear olive bag, 5 pale olive bags. +pale silver bags contain 3 mirrored orange bags, 1 light lavender bag, 2 faded tomato bags, 1 muted chartreuse bag. +light red bags contain 4 shiny gray bags, 4 wavy salmon bags, 4 clear lime bags. +dark turquoise bags contain 4 mirrored orange bags, 4 vibrant brown bags, 4 striped brown bags, 4 mirrored purple bags. +dark gray bags contain 1 pale violet bag, 5 striped turquoise bags, 2 wavy red bags, 2 light bronze bags. +pale gray bags contain 5 drab tan bags, 3 clear gray bags. +striped gold bags contain 2 dotted beige bags. +muted cyan bags contain 2 light bronze bags, 3 clear green bags. +faded white bags contain 3 striped tomato bags, 4 shiny black bags, 2 drab tomato bags. +clear lime bags contain 3 dotted fuchsia bags, 3 vibrant purple bags, 1 shiny bronze bag, 3 muted green bags. +dull bronze bags contain 5 plaid turquoise bags, 4 dark crimson bags, 3 pale yellow bags, 3 posh chartreuse bags. +mirrored cyan bags contain 4 clear olive bags, 2 vibrant purple bags, 4 dull olive bags. +pale bronze bags contain 3 vibrant purple bags, 4 dotted silver bags, 2 mirrored black bags. +pale blue bags contain 1 dark brown bag, 2 light brown bags, 2 drab lime bags. +clear bronze bags contain 4 clear blue bags, 2 light chartreuse bags, 1 pale violet bag. +clear aqua bags contain 2 clear cyan bags. +plaid plum bags contain 3 faded plum bags. +mirrored lime bags contain 4 posh brown bags. +plaid lavender bags contain 1 bright beige bag, 5 bright lime bags, 4 faded aqua bags. +drab crimson bags contain 2 shiny yellow bags, 1 posh brown bag. +shiny beige bags contain 2 muted aqua bags, 1 vibrant purple bag, 4 pale black bags, 3 dark chartreuse bags. +dim green bags contain 4 bright yellow bags, 1 shiny fuchsia bag, 1 wavy tomato bag, 4 shiny black bags. +drab coral bags contain 5 dark coral bags. +posh turquoise bags contain 1 dim violet bag, 2 faded turquoise bags. +dotted plum bags contain 2 dull salmon bags, 5 light green bags, 3 pale red bags, 2 posh yellow bags. +posh yellow bags contain 1 mirrored salmon bag, 1 drab tomato bag, 3 dark tomato bags, 2 dark chartreuse bags. +faded orange bags contain 1 drab yellow bag. +dull teal bags contain 2 plaid crimson bags, 5 shiny violet bags, 1 dull coral bag. +faded brown bags contain 5 muted red bags. +bright chartreuse bags contain 5 clear lime bags. +mirrored tan bags contain 4 striped lavender bags, 4 light plum bags. +clear indigo bags contain 5 plaid fuchsia bags, 2 plaid brown bags, 5 striped gray bags. +light teal bags contain 1 dull beige bag, 1 mirrored turquoise bag, 1 mirrored orange bag, 5 wavy bronze bags. +shiny gold bags contain 2 dark coral bags, 1 mirrored orange bag. +striped white bags contain 5 dull fuchsia bags. +wavy white bags contain 5 dull chartreuse bags, 5 wavy green bags. +mirrored beige bags contain 4 bright white bags, 5 plaid magenta bags, 3 plaid crimson bags, 1 shiny teal bag. +muted purple bags contain 5 pale black bags, 5 wavy aqua bags. +vibrant crimson bags contain 5 dim bronze bags, 2 vibrant plum bags. +striped aqua bags contain 3 plaid cyan bags, 3 light beige bags, 2 drab cyan bags. +dull crimson bags contain 1 light white bag, 3 drab indigo bags, 1 clear fuchsia bag. +clear magenta bags contain 4 light brown bags. +posh maroon bags contain 1 faded plum bag, 3 light olive bags. +bright violet bags contain 2 dotted bronze bags, 4 clear teal bags, 3 striped magenta bags, 3 muted indigo bags. +faded coral bags contain 5 dark violet bags, 3 plaid teal bags. +faded bronze bags contain 5 dotted fuchsia bags, 5 wavy bronze bags, 2 dotted purple bags, 5 dim black bags. +light beige bags contain 2 shiny olive bags. +mirrored white bags contain 1 dark indigo bag, 1 drab maroon bag, 3 shiny beige bags, 5 light blue bags. +muted silver bags contain 4 wavy lime bags, 1 dark tomato bag, 1 bright fuchsia bag, 4 dotted olive bags. +wavy gray bags contain 2 mirrored turquoise bags, 5 light lavender bags, 3 muted chartreuse bags. +clear salmon bags contain 5 bright tomato bags, 2 wavy aqua bags. +dull turquoise bags contain 1 pale tomato bag. +shiny yellow bags contain 4 dull lime bags, 3 shiny maroon bags, 3 light silver bags. +mirrored aqua bags contain 3 posh magenta bags, 4 drab tomato bags. +dull orange bags contain 5 dim teal bags, 3 light olive bags, 2 light magenta bags, 2 plaid orange bags. +plaid blue bags contain 3 pale purple bags, 1 shiny turquoise bag. +dim olive bags contain 3 shiny tomato bags, 4 dim black bags, 1 light plum bag. +dim fuchsia bags contain 1 dark chartreuse bag, 1 mirrored cyan bag, 3 plaid red bags. +dark plum bags contain 1 light yellow bag, 1 mirrored lime bag, 2 bright salmon bags. +faded tomato bags contain 2 muted chartreuse bags, 4 dark chartreuse bags. +dotted aqua bags contain 2 dull lavender bags, 4 pale tomato bags. +plaid lime bags contain 3 vibrant indigo bags, 1 muted red bag, 1 posh silver bag, 1 dim indigo bag. +vibrant lime bags contain 5 drab turquoise bags, 2 vibrant chartreuse bags, 4 clear blue bags. +posh brown bags contain 2 wavy red bags, 2 drab beige bags. +bright beige bags contain 3 faded blue bags, 4 muted red bags, 5 mirrored lavender bags, 2 pale red bags. +dotted yellow bags contain 5 striped gray bags, 3 pale gold bags, 2 clear olive bags, 5 mirrored yellow bags. +dull gold bags contain 5 clear tomato bags, 5 drab beige bags, 4 bright silver bags, 4 drab crimson bags. +dark maroon bags contain 2 wavy turquoise bags, 4 dark chartreuse bags. +drab olive bags contain 4 faded bronze bags. +posh plum bags contain 2 dull tan bags. +light indigo bags contain 2 wavy yellow bags. +vibrant tan bags contain 5 shiny teal bags. +dim purple bags contain 5 light olive bags, 5 mirrored violet bags. +vibrant gray bags contain 3 bright turquoise bags, 4 dim maroon bags, 4 vibrant chartreuse bags, 2 faded turquoise bags. +pale tan bags contain 2 light salmon bags, 3 dotted silver bags, 5 clear lime bags, 1 shiny teal bag. +dark tan bags contain 5 dim indigo bags, 3 shiny beige bags, 5 dim tan bags, 2 pale black bags. +dotted tomato bags contain 3 shiny black bags, 3 pale crimson bags, 2 dim tan bags. +posh violet bags contain 4 posh crimson bags, 1 muted fuchsia bag, 4 pale cyan bags, 3 mirrored gold bags. +clear tan bags contain 2 bright tan bags, 5 faded beige bags. +bright bronze bags contain no other bags. +dotted brown bags contain 2 dotted black bags, 3 wavy coral bags. +muted violet bags contain 3 faded magenta bags, 3 bright magenta bags. +faded plum bags contain 2 dull lime bags, 4 dim coral bags, 5 shiny maroon bags, 3 pale red bags. +dark lime bags contain 4 dim tomato bags. +dull aqua bags contain 4 drab beige bags, 4 drab maroon bags. +posh purple bags contain 2 vibrant purple bags, 5 shiny gold bags, 2 plaid turquoise bags. +dull plum bags contain 5 dark brown bags, 4 muted black bags, 1 striped lavender bag. +faded turquoise bags contain 3 shiny yellow bags, 4 faded plum bags, 5 pale violet bags, 4 dim lavender bags. +striped bronze bags contain 1 muted bronze bag, 4 clear green bags, 4 shiny fuchsia bags, 5 pale red bags. +mirrored blue bags contain 4 clear tomato bags, 5 shiny orange bags, 1 dull beige bag, 1 striped silver bag. +shiny orange bags contain 2 light bronze bags, 4 dark tomato bags, 2 drab gold bags. +shiny gray bags contain 1 dark maroon bag. +drab red bags contain 5 wavy purple bags. +posh fuchsia bags contain 3 mirrored chartreuse bags, 3 vibrant teal bags. +light crimson bags contain 2 shiny aqua bags, 2 plaid chartreuse bags, 1 shiny gold bag, 1 wavy maroon bag. +vibrant white bags contain 1 shiny brown bag, 5 light purple bags, 4 dull olive bags, 5 clear cyan bags. +dark green bags contain 5 drab indigo bags, 1 striped coral bag. +striped fuchsia bags contain 5 vibrant plum bags. +bright turquoise bags contain 1 striped fuchsia bag, 3 posh purple bags, 5 dim aqua bags. +striped tan bags contain 1 dotted cyan bag. +shiny magenta bags contain 2 dark yellow bags, 1 faded silver bag, 4 muted orange bags, 3 bright fuchsia bags. +dim violet bags contain 4 wavy bronze bags, 1 bright bronze bag. +vibrant orange bags contain 2 faded chartreuse bags, 2 vibrant turquoise bags, 2 dull white bags. +pale gold bags contain 5 light lavender bags, 4 mirrored orange bags, 4 muted chartreuse bags. +pale red bags contain no other bags. +plaid brown bags contain 3 mirrored orange bags. +posh aqua bags contain 5 light blue bags, 1 dark indigo bag, 1 pale red bag, 2 vibrant turquoise bags. +muted lime bags contain 1 dim chartreuse bag, 1 dotted olive bag, 4 pale violet bags, 3 muted fuchsia bags. +dotted fuchsia bags contain 4 light teal bags, 1 muted chartreuse bag, 3 dark chartreuse bags, 4 dim lavender bags. +dim turquoise bags contain 4 clear beige bags, 1 posh magenta bag, 3 faded brown bags. +muted coral bags contain 4 dark salmon bags, 1 pale tomato bag, 2 shiny brown bags. +dull chartreuse bags contain 3 shiny white bags, 4 shiny blue bags, 1 pale crimson bag. +muted indigo bags contain 4 posh silver bags, 1 pale maroon bag, 1 dotted red bag, 1 drab coral bag. +dim salmon bags contain 5 pale black bags, 3 dark salmon bags, 3 pale red bags, 5 dotted purple bags. +dotted bronze bags contain 1 dim aqua bag, 2 mirrored maroon bags, 4 muted olive bags, 3 dull fuchsia bags. +drab silver bags contain 2 dim coral bags, 3 dim salmon bags. +striped salmon bags contain 2 dotted purple bags, 2 posh green bags, 3 plaid beige bags. +mirrored tomato bags contain 5 faded tomato bags, 4 wavy red bags. +dotted cyan bags contain 1 posh white bag, 3 striped lime bags, 4 dotted purple bags, 2 muted red bags. +striped blue bags contain 4 dark silver bags, 4 pale silver bags. +faded green bags contain 3 dotted violet bags, 3 pale turquoise bags. +striped gray bags contain 2 pale tomato bags, 2 dark chartreuse bags, 5 muted red bags, 3 pale violet bags. +pale lime bags contain 4 posh maroon bags, 2 drab plum bags, 3 drab coral bags. +posh beige bags contain 4 wavy purple bags, 2 shiny gold bags, 1 dark tan bag. +dotted tan bags contain 2 bright silver bags, 1 posh bronze bag, 2 dim coral bags, 2 dim tomato bags. +shiny brown bags contain 4 dim violet bags, 5 bright silver bags. +mirrored silver bags contain 1 striped blue bag, 2 shiny teal bags, 2 light coral bags, 1 dim beige bag. +clear silver bags contain 4 mirrored fuchsia bags, 5 dull olive bags, 1 plaid crimson bag. +dotted orange bags contain 1 mirrored turquoise bag, 3 wavy lime bags, 3 dotted yellow bags, 5 muted lavender bags. +shiny purple bags contain 1 shiny beige bag, 3 plaid chartreuse bags. +drab brown bags contain 2 dull indigo bags, 3 mirrored cyan bags, 1 dim crimson bag. +vibrant tomato bags contain 5 faded plum bags. +light tan bags contain 1 dark gold bag, 3 light salmon bags. +vibrant cyan bags contain 4 shiny aqua bags. +dotted purple bags contain 4 wavy coral bags. +vibrant red bags contain 4 faded tan bags, 1 drab aqua bag, 4 striped black bags. +faded lime bags contain 3 light olive bags, 3 striped yellow bags. +posh gold bags contain 1 dull indigo bag, 1 mirrored chartreuse bag. +shiny aqua bags contain 2 vibrant turquoise bags. +light orange bags contain 3 vibrant violet bags, 2 dotted yellow bags, 1 dark gray bag, 5 striped chartreuse bags. +pale black bags contain 1 plaid brown bag, 2 muted chartreuse bags. +drab violet bags contain 5 clear cyan bags, 1 pale gold bag, 4 drab salmon bags, 2 posh orange bags. +dim silver bags contain 5 clear cyan bags. +muted beige bags contain 1 dim tomato bag, 3 light olive bags. +drab turquoise bags contain 3 plaid orange bags, 1 light purple bag. +dark red bags contain 2 vibrant yellow bags, 4 mirrored fuchsia bags, 5 posh bronze bags, 2 dark gold bags. +vibrant maroon bags contain 5 drab beige bags, 1 dark beige bag, 1 dark brown bag, 4 pale maroon bags. +wavy magenta bags contain 3 light tomato bags, 5 muted gold bags, 3 muted cyan bags. +shiny chartreuse bags contain 5 pale yellow bags. +dull cyan bags contain 4 bright maroon bags, 4 faded bronze bags. +light black bags contain 4 shiny teal bags, 5 faded beige bags, 1 muted gold bag, 4 plaid silver bags. +bright green bags contain 5 striped lime bags, 4 muted yellow bags, 4 light beige bags, 4 plaid violet bags. +striped orange bags contain 1 mirrored orange bag, 2 bright salmon bags. +muted plum bags contain 3 mirrored orange bags, 1 muted chartreuse bag, 2 dull olive bags, 4 dull brown bags. +pale white bags contain 5 light silver bags. +mirrored gray bags contain 1 mirrored violet bag, 5 striped gray bags, 5 dim aqua bags, 4 wavy fuchsia bags. +wavy beige bags contain 2 shiny beige bags. +dotted red bags contain 4 dotted purple bags, 3 muted aqua bags, 2 pale tomato bags, 4 pale bronze bags. +posh lavender bags contain 2 dotted tomato bags, 3 dim lavender bags, 2 muted gray bags, 3 light plum bags. +mirrored yellow bags contain 4 wavy gold bags. +wavy brown bags contain 3 dim fuchsia bags, 4 dull turquoise bags. +plaid chartreuse bags contain 5 plaid red bags. +shiny turquoise bags contain 2 faded turquoise bags, 3 muted tan bags. +mirrored brown bags contain 4 dotted fuchsia bags, 4 dim red bags, 2 dotted plum bags. +dim tan bags contain 1 drab tomato bag, 3 wavy red bags, 1 plaid turquoise bag, 2 clear lavender bags. +faded yellow bags contain 1 clear bronze bag, 3 clear olive bags. +bright orange bags contain 5 mirrored blue bags, 3 shiny blue bags. +striped red bags contain 5 bright green bags, 3 wavy yellow bags. +bright indigo bags contain 2 light maroon bags, 5 shiny bronze bags, 2 bright white bags. +light gray bags contain 2 dotted maroon bags. +light silver bags contain no other bags. +bright gold bags contain 2 striped fuchsia bags. +drab purple bags contain 5 light silver bags, 2 dull yellow bags, 2 shiny teal bags. +mirrored coral bags contain 4 dim plum bags. +light coral bags contain 3 dim lavender bags, 5 wavy green bags, 2 light bronze bags. +plaid indigo bags contain 3 mirrored orange bags, 5 pale gold bags. +dark crimson bags contain 4 dark turquoise bags, 4 plaid green bags, 4 clear fuchsia bags. +wavy teal bags contain 1 pale silver bag, 4 mirrored chartreuse bags, 4 shiny black bags. +dull tan bags contain 4 muted magenta bags. +light violet bags contain 4 faded yellow bags, 5 light maroon bags, 3 clear teal bags, 2 pale crimson bags. +striped silver bags contain 3 plaid fuchsia bags. +shiny crimson bags contain 5 muted yellow bags. +mirrored salmon bags contain 1 dim tan bag. +dotted coral bags contain 5 dark tan bags. +wavy gold bags contain 2 wavy turquoise bags, 4 dim indigo bags, 3 wavy bronze bags. +vibrant bronze bags contain 1 pale purple bag. +posh silver bags contain 4 posh chartreuse bags, 3 bright salmon bags, 1 dotted bronze bag, 3 shiny coral bags. +bright purple bags contain 5 clear beige bags, 3 pale yellow bags, 1 wavy tomato bag, 5 pale lavender bags. +muted tan bags contain 4 bright white bags, 5 dotted silver bags, 2 clear blue bags, 4 mirrored turquoise bags. +light white bags contain 2 shiny purple bags, 1 dull aqua bag, 2 vibrant blue bags. +faded fuchsia bags contain 2 dark green bags, 3 shiny violet bags, 4 drab plum bags, 3 vibrant olive bags. +clear gray bags contain 2 muted red bags. +dark tomato bags contain 4 dotted purple bags, 3 faded turquoise bags. +light magenta bags contain 1 dull fuchsia bag. +light purple bags contain 3 drab magenta bags, 4 dark coral bags, 3 light silver bags. +vibrant turquoise bags contain 4 dotted black bags. +dim indigo bags contain 4 muted chartreuse bags. +dim bronze bags contain 3 drab gold bags, 4 clear brown bags, 2 muted tan bags. +clear green bags contain 2 plaid fuchsia bags, 1 wavy bronze bag. +dull maroon bags contain 2 wavy yellow bags, 1 dotted fuchsia bag, 4 mirrored yellow bags. +dotted gray bags contain 5 dotted white bags, 2 pale tomato bags, 5 bright tan bags, 3 plaid turquoise bags. +plaid gray bags contain 5 wavy lime bags, 4 dull aqua bags. +mirrored crimson bags contain 1 shiny lavender bag, 4 plaid purple bags. +shiny silver bags contain 5 vibrant lavender bags, 3 light coral bags, 5 dark aqua bags. +dotted salmon bags contain 3 pale tomato bags. +muted crimson bags contain 4 clear olive bags, 3 dull plum bags, 1 dark gray bag, 1 wavy lime bag. +muted lavender bags contain 1 bright chartreuse bag, 3 pale yellow bags, 3 pale crimson bags. +posh tan bags contain 4 faded tomato bags, 3 dotted olive bags, 4 striped maroon bags. +vibrant salmon bags contain 4 vibrant indigo bags, 1 plaid orange bag. +faded chartreuse bags contain 2 mirrored orange bags, 1 pale crimson bag. +striped tomato bags contain 3 dim tan bags, 2 wavy gold bags. +dim yellow bags contain 1 clear purple bag, 1 wavy red bag, 1 drab bronze bag. +wavy tomato bags contain 5 dotted tomato bags, 3 dim salmon bags, 5 light tan bags, 3 dull brown bags. +bright lime bags contain 3 mirrored turquoise bags, 3 dotted tan bags, 3 posh black bags, 5 wavy gold bags. +muted brown bags contain 4 shiny indigo bags, 4 muted tan bags, 3 wavy tan bags. +pale cyan bags contain 1 dotted black bag. +drab green bags contain 1 muted cyan bag. +dim teal bags contain 4 faded lavender bags, 2 pale violet bags. +drab lavender bags contain 1 pale gold bag, 5 vibrant brown bags, 4 posh indigo bags, 1 plaid olive bag. +dotted turquoise bags contain 2 muted lime bags, 4 striped indigo bags. +clear white bags contain 2 bright lime bags, 1 mirrored coral bag. +dark purple bags contain 5 wavy crimson bags, 5 light olive bags. +light tomato bags contain 4 posh black bags, 1 faded blue bag, 5 dim black bags, 3 dull lime bags. +bright aqua bags contain 3 clear tomato bags. +bright tomato bags contain 1 clear green bag, 3 bright gray bags, 3 mirrored cyan bags, 5 posh chartreuse bags. +dull yellow bags contain 5 wavy purple bags, 3 light purple bags, 5 clear cyan bags, 2 wavy coral bags. +striped coral bags contain 3 mirrored black bags, 5 wavy coral bags, 2 posh white bags. +shiny bronze bags contain 2 dim tomato bags, 3 dull lime bags. +vibrant aqua bags contain 4 dull olive bags, 4 mirrored turquoise bags, 1 vibrant teal bag. +faded magenta bags contain 3 plaid chartreuse bags, 5 plaid white bags, 1 drab lime bag, 3 mirrored fuchsia bags. +pale beige bags contain 3 wavy gray bags, 5 mirrored tomato bags, 1 bright beige bag. +pale crimson bags contain 1 pale violet bag, 4 pale black bags, 5 dim tomato bags, 1 mirrored turquoise bag. +dark blue bags contain 4 dark maroon bags, 1 faded brown bag, 2 wavy red bags. +posh tomato bags contain 2 posh beige bags, 4 dark maroon bags. +dim plum bags contain 2 muted crimson bags, 1 striped coral bag, 2 plaid yellow bags, 5 striped violet bags. +dull black bags contain 3 posh tomato bags, 1 vibrant yellow bag, 4 mirrored salmon bags, 2 light green bags. +wavy plum bags contain 4 wavy blue bags. +bright coral bags contain 4 posh gold bags, 2 plaid lime bags, 3 shiny black bags, 5 dim magenta bags. +posh blue bags contain 2 dotted turquoise bags, 2 bright olive bags, 2 plaid gold bags. +vibrant purple bags contain 2 mirrored orange bags, 4 dull lavender bags, 2 pale red bags. +dark white bags contain 4 drab lime bags. +wavy crimson bags contain 2 dark salmon bags, 5 wavy yellow bags, 2 bright bronze bags, 2 drab crimson bags. +clear coral bags contain 4 vibrant blue bags. +muted olive bags contain 3 plaid brown bags, 1 dim fuchsia bag, 2 posh yellow bags. +plaid violet bags contain 4 muted aqua bags. +plaid teal bags contain 4 bright tan bags, 2 dark tomato bags. +plaid purple bags contain 3 posh teal bags. +pale turquoise bags contain 2 faded purple bags, 4 mirrored maroon bags, 1 mirrored salmon bag. +muted fuchsia bags contain 5 bright bronze bags, 4 muted gold bags. +bright olive bags contain 2 faded blue bags, 3 faded turquoise bags, 5 light bronze bags, 3 dim tan bags. +bright gray bags contain 1 bright white bag, 2 muted orange bags. +light blue bags contain 1 dotted purple bag, 3 dim black bags, 3 posh purple bags, 2 mirrored violet bags. +posh bronze bags contain 3 plaid fuchsia bags, 1 drab gold bag, 4 mirrored orange bags, 4 light teal bags. +faded olive bags contain 3 striped blue bags, 3 dim salmon bags, 4 pale red bags, 2 dull maroon bags. +dull coral bags contain 2 wavy gold bags, 1 dark magenta bag. +dull olive bags contain 3 plaid turquoise bags, 3 plaid fuchsia bags, 4 wavy lime bags, 1 dotted black bag. +plaid orange bags contain 1 dark salmon bag, 1 striped turquoise bag. +clear blue bags contain 3 dim tan bags, 3 muted red bags, 3 faded tomato bags. +dark chartreuse bags contain 4 bright bronze bags, 1 dim indigo bag. +plaid tomato bags contain 5 shiny turquoise bags, 4 clear tan bags, 2 dotted bronze bags, 5 muted magenta bags. +mirrored green bags contain 2 light silver bags, 3 light brown bags, 4 vibrant purple bags, 2 posh green bags. +drab blue bags contain 4 drab indigo bags. +vibrant silver bags contain 3 striped violet bags, 1 striped white bag, 2 bright blue bags. +shiny olive bags contain 3 drab tomato bags. +dull red bags contain 4 dim cyan bags, 3 wavy lime bags. +vibrant plum bags contain 3 wavy coral bags, 2 light lavender bags. +faded cyan bags contain 1 dim brown bag, 5 posh indigo bags. +dotted violet bags contain 1 pale tomato bag, 5 dim plum bags. +striped brown bags contain 5 dim coral bags, 4 clear blue bags. +dotted indigo bags contain 5 clear salmon bags, 4 dim bronze bags. +posh cyan bags contain 2 vibrant magenta bags. +clear beige bags contain 1 bright olive bag. +dark black bags contain 4 dull crimson bags, 3 plaid green bags. +mirrored lavender bags contain 5 dark silver bags. +bright black bags contain 4 shiny brown bags, 1 vibrant crimson bag, 2 posh white bags, 3 wavy gold bags. +pale indigo bags contain 5 shiny gold bags, 3 light bronze bags, 3 striped turquoise bags. +plaid cyan bags contain 1 shiny tan bag, 4 dark tan bags, 1 dull yellow bag. +bright plum bags contain 1 pale chartreuse bag, 3 plaid red bags, 1 faded beige bag, 1 posh gray bag. +drab maroon bags contain 3 dull olive bags, 1 pale green bag, 2 mirrored turquoise bags. +pale chartreuse bags contain 4 dim tomato bags. +striped black bags contain 4 vibrant turquoise bags, 3 faded white bags, 4 light plum bags, 1 pale black bag. +dotted gold bags contain 5 posh teal bags, 5 striped violet bags. +posh orange bags contain 1 clear green bag. +light green bags contain 5 wavy turquoise bags, 2 pale red bags, 3 dark tomato bags, 3 dull turquoise bags. +plaid beige bags contain 4 light silver bags, 4 plaid turquoise bags, 5 drab purple bags, 4 clear lime bags. +mirrored violet bags contain 2 wavy fuchsia bags, 5 bright bronze bags. +striped plum bags contain 2 plaid indigo bags, 5 bright yellow bags, 1 wavy magenta bag. +bright yellow bags contain 3 wavy yellow bags. +drab aqua bags contain 5 dark red bags, 2 light gold bags. +plaid bronze bags contain 1 drab magenta bag. +faded tan bags contain 4 shiny aqua bags, 2 light chartreuse bags. +drab indigo bags contain 5 dotted beige bags, 3 dull lime bags, 1 striped violet bag, 4 vibrant tan bags. +dark gold bags contain 4 mirrored lime bags, 3 dark salmon bags. +muted orange bags contain 1 dull yellow bag, 2 shiny brown bags. +plaid gold bags contain 4 drab coral bags, 5 shiny cyan bags. +posh crimson bags contain 3 light brown bags, 3 bright bronze bags, 3 shiny yellow bags. +bright magenta bags contain 5 dim lavender bags. +light chartreuse bags contain 2 drab bronze bags, 3 dim coral bags. +dim tomato bags contain no other bags. +dark beige bags contain 3 mirrored yellow bags, 2 dull olive bags, 5 striped brown bags. +clear cyan bags contain 5 drab beige bags, 1 shiny yellow bag, 5 wavy purple bags, 5 dark chartreuse bags. +dark coral bags contain 3 dim lavender bags, 3 pale green bags, 4 mirrored orange bags, 1 dim coral bag. +light lime bags contain 5 mirrored brown bags. +shiny lavender bags contain 5 drab tan bags. +faded lavender bags contain 1 light salmon bag, 2 dotted purple bags, 5 pale gold bags, 3 muted gold bags. +pale tomato bags contain 5 dim coral bags. +plaid coral bags contain 3 dull blue bags, 1 posh white bag, 3 light orange bags. +dim coral bags contain no other bags. +dotted olive bags contain 5 mirrored green bags, 3 drab aqua bags, 2 dull beige bags, 3 dim indigo bags. +dark brown bags contain 1 muted tan bag, 5 wavy lime bags. +mirrored red bags contain 5 vibrant aqua bags, 3 bright gray bags, 4 striped gray bags, 2 light lavender bags. +mirrored olive bags contain 5 dark chartreuse bags, 1 dim lavender bag, 5 faded plum bags. +dim black bags contain 1 shiny yellow bag, 4 plaid indigo bags. +shiny maroon bags contain 1 mirrored orange bag, 1 muted chartreuse bag, 5 wavy bronze bags, 1 dull lavender bag. +pale brown bags contain 4 light teal bags, 1 light plum bag, 3 bright aqua bags. +striped chartreuse bags contain 2 shiny maroon bags. +mirrored chartreuse bags contain 4 dotted tan bags, 4 bright bronze bags. +plaid magenta bags contain 1 vibrant yellow bag, 5 wavy aqua bags, 5 dull turquoise bags, 2 wavy fuchsia bags. +light salmon bags contain 3 muted tan bags, 3 faded turquoise bags, 4 drab bronze bags, 3 bright bronze bags. +faded blue bags contain 1 wavy red bag, 5 wavy fuchsia bags, 4 bright bronze bags, 3 faded turquoise bags. +plaid aqua bags contain 1 pale tan bag, 3 light white bags. +mirrored turquoise bags contain 5 drab beige bags, 1 faded plum bag, 4 mirrored orange bags. +shiny teal bags contain 2 pale black bags, 4 dull indigo bags, 4 vibrant teal bags. +vibrant coral bags contain 3 drab turquoise bags, 4 striped beige bags, 1 wavy turquoise bag, 4 light crimson bags. +faded gray bags contain 3 striped purple bags. diff --git a/2020/day07/test b/2020/day07/test new file mode 100644 index 0000000..1cec74f --- /dev/null +++ b/2020/day07/test @@ -0,0 +1,9 @@ +light red bags contain 1 bright white bag, 2 muted yellow bags. +dark orange bags contain 3 bright white bags, 4 muted yellow bags. +bright white bags contain 1 shiny gold bag. +muted yellow bags contain 2 shiny gold bags, 9 faded blue bags. +shiny gold bags contain 1 dark olive bag, 2 vibrant plum bags. +dark olive bags contain 3 faded blue bags, 4 dotted black bags. +vibrant plum bags contain 5 faded blue bags, 6 dotted black bags. +faded blue bags contain no other bags. +dotted black bags contain no other bags. diff --git a/2020/day07/test2 b/2020/day07/test2 new file mode 100644 index 0000000..2723ca0 --- /dev/null +++ b/2020/day07/test2 @@ -0,0 +1,7 @@ +shiny gold bags contain 2 dark red bags. +dark red bags contain 2 dark orange bags. +dark orange bags contain 2 dark yellow bags. +dark yellow bags contain 2 dark green bags. +dark green bags contain 2 dark blue bags. +dark blue bags contain 2 dark violet bags. +dark violet bags contain no other bags. diff --git a/2020/day08/day08.c b/2020/day08/day08.c new file mode 100644 index 0000000..21aadb4 --- /dev/null +++ b/2020/day08/day08.c @@ -0,0 +1,165 @@ +#include +#include +#include +#include +#include + +enum operation { + NOP, + ACC, + JMP, +}; + +struct instruction { + enum operation op; + int arg; +}; + +enum outcome { + ERROR, + LOOP, + END, +}; + +struct result { + enum outcome out; + int ret; +}; + +size_t count_lines(FILE *fp) { + size_t count = 0; + + for (char c = getc(fp); c != EOF; c = getc(fp)) { + if (c == '\n') { + count++; + } + } + return count; +} + +struct result execute(size_t n, struct instruction program[n]) { + int acc = 0; + size_t ip = 0; + bool visited[n]; + for (size_t i = 0; i < n; ++i) { + visited[i] = false; + } + + while (visited[ip] == false && ip < n) { + visited[ip] = true; + switch (program[ip].op) { + case NOP: { + ip++; + break; + } + case ACC: { + acc += program[ip].arg; + ip++; + break; + } + case JMP: { + ip += program[ip].arg; + break; + } + default: + printf("ERROR: invalid instruction %d %d in position %zu\n", + program[ip].op, program[ip].arg, ip); + return (struct result){.out = ERROR, .ret = 0}; + } + } + + if (ip == n) { + return (struct result){.out = END, .ret = acc}; + } + return (struct result){.out = LOOP, .ret = acc}; +} + +int main(int argc, char *argv[]) { + if (argc < 2) { + printf("Usage: %s \n", argv[0]); + return 0; + } + + FILE *fp = fopen(argv[1], "r"); + if (fp == NULL) { + printf("Could not open file %s\n", argv[1]); + return 1; + } + + size_t n = count_lines(fp); + struct instruction program[n]; + rewind(fp); + + char *buf = NULL; + size_t buf_size = 0; + size_t i = 0; + while (getline(&buf, &buf_size, fp) != -1) { + int arg; + if (strncmp(buf, "nop", 3) == 0) { + sscanf(buf, "nop %d", &arg); + program[i] = (struct instruction){.op = NOP, .arg = arg}; + } else if (strncmp(buf, "acc", 3) == 0) { + sscanf(buf, "acc %d", &arg); + program[i] = (struct instruction){.op = ACC, .arg = arg}; + } else if (strncmp(buf, "jmp", 3) == 0) { + sscanf(buf, "jmp %d", &arg); + program[i] = (struct instruction){.op = JMP, .arg = arg}; + } + i++; + } + free(buf); + fclose(fp); + + // Part 1 + printf("Part 1: "); + struct timeval tv1, tv2; + gettimeofday(&tv1, NULL); + + struct result res = execute(n, program); + if (res.out == LOOP) { + printf("%d\n", res.ret); + } + + gettimeofday(&tv2, NULL); + printf("Time: %lds %ldµs\n", tv2.tv_sec - tv1.tv_sec, + tv2.tv_usec - tv1.tv_usec); + + // Part 2 (bruteforce) + printf("Part 2: "); + gettimeofday(&tv1, NULL); + + bool finished = false; + i = 0; + while (!finished && i < n) { + switch (program[i].op) { + case NOP: { + program[i].op = JMP; + res = execute(n, program); + if (res.out == END) { + finished = true; + } + program[i].op = NOP; + break; + } + case JMP: { + program[i].op = NOP; + res = execute(n, program); + if (res.out == END) { + finished = true; + } + program[i].op = JMP; + break; + } + default: + break; + } + i++; + } + printf("%d\n", res.ret); + + gettimeofday(&tv2, NULL); + printf("Time: %lds %ldµs\n", tv2.tv_sec - tv1.tv_sec, + tv2.tv_usec - tv1.tv_usec); + + return 0; +} diff --git a/2020/day08/day08.rkt b/2020/day08/day08.rkt new file mode 100644 index 0000000..144bed4 --- /dev/null +++ b/2020/day08/day08.rkt @@ -0,0 +1,75 @@ +#lang racket/base + +(require racket/string + racket/vector + racket/file + racket/match) + +(module+ test + (require rackunit)) + +(module+ main + (displayln "Day 8")) + +(define (parse-instruction str) + (define instr (string-split str)) + (cons (string->symbol (car instr)) + (map string->number (cdr instr)))) + +(define (read-input filename) + (list->vector (map parse-instruction (file->lines filename)))) + +(define (execute program) + (define n (vector-length program)) + (let loop ([acc 0] + [i 0] + [visited '()]) + (cond + [(member i visited) (values 'loop visited acc)] + [(= i n) (values 'end visited acc)] + [else (match (vector-ref program i) + [(list 'nop x) (loop acc (add1 i) (cons i visited))] + [(list 'acc x) (loop (+ acc x) (add1 i) (cons i visited))] + [(list 'jmp x) (loop acc (+ i x) (cons i visited))] + [instr (error "invalid instruction" i instr)])]))) + +(define (part1 filename) + (define program (read-input filename)) + (define-values (state visited acc) (execute program)) + acc) + +(module+ test + (check-equal? (part1 "test") 5)) + +(module+ main + (displayln (part1 "input"))) + +(define (change-instruction program visited) + (define new-program (vector-copy program)) + (define new-visited + (let loop ([instructions visited]) + (match (vector-ref new-program (car instructions)) + [(list 'nop x) + (vector-set! new-program (car instructions) (list 'jmp x)) + (cdr instructions)] + [(list 'jmp x) + (vector-set! new-program (car instructions) (list 'nop x)) + (cdr instructions)] + [z (loop (cdr instructions))]))) + (values new-program new-visited)) + +(define (part2 filename) + (define program (read-input filename)) + (define-values (initial-reason initial-visited initial-acc) (execute program)) + (let loop ([visited initial-visited]) + (let*-values ([(new-program new-visited) (change-instruction program visited)] + [(reason visited acc) (execute new-program)]) + (if (equal? reason 'end) + acc + (loop new-visited))))) + +(module+ test + (check-equal? (part2 "test") 8)) + +(module+ main + (displayln (part2 "input"))) diff --git a/2020/day08/input b/2020/day08/input new file mode 100644 index 0000000..9419768 --- /dev/null +++ b/2020/day08/input @@ -0,0 +1,641 @@ +acc +29 +acc +0 +acc +36 +jmp +292 +acc +11 +acc +16 +nop +280 +nop +320 +jmp +310 +acc +15 +jmp +76 +acc +31 +acc +6 +acc +29 +acc +35 +jmp +524 +acc +4 +acc +12 +jmp +162 +acc +14 +acc -10 +jmp +312 +acc +19 +jmp +385 +acc +46 +acc +13 +acc -19 +jmp +366 +jmp +56 +acc -9 +nop +74 +jmp +357 +acc +28 +jmp +223 +acc -12 +jmp +292 +nop +385 +acc +45 +jmp +255 +jmp +337 +nop +465 +acc +43 +jmp +555 +acc +20 +acc +23 +acc +39 +jmp -6 +acc -4 +jmp -39 +acc +7 +acc -13 +acc +41 +acc +4 +jmp +80 +jmp +1 +jmp +484 +acc -16 +acc +2 +acc +20 +jmp +244 +jmp +258 +acc +27 +acc -7 +acc +40 +nop +490 +jmp +247 +nop +363 +acc +46 +acc +27 +acc -4 +jmp +379 +jmp +62 +acc -15 +acc +38 +acc -4 +acc +4 +jmp +312 +acc +37 +jmp +271 +acc +3 +jmp +538 +jmp +1 +acc +33 +jmp +99 +jmp +107 +jmp -38 +jmp +359 +jmp +1 +acc +11 +acc -3 +jmp +109 +acc +17 +jmp +146 +acc +34 +acc -5 +jmp +174 +jmp +482 +acc +43 +acc +35 +acc +8 +acc +36 +jmp -41 +jmp +260 +jmp -49 +acc +30 +nop -33 +acc +49 +acc +40 +jmp +157 +acc -11 +acc -11 +acc +21 +acc +35 +jmp +489 +jmp +219 +acc +33 +acc +22 +jmp +224 +jmp +1 +jmp +278 +acc +0 +acc +31 +jmp +271 +acc -19 +acc +38 +acc -15 +acc +0 +jmp +81 +acc +7 +acc +50 +nop +55 +nop +2 +jmp +195 +acc -18 +acc +14 +jmp +1 +jmp -57 +acc -17 +nop +495 +jmp -21 +jmp +1 +acc +39 +acc +35 +acc +27 +jmp +301 +acc +6 +acc +11 +acc -10 +jmp +1 +jmp +56 +acc +38 +jmp +333 +acc +26 +acc -15 +acc +32 +acc -9 +jmp +412 +acc -17 +acc +9 +jmp +110 +nop +298 +acc +4 +acc +25 +acc +0 +jmp -136 +acc +24 +jmp +418 +acc -2 +acc +38 +jmp +92 +acc +5 +acc +22 +acc -4 +acc -12 +jmp +241 +acc +19 +nop -6 +acc -11 +acc +24 +jmp +236 +jmp +106 +jmp +343 +jmp -17 +acc +5 +jmp +143 +nop +354 +acc +20 +acc -11 +jmp +63 +nop +252 +jmp +96 +acc -11 +acc +35 +nop +409 +acc +2 +jmp +83 +acc +0 +acc -1 +jmp +299 +acc +46 +jmp +426 +acc +8 +acc +50 +acc +33 +jmp +384 +nop -20 +jmp -152 +jmp +283 +nop -161 +nop -76 +acc +34 +nop -202 +jmp -98 +acc +11 +jmp +194 +acc +12 +acc +32 +acc -18 +acc +4 +jmp +202 +acc -12 +acc +43 +acc -11 +jmp +70 +acc +8 +acc -5 +acc +9 +jmp -187 +acc +49 +acc +42 +acc +10 +jmp +274 +jmp -216 +acc -11 +acc -8 +acc +49 +nop -56 +jmp -197 +nop -33 +nop -167 +jmp -174 +acc +41 +acc +19 +acc +13 +jmp +334 +acc +48 +acc +37 +acc +35 +jmp +323 +jmp +1 +jmp -184 +nop +76 +acc +47 +acc +5 +jmp -150 +jmp +133 +acc -1 +jmp +197 +nop +175 +acc +28 +jmp +328 +jmp +209 +nop -190 +jmp +1 +jmp +181 +acc +33 +acc +34 +jmp +345 +jmp -118 +acc +40 +acc +36 +nop +32 +jmp +261 +acc +38 +acc +1 +acc -19 +acc +48 +jmp +320 +acc +32 +acc -7 +acc +34 +jmp +64 +acc +6 +acc +3 +acc -11 +jmp +293 +acc +49 +acc +23 +acc +46 +jmp +231 +jmp +1 +acc -17 +jmp +35 +jmp -78 +jmp +82 +acc +31 +nop +31 +acc +35 +acc +42 +jmp -208 +acc +2 +acc -16 +jmp +139 +nop -170 +acc -4 +acc +22 +acc +9 +jmp +295 +nop -248 +acc +33 +acc +32 +jmp +186 +acc -11 +jmp +151 +acc +15 +acc -7 +acc +20 +jmp -215 +acc +43 +acc +12 +acc +6 +acc +5 +jmp +225 +acc +15 +jmp +1 +nop +263 +jmp -317 +acc +34 +jmp +1 +jmp -275 +acc -15 +acc -12 +jmp +165 +nop -254 +acc +12 +nop +277 +jmp +105 +acc +35 +jmp +1 +acc +34 +jmp +93 +acc +9 +jmp -282 +acc +43 +jmp -335 +acc +21 +jmp -114 +acc +30 +jmp -246 +acc -17 +acc +10 +nop -211 +nop +202 +jmp +76 +acc +34 +acc +23 +acc +9 +acc +48 +jmp -208 +jmp -241 +acc +37 +jmp +97 +acc +10 +acc +47 +nop -292 +acc -13 +jmp +27 +acc -18 +nop -56 +jmp +33 +acc +7 +jmp -12 +acc -11 +acc -2 +acc +13 +jmp -328 +acc +21 +acc +30 +jmp -208 +acc -7 +jmp -87 +acc +41 +nop +76 +acc +22 +jmp +222 +acc +48 +acc +4 +jmp +225 +jmp +200 +acc -14 +acc -12 +nop -79 +jmp +192 +acc +41 +acc +3 +jmp -355 +jmp -292 +acc -18 +jmp -174 +acc +44 +acc +23 +jmp -163 +acc +5 +nop -125 +nop -7 +acc +41 +jmp -266 +jmp +90 +acc +5 +jmp +213 +acc +10 +acc -11 +nop -403 +jmp +1 +jmp -386 +acc -18 +acc +9 +nop +107 +acc +0 +jmp -383 +jmp +104 +acc +30 +acc -3 +nop -208 +acc -15 +jmp +211 +acc -12 +acc +18 +jmp -392 +acc +25 +acc +30 +jmp -170 +jmp -282 +acc +38 +acc -16 +jmp -108 +acc +29 +acc +31 +acc +29 +acc +32 +jmp -258 +acc -16 +jmp -40 +acc +41 +jmp -365 +acc +17 +acc +20 +jmp -77 +jmp -55 +acc +3 +acc +28 +nop -227 +jmp +116 +jmp +165 +acc +16 +jmp -74 +acc -4 +jmp -275 +acc +28 +jmp -254 +acc +13 +acc -12 +acc -16 +jmp -5 +acc +17 +nop -369 +nop -375 +nop +66 +jmp -173 +jmp -40 +jmp -448 +acc -10 +nop -332 +acc +39 +acc -8 +jmp +64 +acc -19 +acc +14 +jmp -376 +acc +20 +acc +25 +acc +11 +acc +29 +jmp -392 +acc +33 +acc +28 +nop -241 +acc -6 +jmp +2 +jmp -410 +acc +15 +nop -351 +jmp -254 +acc -2 +acc +15 +acc +11 +jmp -103 +acc +29 +acc +7 +jmp +21 +acc +20 +acc +3 +acc -4 +acc +31 +jmp -7 +acc -1 +jmp +1 +jmp -158 +acc +11 +acc -8 +jmp +123 +acc -9 +acc +42 +acc +6 +acc -18 +jmp -483 +nop -507 +acc +37 +acc -10 +jmp -61 +jmp +98 +acc +38 +acc +36 +jmp -358 +nop -231 +acc +23 +acc +49 +jmp -151 +acc +48 +acc +2 +acc +19 +acc +34 +jmp -8 +acc -14 +acc -16 +jmp -439 +acc -7 +acc -14 +jmp -466 +acc +1 +nop -254 +acc +11 +jmp -72 +acc +33 +acc +11 +acc +40 +jmp -428 +acc +26 +acc +8 +acc +19 +jmp -305 +nop +71 +acc +3 +jmp -457 +acc -6 +acc +36 +jmp +77 +acc +11 +nop +68 +jmp -69 +acc +7 +acc -8 +acc +50 +jmp -516 +acc +11 +acc +46 +acc +4 +jmp -179 +jmp -265 +nop -64 +jmp +63 +acc +27 +nop -340 +jmp -62 +acc +15 +acc +42 +acc -9 +jmp -549 +acc +3 +acc -10 +acc +28 +jmp -376 +jmp +1 +jmp -78 +jmp -87 +acc +34 +acc -17 +jmp -275 +acc +50 +acc +17 +acc +39 +jmp -133 +nop -331 +acc +33 +acc +38 +acc +25 +jmp -215 +acc +0 +acc -9 +jmp -258 +acc +25 +jmp -81 +jmp -574 +acc +37 +acc +48 +jmp -327 +acc +34 +nop -493 +acc +42 +jmp -459 +jmp +1 +jmp -135 +jmp -489 +acc +33 +acc +19 +acc +17 +acc +7 +jmp -106 +nop -164 +jmp -462 +acc +27 +jmp -612 +acc +15 +jmp -438 +acc +35 +jmp -171 +acc +10 +acc +4 +acc +34 +jmp -496 +nop -4 +acc +16 +jmp -541 +acc +13 +jmp -201 +jmp -551 +acc +40 +acc +9 +acc +0 +acc +33 +jmp +1 diff --git a/2020/day08/test b/2020/day08/test new file mode 100644 index 0000000..178df53 --- /dev/null +++ b/2020/day08/test @@ -0,0 +1,9 @@ +nop +0 +acc +1 +jmp +4 +acc +3 +jmp -3 +acc -99 +acc +1 +jmp -4 +acc +6 diff --git a/2020/day09/day09.c b/2020/day09/day09.c new file mode 100644 index 0000000..9e6e61f --- /dev/null +++ b/2020/day09/day09.c @@ -0,0 +1,98 @@ +#include +#include +#include +#include + +bool in_state(unsigned int m, unsigned int state[m][m], unsigned int x) { + for (int i = 0; i < m; ++i) { + for (int j = i + 1; j < m; ++j) { + if (state[i][j] == x) { + return true; + } + } + } + return false; +} + +void print_state(unsigned int m, unsigned int state[m][m]) { + for (int i = 0; i < m; ++i) { + for (int j = 0; j < m; ++j) { + printf("%u ", state[i][j]); + } + printf("\n"); + } +} + +void update_state(unsigned int m, unsigned int state[m][m], unsigned int *input, + unsigned int k) { + for (int i = k - m +1; i < k; ++i) { + state[k % m][i % m] = input[i] + input[k]; + state[i % m][k % m] = input[i] + input[k]; + } +} + +int main(int argc, char *argv[]) { + if (argc < 3) { + printf("Usage: %s \n", argv[0]); + return 0; + } + + FILE *fp = fopen(argv[1], "r"); + if (fp == NULL) { + printf("Could not open file %s\n", argv[1]); + return 1; + } + + unsigned int m; + sscanf(argv[2], "%d", &m); + + unsigned int input[1024] = {0}; + unsigned int n = 0; + unsigned int d; + while (fscanf(fp, "%d\n", &d) == 1) { + input[n] = d; + n++; + } + fclose(fp); + + // Part 1 + unsigned int state[m][m]; + for (int i = 0; i < m; ++i) { + for (int j = 0; j < m; ++j) { + if (i != j) { + state[i][j] = input[i] + input[j]; + } else { + state[i][j] = 0; + } + } + } + + unsigned int k = m; + while (in_state(m, state, input[k])) { + update_state(m, state, input, k); + k++; + } + + printf("%u\n", input[k]); + + // Part 2 + unsigned int invalid_number = input[k]; + for (int width = 2; width < n; ++width) { + for (int i = 0; i < n - width; ++i) { + unsigned int sum = 0; + unsigned int min = UINT_MAX; + unsigned int max = 0; + for (int j = 0; j < width; ++j) { + sum += input[i + j]; + min = (input[i + j] < min) ? input[i + j] : min; + max = (input[i + j] > max) ? input[i + j] : max; + } + if (sum == invalid_number) { + printf("%u\n", min + max); + return 0; + } + } + } + + return 0; +} diff --git a/2020/day09/day09.dyalog b/2020/day09/day09.dyalog new file mode 100644 index 0000000..8b98e7d --- /dev/null +++ b/2020/day09/day09.dyalog @@ -0,0 +1,6 @@ + ⎕IO←0 + p←⍎¨⊃⎕NGET'input'1 + m←25 + ⊢x←p⌷⍨m+⍸~(m↓p)∊¨{(,∘.<⍨⍳m)/,⍵}¨∘.+⍨¨¯1↓m,/p ⍝ Part 1 + ⍝+/∊{{(x=+/⍵)×(⌈/+⌊/)⍵}¨⍵,/p}¨2+⍳⍴p ⍝ Part 2 + (⌈/+⌊/)p[{(1+1⊃⍵)+⍳⊃-/⍵}⊃⍸x=∘.-⍨+\p] ⍝ Part 2 (faster) diff --git a/2020/day09/day09.rkt b/2020/day09/day09.rkt new file mode 100644 index 0000000..021a468 --- /dev/null +++ b/2020/day09/day09.rkt @@ -0,0 +1,65 @@ +#lang racket + +(module+ test + (require rackunit)) + +(module+ main + (displayln "Day 9")) + +(define (read-input filename) + (list->vector (map string->number (file->lines filename)))) + +(define (initial-state p m) + (reverse (for/list ([x (in-vector p 0 m)]) + (for/list ([y (in-vector p 0 m)] + #:unless (= x y)) + (+ x y))))) + +(define (update-state s p k) + (define m (length (car s))) + (define new-sums (for/list ([x (in-vector p (- k m) k)]) + (+ x (vector-ref p k)))) + (append (cdr s) (list new-sums))) + +(define (in-state? s x) + (member x (flatten s))) + +;; The initial state is computed in O(m^2), and the search itself is +;; only O(nm), where n is the length of the input, because updating +;; the state is linear in m. So the overall complexity is O(m^2 + nm) +;; instead of O(nm^2) for the naïve solution. +(define (find-invalid-number p m) + (define-values (s x) + (for/fold ([s (initial-state p m)] + [x (vector-ref p m)]) + ([k (in-naturals m)] + #:break (not (in-state? s x))) + (values (update-state s p k) + (vector-ref p k)))) + x) + +(define (part1 filename m) + (find-invalid-number (read-input filename) m)) + +(module+ test + (check-equal? (part1 "test" 5) 127)) + +(module+ main + (displayln (part1 "input" 25))) + +(define (part2 filename m) + (define p (read-input filename)) + (define n (vector-length p)) + (define invalid (find-invalid-number p m)) + (for*/last ([width (in-range 2 n)] + [i (in-range 0 (- n width))]) + (define contiguous (vector->list (vector-copy p i (+ i width)))) + #:final (= invalid (apply + contiguous)) + (+ (apply min contiguous) + (apply max contiguous)))) + +(module+ test + (check-equal? (part2 "test" 5) 62)) + +(module+ main + (displayln (part2 "input" 25))) diff --git a/2020/day09/input b/2020/day09/input new file mode 100644 index 0000000..6f3976e --- /dev/null +++ b/2020/day09/input @@ -0,0 +1,1000 @@ +3 +17 +32 +2 +19 +45 +22 +18 +38 +8 +16 +13 +41 +35 +23 +29 +11 +46 +12 +27 +49 +34 +20 +14 +47 +50 +10 +15 +17 +21 +57 +25 +19 +18 +22 +76 +24 +32 +26 +28 +23 +30 +29 +31 +33 +27 +35 +42 +34 +36 +91 +40 +37 +38 +43 +47 +44 +41 +45 +72 +49 +61 +80 +55 +66 +71 +56 +117 +141 +69 +135 +70 +73 +83 +74 +75 +114 +78 +79 +113 +213 +189 +86 +104 +173 +105 +116 +131 +152 +194 +149 +125 +139 +142 +143 +144 +247 +188 +157 +191 +153 +238 +164 +165 +190 +202 +209 +211 +393 +269 +221 +291 +299 +281 +264 +267 +268 +327 +351 +301 +379 +310 +318 +317 +430 +329 +429 +641 +477 +411 +420 +578 +432 +522 +485 +488 +582 +531 +532 +929 +652 +569 +611 +740 +795 +627 +937 +746 +1081 +759 +749 +1063 +888 +1109 +963 +852 +917 +920 +1508 +1677 +1019 +1100 +1142 +1143 +1180 +1196 +1360 +1942 +1376 +1373 +1601 +1495 +1901 +2248 +1611 +1637 +2128 +1740 +1769 +1772 +1936 +2280 +2339 +2515 +4281 +2162 +2296 +2553 +2516 +4451 +2556 +2733 +2749 +2868 +3096 +4334 +3541 +3248 +3988 +6613 +3897 +3509 +3934 +3705 +4098 +4216 +7236 +4458 +4677 +4678 +4715 +4812 +6116 +5249 +5289 +5305 +5482 +12525 +5964 +8612 +6757 +6789 +10510 +7443 +12038 +9490 +8798 +7639 +7803 +9387 +8674 +10117 +9135 +16874 +9393 +9527 +10061 +12078 +10538 +10594 +10787 +11446 +17032 +13407 +13546 +14396 +16850 +15082 +15246 +15442 +22542 +16313 +26559 +16477 +17809 +19673 +26036 +28320 +30257 +18920 +19588 +21325 +21984 +21132 +28489 +22233 +24853 +38461 +26953 +28628 +29478 +30688 +33251 +31559 +44526 +49845 +34286 +35397 +53206 +37397 +38508 +41821 +41572 +40052 +40913 +40720 +42457 +67136 +43365 +49186 +93712 +55581 +61239 +56431 +58106 +63939 +62247 +65845 +66956 +92551 +69683 +71683 +111735 +90603 +75905 +78560 +80772 +80965 +81633 +113125 +160921 +85822 +101471 +174364 +115031 +113687 +112012 +119345 +128114 +143019 +186714 +128092 +132801 +145516 +166594 +195996 +152455 +268347 +167455 +226288 +194652 +161737 +241217 +329733 +187293 +197834 +199509 +213483 +225699 +227043 +556776 +466916 +453331 +256206 +457825 +280547 +278317 +285256 +357733 +386802 +654209 +743081 +329192 +361246 +349030 +478381 +385127 +397343 +424877 +412992 +411317 +693539 +504016 +665674 +483249 +677890 +614448 +534523 +536753 +563573 +558864 +682599 +1042113 +1102767 +678222 +1041954 +690438 +710276 +1071276 +734157 +1103430 +782470 +808660 +1324724 +1186615 +894566 +1151201 +987265 +1241463 +1778216 +1224961 +1093387 +1095617 +1241795 +1122437 +2050455 +1424595 +1936679 +2337412 +1936520 +1885900 +1400714 +2229060 +1516627 +1902047 +2749319 +1795925 +1703226 +2690491 +2796613 +1990183 +3196639 +2944689 +3629774 +3653655 +3085800 +2189004 +2917341 +2825309 +2523151 +2941222 +3402527 +3103940 +3390897 +5392710 +6189740 +5515800 +3219853 +6045162 +4899865 +6282439 +4620567 +3693409 +6320265 +5014313 +5627091 +8416840 +4712155 +10526956 +6779209 +6494837 +11182304 +5742650 +5348460 +6622380 +6161075 +9149102 +12406300 +18596040 +10757317 +6913262 +7840420 +7932008 +9854484 +8313976 +8405564 +9436059 +13662436 +24189392 +9726468 +11788166 +12940284 +10060615 +11091110 +20618363 +18260048 +11509535 +13280468 +16439570 +25875629 +13074337 +14753682 +14845270 +15227238 +18597737 +19162527 +32503368 +37385164 +16719540 +31200332 +46165804 +23723051 +26354805 +24953706 +31709473 +83550968 +21151725 +23341083 +28301575 +50459501 +24583872 +24790003 +30000008 +35905407 +60011048 +32236864 +29598952 +30072508 +42503610 +52624947 +70749676 +41303412 +55026214 +41673246 +44874776 +44492808 +77111640 +45735597 +48131086 +52940035 +82697455 +45941728 +47924955 +59671460 +49373875 +54182824 +104164268 +62236872 +71375920 +61835816 +62309372 +70902364 +83012543 +82976658 +85796220 +86166054 +103982618 +86548022 +89598201 +93660552 +160124183 +144533271 +124315955 +132071330 +93866683 +95315603 +97298830 +264288451 +132386418 +103556699 +147843376 +181481657 +124072688 +124145188 +132738180 +133211736 +153879022 +169560565 +168772878 +171962274 +172714076 +176146223 +180208574 +183258753 +271988564 +189182286 +191165513 +218011871 +192614433 +226604863 +228053783 +316687121 +277951710 +331610482 +227629387 +248217876 +256810868 +257284424 +256883368 +265949916 +429246698 +322651900 +338333443 +340735152 +344676350 +257342611 +356354797 +375873186 +372441039 +410626304 +380347799 +637690410 +419219296 +420243820 +454234250 +455683170 +475847263 +484440255 +484971998 +484512755 +505028744 +513694236 +514167792 +523292527 +579994511 +854902944 +713025781 +595676054 +598077763 +602018961 +752788838 +1208472008 +969484753 +856881294 +829845600 +799567095 +874478070 +875926990 +909917420 +1343539836 +931530433 +960287518 +969412253 +1218054525 +1397770597 +1018722980 +1027862028 +1094162303 +1474004753 +1540282029 +1686726894 +1512592876 +1193753817 +1200096724 +2118389428 +1552355933 +1629412695 +1656448389 +1674045165 +1675494085 +1709484515 +1750405060 +2312216828 +1879329673 +1891817951 +1900942686 +2509694282 +2046585008 +2112885283 +2122024331 +2692768145 +2287916120 +2294259027 +2393850541 +3227008923 +3246681732 +3186638041 +4240413759 +2752452657 +3181768628 +3208804322 +3338897210 +3330493554 +5078455992 +4506735824 +3459889575 +3792760637 +3771147624 +3938402959 +4903544823 +4013827969 +4622579565 +4159470291 +4234909614 +6520665838 +4987027172 +4582175147 +8085313451 +5146303198 +7733744747 +8446916747 +6547701532 +5961256979 +14967582585 +7123254191 +7231037199 +6669390764 +6790383129 +8006057238 +7252650212 +16091370689 +7563908261 +8596003116 +13029091894 +8173298260 +15569965499 +8394379905 +8741645438 +10948284151 +9569202319 +13433943919 +11107560177 +11694004730 +13338084661 +12508958511 +12630647743 +12751640108 +23964345404 +13459773893 +19113617415 +14796440367 +20435650168 +14043033341 +16159911377 +14816558473 +20194556004 +15737206521 +24991317492 +16567678165 +18310847757 +17136025343 +19342664056 +25924118650 +28790559120 +20676762496 +22801564907 +23616518688 +29887665451 +25260598619 +25139606254 +25382287851 +26211414001 +27502807234 +29612998840 +28859591814 +28839473708 +29780239862 +30202944718 +35910342221 +30553764994 +64769934035 +36478689399 +33703703508 +37812787839 +35446873100 +42518313194 +40019426552 +43478327403 +44293281184 +45816368750 +46418083595 +48756124942 +50400204873 +55162527713 +93629525849 +59983184580 +66672379653 +58472590654 +57699065522 +73132754892 +76222016702 +75596608612 +60756709712 +82459828450 +67032454393 +117426036076 +70182392907 +149132208103 +95430057680 +75466299652 +88775551494 +104288959404 +87771608587 +90109649934 +94572493692 +121884383247 +99156329815 +105562732586 +112861593235 +116171656176 +154443988240 +133938890306 +118455775234 +124731519915 +142629063005 +127789164105 +156186767392 +136223009364 +181616158265 +137214847300 +186927938402 +231653067044 +163237908239 +165575949586 +179755259056 +198861453096 +177881258521 +182344102279 +239501622892 +193728823507 +217612105049 +204719062401 +218424325821 +246244939339 +243187295149 +252394665540 +261728054411 +261946367215 +260954529279 +264012173469 +301798958950 +273437856664 +356966731746 +494181579046 +398179584877 +350165846641 +419256881948 +567777951690 +343457208107 +357636517577 +360225360800 +371610082028 +680211411227 +398447885908 +411340928556 +422331167450 +466665429616 +461611620970 +504915349560 +495581960689 +513349194819 +619364571988 +522900896494 +700246844858 +537450030133 +710391207441 +633663217464 +809788814464 +693623054748 +715067290135 +701093725684 +839039168796 +876525431588 +1030705500544 +793941249478 +1071856926886 +782951010584 +820779053358 +860059506878 +833672096006 +883942788420 +962247390305 +974960815789 +1000497310249 +1114946532677 +1535846343493 +1060350926627 +1156564113958 +1237696874991 +1231073084881 +1327286272212 +1527295150754 +1484044736268 +1534765821690 +1659818222154 +1495034975162 +1576892260062 +1603730063942 +1614720302836 +1616623106590 +1643010517462 +1654451149364 +2064745180887 +1693731602884 +1717614884426 +1858903604209 +1937208206094 +2726108060043 +2845793387717 +3221309294845 +2216915040585 +4462416494307 +4459006169836 +3174905081085 +2558359357093 +2811331008480 +3018810557958 +3228497424574 +3831635343421 +3071927235224 +3353938579371 +3191612562898 +3308451905720 +3231343409426 +3310354709474 +3654823090520 +3348182752248 +3411346487310 +3552635207093 +5090247013635 +3796111810303 +5438224335430 +7003005842768 +5906542109341 +4775274397678 +5028246049065 +6193715639043 +6963981694403 +6247307982532 +5369690365573 +5830141566438 +9058638991012 +6624562442317 +6263539798122 +6303270644650 +6765285066681 +6965177799994 +6541698118900 +6579526161674 +12077449548970 +8327909604771 +6759529239558 +9317888596651 +10118493062700 +8571386207981 +16283066396645 +10968990036721 +13762535082326 +9803520446743 +14834926006103 +10397936414638 +25803916042824 +11199831932011 +11949216527247 +13589740242311 +19296899641492 +14631180249421 +17741530050911 +13068555711331 +12844968763550 +19828084950889 +17363114214632 +13121224280574 +34663010956992 +15087438844329 +16878022302258 +15330915447539 +19540376244702 +18374906654724 +18969322622619 +20201456861381 +20772510483464 +23466492125969 +22872076158074 +53037917611716 +23519160695212 +23149048459258 +37942986912292 +24794185290797 +61462147607504 +44334561535499 +25966193044124 +25913524474881 +34300238070158 +35288895705710 +28208663124903 +28452139728113 +29999246582832 +41297108491663 +61092035371550 +39170779484000 +33705822102263 +37344229277343 +54365664202994 +49432685170093 +40973967344845 +67942233495124 +46021124617332 +46391236853286 +51879717519005 +60266431114282 +47943233750055 +114333470348410 +50707709765678 +54122187599784 +54174856169027 +71934649092213 +55912771057713 +56660802853016 +58207909707735 +58451386310945 +77942480332887 +63705068685095 +74679789447108 +87365204198131 +72876601586263 +71050051379606 +97900842136337 +139876882587337 +96728834383010 +91681677110523 +92412361470618 +93964358367387 +94334470603341 +123814366611218 +110087627226740 +98650943515733 +104829897365462 +104882565934705 +108297043768811 diff --git a/2020/day09/test b/2020/day09/test new file mode 100644 index 0000000..28d66e4 --- /dev/null +++ b/2020/day09/test @@ -0,0 +1,20 @@ +35 +20 +15 +25 +47 +40 +62 +55 +65 +95 +102 +117 +150 +182 +127 +219 +299 +277 +309 +576 diff --git a/2020/day10/day10.c b/2020/day10/day10.c new file mode 100644 index 0000000..b31e911 --- /dev/null +++ b/2020/day10/day10.c @@ -0,0 +1,63 @@ +#include +#include +#include +#include + +int compare(const void* a, const void* b) { + unsigned int x = *(const unsigned int*)a; + unsigned int y = *(const unsigned int*)b; + + if (x < y) return -1; + if (x > y) return 1; + return 0; +} + +int main(int argc, char *argv[]) { + if (argc < 2) { + printf("Usage: %s \n", argv[0]); + return 0; + } + + FILE *fp = fopen(argv[1], "r"); + if (fp == NULL) { + printf("Could not open file %s\n", argv[1]); + return 1; + } + + unsigned int input[128] = {0}; + unsigned int n = 1; + unsigned int d = 0; + unsigned int max = 0; + while (fscanf(fp, "%d\n", &d) == 1) { + input[n] = d; + n++; + max = d > max ? d : max; + } + max += 3; + input[n] = max; + n++; + fclose(fp); + + qsort(input, n, sizeof(unsigned int), compare); + + // Part 1 + int ones = 0; + int threes = 0; + for (int i = 1; i < n; ++i) { + int diff = input[i] - input[i-1]; + ones += (diff == 1); + threes += (diff == 3); + } + printf("%d\n", ones * threes); + + // Part 2 + unsigned long counts[1024] = {0}; + counts[2] = 1; + for (int i = 1; i < n; ++i) { + unsigned int x = input[i]; + counts[x+2] = counts[x-1] + counts[x] + counts[x+1]; + } + printf("%lu\n", counts[max+2]); + + return 0; +} diff --git a/2020/day10/day10.dyalog b/2020/day10/day10.dyalog new file mode 100644 index 0000000..61f825b --- /dev/null +++ b/2020/day10/day10.dyalog @@ -0,0 +1,10 @@ + ⎕IO←0 ⋄ ⎕PP←15 + p←⍎¨⊃⎕NGET'input'1 + p←0,p[⍋p],3+⌈/p + ×/⊢∘≢⌸2-/p ⍝ Part 1 + c←0,0,1,(⌈/p)⍴0 ⍝ paths counts + {c[⍵+2]←+/c[⍵+¯1 0 1]}¨1↓p + ⊃⌽c ⍝ Part 2 + + a←(0∘<∧≤∘3)∘.-⍨p ⍝ adjacency matrix + +/{⊃⊖({a+.×⍵}⍣⍵)a}¨⍳⍴p ⍝ Part 2, the matrix way diff --git a/2020/day10/day10.rkt b/2020/day10/day10.rkt new file mode 100644 index 0000000..a8b5f2e --- /dev/null +++ b/2020/day10/day10.rkt @@ -0,0 +1,49 @@ +#lang racket + +(module+ test + (require rackunit)) + +(module+ main + (displayln "Day 10")) + +(define (read-input filename) + (define input (map string->number (file->lines filename))) + (sort (cons 0 (cons (target input) input)) <)) + +(define (target lst) + (+ 3 (apply max lst))) + +(define (part1 filename) + (define jolts (read-input filename)) + (define counts (make-hash)) + (for ([x (in-list (drop jolts 1))] + [y (in-list jolts)]) + (hash-update! counts (- x y) add1 0)) + (* (hash-ref counts 1 0) (hash-ref counts 3 0))) + +(module+ test + (check-equal? (part1 "test1") (* 7 5)) + (check-equal? (part1 "test2") (* 22 10))) + +(module+ main + (displayln (part1 "input"))) + +(define (count-paths jolts) + (define counts (make-hash)) + (hash-set! counts 0 1) + (for ([x (in-list (cdr jolts))]) + (hash-set! counts x (+ (hash-ref counts (- x 1) 0) + (hash-ref counts (- x 2) 0) + (hash-ref counts (- x 3) 0)))) + (hash-ref counts (last jolts))) + +(define (part2 filename) + (define jolts (read-input filename)) + (count-paths jolts)) + +(module+ test + (check-equal? (part2 "test1") 8) + (check-equal? (part2 "test2") 19208)) + +(module+ main + (displayln (part2 "input"))) diff --git a/2020/day10/input b/2020/day10/input new file mode 100644 index 0000000..3827452 --- /dev/null +++ b/2020/day10/input @@ -0,0 +1,95 @@ +86 +149 +4 +75 +87 +132 +12 +115 +62 +61 +153 +78 +138 +43 +88 +108 +59 +152 +109 +63 +42 +60 +7 +104 +49 +156 +35 +2 +52 +72 +125 +94 +46 +136 +26 +16 +76 +117 +116 +150 +20 +13 +141 +131 +127 +67 +3 +40 +54 +82 +36 +100 +41 +56 +146 +157 +89 +23 +8 +55 +111 +135 +144 +77 +124 +18 +53 +92 +126 +101 +69 +27 +145 +11 +151 +31 +19 +34 +17 +130 +118 +28 +107 +137 +68 +93 +85 +66 +97 +110 +37 +114 +79 +121 +1 diff --git a/2020/day10/test1 b/2020/day10/test1 new file mode 100644 index 0000000..ec4a03f --- /dev/null +++ b/2020/day10/test1 @@ -0,0 +1,11 @@ +16 +10 +15 +5 +1 +11 +7 +19 +6 +12 +4 diff --git a/2020/day10/test2 b/2020/day10/test2 new file mode 100644 index 0000000..e6376dc --- /dev/null +++ b/2020/day10/test2 @@ -0,0 +1,31 @@ +28 +33 +18 +42 +31 +14 +46 +20 +48 +47 +24 +23 +49 +45 +19 +38 +39 +11 +1 +32 +25 +35 +8 +17 +7 +9 +4 +2 +34 +10 +3 diff --git a/2020/day11/day11.dyalog b/2020/day11/day11.dyalog new file mode 100644 index 0000000..6243bd3 --- /dev/null +++ b/2020/day11/day11.dyalog @@ -0,0 +1,4 @@ + ⎕IO←0 + p←'L'=↑⊃⎕NGET'input'1 + s←{(1=1 1⌷⍵)∧∧/2≠,⍵:2 ⋄ (2=1 1⌷⍵)∧4<+/2=,⍵:1 ⋄ 1:1 1⌷⍵}⌺3 3 + +/,2=(s⍣≡)p ⍝ Part 1 diff --git a/2020/day11/day11.rkt b/2020/day11/day11.rkt new file mode 100644 index 0000000..4ac6512 --- /dev/null +++ b/2020/day11/day11.rkt @@ -0,0 +1,119 @@ +#lang racket + +(module+ test + (require rackunit)) + +(module+ main + (displayln "Day 11")) + +(define (matrix-ref mat i j default) + (define n (vector-length mat)) + (define m (vector-length (vector-ref mat 0))) + (if (or (< i 0) (<= n i) (< j 0) (<= m j)) + default + (vector-ref (vector-ref mat i) j))) + +(define (matrix-set! mat i j v) + (vector-set! (vector-ref mat i) j v)) + +(define (matrix-copy mat) + (for/vector ([l (in-vector mat)]) + (vector-copy l))) + +(define (display-state state) + (for ([l (in-vector state)]) + (displayln (list->string (vector->list l)))) + (displayln "")) + +(define (parse-line str) + (list->vector (string->list str))) + +(define (read-input filename) + (with-input-from-file filename + (lambda () + (for/vector ([line (in-lines)]) + (parse-line line))))) + +(define (update-seat-neighbours state x y) + (define neighbours (for*/sum ([i '(-1 0 1)] + [j '(-1 0 1)] + #:unless (= 0 i j)) + (if (eq? #\# (matrix-ref state (+ x i) (+ y j) #\.)) 1 0))) + (define s (matrix-ref state x y #\.)) + (cond + [(and (eq? s #\L) (= neighbours 0)) #\#] + [(and (eq? s #\#) (>= neighbours 4)) #\L] + [else s])) + +(define (update-state state update-seat-fn) + (define n (vector-length state)) + (define m (vector-length (vector-ref state 0))) + (define new-state (matrix-copy state)) + (for* ([x (in-range n)] + [y (in-range m)]) + (matrix-set! new-state x y (update-seat-fn state x y))) + new-state) + +(define (count-occupied state) + (for*/sum ([l (in-vector state)] + [v (in-vector l)] + #:when (eq? v #\#)) + 1)) + +(define (part1 filename) + (define input (read-input filename)) + (define n (vector-length input)) + (define m (vector-length (vector-ref input 0))) + (define-values (prev final) + (for/fold ([prev-state 0] + [state input]) + ([i (in-naturals)] + #:break (equal? prev-state state)) + (define new-state (update-state state update-seat-neighbours)) + (values state new-state))) + (count-occupied final)) + +(module+ test + (check-equal? (part1 "test") 37)) + +(module+ main + (displayln (part1 "input"))) + +(define (visible state x y dx dy) + (define n (vector-length state)) + (define m (vector-length (vector-ref state 0))) + (let loop ([u (+ x dx)] + [v (+ y dy)]) + (cond + [(or (< u 0) (< v 0) (<= n u) (<= m v)) 0] + [(eq? #\L (matrix-ref state u v #\.)) 0] + [(eq? #\# (matrix-ref state u v #\.)) 1] + [else (loop (+ u dx) (+ v dy))]))) + +(define (update-seat-visible state x y) + (define n-visible (apply + (for*/list ([dx '(-1 0 1)] + [dy '(-1 0 1)] + #:unless (= 0 dx dy)) + (visible state x y dx dy)))) + (define s (matrix-ref state x y #\.)) + (cond + [(and (eq? s #\L) (= n-visible 0)) #\#] + [(and (eq? s #\#) (>= n-visible 5)) #\L] + [else s])) + +(define (part2 filename) + (define input (read-input filename)) + (define-values (prev final) + (for/fold ([prev-state 0] + [state input]) + ([i (in-naturals)] + #:break (equal? prev-state state)) + (define new-state (update-state state update-seat-visible)) + (values state new-state))) + (count-occupied final)) + +(module+ test + (check-equal? (part2 "test") 26)) + +(module+ main + (displayln (part2 "input"))) diff --git a/2020/day11/input b/2020/day11/input new file mode 100644 index 0000000..9ac13d4 --- /dev/null +++ b/2020/day11/input @@ -0,0 +1,98 @@ +LLLLLLLLL.LLLL.LLLLL.LLLLLLLLLL.LLLLLLLLLLLLLLLL.LLLLLL.LLLLLLLLLLLLLLLLLL.LLLLLLL.LLLLLLLL +LLLLLLLLL.LLLL.LLLLLLLLLLLL.LLLLLLLLLLLLL.LLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLL +LLLLLLLLL.LLLL.LLLLL.LLLLLL.LLLLLLLL.LLLLLLLLLLL.LLLLLLLLLLLLLLL.LLLLLLLLL.LLLLLLL.LLLLLLLL +LLLLLLLL..LLLL.LLLLL.LLLLLL.LLLLLLLL.LLLLLLLLLLL.LLLLLL.LLLLLLLL.LLLLLLLLLLLLLLL.LLLLLLLL.L +LLLL.LLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLL.LLLLLL.LLLLLLLLLLLLLLL.LLLLLLLLL.LLLLLLL.LLLLLLLL +LLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLL.LLLLLLLL +......L.LL.....L.L..L.....L.L..LL.L.LL.L...L..L..............L..L......LL.....LL...L.L..... +LLLLLLLLL.LLLL.LLLLLLLLLLLL.LLLLLLLLLLLLL..LLLLLLLLLLLL.LLLLLLLL.LLLLLLLL..LLLLLLL.LLLLLLLL +LLLLLLLLLLLLLL.LLLLL.LLLLLLLLLLLLLLL.LLLLLLLLLLL.LLLLLL.LLLLLLLL.LLLLLLLLL.LLLLLLL.LLLLLLLL +LLLLLLLLLLLLLL.LLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLL.LLLLLL.LLLLLLLL.LLLLLLLLLLLLLLLLL.LLL.LLLL +LLLLLLLLL.LLLL.LLLLL.LLLLLLLLLLLLLLLLLLLL.LLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLL.LLLLLLLL +LLLLLLLLL..LLL.LLLLL.LLLLLL.LLLLLLLLLLLLLLLLLLLL.LLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL +...L..L....LL.L.L......LLLLL.....LL....L.......L.LL.L.L.L..LL...LLLLLL.LL........L.L....... +LLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLL.LLLL.LLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLL.LLLLLLLL +LLLLLLLLLLLLLL.LLLLLLLLLLLL.LLLLLLLL.LLLL.LLLLLL.LLLLLL.LLLLLLLL.LLLLLLLLL.LLLLLLLLLLLLLLLL +.LLLLLLLL.LLLL..LLLL.LLLLLL.LLLLLLLL.LLLL.LLLLLLLLLLLLL.LLLLLLLL.LLLLLLLLL.LLLLLLLL.LLLLLLL +LLLLLLLLL.LLLL.LLLLL.LLLLLL.LLLLLLLLLLLLL.LLLLLL.LLLLLLLLLLLLLLL.LLLLLLLLL.LLLLLLL.LLLLLLLL +LLLLLLLLL.LLLLLLLLLLLLLLLLL.LLLLLLLL.LLLL.LLLLLL.LLLLLLLLLLLLLLL.LLLLLLLLL.LLLLLLL.LL.LLLLL +LLLLLLLLL.LLLL.LLLLL.LLLLLLLLLLLLLLL.LLLLLLLLLLL.LLLLLL.LLLLLLLL.LLLLLL.LL.LLLLLLL.LLLLLLLL +LLLLLLLLL.L.LL.LLLLLLLLLLLLLLLLLLLLL.LLLL.LLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLLL.LLLLLLLL +LLLLLLLLL.LLLLLLLLLLLL.LLLL.LLLLLLLLLLLLL.LLLLLL.LLLLLL.LLLLLLLL.LLLLLLLLL.LLLLLLL.LLLLLLLL +......L.L..L.L...LLL.....L.L..L......LL...L..L..L.L......L.L..L....LLLL....L..L....L.L..L.L +LLLLLL.LL.LLLLLLLLLL.LLLLLL.LLLLLLLL.LLLL.LLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLL.LLLLLLL.LLLLLLLL +LLLLLLLLL.LLLL.LLLLL.LLLLLL.LLLLLLLLLLLLL.LLLLLLLLLLLLL.LLLLLLLL.LLL.LLLLL.LLLLLLL.LLLLLLLL +LLLLLLLLL.LLLL.LLLLLLLLLLLL.LLLLLLLL.LLLLLLLLLLL.LLLLLL.LLLLLLLL.LLLLLLLLL.LLLLLLLLLLLLLLLL +LLLL.LLLL.LLLLLLLLL..LLLLLLLLLLLLLLL.LLLLLLLLLLL.LLLLLL.LLLLLLLL.LLLLLLLLLLLLLLLLL.LLLLLLLL +LLLLLLLLL.LLLL.LLLLL.LLLLLLLLLLL.LLL.LLLLLLLLLLL.LLL.LL.LLLLLLLL.LLLLLLLLL.LLLLLLL.LLLLLLLL +LLLLLLLLL.LLLL.LLLLLLLLLLLL.LL.LLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLL.LLLLLLL.LLLLLLLL +LLLLLLLLL.LLLL.LLLLL.LLLLLL.LLL.LLLL.LLLL.LLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLL +LLLLLLLLLLLLLL.LLLLL.LLLLLL.LLLLLLLL.LLLLL.LLLLLLLLLLLL.LLLLLLLL.LLLLLLLLL.LLLLLLLLLLLLLLLL +LLLLLLLLL.L.LL.LLLLL.LLLLLL.LLLLLLLL.LLLL.LLLLLLLLLLLLL.LLLLLLLL.LLLLLLLLL.LLLLLLL.LLLLLLLL +.LLL......L........L.....L..LL.L..L..L.L....L.L............L...........LLL..L..LL....LL..L. +LLLLLLLLLLLLLL.LLLLL.LLLLLL.LLLLLLLL.LLLL.LLLLLL.LLLLLLLLLLLLLLL.LLLLLLLLL.LLLLLLL.LLLLLLLL +LLLLLLLLLLLLLLLLLLLL..LLLLLLLLLLLLLL.LLLLLLLLLLL.LLLLLL.LLLLLLLL.LLLLLLLLLLLLLLLLL.LLLLLLLL +LLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLL.LLLLLLLL.LLLLLLLLL.LLLLLLL.LLLLLLLL +LLLLLLLLLLLLLL.LLLLL.LLLLLLLLLLLLLLL.L.LLLLLLLLL.LLLLLL.LLLLLLLL.LLLLLLLLLLLLLLLLL.LLLLLLLL +.......LL..L.LLL.L....L..L....L......L..L...LL...L.L...LL....L.L........L...L...L.L.......L +LLLLLLLLLLLLLL.LLLLL.LLLLLLLLLLLLLLL.LLLL.LLLLLLLLLLLLL.LLLLLLLL.LLLLLLLLL.LLLLLLL.LLLLLLLL +LLLLLLLLL.LLLL.LLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLL +LLLLLLLLLLLLLL..LLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLL.LLLLLL.LLLLL.LLLLLLLLLLLL.LL.LLLL.LLLLLLLL +LLLLLLLLL.LLLL.LLLLLLLLLLLLLLLLLLLLL.LLLL.LLLLLL.LLLLLL.LLLLLLLL.LLLLLLLLL.LLLLLLL.LLLLLLLL +.L..LLL.L....LL.L..L..LL..L.LL.L......L........LLL.....L..LL...L.LL.LL.....L....L..LL.L.... +LLLLLLLLLLL.LL.LLL.LLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLL.LLLLLLLLLLLL.LLLLLLLLL.LLLLLLLLLLLLLLLL +LLLLLLLLL.LLLL.LLLLLLLLLLLL.LLLLLLLL.LLLLLL.LLLL.LLLLLL.LLLLLLLL.LLLLLLLLLLLLLLLLL.LLLLLLLL +LLLLLLLLL.LLLLLLLLLL.LLLLLLLLLLLLLLL.LLLL.LLLLLLLLLLLLL.LLLLLLL..LLLLLLLLL.LLLLLLLLLLLLLLLL +LLLLLLLLL.LLLL.LLLLL.LLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLL.LLLLLLLL.LLLLLLLLL.LLLLLLLLLLLLLLLL +LLLLLLLLL.LLLL.LLLLL.LLLLLL.LLLLLLLLLLLLLLLLLLLL.LLLLLL.LLLLLLLLLLLLLLLLLL.LLLLLLL.LLLLLLLL +L..L.LL....L..LL.L.....L.....L...L..L..L...L....L.L.L..LL.L......L...L......L....L.....L.L. +LLLLLLLLL.LLLL.LLLLL.LLLLLL.LLLLLLLL.LLLL.LLLLLL.LLLLLLLLLLLLLLL..LLLLLLLL.LLLLLLL.LLLLLLLL +LLLLLLLLL.LLLL.L.LLL.LLLLLL.LLLLLLLL.LLLLLLLLLLL.LLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL +LLLLLLLLL.LLLL.LLLLL.LLLLLL.LLLLLLLLLLLLL.LLLLLL.LLLLLLLLLLLLL.L.LLLLL.LLLLLLLLLLL.LLLLLLLL +LLLLLLLLL.LLLL.LLLLL.LLLLLL.LLLLLLLLLLLLL.LLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLL.LLLLLLLL +.L..L.L...LLL.LL.L.L...L........LLLLL.L..L......L.....L....L.LL.L.LLL...LL..LL.LL..LL.....L +LLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLL.LLLL.LLLLLL.LLLLLL.LLLLLLLL.LLLLLLLLL.LLLLLLLLLLLLLLLL +LLLLLLLLL.LLLL.LLLLLLLLLLLLLLLLLLLLL.LLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLL +LLLLLLLLL.LLLL.LLLLL.LLLLLLLLLLLLLLL.LLLLLLLLLLL.LLLLLL.LLLLLLLLLLLLLLLLLL.LLLLLLL.LLLLLLLL +LLLLLLLLL.LLLL.LLLLL.LLLLLLLLLLLLLLL.LLLL.LLLLLL.LLLLLL.LLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLL +LLLLLLLLL.LLLL.LLLLL.LLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLL.LLLLLLLL.LLLLLLLLL.LLLLLLL.LLLLLLLL +LLLLLLLLL.LLLL.LLLLL.LLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLL.LLLLLLLLL.LLLLLLLLLLLLLLLL +LLLLLLLLL.LLLL.LLLLL.LLLLLL.LLLLLLLLLLLLL.LLLLLL.LLLLLLLLLLLLLLL.LLLLLLLL..LLLLLLL.LLLLLLLL +..L.L..L...L..L.L........L.L.LLL..L.L...LLL..L..........L........L....LLLL.LL...L......LL.. +LLLLLLLLL.LLLLLLLLLL.LLLLLL.LLLLLLLL.LLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLL.LLLLLLLL +LLLLLLLLL.LLLLLLLLLLLLLLLLL.LLLLLLLL.LLLL.LLLLLL.LLLLLL.LLLLLLLL.LLLLLLLL..LLLLLLL.LLLLLLLL +LLLLLLLLL.LLLL.LLLLL.LLLLLL.LLLLLLLL.LLLLLLLLLLL.LLLLLLLLLLLLLLL.LLLLLLLLL.LLLLLLLLLLLL.LLL +LLLLLLLLLLLLLL.LLLLL.LLLLLLLLLLLLLLLLLLLL.LLLLLL.LLL.LL.LLLLLLLLLLLLLLLLLL.LLLLLLL.LLLLLLLL +....LL.L..L...LL......L.....L..LL.L.......LL...L....LLLLL..L..L.LLL.......LL..LL...LL.....L +LLLLLLLLL.LLLL.LLLLLLLLLLLLLLLLLLLLL.LLLL.LLLLLL.LLLLLL.LLLLLLLL.LLLLLLLLL.LLLLLLL.LLLLLLLL +LLLLLLLLL.LLLL.LLLLL.LLLLLLLLLLLLLLL.LLLL.LLLLLL.LLLLLL.LLLLLLLLLLLLLLLLLL.LLLLLLL.L.LLLLLL +LLLLLLLLLLLLLL.LLLLL.LLLLLLLLLLLLLLL.LLLL.LLLLLL.LLLLLL.LLLLLLLL.LLLLLLLLL.LLLLLLLLLLLLLLLL +LLLLLLLLL.LLLLLLLLLL.LLLLLL.LLLLLLLL.LLLLLLLLLLL.L.LLLL.LLLLLLLL.LLLLLLLLLLLLLLLLL.LLLLLLLL +LLLLLLLLL.LLLLLLLLLLLLLLLLL.LLLLLLLL.LLLLLLLLLLLLLLLLLLLLL.LLLLL.LLLLLLLLLLLLLLLLL.LLLLLLL. +.L.LL..L.LLL.L...L.......L..LLL.....L...LL...LLL...L.LL............L.L....LL.....L.L..LL..L +LLLLLLLLL.LLLL.LLLLL.LLLLLL.LLLLLLLL.LLLL.LLLLLL.LLLLLLLLLLLLLLL.LLLLLLLLL.LLLLLLLLLL.LLLLL +LLLLLLLLL.LLLL.LLLLL.L.L.LLLLLLLLLLL.LLLL.L.LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL +LLLLLLLLLLLLLL.LLLLLLLLLL.L.LLLLLLLL.LLLLLLLLLLL.LLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLL.LLLLLLLL +LLLLLLLLL.LLLL.LLLLL.LLLLLL.LLLLLLLL.LLLLLLLLLLLLLLLLLL.LLLLLLLL.LLLL.LLLL.LLLLLLLLLLLLLLLL +LLLLLLLLL.LLLL.LLLLL.LLLLLL.LLLLLLLL.LLLLLLLLLLLLLLLLLL.LLLLLLLL.LLLLLLLLL.LLLLLLL.LLLLLLLL +LLLLLLLLLLLLLL.LLLLL.LLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLL.LLLLLLLLL.LLLLLLL.LLLLLLLL +LLL..L....L.LL..L.L.LLL.LL..L.......L.LL..L..L....L..L...L...L.L..L.L.L.L.L.L.LLL.L.....L.L +LLLLLLLLL.LLLL.LLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLL.LLLLLL.LLLLLLLLLLLLLLLLLL.LLLLLLL.LL.LLLLL +LLLLLLLLL.LLLL.LLLLLLLLLLLL.LLLLLLLL.LLLL.LLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLL +LLLLLLLLL.LLLL.LLLLL.LLLLLL.LLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLL.LLLLLLL.LLLLLLLL +LLLLLLLLLLLLLLLLLLLL.LLLLLL.LL.LLLLL.LLLL.LLLLLLLLLLLLL.LLLLLLLL.LLLLLLLLL.LLLL.LLLLLLLLLLL +LLLLLLLLL.LLLLLLLLLLLLLLLLL.LLLLLLLL.LLLLLLLLLLL.LLLLLL.LLLLLLLL.LLLLLLLLLLLLLLLLL.LLLLLLLL +LLLLLLLLL.LLLLLLLLLL.LLLLLLLLLLLLLLL.LLLL.LLLLLL.LLLLLLLLLL.LLLL.LLLLLLLLLLLLLLLLL.LLLLLLLL +.L..L..LL.L..L..L.L.L.LL..L....L.....L.LL..........L..L...LLL.L....LL...LL...L.LL.L.....LL. +LLLL.LLLL.LLLL.LLLLLLLLLLLLLLLLLLLLL.LLLL.LLLLLLLLLLLLL.LLLLLLLL.LLLLLLLLL.LLLLLLLLLLLLLLLL +LLLLLLLLL.LLLL.LLLLL.LLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLL.LLLLLLLL.LLLLLL.LLLLLLLLLLLLLLLLLLL +LLLLLLLLL.LLLLLLLLLL.LLLLLL.LLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLL +LLLLLLLLLLLLLLLLLLLL.LLLLLL.LLLLLLLLLLLLL.LLLLLL.LLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL +.LLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLL.LLLL.LLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLL +LLLLLLLLL.LLLL.LLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLL +LLLLLLLLLL.LLL.LLLLL.LLLLLL.LLLLLLLLLLLLLLLLLLLL.LLLLLL.LLLLLLLL.LLLLLLLLL.LLLLLLL.LLLLLLLL +LLLLLLLLL.LLLLLLLLLLLLLLLLL.LLLLLLLL.LL.L.LLLLLL.LL.LLLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLL +LLLLLLLLL.LLLL..LLLL.LLLLLL.LLLLLLLL.LL.L.LLLLLL.LLLLLL.LLLLLLLL.LLLLLLLLLLLLLLLLL.LLLLLLLL +LLLLLLLLL.LLLL.LLLLL.LLLLLL.LLLLLLLL.LLLLLLLLLLL.LLLLLL.LLLLLLLL.LLLLLLLLL.LLLLLLL.LLLLLLLL +LLLLLLLLL.LLLLLLLLLL.LLLLLL.LLLLL.LLLLLLL.LL.LLL.LLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLL..LLLLLLLL +LLLLLLLLLLLLLL.LLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLL.LLLLLLLLL.LLLLLLLLLL.LLLLL diff --git a/2020/day11/test b/2020/day11/test new file mode 100644 index 0000000..1beaede --- /dev/null +++ b/2020/day11/test @@ -0,0 +1,10 @@ +L.LL.LL.LL +LLLLLLL.LL +L.L.L..L.. +LLLL.LL.LL +L.LL.LL.LL +L.LLLLL.LL +..L.L..... +LLLLLLLLLL +L.LLLLLL.L +L.LLLLL.LL diff --git a/2020/day12/day12.c b/2020/day12/day12.c new file mode 100644 index 0000000..749db3b --- /dev/null +++ b/2020/day12/day12.c @@ -0,0 +1,119 @@ +#include +#include +#include +#include + +#define PI + +struct instruction { + char action; + int value; +}; + +struct state { + double complex pos; + double complex dir; +}; + +void step1(struct state *st, struct instruction instr) { + switch (instr.action) { + case 'N': { + st->pos += instr.value * I; + break; + } + case 'S': { + st->pos -= instr.value * I; + break; + } + case 'E': { + st->pos += instr.value; + break; + } + case 'W': { + st->pos -= instr.value; + break; + } + case 'F': { + st->pos += instr.value * st->dir; + break; + } + case 'R': { + st->dir *= cexp(-instr.value * I * M_PI / 180); + break; + } + case 'L': { + st->dir *= cexp(instr.value * I * M_PI / 180); + break; + } + default: + printf("Invalid instruction %c %d\n", instr.action, instr.value); + break; + } +} + +void step2(struct state *st, struct instruction instr) { + switch (instr.action) { + case 'N': { + st->dir += instr.value * I; + break; + } + case 'S': { + st->dir -= instr.value * I; + break; + } + case 'E': { + st->dir += instr.value; + break; + } + case 'W': { + st->dir -= instr.value; + break; + } + case 'F': { + st->pos += instr.value * st->dir; + break; + } + case 'R': { + st->dir *= cexp(-instr.value * I * M_PI / 180); + break; + } + case 'L': { + st->dir *= cexp(instr.value * I * M_PI / 180); + break; + } + default: + printf("Invalid instruction %c %d\n", instr.action, instr.value); + break; + } +} + +int main(int argc, char *argv[]) { + if (argc < 2) { + printf("Usage: %s \n", argv[0]); + return 0; + } + + FILE *fp = fopen(argv[1], "r"); + if (fp == NULL) { + printf("Could not open file %s\n", argv[1]); + return 1; + } + + struct instruction in[1024]; + int n = 0; + while (fscanf(fp, "%c%d\n", &in[n].action, &in[n].value) == 2) { + n++; + } + fclose(fp); + + struct state st1 = {.pos = 0, .dir = 1}; + struct state st2 = {.pos = 0, .dir = 10 + I}; + for (int i = 0; i < n; ++i) { + step1(&st1, in[i]); + step2(&st2, in[i]); + } + printf("%d\n", (int)round(fabs(creal(st1.pos)) + fabs(cimag(st1.pos)))); + printf("%d\n", (int)round(fabs(creal(st2.pos)) + fabs(cimag(st2.pos)))); + + return 0; +} diff --git a/2020/day12/day12.rkt b/2020/day12/day12.rkt new file mode 100644 index 0000000..521f7df --- /dev/null +++ b/2020/day12/day12.rkt @@ -0,0 +1,66 @@ +#lang racket + +(module+ test + (require rackunit)) + +(module+ main + (displayln "Day 12")) + +(define (parse-instruction str) + (list (string->symbol (substring str 0 1)) + (string->number (substring str 1)))) + +(define (read-input filename) + (map parse-instruction (file->lines filename))) + +(struct state + (pos dir) + #:transparent) + +(define (step st instr) + (match instr + [`(N ,n) (struct-copy state st [pos (+ (state-pos st) (make-rectangular 0 n))])] + [`(S ,n) (struct-copy state st [pos (- (state-pos st) (make-rectangular 0 n))])] + [`(E ,n) (struct-copy state st [pos (+ (state-pos st) (make-rectangular n 0))])] + [`(W ,n) (struct-copy state st [pos (- (state-pos st) (make-rectangular n 0))])] + [`(F ,n) (struct-copy state st [pos (+ (state-pos st) (* n (state-dir st)))])] + [`(R ,n) (struct-copy state st [dir (* (state-dir st) (make-polar 1 (degrees->radians (- n))))])] + [`(L ,n) (struct-copy state st [dir (* (state-dir st) (make-polar 1 (degrees->radians n)))])])) + +(define (part1 filename) + (define input (read-input filename)) + (define final + (state-pos (for/fold ([st (state 0 1)]) + ([instr (in-list input)]) + (step st instr)))) + (exact-round (+ (abs (real-part final)) (abs (imag-part final))))) + +(module+ test + (check-equal? (part1 "test") 25)) + +(module+ main + (displayln (part1 "input"))) + +(define (step2 st instr) + (match instr + [`(N ,n) (struct-copy state st [dir (+ (state-dir st) (make-rectangular 0 n))])] + [`(S ,n) (struct-copy state st [dir (- (state-dir st) (make-rectangular 0 n))])] + [`(E ,n) (struct-copy state st [dir (+ (state-dir st) (make-rectangular n 0))])] + [`(W ,n) (struct-copy state st [dir (- (state-dir st) (make-rectangular n 0))])] + [`(F ,n) (struct-copy state st [pos (+ (state-pos st) (* n (state-dir st)))])] + [`(R ,n) (struct-copy state st [dir (* (state-dir st) (make-polar 1 (degrees->radians (- n))))])] + [`(L ,n) (struct-copy state st [dir (* (state-dir st) (make-polar 1 (degrees->radians n)))])])) + +(define (part2 filename) + (define input (read-input filename)) + (define final + (state-pos (for/fold ([st (state 0 (make-rectangular 10 1))]) + ([instr (in-list input)]) + (step2 st instr)))) + (exact-round (+ (abs (real-part final)) (abs (imag-part final))))) + +(module+ test + (check-equal? (part2 "test") 286)) + +(module+ main + (displayln (part2 "input"))) diff --git a/2020/day12/input b/2020/day12/input new file mode 100644 index 0000000..4d805f8 --- /dev/null +++ b/2020/day12/input @@ -0,0 +1,776 @@ +R180 +E1 +N1 +R90 +E4 +F84 +W3 +F19 +E5 +N1 +W5 +W4 +R90 +S1 +F70 +R90 +W2 +S3 +L180 +E2 +R90 +E1 +R90 +N2 +E3 +F55 +W3 +R90 +S2 +E4 +L90 +F33 +W4 +S3 +F11 +N4 +W4 +F88 +W3 +F62 +L90 +S3 +W3 +N1 +E3 +E2 +N1 +E3 +S3 +E5 +S4 +W5 +L90 +W5 +R90 +E4 +F36 +N4 +E4 +E5 +F47 +R90 +N3 +E3 +L180 +S5 +R90 +S5 +W2 +S3 +F43 +W2 +R180 +W2 +S2 +L180 +E2 +F49 +L90 +F77 +S5 +E1 +S2 +F39 +L180 +F12 +W1 +L90 +F60 +S2 +E3 +N1 +E5 +R90 +E1 +N4 +W4 +S4 +E2 +L90 +F100 +E3 +F58 +S2 +E4 +F83 +W3 +N1 +R90 +F99 +W5 +W4 +F19 +N3 +W1 +W5 +F70 +R180 +R90 +F58 +E5 +N3 +R90 +N4 +F86 +N4 +F70 +L90 +F36 +R90 +S4 +R180 +N5 +F81 +W5 +R90 +E5 +L90 +F73 +S5 +E3 +N1 +F27 +E2 +N3 +L180 +W2 +F24 +N2 +L90 +F69 +N2 +E3 +F49 +L90 +S4 +W5 +F18 +R180 +F62 +S2 +F65 +E3 +F100 +N1 +F96 +W1 +F75 +L180 +W2 +S2 +F93 +E5 +S3 +R90 +S2 +F34 +R90 +F83 +S1 +W1 +F58 +L180 +N4 +E1 +R90 +W2 +F93 +S3 +F20 +R90 +N3 +E3 +N3 +L90 +F8 +S3 +F18 +S3 +N2 +F6 +L270 +F70 +W5 +S3 +F54 +E2 +F75 +E3 +R90 +N2 +W3 +L90 +E4 +F58 +N5 +F97 +W2 +L90 +W5 +S2 +W1 +S5 +F85 +N1 +E1 +N4 +E4 +L90 +E1 +R90 +S5 +L180 +R270 +N1 +L90 +E4 +N3 +F45 +N2 +F68 +R90 +F36 +N5 +F82 +S5 +E4 +R180 +S2 +L180 +N3 +R270 +W5 +F70 +L90 +W5 +F80 +W4 +N2 +R90 +S3 +W1 +F23 +N1 +W1 +N4 +F70 +S3 +L180 +F57 +R90 +L90 +F55 +L90 +N4 +F87 +L90 +F1 +L270 +F17 +N5 +R180 +F84 +R90 +W5 +F7 +W1 +S1 +E3 +F46 +S5 +E2 +F23 +R90 +E4 +W2 +F96 +E5 +L90 +F65 +F3 +S5 +E5 +N3 +W4 +L90 +S2 +F57 +E1 +R90 +F68 +E3 +L90 +W1 +F29 +N5 +W5 +N1 +F95 +N1 +L90 +F31 +S5 +L180 +N2 +W5 +R90 +F27 +E1 +R90 +E3 +S5 +F10 +R90 +N4 +E2 +F25 +S4 +E5 +F51 +N3 +W2 +L90 +S3 +L180 +F17 +E4 +F93 +E3 +L90 +F41 +L90 +S5 +L90 +W5 +N1 +F81 +L90 +E4 +W2 +R90 +W1 +S5 +R90 +F39 +W3 +R90 +N5 +E1 +L90 +F82 +S3 +R90 +W4 +F66 +F4 +L90 +F77 +R90 +E1 +L90 +F53 +S4 +F35 +W1 +F64 +R90 +F9 +S1 +E1 +L90 +W4 +R90 +S2 +W5 +R90 +S4 +L90 +N3 +F8 +L180 +N5 +E5 +N4 +F35 +N5 +W1 +N1 +E5 +F15 +R180 +F92 +W3 +L90 +F4 +L90 +E1 +S3 +W3 +R90 +F37 +N5 +F19 +S2 +F98 +L90 +F24 +W3 +F68 +N5 +R90 +W3 +L90 +W3 +L90 +S1 +L90 +S4 +W3 +F56 +N4 +R90 +E3 +W1 +L90 +E4 +N3 +R180 +E1 +S1 +W2 +R90 +N3 +F82 +N2 +F37 +S3 +L180 +E2 +L180 +F6 +N2 +F96 +E2 +R180 +E2 +W3 +R90 +E2 +S5 +S1 +F23 +R90 +W5 +F75 +S1 +L90 +S3 +E1 +F83 +W4 +L180 +W5 +L90 +N1 +E1 +S2 +F17 +L90 +S2 +F53 +R90 +S3 +N3 +W1 +N4 +L180 +L90 +E3 +F9 +S5 +F24 +W3 +E5 +N2 +F73 +N1 +F28 +N2 +W4 +N3 +F53 +E5 +F47 +W2 +F60 +L90 +E2 +F19 +S1 +F63 +W5 +F100 +N3 +L180 +F83 +N4 +W5 +F37 +S1 +F50 +E1 +N2 +W3 +R90 +F85 +S4 +F72 +N4 +L90 +F48 +R90 +F99 +R90 +F58 +W3 +W4 +F64 +E1 +R90 +F74 +L90 +F23 +N3 +N3 +E1 +S1 +W5 +L180 +F98 +L90 +F36 +W4 +S2 +W3 +F9 +F72 +W5 +F78 +N2 +F65 +S3 +F47 +S5 +R90 +F68 +L180 +W2 +F7 +E2 +E3 +S4 +R90 +N2 +L180 +W2 +R180 +E4 +R90 +W3 +L90 +E4 +F54 +L180 +E2 +F6 +W5 +F82 +E4 +R90 +E4 +F25 +N2 +R270 +N4 +F18 +N5 +R90 +S3 +R90 +F38 +R90 +F97 +W4 +F85 +S4 +F56 +E4 +S1 +F40 +W3 +F52 +L90 +F76 +N4 +F15 +S2 +F22 +S5 +L180 +F91 +L180 +F8 +L90 +E4 +N4 +F67 +L90 +S3 +R180 +R90 +N4 +F71 +W3 +F34 +E2 +N1 +F43 +W5 +L180 +N5 +W2 +F42 +R90 +W3 +F39 +E1 +S2 +L180 +N5 +E3 +N5 +F28 +E1 +R90 +S3 +F40 +L90 +S2 +S2 +L90 +W5 +L90 +F93 +R180 +W4 +S4 +W4 +F100 +S3 +R90 +E2 +L180 +W1 +E3 +S5 +L90 +F87 +N1 +R90 +F3 +R90 +E5 +R90 +S3 +F45 +L90 +S2 +F42 +R90 +F95 +L90 +E1 +N3 +R90 +F73 +S3 +E1 +L90 +S2 +E3 +L90 +L270 +F38 +S5 +R90 +F42 +L90 +N1 +F7 +S3 +F65 +N2 +F42 +L180 +W5 +S4 +E4 +F65 +S4 +E5 +F51 +E4 +R180 +F70 +R90 +F28 +N5 +W5 +N1 +F96 +L90 +W4 +S3 +W3 +F89 +W1 +L90 +F75 +L270 +S3 +R90 +L90 +F7 +E2 +F24 +R180 +S2 +L180 +F48 +R90 +F37 +W2 +R90 +W4 +L90 +W3 +F81 +E4 +N2 +F39 +E4 +N1 +W1 +L90 +F59 diff --git a/2020/day12/test b/2020/day12/test new file mode 100644 index 0000000..d382291 --- /dev/null +++ b/2020/day12/test @@ -0,0 +1,5 @@ +F10 +N3 +F7 +R90 +F11 diff --git a/2020/day13/day13.c b/2020/day13/day13.c new file mode 100644 index 0000000..c91e8c1 --- /dev/null +++ b/2020/day13/day13.c @@ -0,0 +1,89 @@ +#include +#include +#include + +long egcd(long *x, long *y, long a, long b) { + if (b == 0) { + *x = 1; + *y = 0; + return a; + } + + long x1, y1; + long gcd = egcd(&x1, &y1, b, a % b); + *x = y1; + *y = x1 - (a / b) * y1; + + return gcd; +} + +long modinv(long a, long m) { + long x, y; + long gcd = egcd(&x, &y, a, m); + if (gcd != 1) { + return -1; + } + if (x < 0) { + return m + x; + } + return x; +} + +int main(int argc, char *argv[]) { + if (argc < 2) { + printf("Usage: %s \n", argv[0]); + return 0; + } + + FILE *fp = fopen(argv[1], "r"); + if (fp == NULL) { + printf("Could not open file %s\n", argv[1]); + return 1; + } + + int t; + fscanf(fp, "%d\n", &t); + + int buses[100] = {0}; + int n = 0; + while (fscanf(fp, "%d,", &buses[n++]) == 1 || fscanf(fp, "x,") == 0) + ; + n--; + fclose(fp); + + // Part 1 + int min = INT_MAX; + int tmin = 0; + for (int i = 0; i < n; ++i) { + if (buses[i] == 0) { + continue; + } + int x = buses[i] - t % buses[i]; + if (x < min) { + min = x; + tmin = i; + } + } + printf("%d\n", min * buses[tmin]); + + // Part 2 + unsigned long N = 1; + for (int i = 0; i < n; ++i) { + if (buses[i] == 0) { + continue; + } + N *= buses[i]; + } + + long x = 0; + for (int i = 0; i < n; ++i) { + if (buses[i] == 0) { + continue; + } + long Ni = N / buses[i]; + x += (buses[i] - i) * modinv(Ni, buses[i]) * Ni; + } + printf("%ld\n", x % N); + + return 0; +} diff --git a/2020/day13/day13.dyalog b/2020/day13/day13.dyalog new file mode 100644 index 0000000..9c57854 --- /dev/null +++ b/2020/day13/day13.dyalog @@ -0,0 +1,18 @@ + ⎕IO←0 ⋄ (⎕FR ⎕PP)←1287 34 + p←⊃⎕NGET'input'1 + t←⍎⊃p + b←⍎¨((1<',x'∘⍳)⊆⊢)1⊃p + b{×/((⊢⍳⌊/)⍵)⌷¨(⊂⍺),⊂⍵}b|-t ⍝ Part 1 + ⍝ https://www.jsoftware.com/papers/50/50_44.htm + xea←{(⍺,1 0){0=⊃⍵:⍺ ⋄ ⍵ ∇ ⍺-⍵×⌊(⊃⍺)÷⊃⍵}(⍵,0 1)} + ∇r←larg cr rarg + m r←larg + n s←rarg + gcd a b←m xea n + lcm←m×n÷gcd + c←lcm|gcd÷⍨(r×b×n)+(s×a×m) + r←lcm,c + ∇ + c←','(≠⊆⊢)1⊃p + b←↓⍉⍎¨⍕¨↑(⊂~('x'≡⊃)¨c)/¨(⊂c),⊂-⍳⍴c + 1⊃⊃cr/{x y←⍵ ⋄ 0=y:x,y ⋄ 1:x(x+y)}¨b ⍝ Part 2 diff --git a/2020/day13/day13.rkt b/2020/day13/day13.rkt new file mode 100644 index 0000000..0b4fd90 --- /dev/null +++ b/2020/day13/day13.rkt @@ -0,0 +1,42 @@ +#lang racket + +(require math/number-theory) + +(module+ test + (require rackunit)) + +(module+ main + (displayln "Day 13")) + +(define (parse-buses str) + (map string->number (string-split str ","))) + +(define (read-input filename) + (define in (file->lines filename)) + (values (string->number (car in)) + (parse-buses (cadr in)))) + +(define (part1 filename) + (define-values (t buses) (read-input filename)) + (define waits (for/list ([b (in-list buses)] + #:when b) + (list b (- b (modulo t b))))) + (apply * (argmin cadr waits))) + +(module+ test + (check-equal? (part1 "test") 295)) + +(module+ main + (displayln (part1 "input"))) + +(define (part2 filename) + (define-values (t buses) (read-input filename)) + (define active-buses (for/list ([b (in-list buses)] #:when b) b)) + (define times (for/list ([b (in-list buses)] [i (in-naturals)] #:when b) (- i))) + (solve-chinese times active-buses)) + +(module+ test + (check-equal? (part2 "test") 1068781)) + +(module+ main + (displayln (part2 "input"))) diff --git a/2020/day13/input b/2020/day13/input new file mode 100644 index 0000000..1ccfd8b --- /dev/null +++ b/2020/day13/input @@ -0,0 +1,2 @@ +1000509 +17,x,x,x,x,x,x,x,x,x,x,37,x,x,x,x,x,739,x,29,x,x,x,x,x,x,x,x,x,x,13,x,x,x,x,x,x,x,x,x,23,x,x,x,x,x,x,x,971,x,x,x,x,x,x,x,x,x,41,x,x,x,x,x,x,x,x,19 diff --git a/2020/day13/test b/2020/day13/test new file mode 100644 index 0000000..d76f619 --- /dev/null +++ b/2020/day13/test @@ -0,0 +1,2 @@ +939 +7,13,x,x,59,x,31,19 diff --git a/2020/day14/day14.c b/2020/day14/day14.c new file mode 100644 index 0000000..c30b1f9 --- /dev/null +++ b/2020/day14/day14.c @@ -0,0 +1,123 @@ +#include "uthash.h" +#include +#include +#include + +struct memcell { + unsigned long key; + unsigned long val; + UT_hash_handle hh; +}; + +unsigned long part1(FILE *fp) { + char *buf = NULL; + size_t buf_size = 0; + struct memcell *mem = NULL; + char mask[36]; + + while (getline(&buf, &buf_size, fp) != -1) { + if (strncmp(buf, "mask", 4) == 0) { + sscanf(buf, "mask = %s", mask); + } + + else { + unsigned long addr, val; + sscanf(buf, "mem[%ld] = %ld", &addr, &val); + + for (int i = 0; i < 36; ++i) { + if (mask[35 - i] == '1') { + val |= 1UL << i; + } else if (mask[35 - i] == '0') { + val &= ~(1UL << i); + } + } + + struct memcell *elt = (struct memcell *)malloc(sizeof(struct memcell)); + struct memcell *prev_elt = + (struct memcell *)malloc(sizeof(struct memcell)); + elt->key = addr; + elt->val = val; + HASH_REPLACE(hh, mem, key, sizeof(unsigned long), elt, prev_elt); + } + } + + unsigned long sum = 0; + for (struct memcell *cell = mem; cell != NULL; cell = cell->hh.next) { + sum += cell->val; + } + + return sum; +} + +unsigned long part2(FILE *fp) { + char *buf = NULL; + size_t buf_size = 0; + struct memcell *mem = NULL; + char mask[36]; + int xcount; + + while (getline(&buf, &buf_size, fp) != -1) { + if (strncmp(buf, "mask", 4) == 0) { + sscanf(buf, "mask = %s", mask); + xcount = 0; + for (int i = 0; i < 36; ++i) { + if (mask[i] == 'X') { + xcount++; + } + } + } + + else { + unsigned long addr, val; + sscanf(buf, "mem[%ld] = %ld", &addr, &val); + + for (unsigned long m = 0; m < (1UL << xcount); ++m) { + unsigned long new_addr = addr; + int x_idx = 0; + for (int i = 0; i < 36; ++i) { + if (mask[35 - i] == '1') { + new_addr |= 1UL << i; + } else if (mask[35 - i] == 'X') { + unsigned long bit = (1UL & (m >> x_idx)); + new_addr ^= (-bit ^ new_addr) & (1UL << i); + x_idx++; + } + } + + struct memcell *elt = (struct memcell *)malloc(sizeof(struct memcell)); + struct memcell *prev_elt = + (struct memcell *)malloc(sizeof(struct memcell)); + elt->key = new_addr; + elt->val = val; + HASH_REPLACE(hh, mem, key, sizeof(unsigned long), elt, prev_elt); + } + } + } + + unsigned long sum = 0; + for (struct memcell *cell = mem; cell != NULL; cell = cell->hh.next) { + sum += cell->val; + } + + return sum; +} + +int main(int argc, char *argv[]) { + if (argc < 2) { + printf("Usage: %s \n", argv[0]); + return 0; + } + + FILE *fp = fopen(argv[1], "r"); + if (fp == NULL) { + printf("Could not open file %s\n", argv[1]); + return 1; + } + + printf("%lu\n", part1(fp)); + rewind(fp); + printf("%lu\n", part2(fp)); + fclose(fp); + + return 0; +} diff --git a/2020/day14/day14.rkt b/2020/day14/day14.rkt new file mode 100644 index 0000000..d646bff --- /dev/null +++ b/2020/day14/day14.rkt @@ -0,0 +1,82 @@ +#lang racket + +(module+ test + (require rackunit)) + +(define (parse-line str) + (if (string-prefix? str "mask") + (list 'mask (string-trim str "mask = ")) + (let ([params (map string->number (cdr (regexp-match #px"mem\\[(\\d+)\\] = (\\d+)" str)))]) + (list 'mem (car params) (cadr params))))) + +(define (read-input filename) + (map parse-line (file->lines filename))) + +(define (apply-mask mask num) + (define num-binary (reverse (string->list (number->string num 2)))) + (define num-lst (append num-binary (make-list (- 36 (length num-binary)) #\0))) + (define mask-lst (reverse (string->list mask))) + (define res-lst (for/list ([d (in-list num-lst)] + [m (in-list mask-lst)]) + (cond + [(eq? m #\1) #\1] + [(eq? m #\0) #\0] + [else d]))) + (string->number (list->string (reverse res-lst)) 2)) + +(define (part1 filename) + (define input (read-input filename)) + (define mem (make-hash)) + (for/fold ([mask ""]) + ([instr (in-list input)]) + (match instr + [`(mask ,x) x] + [`(mem ,i ,x) (hash-set! mem i (apply-mask mask x)) + mask])) + (apply + (hash-values mem))) + +(module+ test + (check-equal? (part1 "test") 165)) + +(module+ main + (displayln (part1 "input"))) + +(define (floating-expansion mask) + (define x-indexes (indexes-of (reverse (string->list mask)) #\X)) + (for/list ([idxs (in-combinations x-indexes)]) + (apply + (map (λ (idx) (- (expt 2 idx))) idxs)))) + +(define (destinations mask mask-expansion addr) + (map (λ (x) (+ (bitwise-ior mask addr) x)) mask-expansion)) + +(module+ test + (let* ([mask "000000000000000000000000000000X1001X"] + [mask-num (string->number (string-replace mask "X" "1") 2)] + [mask-expansion (floating-expansion mask)]) + (check-equal? (sort (destinations mask-num mask-expansion 42) <) + '(26 27 58 59))) + (let* ([mask "00000000000000000000000000000000X0XX"] + [mask-num (string->number (string-replace mask "X" "1") 2)] + [mask-expansion (floating-expansion mask)]) + (check-equal? (sort (destinations mask-num mask-expansion 16) <) + '(16 17 18 19 24 25 26 27)))) + +(define (part2 filename) + (define input (read-input filename)) + (define mem (make-hash)) + (for/fold ([mask 0] + [mask-expansion '()]) + ([instr (in-list input)]) + (match instr + [`(mask ,x) (values (string->number (string-replace x "X" "1") 2) + (floating-expansion x))] + [`(mem ,i ,x) (for ([dest (in-list (destinations mask mask-expansion i))]) + (hash-set! mem dest x)) + (values mask mask-expansion)])) + (apply + (hash-values mem))) + +(module+ test + (check-equal? (part2 "test2") 208)) + +(module+ main + (displayln (part2 "input"))) diff --git a/2020/day14/input b/2020/day14/input new file mode 100644 index 0000000..32b3a5e --- /dev/null +++ b/2020/day14/input @@ -0,0 +1,592 @@ +mask = 100X100X101011111X100000100X11010011 +mem[33323] = 349380 +mem[52742] = 116688965 +mem[4113] = 11499 +mem[15819] = 313303 +mem[23239] = 755579063 +mask = X00X10X1X010110110111X00010X100X000X +mem[49207] = 466621685 +mem[34069] = 6874604 +mask = 1001100XX00011110110100XX0110000001X +mem[61278] = 56361674 +mem[51360] = 61871432 +mem[31903] = 45067 +mask = 100X100XX0101X11X1X00X00001001X101X0 +mem[22981] = 144008 +mem[12013] = 49165315 +mem[54643] = 50677 +mem[59166] = 678129 +mem[64022] = 27522 +mask = 100110X0001X11011000101X1000001X00X0 +mem[32693] = 425145 +mem[11437] = 236593490 +mem[16078] = 227582 +mem[35266] = 197465438 +mem[39279] = 127942 +mask = 10101000X0X00001X1001000010100111X00 +mem[49794] = 2082 +mem[60407] = 2129 +mem[33300] = 921 +mem[18582] = 62106545 +mem[32160] = 843912 +mem[36917] = 7740 +mem[1836] = 54721591 +mask = 100010X1X0X011X1101XX00001X01000X10X +mem[8385] = 1381 +mem[38022] = 2501412 +mem[34713] = 3648024 +mem[33245] = 1178087 +mem[22176] = 263 +mem[20535] = 1289 +mem[2092] = 88590569 +mask = X001100X00X0X01X0X100X100010110XX101 +mem[65061] = 2768 +mem[56375] = 6734 +mem[18070] = 20571066 +mem[61511] = 403157281 +mem[4164] = 179682 +mem[11801] = 5501 +mem[22339] = 14414879 +mask = X0011000001X1001X0100111110X00110111 +mem[3844] = 1046 +mem[33741] = 109390 +mem[54311] = 94183595 +mem[48744] = 112575 +mem[29663] = 2042 +mask = X00X100000101001101001001X00001000X1 +mem[25325] = 177269 +mem[919] = 50779835 +mem[52113] = 2386630 +mem[60154] = 29645195 +mem[24761] = 8101 +mask = X101X000X01011011010X100001101110X01 +mem[5169] = 2865 +mem[55126] = 50829 +mem[60154] = 124556261 +mem[48753] = 377574 +mem[48662] = 9144531 +mask = 10011X00001010011010000101110XX0X00X +mem[41623] = 632353121 +mem[10365] = 70888870 +mem[59458] = 849 +mem[18992] = 486294339 +mask = X00X100X011011111100X00001001010100X +mem[42046] = 518245944 +mem[4654] = 39071 +mem[46109] = 1540 +mem[3245] = 822 +mem[25937] = 257692 +mem[19118] = 6601278 +mask = 1001001XXX100XXX101XX0001010001000X0 +mem[34356] = 55967 +mem[52601] = 522574 +mem[31903] = 7669828 +mem[36165] = 10552 +mask = 110X101X00X0111111XX001X0001000XX10X +mem[42649] = 1534730 +mem[8324] = 467628 +mem[9447] = 3054 +mem[41788] = 28205 +mem[9353] = 14315559 +mask = 1X01X01100111111X101000000X100100000 +mem[270] = 3208 +mem[20373] = 186089492 +mem[43940] = 449607191 +mem[63389] = 674 +mem[437] = 6933780 +mask = 1001X00001X01X0X101101X0010X00110110 +mem[22829] = 3301 +mem[59260] = 6763 +mem[22305] = 203360 +mask = 10011110101010X010XX011X0010001XX000 +mem[55041] = 6199 +mem[55452] = 151 +mem[2746] = 464657 +mask = 1001000000X0X10110X01101X00100111000 +mem[54354] = 666913 +mem[44827] = 214920 +mem[44621] = 13259544 +mem[29462] = 14725 +mem[27633] = 284739975 +mem[63195] = 11668372 +mask = 10X010X10100X111001X101010101X11100X +mem[21667] = 426958 +mem[55530] = 91533 +mem[10365] = 493 +mem[51246] = 513589450 +mem[44622] = 1773 +mem[4113] = 401 +mask = 100X1000001011XXX0100XXX100010X10X00 +mem[60407] = 869913 +mem[10365] = 59083 +mem[18321] = 3019 +mem[65061] = 10794134 +mem[62827] = 2777572 +mem[20373] = 23798334 +mask = 1000X10011X010011X10X0000101X0100001 +mem[17936] = 4347 +mem[38270] = 611 +mem[7408] = 2854792 +mem[2612] = 604172 +mem[24287] = 418220 +mem[27110] = 31440 +mem[64742] = 1872667 +mask = 10X110000010100110X001X01X1000000111 +mem[30518] = 13431 +mem[64496] = 204238 +mem[62259] = 1191 +mem[17457] = 3652 +mask = 100X1X0XX1101XX11010X000X01010010011 +mem[25325] = 67829 +mem[4021] = 8039 +mask = 1XXXXX0X0010110X11100111001111101110 +mem[34600] = 4128134 +mem[47565] = 28022073 +mask = X0X110000XX010X10010X0X111X111010101 +mem[64746] = 17532220 +mem[55786] = 109034 +mem[12715] = 185475 +mask = 1001110X011010111010X1010010100XX100 +mem[28923] = 1444 +mem[7508] = 41968 +mem[39856] = 447 +mem[19698] = 4420683 +mem[60924] = 7222 +mem[8056] = 225410214 +mask = 100X10X1X0X011X10110X01X011000X10X00 +mem[58206] = 585282 +mem[10984] = 105158307 +mem[31562] = 526874 +mem[60154] = 107013 +mem[4409] = 4126230 +mask = 1010100010X0XX0111X00X00011X000X0XX0 +mem[7122] = 428629 +mem[29394] = 262029322 +mem[33832] = 6067254 +mask = 0001100XXX0010X001100010X000110001X1 +mem[1975] = 32392 +mem[14891] = 9350 +mem[19905] = 28213400 +mem[11981] = 132973999 +mem[49582] = 4347 +mem[64106] = 235564 +mem[9648] = 1440 +mask = 000110010011XXXX0X1001010001X00X0100 +mem[18992] = 628 +mem[37263] = 1031 +mem[4387] = 1442306 +mem[2471] = 1123350 +mem[1493] = 88891215 +mem[22500] = 3553 +mem[6845] = 26007 +mask = 10011X00011011X1101X00X001X1X001X111 +mem[49101] = 13289 +mem[32] = 391365 +mem[31906] = 79 +mem[48744] = 71043 +mask = 1001X0X00010100110X001011001101X01X0 +mem[25999] = 2473051 +mem[36408] = 56819077 +mem[46656] = 2074748 +mem[10871] = 8606 +mem[7122] = 2053 +mem[59403] = 5442 +mask = 1XX0X01X100X11111010X000X00X000101X0 +mem[1160] = 280063168 +mem[20571] = 19030 +mem[23225] = 51089295 +mem[40992] = 17475 +mem[63413] = 1144 +mem[19458] = 284777610 +mem[21502] = 10410 +mask = 100X100X00101X0100X0X0X11100111XX11X +mem[33860] = 160 +mem[37007] = 56420 +mem[55140] = 490726 +mem[47752] = 521745 +mem[55594] = 336661995 +mem[44008] = 265991679 +mask = 1001100001X010011100100X01X0X011111X +mem[1289] = 55191 +mem[53058] = 23079796 +mem[25362] = 57315626 +mem[8895] = 35287816 +mask = 0001100100XX00100X1X0X00XX00XX000110 +mem[12568] = 136661 +mem[9931] = 303487 +mem[38781] = 91532 +mem[25506] = 950257996 +mem[3694] = 6225663 +mem[6631] = 62710499 +mem[3205] = 7586715 +mask = X0001000001X111110100000X0110001000X +mem[61696] = 34763 +mem[42583] = 2987088 +mem[8416] = 2293694 +mem[21503] = 8071 +mem[41788] = 950960 +mem[9648] = 23284946 +mask = 100010000010XX0XX01000000X011100X1X0 +mem[30270] = 421 +mem[52379] = 86815089 +mem[16627] = 3647190 +mem[36794] = 132421727 +mem[54580] = 248096 +mask = 10X1101000X01001X00111110101110001X0 +mem[48399] = 9196559 +mem[6869] = 32793911 +mem[20422] = 1560 +mem[12101] = 15618 +mem[25154] = 390003034 +mem[23791] = 229770864 +mem[49558] = 12206144 +mask = 100X10010X101XX1XXX000001X00101X1100 +mem[3205] = 110968351 +mem[65515] = 7362194 +mem[2197] = 52580964 +mem[13004] = 3723834 +mem[46931] = 24935229 +mem[919] = 6284 +mask = 10001X11100X1X1X10X111X100X0000010X1 +mem[30162] = 1665 +mem[35687] = 3554 +mem[3735] = 8003 +mem[18258] = 44276232 +mem[48625] = 401841687 +mem[62781] = 2814958 +mem[5302] = 175144514 +mask = 1001X0XX001X101110101000X11X00010X00 +mem[38152] = 42369373 +mem[36392] = 13302 +mem[13867] = 940605082 +mask = 10001100X11010X1101000X0X11100110011 +mem[63412] = 5289 +mem[788] = 6600 +mem[27915] = 254034 +mem[24347] = 16264001 +mem[52437] = 651358 +mask = 10011X0X0110X0X11X101100101100X11100 +mem[56524] = 1244173 +mem[64911] = 2124386 +mem[3815] = 107466 +mem[14375] = 6798 +mem[16285] = 66968238 +mem[7968] = 835823180 +mask = 10X110100X101XX110X11110XX0111001010 +mem[58730] = 132998954 +mem[8056] = 754181 +mem[39247] = 126 +mask = 1001X000001XX10110101X1110110X10101X +mem[59028] = 10817 +mem[17977] = 61299509 +mask = 1X001100X1X0100110100000X111XXX001X0 +mem[2056] = 32701076 +mem[2071] = 2401082 +mem[9887] = 998417 +mask = 100110X11X101X1110X00100X0101111X0X1 +mem[33860] = 388064 +mem[59050] = 16623098 +mem[5188] = 319 +mem[37207] = 2470432 +mem[27333] = 2026 +mask = 1000X000001X1X0X00XXX00X100011X11010 +mem[24029] = 9105 +mem[14364] = 243545984 +mem[4113] = 3279 +mask = 1X0X1001X0101011110XX1000100X000X101 +mem[17781] = 509963835 +mem[37716] = 62611707 +mem[23997] = 1023138975 +mem[5927] = 32777 +mem[55304] = 264062857 +mask = 100110X001X01X01100011100X100110X11X +mem[58338] = 741 +mem[34693] = 991498 +mem[32339] = 30979944 +mem[50216] = 66393532 +mem[29090] = 11574321 +mem[30824] = 15729 +mem[16868] = 23942 +mask = 1X0XX0010X0011110X101010111011111010 +mem[48969] = 3327849 +mem[52521] = 460105388 +mem[33860] = 422661865 +mem[44621] = 6715 +mem[27762] = 11952 +mem[34536] = 4064 +mask = 1001X001001X0011001000100110010001XX +mem[195] = 487302 +mem[17992] = 889 +mem[11858] = 958195 +mem[11013] = 202443463 +mask = 1000101X100X1111011000X100110000X001 +mem[13097] = 3534 +mem[41292] = 85120 +mem[9497] = 154119 +mem[19610] = 5709354 +mem[34972] = 48311 +mem[50753] = 180578 +mem[35921] = 667946365 +mask = XX1010X00110X00111000XX00001000110X0 +mem[3712] = 2843518 +mem[34604] = 2965 +mem[54311] = 162583 +mask = 0001X0X00100100X001000001X1X10X01X10 +mem[49406] = 965493 +mem[59050] = 392048 +mem[3574] = 922708604 +mem[7419] = 33525859 +mem[1933] = 8 +mem[4367] = 11521 +mask = 1001X0X00X10X00X101X00001110X0100X00 +mem[29215] = 417522 +mem[56468] = 34229032 +mem[26868] = 552971 +mem[36368] = 420213 +mask = 100110X0X1101011101X01X01101101X001X +mem[4913] = 455 +mem[3815] = 11211510 +mem[21545] = 1469 +mem[35762] = 1806 +mem[58825] = 3743 +mem[23225] = 474872535 +mem[53173] = 46538 +mask = 1XX0X00X0X101001001010100X0X01X00010 +mem[64106] = 98247289 +mem[13686] = 54961348 +mem[38944] = 462290318 +mem[53185] = 7075 +mem[30162] = 39454 +mem[14983] = 1010603 +mem[38339] = 970 +mask = X001100X010X111110001000001X01100110 +mem[12827] = 22328 +mem[18628] = 7082210 +mem[31013] = 20804915 +mem[13966] = 86 +mem[518] = 1757 +mask = X001100XX001001001110000000000XX1110 +mem[14375] = 8414661 +mem[1568] = 225486 +mem[25775] = 336197 +mask = 100110000X00100X100001100X111X100X01 +mem[2071] = 51386682 +mem[32897] = 162194 +mem[11308] = 1799417 +mem[20829] = 299249 +mask = 1X0010XXX0001111XX1100X001X1X0000101 +mem[29189] = 36530 +mem[657] = 114543286 +mem[9356] = 451 +mask = X000100000101X0110X0011XX10000110001 +mem[30577] = 117881 +mem[60874] = 19567558 +mem[10363] = 13493 +mem[5690] = 382 +mem[61059] = 4757304 +mem[36165] = 95983791 +mask = 100X00X00010100X1010000X101000X10000 +mem[33324] = 39476477 +mem[34713] = 7398 +mem[46214] = 98709 +mem[35856] = 1020446010 +mask = 10X01X000010000X11100101011X001X0100 +mem[65061] = 61054 +mem[54052] = 92826 +mem[35603] = 58759 +mem[58037] = 40910 +mem[62217] = 45701380 +mask = 1X011000001011011010XX00X10X0X010001 +mem[15920] = 5645 +mem[28828] = 265910022 +mem[29437] = 5544 +mem[56112] = 637 +mem[45033] = 36063036 +mem[12783] = 13776458 +mask = 10011011X010100110XX100100XX11011X00 +mem[518] = 25998191 +mem[13053] = 7866406 +mem[38152] = 3208 +mem[18730] = 711 +mask = 10X11000001XX1X000100X11101XX1X10111 +mem[47121] = 11272115 +mem[43618] = 27683 +mask = 100X1101X0101001100X010000X11001X100 +mem[21702] = 34688805 +mem[43624] = 3956780 +mem[24476] = 17239393 +mem[23321] = 25573609 +mem[15163] = 1713 +mem[65338] = 27386792 +mask = 10011010010X10011X0011110XX100001111 +mem[53501] = 16700270 +mem[28069] = 20683243 +mem[33593] = 114830 +mem[9962] = 403282549 +mem[54061] = 2336 +mem[46656] = 7039 +mem[58616] = 181 +mask = 10001X11001011XX101X0100010010101100 +mem[8738] = 234383093 +mem[11512] = 1792627 +mem[54326] = 1574223 +mask = 10011X101X10100XX000X10010X01X01100X +mem[51382] = 17879 +mem[44905] = 783 +mem[57514] = 1018128542 +mem[18628] = 240492 +mem[2108] = 3429 +mem[2304] = 3748 +mask = 0X011001X0X000X000110100101000000000 +mem[4452] = 19437119 +mem[64742] = 179090 +mem[16430] = 486207 +mask = 1001X000111X1X1110110X011111100X0011 +mem[52004] = 41486 +mem[48779] = 83675 +mem[17861] = 48577395 +mem[39247] = 16952 +mem[8738] = 3981 +mem[32923] = 1168904 +mask = 10011001XX0011X11X0010X1010X10101000 +mem[33319] = 44401 +mem[4142] = 517003945 +mem[29189] = 415157 +mem[33358] = 1395165 +mask = 1001100X010010011XX00XXX1100101X0101 +mem[13618] = 246280673 +mem[58338] = 17884 +mem[10885] = 816 +mem[11277] = 24331199 +mem[17936] = 1616051 +mask = 1001100X01X01001X00011000110X0X001XX +mem[58338] = 302363844 +mem[53596] = 175604903 +mem[56468] = 419729 +mem[27915] = 581 +mem[41501] = 69718 +mask = 100110000X1010110100X1X001X00X01001X +mem[18333] = 15544 +mem[3929] = 2622169 +mem[37718] = 176413 +mem[27333] = 848 +mem[17456] = 1097 +mask = 100110101010X001X000X0001X00001011X0 +mem[53045] = 2356198 +mem[49908] = 1086 +mem[17019] = 7107107 +mem[12013] = 70971 +mem[7048] = 1585 +mem[3666] = 4937143 +mask = 10011XXXX01010011000010X1X11100XXX00 +mem[65524] = 4129175 +mem[5636] = 315661 +mem[39270] = 455882795 +mask = X1001100110010011010000001110X0X00XX +mem[50481] = 26734 +mem[57708] = 199726127 +mem[20422] = 130991 +mem[13651] = 1094687 +mem[1292] = 60536 +mask = 110X1011001XX111110100X0000010X1X101 +mem[39644] = 14574 +mem[8596] = 30400 +mask = 1000101XX0X0X1110110111X110011X00110 +mem[919] = 32148 +mem[41] = 453324 +mem[36794] = 179133 +mem[2780] = 958033590 +mask = 100010X1X11011110010X01101101110X100 +mem[20035] = 1674335 +mem[18909] = 33271 +mem[21491] = 4013451 +mem[21792] = 78760 +mem[42156] = 980 +mem[3276] = 3971405 +mask = 10XX10000X10X00111X0XX00X0010011X100 +mem[36368] = 5097527 +mem[3099] = 104365 +mem[57092] = 74461253 +mem[46314] = 30483860 +mask = X000101X101011X10110XXX001X00X11X010 +mem[9948] = 43011947 +mem[53185] = 41588 +mem[25699] = 101124 +mem[60046] = 123243 +mem[23975] = 125991 +mask = 1X00100000X01X00101011100X1010000101 +mem[65101] = 504575 +mem[55313] = 14953613 +mem[42156] = 526 +mem[55573] = 1303957 +mem[53260] = 16252 +mem[48073] = 8667 +mask = 1001100100101X11110X0X0X0111X00001X0 +mem[10402] = 793546 +mem[45910] = 18 +mem[23627] = 72728 +mem[7408] = 16579752 +mem[22105] = 10576 +mem[61054] = 1160961 +mem[2989] = 149675383 +mask = 0001X001000000XX0111X110010001010110 +mem[15867] = 14 +mem[23379] = 10511918 +mem[4217] = 4840435 +mem[29978] = 11828937 +mem[28303] = 2358671 +mask = 10010010011X0XX11010X000110000110X00 +mem[11923] = 149358903 +mem[46246] = 3148 +mem[17596] = 9370 +mem[1540] = 12848 +mem[25775] = 29444 +mem[32564] = 64008 +mem[16097] = 641 +mask = 0X011001X010X010X0100X1X0X0X000111X1 +mem[45770] = 1008133 +mem[15551] = 3912928 +mem[53058] = 188856 +mem[44827] = 9036496 +mem[59530] = 20033543 +mask = 1001100X0XX01X0110X000XX010010XX1101 +mem[2056] = 737 +mem[34972] = 30655 +mem[50728] = 927954 +mask = 10001X0000X0X0010010101010X001100110 +mem[39247] = 425181 +mem[64200] = 13111811 +mem[8169] = 1250162 +mask = 100110000X10XXX11010X0001110X011XX00 +mem[62259] = 4350710 +mem[56112] = 42327 +mem[53173] = 2221557 +mem[36759] = 242686307 +mem[29077] = 1179326 +mem[2056] = 356 +mask = 10000000001XX000101000X0X11000X10110 +mem[18542] = 454113 +mem[44192] = 501708 +mem[54994] = 149470837 +mem[54260] = 582959 +mem[65424] = 295679271 +mem[36368] = 2002 +mem[16392] = 99 +mask = 10100001XX101001X0101100101101000XX0 +mem[17861] = 3340321 +mem[24705] = 4143350 +mem[38940] = 201585 +mem[35632] = 19204465 +mem[9443] = 5273035 +mask = 10X110010010100101000X00001010X0111X +mem[2991] = 51624 +mem[56468] = 1603 +mem[35633] = 4068 +mask = 10011X01001010X10000X011000111101X11 +mem[58842] = 69158 +mem[43765] = 1624 +mem[24913] = 133864698 +mem[15015] = 247 +mem[10155] = 1064 +mem[33787] = 142284522 +mem[17457] = 15488682 diff --git a/2020/day14/test b/2020/day14/test new file mode 100644 index 0000000..e15150a --- /dev/null +++ b/2020/day14/test @@ -0,0 +1,4 @@ +mask = XXXXXXXXXXXXXXXXXXXXXXXXXXXXX1XXXX0X +mem[8] = 11 +mem[7] = 101 +mem[8] = 0 diff --git a/2020/day14/test2 b/2020/day14/test2 new file mode 100644 index 0000000..2e961e3 --- /dev/null +++ b/2020/day14/test2 @@ -0,0 +1,4 @@ +mask = 000000000000000000000000000000X1001X +mem[42] = 100 +mask = 00000000000000000000000000000000X0XX +mem[26] = 1 diff --git a/2020/day14/uthash.h b/2020/day14/uthash.h new file mode 100644 index 0000000..3d94eb0 --- /dev/null +++ b/2020/day14/uthash.h @@ -0,0 +1,1143 @@ +/* +Copyright (c) 2003-2018, Troy D. Hanson http://troydhanson.github.com/uthash/ +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS +IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER +OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#ifndef UTHASH_H +#define UTHASH_H + +#define UTHASH_VERSION 2.1.0 + +#include /* memcmp, memset, strlen */ +#include /* ptrdiff_t */ +#include /* exit */ + +#if defined(HASH_DEFINE_OWN_STDINT) && HASH_DEFINE_OWN_STDINT +/* This codepath is provided for backward compatibility, but I plan to remove it. */ +#warning "HASH_DEFINE_OWN_STDINT is deprecated; please use HASH_NO_STDINT instead" +typedef unsigned int uint32_t; +typedef unsigned char uint8_t; +#elif defined(HASH_NO_STDINT) && HASH_NO_STDINT +#else +#include /* uint8_t, uint32_t */ +#endif + +/* These macros use decltype or the earlier __typeof GNU extension. + As decltype is only available in newer compilers (VS2010 or gcc 4.3+ + when compiling c++ source) this code uses whatever method is needed + or, for VS2008 where neither is available, uses casting workarounds. */ +#if !defined(DECLTYPE) && !defined(NO_DECLTYPE) +#if defined(_MSC_VER) /* MS compiler */ +#if _MSC_VER >= 1600 && defined(__cplusplus) /* VS2010 or newer in C++ mode */ +#define DECLTYPE(x) (decltype(x)) +#else /* VS2008 or older (or VS2010 in C mode) */ +#define NO_DECLTYPE +#endif +#elif defined(__BORLANDC__) || defined(__ICCARM__) || defined(__LCC__) || defined(__WATCOMC__) +#define NO_DECLTYPE +#else /* GNU, Sun and other compilers */ +#define DECLTYPE(x) (__typeof(x)) +#endif +#endif + +#ifdef NO_DECLTYPE +#define DECLTYPE(x) +#define DECLTYPE_ASSIGN(dst,src) \ +do { \ + char **_da_dst = (char**)(&(dst)); \ + *_da_dst = (char*)(src); \ +} while (0) +#else +#define DECLTYPE_ASSIGN(dst,src) \ +do { \ + (dst) = DECLTYPE(dst)(src); \ +} while (0) +#endif + +#ifndef uthash_malloc +#define uthash_malloc(sz) malloc(sz) /* malloc fcn */ +#endif +#ifndef uthash_free +#define uthash_free(ptr,sz) free(ptr) /* free fcn */ +#endif +#ifndef uthash_bzero +#define uthash_bzero(a,n) memset(a,'\0',n) +#endif +#ifndef uthash_strlen +#define uthash_strlen(s) strlen(s) +#endif + +#ifdef uthash_memcmp +/* This warning will not catch programs that define uthash_memcmp AFTER including uthash.h. */ +#warning "uthash_memcmp is deprecated; please use HASH_KEYCMP instead" +#else +#define uthash_memcmp(a,b,n) memcmp(a,b,n) +#endif + +#ifndef HASH_KEYCMP +#define HASH_KEYCMP(a,b,n) uthash_memcmp(a,b,n) +#endif + +#ifndef uthash_noexpand_fyi +#define uthash_noexpand_fyi(tbl) /* can be defined to log noexpand */ +#endif +#ifndef uthash_expand_fyi +#define uthash_expand_fyi(tbl) /* can be defined to log expands */ +#endif + +#ifndef HASH_NONFATAL_OOM +#define HASH_NONFATAL_OOM 0 +#endif + +#if HASH_NONFATAL_OOM +/* malloc failures can be recovered from */ + +#ifndef uthash_nonfatal_oom +#define uthash_nonfatal_oom(obj) do {} while (0) /* non-fatal OOM error */ +#endif + +#define HASH_RECORD_OOM(oomed) do { (oomed) = 1; } while (0) +#define IF_HASH_NONFATAL_OOM(x) x + +#else +/* malloc failures result in lost memory, hash tables are unusable */ + +#ifndef uthash_fatal +#define uthash_fatal(msg) exit(-1) /* fatal OOM error */ +#endif + +#define HASH_RECORD_OOM(oomed) uthash_fatal("out of memory") +#define IF_HASH_NONFATAL_OOM(x) + +#endif + +/* initial number of buckets */ +#define HASH_INITIAL_NUM_BUCKETS 32U /* initial number of buckets */ +#define HASH_INITIAL_NUM_BUCKETS_LOG2 5U /* lg2 of initial number of buckets */ +#define HASH_BKT_CAPACITY_THRESH 10U /* expand when bucket count reaches */ + +/* calculate the element whose hash handle address is hhp */ +#define ELMT_FROM_HH(tbl,hhp) ((void*)(((char*)(hhp)) - ((tbl)->hho))) +/* calculate the hash handle from element address elp */ +#define HH_FROM_ELMT(tbl,elp) ((UT_hash_handle*)(void*)(((char*)(elp)) + ((tbl)->hho))) + +#define HASH_ROLLBACK_BKT(hh, head, itemptrhh) \ +do { \ + struct UT_hash_handle *_hd_hh_item = (itemptrhh); \ + unsigned _hd_bkt; \ + HASH_TO_BKT(_hd_hh_item->hashv, (head)->hh.tbl->num_buckets, _hd_bkt); \ + (head)->hh.tbl->buckets[_hd_bkt].count++; \ + _hd_hh_item->hh_next = NULL; \ + _hd_hh_item->hh_prev = NULL; \ +} while (0) + +#define HASH_VALUE(keyptr,keylen,hashv) \ +do { \ + HASH_FCN(keyptr, keylen, hashv); \ +} while (0) + +#define HASH_FIND_BYHASHVALUE(hh,head,keyptr,keylen,hashval,out) \ +do { \ + (out) = NULL; \ + if (head) { \ + unsigned _hf_bkt; \ + HASH_TO_BKT(hashval, (head)->hh.tbl->num_buckets, _hf_bkt); \ + if (HASH_BLOOM_TEST((head)->hh.tbl, hashval) != 0) { \ + HASH_FIND_IN_BKT((head)->hh.tbl, hh, (head)->hh.tbl->buckets[ _hf_bkt ], keyptr, keylen, hashval, out); \ + } \ + } \ +} while (0) + +#define HASH_FIND(hh,head,keyptr,keylen,out) \ +do { \ + (out) = NULL; \ + if (head) { \ + unsigned _hf_hashv; \ + HASH_VALUE(keyptr, keylen, _hf_hashv); \ + HASH_FIND_BYHASHVALUE(hh, head, keyptr, keylen, _hf_hashv, out); \ + } \ +} while (0) + +#ifdef HASH_BLOOM +#define HASH_BLOOM_BITLEN (1UL << HASH_BLOOM) +#define HASH_BLOOM_BYTELEN (HASH_BLOOM_BITLEN/8UL) + (((HASH_BLOOM_BITLEN%8UL)!=0UL) ? 1UL : 0UL) +#define HASH_BLOOM_MAKE(tbl,oomed) \ +do { \ + (tbl)->bloom_nbits = HASH_BLOOM; \ + (tbl)->bloom_bv = (uint8_t*)uthash_malloc(HASH_BLOOM_BYTELEN); \ + if (!(tbl)->bloom_bv) { \ + HASH_RECORD_OOM(oomed); \ + } else { \ + uthash_bzero((tbl)->bloom_bv, HASH_BLOOM_BYTELEN); \ + (tbl)->bloom_sig = HASH_BLOOM_SIGNATURE; \ + } \ +} while (0) + +#define HASH_BLOOM_FREE(tbl) \ +do { \ + uthash_free((tbl)->bloom_bv, HASH_BLOOM_BYTELEN); \ +} while (0) + +#define HASH_BLOOM_BITSET(bv,idx) (bv[(idx)/8U] |= (1U << ((idx)%8U))) +#define HASH_BLOOM_BITTEST(bv,idx) (bv[(idx)/8U] & (1U << ((idx)%8U))) + +#define HASH_BLOOM_ADD(tbl,hashv) \ + HASH_BLOOM_BITSET((tbl)->bloom_bv, ((hashv) & (uint32_t)((1UL << (tbl)->bloom_nbits) - 1U))) + +#define HASH_BLOOM_TEST(tbl,hashv) \ + HASH_BLOOM_BITTEST((tbl)->bloom_bv, ((hashv) & (uint32_t)((1UL << (tbl)->bloom_nbits) - 1U))) + +#else +#define HASH_BLOOM_MAKE(tbl,oomed) +#define HASH_BLOOM_FREE(tbl) +#define HASH_BLOOM_ADD(tbl,hashv) +#define HASH_BLOOM_TEST(tbl,hashv) (1) +#define HASH_BLOOM_BYTELEN 0U +#endif + +#define HASH_MAKE_TABLE(hh,head,oomed) \ +do { \ + (head)->hh.tbl = (UT_hash_table*)uthash_malloc(sizeof(UT_hash_table)); \ + if (!(head)->hh.tbl) { \ + HASH_RECORD_OOM(oomed); \ + } else { \ + uthash_bzero((head)->hh.tbl, sizeof(UT_hash_table)); \ + (head)->hh.tbl->tail = &((head)->hh); \ + (head)->hh.tbl->num_buckets = HASH_INITIAL_NUM_BUCKETS; \ + (head)->hh.tbl->log2_num_buckets = HASH_INITIAL_NUM_BUCKETS_LOG2; \ + (head)->hh.tbl->hho = (char*)(&(head)->hh) - (char*)(head); \ + (head)->hh.tbl->buckets = (UT_hash_bucket*)uthash_malloc( \ + HASH_INITIAL_NUM_BUCKETS * sizeof(struct UT_hash_bucket)); \ + (head)->hh.tbl->signature = HASH_SIGNATURE; \ + if (!(head)->hh.tbl->buckets) { \ + HASH_RECORD_OOM(oomed); \ + uthash_free((head)->hh.tbl, sizeof(UT_hash_table)); \ + } else { \ + uthash_bzero((head)->hh.tbl->buckets, \ + HASH_INITIAL_NUM_BUCKETS * sizeof(struct UT_hash_bucket)); \ + HASH_BLOOM_MAKE((head)->hh.tbl, oomed); \ + IF_HASH_NONFATAL_OOM( \ + if (oomed) { \ + uthash_free((head)->hh.tbl->buckets, \ + HASH_INITIAL_NUM_BUCKETS*sizeof(struct UT_hash_bucket)); \ + uthash_free((head)->hh.tbl, sizeof(UT_hash_table)); \ + } \ + ) \ + } \ + } \ +} while (0) + +#define HASH_REPLACE_BYHASHVALUE_INORDER(hh,head,fieldname,keylen_in,hashval,add,replaced,cmpfcn) \ +do { \ + (replaced) = NULL; \ + HASH_FIND_BYHASHVALUE(hh, head, &((add)->fieldname), keylen_in, hashval, replaced); \ + if (replaced) { \ + HASH_DELETE(hh, head, replaced); \ + } \ + HASH_ADD_KEYPTR_BYHASHVALUE_INORDER(hh, head, &((add)->fieldname), keylen_in, hashval, add, cmpfcn); \ +} while (0) + +#define HASH_REPLACE_BYHASHVALUE(hh,head,fieldname,keylen_in,hashval,add,replaced) \ +do { \ + (replaced) = NULL; \ + HASH_FIND_BYHASHVALUE(hh, head, &((add)->fieldname), keylen_in, hashval, replaced); \ + if (replaced) { \ + HASH_DELETE(hh, head, replaced); \ + } \ + HASH_ADD_KEYPTR_BYHASHVALUE(hh, head, &((add)->fieldname), keylen_in, hashval, add); \ +} while (0) + +#define HASH_REPLACE(hh,head,fieldname,keylen_in,add,replaced) \ +do { \ + unsigned _hr_hashv; \ + HASH_VALUE(&((add)->fieldname), keylen_in, _hr_hashv); \ + HASH_REPLACE_BYHASHVALUE(hh, head, fieldname, keylen_in, _hr_hashv, add, replaced); \ +} while (0) + +#define HASH_REPLACE_INORDER(hh,head,fieldname,keylen_in,add,replaced,cmpfcn) \ +do { \ + unsigned _hr_hashv; \ + HASH_VALUE(&((add)->fieldname), keylen_in, _hr_hashv); \ + HASH_REPLACE_BYHASHVALUE_INORDER(hh, head, fieldname, keylen_in, _hr_hashv, add, replaced, cmpfcn); \ +} while (0) + +#define HASH_APPEND_LIST(hh, head, add) \ +do { \ + (add)->hh.next = NULL; \ + (add)->hh.prev = ELMT_FROM_HH((head)->hh.tbl, (head)->hh.tbl->tail); \ + (head)->hh.tbl->tail->next = (add); \ + (head)->hh.tbl->tail = &((add)->hh); \ +} while (0) + +#define HASH_AKBI_INNER_LOOP(hh,head,add,cmpfcn) \ +do { \ + do { \ + if (cmpfcn(DECLTYPE(head)(_hs_iter), add) > 0) { \ + break; \ + } \ + } while ((_hs_iter = HH_FROM_ELMT((head)->hh.tbl, _hs_iter)->next)); \ +} while (0) + +#ifdef NO_DECLTYPE +#undef HASH_AKBI_INNER_LOOP +#define HASH_AKBI_INNER_LOOP(hh,head,add,cmpfcn) \ +do { \ + char *_hs_saved_head = (char*)(head); \ + do { \ + DECLTYPE_ASSIGN(head, _hs_iter); \ + if (cmpfcn(head, add) > 0) { \ + DECLTYPE_ASSIGN(head, _hs_saved_head); \ + break; \ + } \ + DECLTYPE_ASSIGN(head, _hs_saved_head); \ + } while ((_hs_iter = HH_FROM_ELMT((head)->hh.tbl, _hs_iter)->next)); \ +} while (0) +#endif + +#if HASH_NONFATAL_OOM + +#define HASH_ADD_TO_TABLE(hh,head,keyptr,keylen_in,hashval,add,oomed) \ +do { \ + if (!(oomed)) { \ + unsigned _ha_bkt; \ + (head)->hh.tbl->num_items++; \ + HASH_TO_BKT(hashval, (head)->hh.tbl->num_buckets, _ha_bkt); \ + HASH_ADD_TO_BKT((head)->hh.tbl->buckets[_ha_bkt], hh, &(add)->hh, oomed); \ + if (oomed) { \ + HASH_ROLLBACK_BKT(hh, head, &(add)->hh); \ + HASH_DELETE_HH(hh, head, &(add)->hh); \ + (add)->hh.tbl = NULL; \ + uthash_nonfatal_oom(add); \ + } else { \ + HASH_BLOOM_ADD((head)->hh.tbl, hashval); \ + HASH_EMIT_KEY(hh, head, keyptr, keylen_in); \ + } \ + } else { \ + (add)->hh.tbl = NULL; \ + uthash_nonfatal_oom(add); \ + } \ +} while (0) + +#else + +#define HASH_ADD_TO_TABLE(hh,head,keyptr,keylen_in,hashval,add,oomed) \ +do { \ + unsigned _ha_bkt; \ + (head)->hh.tbl->num_items++; \ + HASH_TO_BKT(hashval, (head)->hh.tbl->num_buckets, _ha_bkt); \ + HASH_ADD_TO_BKT((head)->hh.tbl->buckets[_ha_bkt], hh, &(add)->hh, oomed); \ + HASH_BLOOM_ADD((head)->hh.tbl, hashval); \ + HASH_EMIT_KEY(hh, head, keyptr, keylen_in); \ +} while (0) + +#endif + + +#define HASH_ADD_KEYPTR_BYHASHVALUE_INORDER(hh,head,keyptr,keylen_in,hashval,add,cmpfcn) \ +do { \ + IF_HASH_NONFATAL_OOM( int _ha_oomed = 0; ) \ + (add)->hh.hashv = (hashval); \ + (add)->hh.key = (char*) (keyptr); \ + (add)->hh.keylen = (unsigned) (keylen_in); \ + if (!(head)) { \ + (add)->hh.next = NULL; \ + (add)->hh.prev = NULL; \ + HASH_MAKE_TABLE(hh, add, _ha_oomed); \ + IF_HASH_NONFATAL_OOM( if (!_ha_oomed) { ) \ + (head) = (add); \ + IF_HASH_NONFATAL_OOM( } ) \ + } else { \ + void *_hs_iter = (head); \ + (add)->hh.tbl = (head)->hh.tbl; \ + HASH_AKBI_INNER_LOOP(hh, head, add, cmpfcn); \ + if (_hs_iter) { \ + (add)->hh.next = _hs_iter; \ + if (((add)->hh.prev = HH_FROM_ELMT((head)->hh.tbl, _hs_iter)->prev)) { \ + HH_FROM_ELMT((head)->hh.tbl, (add)->hh.prev)->next = (add); \ + } else { \ + (head) = (add); \ + } \ + HH_FROM_ELMT((head)->hh.tbl, _hs_iter)->prev = (add); \ + } else { \ + HASH_APPEND_LIST(hh, head, add); \ + } \ + } \ + HASH_ADD_TO_TABLE(hh, head, keyptr, keylen_in, hashval, add, _ha_oomed); \ + HASH_FSCK(hh, head, "HASH_ADD_KEYPTR_BYHASHVALUE_INORDER"); \ +} while (0) + +#define HASH_ADD_KEYPTR_INORDER(hh,head,keyptr,keylen_in,add,cmpfcn) \ +do { \ + unsigned _hs_hashv; \ + HASH_VALUE(keyptr, keylen_in, _hs_hashv); \ + HASH_ADD_KEYPTR_BYHASHVALUE_INORDER(hh, head, keyptr, keylen_in, _hs_hashv, add, cmpfcn); \ +} while (0) + +#define HASH_ADD_BYHASHVALUE_INORDER(hh,head,fieldname,keylen_in,hashval,add,cmpfcn) \ + HASH_ADD_KEYPTR_BYHASHVALUE_INORDER(hh, head, &((add)->fieldname), keylen_in, hashval, add, cmpfcn) + +#define HASH_ADD_INORDER(hh,head,fieldname,keylen_in,add,cmpfcn) \ + HASH_ADD_KEYPTR_INORDER(hh, head, &((add)->fieldname), keylen_in, add, cmpfcn) + +#define HASH_ADD_KEYPTR_BYHASHVALUE(hh,head,keyptr,keylen_in,hashval,add) \ +do { \ + IF_HASH_NONFATAL_OOM( int _ha_oomed = 0; ) \ + (add)->hh.hashv = (hashval); \ + (add)->hh.key = (const void*) (keyptr); \ + (add)->hh.keylen = (unsigned) (keylen_in); \ + if (!(head)) { \ + (add)->hh.next = NULL; \ + (add)->hh.prev = NULL; \ + HASH_MAKE_TABLE(hh, add, _ha_oomed); \ + IF_HASH_NONFATAL_OOM( if (!_ha_oomed) { ) \ + (head) = (add); \ + IF_HASH_NONFATAL_OOM( } ) \ + } else { \ + (add)->hh.tbl = (head)->hh.tbl; \ + HASH_APPEND_LIST(hh, head, add); \ + } \ + HASH_ADD_TO_TABLE(hh, head, keyptr, keylen_in, hashval, add, _ha_oomed); \ + HASH_FSCK(hh, head, "HASH_ADD_KEYPTR_BYHASHVALUE"); \ +} while (0) + +#define HASH_ADD_KEYPTR(hh,head,keyptr,keylen_in,add) \ +do { \ + unsigned _ha_hashv; \ + HASH_VALUE(keyptr, keylen_in, _ha_hashv); \ + HASH_ADD_KEYPTR_BYHASHVALUE(hh, head, keyptr, keylen_in, _ha_hashv, add); \ +} while (0) + +#define HASH_ADD_BYHASHVALUE(hh,head,fieldname,keylen_in,hashval,add) \ + HASH_ADD_KEYPTR_BYHASHVALUE(hh, head, &((add)->fieldname), keylen_in, hashval, add) + +#define HASH_ADD(hh,head,fieldname,keylen_in,add) \ + HASH_ADD_KEYPTR(hh, head, &((add)->fieldname), keylen_in, add) + +#define HASH_TO_BKT(hashv,num_bkts,bkt) \ +do { \ + bkt = ((hashv) & ((num_bkts) - 1U)); \ +} while (0) + +/* delete "delptr" from the hash table. + * "the usual" patch-up process for the app-order doubly-linked-list. + * The use of _hd_hh_del below deserves special explanation. + * These used to be expressed using (delptr) but that led to a bug + * if someone used the same symbol for the head and deletee, like + * HASH_DELETE(hh,users,users); + * We want that to work, but by changing the head (users) below + * we were forfeiting our ability to further refer to the deletee (users) + * in the patch-up process. Solution: use scratch space to + * copy the deletee pointer, then the latter references are via that + * scratch pointer rather than through the repointed (users) symbol. + */ +#define HASH_DELETE(hh,head,delptr) \ + HASH_DELETE_HH(hh, head, &(delptr)->hh) + +#define HASH_DELETE_HH(hh,head,delptrhh) \ +do { \ + struct UT_hash_handle *_hd_hh_del = (delptrhh); \ + if ((_hd_hh_del->prev == NULL) && (_hd_hh_del->next == NULL)) { \ + HASH_BLOOM_FREE((head)->hh.tbl); \ + uthash_free((head)->hh.tbl->buckets, \ + (head)->hh.tbl->num_buckets * sizeof(struct UT_hash_bucket)); \ + uthash_free((head)->hh.tbl, sizeof(UT_hash_table)); \ + (head) = NULL; \ + } else { \ + unsigned _hd_bkt; \ + if (_hd_hh_del == (head)->hh.tbl->tail) { \ + (head)->hh.tbl->tail = HH_FROM_ELMT((head)->hh.tbl, _hd_hh_del->prev); \ + } \ + if (_hd_hh_del->prev != NULL) { \ + HH_FROM_ELMT((head)->hh.tbl, _hd_hh_del->prev)->next = _hd_hh_del->next; \ + } else { \ + DECLTYPE_ASSIGN(head, _hd_hh_del->next); \ + } \ + if (_hd_hh_del->next != NULL) { \ + HH_FROM_ELMT((head)->hh.tbl, _hd_hh_del->next)->prev = _hd_hh_del->prev; \ + } \ + HASH_TO_BKT(_hd_hh_del->hashv, (head)->hh.tbl->num_buckets, _hd_bkt); \ + HASH_DEL_IN_BKT((head)->hh.tbl->buckets[_hd_bkt], _hd_hh_del); \ + (head)->hh.tbl->num_items--; \ + } \ + HASH_FSCK(hh, head, "HASH_DELETE_HH"); \ +} while (0) + +/* convenience forms of HASH_FIND/HASH_ADD/HASH_DEL */ +#define HASH_FIND_STR(head,findstr,out) \ +do { \ + unsigned _uthash_hfstr_keylen = (unsigned)uthash_strlen(findstr); \ + HASH_FIND(hh, head, findstr, _uthash_hfstr_keylen, out); \ +} while (0) +#define HASH_ADD_STR(head,strfield,add) \ +do { \ + unsigned _uthash_hastr_keylen = (unsigned)uthash_strlen((add)->strfield); \ + HASH_ADD(hh, head, strfield[0], _uthash_hastr_keylen, add); \ +} while (0) +#define HASH_REPLACE_STR(head,strfield,add,replaced) \ +do { \ + unsigned _uthash_hrstr_keylen = (unsigned)uthash_strlen((add)->strfield); \ + HASH_REPLACE(hh, head, strfield[0], _uthash_hrstr_keylen, add, replaced); \ +} while (0) +#define HASH_FIND_INT(head,findint,out) \ + HASH_FIND(hh,head,findint,sizeof(int),out) +#define HASH_ADD_INT(head,intfield,add) \ + HASH_ADD(hh,head,intfield,sizeof(int),add) +#define HASH_REPLACE_INT(head,intfield,add,replaced) \ + HASH_REPLACE(hh,head,intfield,sizeof(int),add,replaced) +#define HASH_FIND_PTR(head,findptr,out) \ + HASH_FIND(hh,head,findptr,sizeof(void *),out) +#define HASH_ADD_PTR(head,ptrfield,add) \ + HASH_ADD(hh,head,ptrfield,sizeof(void *),add) +#define HASH_REPLACE_PTR(head,ptrfield,add,replaced) \ + HASH_REPLACE(hh,head,ptrfield,sizeof(void *),add,replaced) +#define HASH_DEL(head,delptr) \ + HASH_DELETE(hh,head,delptr) + +/* HASH_FSCK checks hash integrity on every add/delete when HASH_DEBUG is defined. + * This is for uthash developer only; it compiles away if HASH_DEBUG isn't defined. + */ +#ifdef HASH_DEBUG +#include /* fprintf, stderr */ +#define HASH_OOPS(...) do { fprintf(stderr, __VA_ARGS__); exit(-1); } while (0) +#define HASH_FSCK(hh,head,where) \ +do { \ + struct UT_hash_handle *_thh; \ + if (head) { \ + unsigned _bkt_i; \ + unsigned _count = 0; \ + char *_prev; \ + for (_bkt_i = 0; _bkt_i < (head)->hh.tbl->num_buckets; ++_bkt_i) { \ + unsigned _bkt_count = 0; \ + _thh = (head)->hh.tbl->buckets[_bkt_i].hh_head; \ + _prev = NULL; \ + while (_thh) { \ + if (_prev != (char*)(_thh->hh_prev)) { \ + HASH_OOPS("%s: invalid hh_prev %p, actual %p\n", \ + (where), (void*)_thh->hh_prev, (void*)_prev); \ + } \ + _bkt_count++; \ + _prev = (char*)(_thh); \ + _thh = _thh->hh_next; \ + } \ + _count += _bkt_count; \ + if ((head)->hh.tbl->buckets[_bkt_i].count != _bkt_count) { \ + HASH_OOPS("%s: invalid bucket count %u, actual %u\n", \ + (where), (head)->hh.tbl->buckets[_bkt_i].count, _bkt_count); \ + } \ + } \ + if (_count != (head)->hh.tbl->num_items) { \ + HASH_OOPS("%s: invalid hh item count %u, actual %u\n", \ + (where), (head)->hh.tbl->num_items, _count); \ + } \ + _count = 0; \ + _prev = NULL; \ + _thh = &(head)->hh; \ + while (_thh) { \ + _count++; \ + if (_prev != (char*)_thh->prev) { \ + HASH_OOPS("%s: invalid prev %p, actual %p\n", \ + (where), (void*)_thh->prev, (void*)_prev); \ + } \ + _prev = (char*)ELMT_FROM_HH((head)->hh.tbl, _thh); \ + _thh = (_thh->next ? HH_FROM_ELMT((head)->hh.tbl, _thh->next) : NULL); \ + } \ + if (_count != (head)->hh.tbl->num_items) { \ + HASH_OOPS("%s: invalid app item count %u, actual %u\n", \ + (where), (head)->hh.tbl->num_items, _count); \ + } \ + } \ +} while (0) +#else +#define HASH_FSCK(hh,head,where) +#endif + +/* When compiled with -DHASH_EMIT_KEYS, length-prefixed keys are emitted to + * the descriptor to which this macro is defined for tuning the hash function. + * The app can #include to get the prototype for write(2). */ +#ifdef HASH_EMIT_KEYS +#define HASH_EMIT_KEY(hh,head,keyptr,fieldlen) \ +do { \ + unsigned _klen = fieldlen; \ + write(HASH_EMIT_KEYS, &_klen, sizeof(_klen)); \ + write(HASH_EMIT_KEYS, keyptr, (unsigned long)fieldlen); \ +} while (0) +#else +#define HASH_EMIT_KEY(hh,head,keyptr,fieldlen) +#endif + +/* default to Jenkin's hash unless overridden e.g. DHASH_FUNCTION=HASH_SAX */ +#ifdef HASH_FUNCTION +#define HASH_FCN HASH_FUNCTION +#else +#define HASH_FCN HASH_JEN +#endif + +/* The Bernstein hash function, used in Perl prior to v5.6. Note (x<<5+x)=x*33. */ +#define HASH_BER(key,keylen,hashv) \ +do { \ + unsigned _hb_keylen = (unsigned)keylen; \ + const unsigned char *_hb_key = (const unsigned char*)(key); \ + (hashv) = 0; \ + while (_hb_keylen-- != 0U) { \ + (hashv) = (((hashv) << 5) + (hashv)) + *_hb_key++; \ + } \ +} while (0) + + +/* SAX/FNV/OAT/JEN hash functions are macro variants of those listed at + * http://eternallyconfuzzled.com/tuts/algorithms/jsw_tut_hashing.aspx */ +#define HASH_SAX(key,keylen,hashv) \ +do { \ + unsigned _sx_i; \ + const unsigned char *_hs_key = (const unsigned char*)(key); \ + hashv = 0; \ + for (_sx_i=0; _sx_i < keylen; _sx_i++) { \ + hashv ^= (hashv << 5) + (hashv >> 2) + _hs_key[_sx_i]; \ + } \ +} while (0) +/* FNV-1a variation */ +#define HASH_FNV(key,keylen,hashv) \ +do { \ + unsigned _fn_i; \ + const unsigned char *_hf_key = (const unsigned char*)(key); \ + (hashv) = 2166136261U; \ + for (_fn_i=0; _fn_i < keylen; _fn_i++) { \ + hashv = hashv ^ _hf_key[_fn_i]; \ + hashv = hashv * 16777619U; \ + } \ +} while (0) + +#define HASH_OAT(key,keylen,hashv) \ +do { \ + unsigned _ho_i; \ + const unsigned char *_ho_key=(const unsigned char*)(key); \ + hashv = 0; \ + for(_ho_i=0; _ho_i < keylen; _ho_i++) { \ + hashv += _ho_key[_ho_i]; \ + hashv += (hashv << 10); \ + hashv ^= (hashv >> 6); \ + } \ + hashv += (hashv << 3); \ + hashv ^= (hashv >> 11); \ + hashv += (hashv << 15); \ +} while (0) + +#define HASH_JEN_MIX(a,b,c) \ +do { \ + a -= b; a -= c; a ^= ( c >> 13 ); \ + b -= c; b -= a; b ^= ( a << 8 ); \ + c -= a; c -= b; c ^= ( b >> 13 ); \ + a -= b; a -= c; a ^= ( c >> 12 ); \ + b -= c; b -= a; b ^= ( a << 16 ); \ + c -= a; c -= b; c ^= ( b >> 5 ); \ + a -= b; a -= c; a ^= ( c >> 3 ); \ + b -= c; b -= a; b ^= ( a << 10 ); \ + c -= a; c -= b; c ^= ( b >> 15 ); \ +} while (0) + +#define HASH_JEN(key,keylen,hashv) \ +do { \ + unsigned _hj_i,_hj_j,_hj_k; \ + unsigned const char *_hj_key=(unsigned const char*)(key); \ + hashv = 0xfeedbeefu; \ + _hj_i = _hj_j = 0x9e3779b9u; \ + _hj_k = (unsigned)(keylen); \ + while (_hj_k >= 12U) { \ + _hj_i += (_hj_key[0] + ( (unsigned)_hj_key[1] << 8 ) \ + + ( (unsigned)_hj_key[2] << 16 ) \ + + ( (unsigned)_hj_key[3] << 24 ) ); \ + _hj_j += (_hj_key[4] + ( (unsigned)_hj_key[5] << 8 ) \ + + ( (unsigned)_hj_key[6] << 16 ) \ + + ( (unsigned)_hj_key[7] << 24 ) ); \ + hashv += (_hj_key[8] + ( (unsigned)_hj_key[9] << 8 ) \ + + ( (unsigned)_hj_key[10] << 16 ) \ + + ( (unsigned)_hj_key[11] << 24 ) ); \ + \ + HASH_JEN_MIX(_hj_i, _hj_j, hashv); \ + \ + _hj_key += 12; \ + _hj_k -= 12U; \ + } \ + hashv += (unsigned)(keylen); \ + switch ( _hj_k ) { \ + case 11: hashv += ( (unsigned)_hj_key[10] << 24 ); /* FALLTHROUGH */ \ + case 10: hashv += ( (unsigned)_hj_key[9] << 16 ); /* FALLTHROUGH */ \ + case 9: hashv += ( (unsigned)_hj_key[8] << 8 ); /* FALLTHROUGH */ \ + case 8: _hj_j += ( (unsigned)_hj_key[7] << 24 ); /* FALLTHROUGH */ \ + case 7: _hj_j += ( (unsigned)_hj_key[6] << 16 ); /* FALLTHROUGH */ \ + case 6: _hj_j += ( (unsigned)_hj_key[5] << 8 ); /* FALLTHROUGH */ \ + case 5: _hj_j += _hj_key[4]; /* FALLTHROUGH */ \ + case 4: _hj_i += ( (unsigned)_hj_key[3] << 24 ); /* FALLTHROUGH */ \ + case 3: _hj_i += ( (unsigned)_hj_key[2] << 16 ); /* FALLTHROUGH */ \ + case 2: _hj_i += ( (unsigned)_hj_key[1] << 8 ); /* FALLTHROUGH */ \ + case 1: _hj_i += _hj_key[0]; \ + } \ + HASH_JEN_MIX(_hj_i, _hj_j, hashv); \ +} while (0) + +/* The Paul Hsieh hash function */ +#undef get16bits +#if (defined(__GNUC__) && defined(__i386__)) || defined(__WATCOMC__) \ + || defined(_MSC_VER) || defined (__BORLANDC__) || defined (__TURBOC__) +#define get16bits(d) (*((const uint16_t *) (d))) +#endif + +#if !defined (get16bits) +#define get16bits(d) ((((uint32_t)(((const uint8_t *)(d))[1])) << 8) \ + +(uint32_t)(((const uint8_t *)(d))[0]) ) +#endif +#define HASH_SFH(key,keylen,hashv) \ +do { \ + unsigned const char *_sfh_key=(unsigned const char*)(key); \ + uint32_t _sfh_tmp, _sfh_len = (uint32_t)keylen; \ + \ + unsigned _sfh_rem = _sfh_len & 3U; \ + _sfh_len >>= 2; \ + hashv = 0xcafebabeu; \ + \ + /* Main loop */ \ + for (;_sfh_len > 0U; _sfh_len--) { \ + hashv += get16bits (_sfh_key); \ + _sfh_tmp = ((uint32_t)(get16bits (_sfh_key+2)) << 11) ^ hashv; \ + hashv = (hashv << 16) ^ _sfh_tmp; \ + _sfh_key += 2U*sizeof (uint16_t); \ + hashv += hashv >> 11; \ + } \ + \ + /* Handle end cases */ \ + switch (_sfh_rem) { \ + case 3: hashv += get16bits (_sfh_key); \ + hashv ^= hashv << 16; \ + hashv ^= (uint32_t)(_sfh_key[sizeof (uint16_t)]) << 18; \ + hashv += hashv >> 11; \ + break; \ + case 2: hashv += get16bits (_sfh_key); \ + hashv ^= hashv << 11; \ + hashv += hashv >> 17; \ + break; \ + case 1: hashv += *_sfh_key; \ + hashv ^= hashv << 10; \ + hashv += hashv >> 1; \ + } \ + \ + /* Force "avalanching" of final 127 bits */ \ + hashv ^= hashv << 3; \ + hashv += hashv >> 5; \ + hashv ^= hashv << 4; \ + hashv += hashv >> 17; \ + hashv ^= hashv << 25; \ + hashv += hashv >> 6; \ +} while (0) + +/* iterate over items in a known bucket to find desired item */ +#define HASH_FIND_IN_BKT(tbl,hh,head,keyptr,keylen_in,hashval,out) \ +do { \ + if ((head).hh_head != NULL) { \ + DECLTYPE_ASSIGN(out, ELMT_FROM_HH(tbl, (head).hh_head)); \ + } else { \ + (out) = NULL; \ + } \ + while ((out) != NULL) { \ + if ((out)->hh.hashv == (hashval) && (out)->hh.keylen == (keylen_in)) { \ + if (HASH_KEYCMP((out)->hh.key, keyptr, keylen_in) == 0) { \ + break; \ + } \ + } \ + if ((out)->hh.hh_next != NULL) { \ + DECLTYPE_ASSIGN(out, ELMT_FROM_HH(tbl, (out)->hh.hh_next)); \ + } else { \ + (out) = NULL; \ + } \ + } \ +} while (0) + +/* add an item to a bucket */ +#define HASH_ADD_TO_BKT(head,hh,addhh,oomed) \ +do { \ + UT_hash_bucket *_ha_head = &(head); \ + _ha_head->count++; \ + (addhh)->hh_next = _ha_head->hh_head; \ + (addhh)->hh_prev = NULL; \ + if (_ha_head->hh_head != NULL) { \ + _ha_head->hh_head->hh_prev = (addhh); \ + } \ + _ha_head->hh_head = (addhh); \ + if ((_ha_head->count >= ((_ha_head->expand_mult + 1U) * HASH_BKT_CAPACITY_THRESH)) \ + && !(addhh)->tbl->noexpand) { \ + HASH_EXPAND_BUCKETS(addhh,(addhh)->tbl, oomed); \ + IF_HASH_NONFATAL_OOM( \ + if (oomed) { \ + HASH_DEL_IN_BKT(head,addhh); \ + } \ + ) \ + } \ +} while (0) + +/* remove an item from a given bucket */ +#define HASH_DEL_IN_BKT(head,delhh) \ +do { \ + UT_hash_bucket *_hd_head = &(head); \ + _hd_head->count--; \ + if (_hd_head->hh_head == (delhh)) { \ + _hd_head->hh_head = (delhh)->hh_next; \ + } \ + if ((delhh)->hh_prev) { \ + (delhh)->hh_prev->hh_next = (delhh)->hh_next; \ + } \ + if ((delhh)->hh_next) { \ + (delhh)->hh_next->hh_prev = (delhh)->hh_prev; \ + } \ +} while (0) + +/* Bucket expansion has the effect of doubling the number of buckets + * and redistributing the items into the new buckets. Ideally the + * items will distribute more or less evenly into the new buckets + * (the extent to which this is true is a measure of the quality of + * the hash function as it applies to the key domain). + * + * With the items distributed into more buckets, the chain length + * (item count) in each bucket is reduced. Thus by expanding buckets + * the hash keeps a bound on the chain length. This bounded chain + * length is the essence of how a hash provides constant time lookup. + * + * The calculation of tbl->ideal_chain_maxlen below deserves some + * explanation. First, keep in mind that we're calculating the ideal + * maximum chain length based on the *new* (doubled) bucket count. + * In fractions this is just n/b (n=number of items,b=new num buckets). + * Since the ideal chain length is an integer, we want to calculate + * ceil(n/b). We don't depend on floating point arithmetic in this + * hash, so to calculate ceil(n/b) with integers we could write + * + * ceil(n/b) = (n/b) + ((n%b)?1:0) + * + * and in fact a previous version of this hash did just that. + * But now we have improved things a bit by recognizing that b is + * always a power of two. We keep its base 2 log handy (call it lb), + * so now we can write this with a bit shift and logical AND: + * + * ceil(n/b) = (n>>lb) + ( (n & (b-1)) ? 1:0) + * + */ +#define HASH_EXPAND_BUCKETS(hh,tbl,oomed) \ +do { \ + unsigned _he_bkt; \ + unsigned _he_bkt_i; \ + struct UT_hash_handle *_he_thh, *_he_hh_nxt; \ + UT_hash_bucket *_he_new_buckets, *_he_newbkt; \ + _he_new_buckets = (UT_hash_bucket*)uthash_malloc( \ + sizeof(struct UT_hash_bucket) * (tbl)->num_buckets * 2U); \ + if (!_he_new_buckets) { \ + HASH_RECORD_OOM(oomed); \ + } else { \ + uthash_bzero(_he_new_buckets, \ + sizeof(struct UT_hash_bucket) * (tbl)->num_buckets * 2U); \ + (tbl)->ideal_chain_maxlen = \ + ((tbl)->num_items >> ((tbl)->log2_num_buckets+1U)) + \ + ((((tbl)->num_items & (((tbl)->num_buckets*2U)-1U)) != 0U) ? 1U : 0U); \ + (tbl)->nonideal_items = 0; \ + for (_he_bkt_i = 0; _he_bkt_i < (tbl)->num_buckets; _he_bkt_i++) { \ + _he_thh = (tbl)->buckets[ _he_bkt_i ].hh_head; \ + while (_he_thh != NULL) { \ + _he_hh_nxt = _he_thh->hh_next; \ + HASH_TO_BKT(_he_thh->hashv, (tbl)->num_buckets * 2U, _he_bkt); \ + _he_newbkt = &(_he_new_buckets[_he_bkt]); \ + if (++(_he_newbkt->count) > (tbl)->ideal_chain_maxlen) { \ + (tbl)->nonideal_items++; \ + if (_he_newbkt->count > _he_newbkt->expand_mult * (tbl)->ideal_chain_maxlen) { \ + _he_newbkt->expand_mult++; \ + } \ + } \ + _he_thh->hh_prev = NULL; \ + _he_thh->hh_next = _he_newbkt->hh_head; \ + if (_he_newbkt->hh_head != NULL) { \ + _he_newbkt->hh_head->hh_prev = _he_thh; \ + } \ + _he_newbkt->hh_head = _he_thh; \ + _he_thh = _he_hh_nxt; \ + } \ + } \ + uthash_free((tbl)->buckets, (tbl)->num_buckets * sizeof(struct UT_hash_bucket)); \ + (tbl)->num_buckets *= 2U; \ + (tbl)->log2_num_buckets++; \ + (tbl)->buckets = _he_new_buckets; \ + (tbl)->ineff_expands = ((tbl)->nonideal_items > ((tbl)->num_items >> 1)) ? \ + ((tbl)->ineff_expands+1U) : 0U; \ + if ((tbl)->ineff_expands > 1U) { \ + (tbl)->noexpand = 1; \ + uthash_noexpand_fyi(tbl); \ + } \ + uthash_expand_fyi(tbl); \ + } \ +} while (0) + + +/* This is an adaptation of Simon Tatham's O(n log(n)) mergesort */ +/* Note that HASH_SORT assumes the hash handle name to be hh. + * HASH_SRT was added to allow the hash handle name to be passed in. */ +#define HASH_SORT(head,cmpfcn) HASH_SRT(hh,head,cmpfcn) +#define HASH_SRT(hh,head,cmpfcn) \ +do { \ + unsigned _hs_i; \ + unsigned _hs_looping,_hs_nmerges,_hs_insize,_hs_psize,_hs_qsize; \ + struct UT_hash_handle *_hs_p, *_hs_q, *_hs_e, *_hs_list, *_hs_tail; \ + if (head != NULL) { \ + _hs_insize = 1; \ + _hs_looping = 1; \ + _hs_list = &((head)->hh); \ + while (_hs_looping != 0U) { \ + _hs_p = _hs_list; \ + _hs_list = NULL; \ + _hs_tail = NULL; \ + _hs_nmerges = 0; \ + while (_hs_p != NULL) { \ + _hs_nmerges++; \ + _hs_q = _hs_p; \ + _hs_psize = 0; \ + for (_hs_i = 0; _hs_i < _hs_insize; ++_hs_i) { \ + _hs_psize++; \ + _hs_q = ((_hs_q->next != NULL) ? \ + HH_FROM_ELMT((head)->hh.tbl, _hs_q->next) : NULL); \ + if (_hs_q == NULL) { \ + break; \ + } \ + } \ + _hs_qsize = _hs_insize; \ + while ((_hs_psize != 0U) || ((_hs_qsize != 0U) && (_hs_q != NULL))) { \ + if (_hs_psize == 0U) { \ + _hs_e = _hs_q; \ + _hs_q = ((_hs_q->next != NULL) ? \ + HH_FROM_ELMT((head)->hh.tbl, _hs_q->next) : NULL); \ + _hs_qsize--; \ + } else if ((_hs_qsize == 0U) || (_hs_q == NULL)) { \ + _hs_e = _hs_p; \ + if (_hs_p != NULL) { \ + _hs_p = ((_hs_p->next != NULL) ? \ + HH_FROM_ELMT((head)->hh.tbl, _hs_p->next) : NULL); \ + } \ + _hs_psize--; \ + } else if ((cmpfcn( \ + DECLTYPE(head)(ELMT_FROM_HH((head)->hh.tbl, _hs_p)), \ + DECLTYPE(head)(ELMT_FROM_HH((head)->hh.tbl, _hs_q)) \ + )) <= 0) { \ + _hs_e = _hs_p; \ + if (_hs_p != NULL) { \ + _hs_p = ((_hs_p->next != NULL) ? \ + HH_FROM_ELMT((head)->hh.tbl, _hs_p->next) : NULL); \ + } \ + _hs_psize--; \ + } else { \ + _hs_e = _hs_q; \ + _hs_q = ((_hs_q->next != NULL) ? \ + HH_FROM_ELMT((head)->hh.tbl, _hs_q->next) : NULL); \ + _hs_qsize--; \ + } \ + if ( _hs_tail != NULL ) { \ + _hs_tail->next = ((_hs_e != NULL) ? \ + ELMT_FROM_HH((head)->hh.tbl, _hs_e) : NULL); \ + } else { \ + _hs_list = _hs_e; \ + } \ + if (_hs_e != NULL) { \ + _hs_e->prev = ((_hs_tail != NULL) ? \ + ELMT_FROM_HH((head)->hh.tbl, _hs_tail) : NULL); \ + } \ + _hs_tail = _hs_e; \ + } \ + _hs_p = _hs_q; \ + } \ + if (_hs_tail != NULL) { \ + _hs_tail->next = NULL; \ + } \ + if (_hs_nmerges <= 1U) { \ + _hs_looping = 0; \ + (head)->hh.tbl->tail = _hs_tail; \ + DECLTYPE_ASSIGN(head, ELMT_FROM_HH((head)->hh.tbl, _hs_list)); \ + } \ + _hs_insize *= 2U; \ + } \ + HASH_FSCK(hh, head, "HASH_SRT"); \ + } \ +} while (0) + +/* This function selects items from one hash into another hash. + * The end result is that the selected items have dual presence + * in both hashes. There is no copy of the items made; rather + * they are added into the new hash through a secondary hash + * hash handle that must be present in the structure. */ +#define HASH_SELECT(hh_dst, dst, hh_src, src, cond) \ +do { \ + unsigned _src_bkt, _dst_bkt; \ + void *_last_elt = NULL, *_elt; \ + UT_hash_handle *_src_hh, *_dst_hh, *_last_elt_hh=NULL; \ + ptrdiff_t _dst_hho = ((char*)(&(dst)->hh_dst) - (char*)(dst)); \ + if ((src) != NULL) { \ + for (_src_bkt=0; _src_bkt < (src)->hh_src.tbl->num_buckets; _src_bkt++) { \ + for (_src_hh = (src)->hh_src.tbl->buckets[_src_bkt].hh_head; \ + _src_hh != NULL; \ + _src_hh = _src_hh->hh_next) { \ + _elt = ELMT_FROM_HH((src)->hh_src.tbl, _src_hh); \ + if (cond(_elt)) { \ + IF_HASH_NONFATAL_OOM( int _hs_oomed = 0; ) \ + _dst_hh = (UT_hash_handle*)(void*)(((char*)_elt) + _dst_hho); \ + _dst_hh->key = _src_hh->key; \ + _dst_hh->keylen = _src_hh->keylen; \ + _dst_hh->hashv = _src_hh->hashv; \ + _dst_hh->prev = _last_elt; \ + _dst_hh->next = NULL; \ + if (_last_elt_hh != NULL) { \ + _last_elt_hh->next = _elt; \ + } \ + if ((dst) == NULL) { \ + DECLTYPE_ASSIGN(dst, _elt); \ + HASH_MAKE_TABLE(hh_dst, dst, _hs_oomed); \ + IF_HASH_NONFATAL_OOM( \ + if (_hs_oomed) { \ + uthash_nonfatal_oom(_elt); \ + (dst) = NULL; \ + continue; \ + } \ + ) \ + } else { \ + _dst_hh->tbl = (dst)->hh_dst.tbl; \ + } \ + HASH_TO_BKT(_dst_hh->hashv, _dst_hh->tbl->num_buckets, _dst_bkt); \ + HASH_ADD_TO_BKT(_dst_hh->tbl->buckets[_dst_bkt], hh_dst, _dst_hh, _hs_oomed); \ + (dst)->hh_dst.tbl->num_items++; \ + IF_HASH_NONFATAL_OOM( \ + if (_hs_oomed) { \ + HASH_ROLLBACK_BKT(hh_dst, dst, _dst_hh); \ + HASH_DELETE_HH(hh_dst, dst, _dst_hh); \ + _dst_hh->tbl = NULL; \ + uthash_nonfatal_oom(_elt); \ + continue; \ + } \ + ) \ + HASH_BLOOM_ADD(_dst_hh->tbl, _dst_hh->hashv); \ + _last_elt = _elt; \ + _last_elt_hh = _dst_hh; \ + } \ + } \ + } \ + } \ + HASH_FSCK(hh_dst, dst, "HASH_SELECT"); \ +} while (0) + +#define HASH_CLEAR(hh,head) \ +do { \ + if ((head) != NULL) { \ + HASH_BLOOM_FREE((head)->hh.tbl); \ + uthash_free((head)->hh.tbl->buckets, \ + (head)->hh.tbl->num_buckets*sizeof(struct UT_hash_bucket)); \ + uthash_free((head)->hh.tbl, sizeof(UT_hash_table)); \ + (head) = NULL; \ + } \ +} while (0) + +#define HASH_OVERHEAD(hh,head) \ + (((head) != NULL) ? ( \ + (size_t)(((head)->hh.tbl->num_items * sizeof(UT_hash_handle)) + \ + ((head)->hh.tbl->num_buckets * sizeof(UT_hash_bucket)) + \ + sizeof(UT_hash_table) + \ + (HASH_BLOOM_BYTELEN))) : 0U) + +#ifdef NO_DECLTYPE +#define HASH_ITER(hh,head,el,tmp) \ +for(((el)=(head)), ((*(char**)(&(tmp)))=(char*)((head!=NULL)?(head)->hh.next:NULL)); \ + (el) != NULL; ((el)=(tmp)), ((*(char**)(&(tmp)))=(char*)((tmp!=NULL)?(tmp)->hh.next:NULL))) +#else +#define HASH_ITER(hh,head,el,tmp) \ +for(((el)=(head)), ((tmp)=DECLTYPE(el)((head!=NULL)?(head)->hh.next:NULL)); \ + (el) != NULL; ((el)=(tmp)), ((tmp)=DECLTYPE(el)((tmp!=NULL)?(tmp)->hh.next:NULL))) +#endif + +/* obtain a count of items in the hash */ +#define HASH_COUNT(head) HASH_CNT(hh,head) +#define HASH_CNT(hh,head) ((head != NULL)?((head)->hh.tbl->num_items):0U) + +typedef struct UT_hash_bucket { + struct UT_hash_handle *hh_head; + unsigned count; + + /* expand_mult is normally set to 0. In this situation, the max chain length + * threshold is enforced at its default value, HASH_BKT_CAPACITY_THRESH. (If + * the bucket's chain exceeds this length, bucket expansion is triggered). + * However, setting expand_mult to a non-zero value delays bucket expansion + * (that would be triggered by additions to this particular bucket) + * until its chain length reaches a *multiple* of HASH_BKT_CAPACITY_THRESH. + * (The multiplier is simply expand_mult+1). The whole idea of this + * multiplier is to reduce bucket expansions, since they are expensive, in + * situations where we know that a particular bucket tends to be overused. + * It is better to let its chain length grow to a longer yet-still-bounded + * value, than to do an O(n) bucket expansion too often. + */ + unsigned expand_mult; + +} UT_hash_bucket; + +/* random signature used only to find hash tables in external analysis */ +#define HASH_SIGNATURE 0xa0111fe1u +#define HASH_BLOOM_SIGNATURE 0xb12220f2u + +typedef struct UT_hash_table { + UT_hash_bucket *buckets; + unsigned num_buckets, log2_num_buckets; + unsigned num_items; + struct UT_hash_handle *tail; /* tail hh in app order, for fast append */ + ptrdiff_t hho; /* hash handle offset (byte pos of hash handle in element */ + + /* in an ideal situation (all buckets used equally), no bucket would have + * more than ceil(#items/#buckets) items. that's the ideal chain length. */ + unsigned ideal_chain_maxlen; + + /* nonideal_items is the number of items in the hash whose chain position + * exceeds the ideal chain maxlen. these items pay the penalty for an uneven + * hash distribution; reaching them in a chain traversal takes >ideal steps */ + unsigned nonideal_items; + + /* ineffective expands occur when a bucket doubling was performed, but + * afterward, more than half the items in the hash had nonideal chain + * positions. If this happens on two consecutive expansions we inhibit any + * further expansion, as it's not helping; this happens when the hash + * function isn't a good fit for the key domain. When expansion is inhibited + * the hash will still work, albeit no longer in constant time. */ + unsigned ineff_expands, noexpand; + + uint32_t signature; /* used only to find hash tables in external analysis */ +#ifdef HASH_BLOOM + uint32_t bloom_sig; /* used only to test bloom exists in external analysis */ + uint8_t *bloom_bv; + uint8_t bloom_nbits; +#endif + +} UT_hash_table; + +typedef struct UT_hash_handle { + struct UT_hash_table *tbl; + void *prev; /* prev element in app order */ + void *next; /* next element in app order */ + struct UT_hash_handle *hh_prev; /* previous hh in bucket order */ + struct UT_hash_handle *hh_next; /* next hh in bucket order */ + const void *key; /* ptr to enclosing struct's key */ + unsigned keylen; /* enclosing struct's key len */ + unsigned hashv; /* result of hash-fcn(key) */ +} UT_hash_handle; + +#endif /* UTHASH_H */ diff --git a/2020/day15/day15.c b/2020/day15/day15.c new file mode 100644 index 0000000..04df95b --- /dev/null +++ b/2020/day15/day15.c @@ -0,0 +1,34 @@ +#include +#include + +#define SIZE 30000000 + +size_t a[SIZE]; + +int main(int argc, char *argv[]) { + if (argc < 2) { + printf("Usage: %s \n", argv[0]); + return 0; + } + + for (size_t i = 1; i < argc - 1; ++i) { + a[atoi(argv[i])] = i; + } + + size_t n = atoi(argv[argc - 1]); + for (size_t i = argc - 1; i < SIZE; ++i) { + if (i == 2020) { // Part 1 + printf("%zu\n", n); + } + size_t prev_n = n; + if (a[n] == 0) { + n = 0; + } else { + n = i - a[n]; + } + a[prev_n] = i; + } + printf("%zu\n", n); // Part 2 + + return 0; +} diff --git a/2020/day15/day15.rkt b/2020/day15/day15.rkt new file mode 100644 index 0000000..706f72a --- /dev/null +++ b/2020/day15/day15.rkt @@ -0,0 +1,39 @@ +#lang racket + +(module+ test + (require rackunit)) + +(define (run-game input idx) + (define h (make-hash)) + (for ([n (in-list (drop-right input 1))] + [i (in-naturals)]) + (hash-set! h n (add1 i))) + (for/fold ([n (last input)]) + ([i (in-range (length input) idx)]) + (define res (- i (hash-ref h n i))) + (hash-set! h n i) + res)) + +(module+ test + (check-equal? (run-game '(0 3 6) 2020) 436) + (check-equal? (run-game '(1 3 2) 2020) 1) + (check-equal? (run-game '(2 1 3) 2020) 10) + (check-equal? (run-game '(1 2 3) 2020) 27) + (check-equal? (run-game '(2 3 1) 2020) 78) + (check-equal? (run-game '(3 2 1) 2020) 438) + (check-equal? (run-game '(3 1 2) 2020) 1836)) + +(module+ main + (displayln (run-game '(14 1 17 0 3 20) 2020))) + +(module+ test + (check-equal? (run-game '(0 3 6) 30000000) 175594) + (check-equal? (run-game '(1 3 2) 30000000) 2578) + (check-equal? (run-game '(2 1 3) 30000000) 3544142) + (check-equal? (run-game '(1 2 3) 30000000) 261214) + (check-equal? (run-game '(2 3 1) 30000000) 6895259) + (check-equal? (run-game '(3 2 1) 30000000) 18) + (check-equal? (run-game '(3 1 2) 30000000) 362)) + +(module+ main + (displayln (run-game '(14 1 17 0 3 20) 30000000))) diff --git a/2020/day16/day16.rkt b/2020/day16/day16.rkt new file mode 100644 index 0000000..cd8d70a --- /dev/null +++ b/2020/day16/day16.rkt @@ -0,0 +1,88 @@ +#lang racket + +(module+ test + (require rackunit)) + +(define (parse-ticket str) + (map string->number (string-split str ","))) + +(define (parse-rules lst) + (for/hash ([str (in-list lst)]) + (define name (car (string-split str ": "))) + (define ranges (map string->number (regexp-match* #px"\\d+" str))) + (values name + (λ (n) (or (<= (first ranges) n (second ranges)) + (<= (third ranges) n (fourth ranges))))))) + +(define (read-input filename) + (define in-str (file->string filename)) + (define rules (parse-rules (regexp-match* #px"[\\w ]+: \\d+-\\d+ or \\d+-\\d+" in-str))) + (define my-ticket + (parse-ticket (cadr (regexp-match #px"your ticket:\n([\\d,]+)" in-str)))) + (define nearby-tickets + (map parse-ticket + (string-split + (cadr (regexp-match #px"nearby tickets:\n([\\d,\n]+)" in-str))))) + (values rules my-ticket nearby-tickets)) + +(define (part1 filename) + (define-values (rules my-ticket nearby-tickets) (read-input filename)) + (define invalid-values + (for*/list ([ticket (in-list nearby-tickets)] + [val (in-list ticket)] + #:when (for/and ([(name rule-proc) (in-hash rules)]) + (not (rule-proc val)))) + val)) + (apply + invalid-values)) + +(module+ test + (check-equal? (part1 "test1") 71)) + +(module+ main + (displayln (part1 "input"))) + +(define ((valid? rules) ticket) + (for/and ([val (in-list ticket)]) + (for/or ([(name rule-proc) (in-hash rules)]) + (rule-proc val)))) + +(define (field-positions h) + (if (for/and ([(k v) (in-hash h)]) (= 1 (length v))) + (for/hash ([(k v) (in-hash h)]) (values k (car v))) + (begin + (for ([(name lst) (in-hash h)] + #:when (= 1 (length lst))) + (for ([(other-name other-lst) (in-hash h)] + #:unless (equal? other-name name)) + (hash-set! h other-name (remove (car lst) other-lst)))) + (field-positions h)))) + +(define (determine-ticket filename) + (define-values (rules my-ticket nearby-tickets) (read-input filename)) + (define valid-tickets (filter (valid? rules) nearby-tickets)) + (define h (make-hash)) + (for ([(name rule-proc) (in-hash rules)]) + (hash-set! h name (range (length my-ticket)))) + (for ([(name rule-proc) (in-hash rules)] + #:when #t + [ticket (in-list valid-tickets)] + #:when #t + [val (in-list ticket)] + [i (in-naturals)] + #:when (not (rule-proc val))) + (hash-update! h name (λ (lst) (remove i lst =)))) + (define positions (field-positions h)) + (for/hash ([(name pos) (in-hash positions)]) + (values name (list-ref my-ticket pos)))) + +(module+ test + (check-equal? (determine-ticket "test2") (hash "class" 12 "row" 11 "seat" 13))) + +(define (part2 filename) + (define ticket (determine-ticket filename)) + (apply * (for/list ([(name val) (in-hash ticket)] + #:when (string-prefix? name "departure")) + val))) + +(module+ main + (displayln (part2 "input"))) diff --git a/2020/day16/input b/2020/day16/input new file mode 100644 index 0000000..0fa48ea --- /dev/null +++ b/2020/day16/input @@ -0,0 +1,260 @@ +departure location: 29-458 or 484-956 +departure station: 40-723 or 738-960 +departure platform: 30-759 or 784-956 +departure track: 37-608 or 623-964 +departure date: 31-664 or 685-950 +departure time: 27-498 or 508-959 +arrival location: 36-245 or 269-961 +arrival station: 35-808 or 814-973 +arrival platform: 40-831 or 856-951 +arrival track: 36-857 or 875-971 +class: 43-161 or 167-963 +duration: 25-75 or 91-966 +price: 37-708 or 724-972 +route: 39-370 or 396-971 +row: 47-280 or 299-949 +seat: 41-105 or 125-952 +train: 43-351 or 359-966 +type: 34-575 or 586-965 +wagon: 27-397 or 420-953 +zone: 48-206 or 226-965 + +your ticket: +61,151,59,101,173,71,103,167,127,157,137,73,181,97,179,149,131,139,67,53 + +nearby tickets: +136,368,517,218,187,318,185,172,146,646,804,747,816,625,695,701,420,588,167,302 +144,452,191,495,196,652,878,605,607,61,932,897,539,82,456,806,587,595,153,168 +517,981,569,738,886,608,935,882,943,627,884,644,228,698,640,53,748,570,880,322 +65,428,312,692,61,465,626,312,644,645,539,189,485,182,310,555,442,493,550,275 +701,547,434,796,278,451,179,397,233,645,741,512,442,800,693,213,188,429,654,707 +898,573,456,132,190,898,705,447,875,160,688,592,627,520,434,81,517,634,240,185 +155,433,198,917,513,425,143,149,421,131,815,13,69,887,928,451,497,923,623,347 +908,896,430,539,532,406,439,75,857,134,589,631,552,541,633,933,522,557,807,917 +367,397,712,343,276,195,334,131,137,881,884,912,197,548,817,744,54,226,457,899 +340,453,916,915,430,487,816,543,485,712,703,899,638,756,431,649,364,925,238,815 +525,70,427,894,279,430,792,365,278,946,624,568,371,61,453,595,324,947,598,104 +986,444,243,741,822,745,484,878,457,486,937,368,746,652,126,589,907,317,828,741 +171,830,687,65,815,368,508,799,71,230,560,595,364,303,312,757,112,274,597,881 +917,135,661,130,898,699,618,58,206,73,149,488,458,818,69,803,572,328,888,75 +270,133,228,458,519,56,425,450,277,750,365,538,591,522,925,201,533,982,857,190 +810,599,315,529,515,898,857,605,92,438,629,533,899,491,360,603,537,458,542,597 +307,128,930,489,156,323,924,900,309,216,101,127,312,647,605,491,237,523,746,875 +632,660,660,701,700,106,169,144,341,625,432,196,799,880,808,944,443,200,341,750 +349,881,943,793,541,772,643,171,540,572,647,55,882,569,934,365,944,199,278,568 +703,755,639,929,140,196,897,235,342,79,360,370,302,314,818,786,565,535,186,444 +936,458,393,624,509,563,540,830,788,902,200,628,896,917,795,95,496,332,941,308 +154,234,305,793,927,947,632,661,367,271,273,205,527,638,151,547,285,806,186,328 +641,530,616,660,626,274,368,171,280,149,269,456,658,336,306,194,659,102,318,149 +322,72,125,138,550,365,688,280,442,303,491,509,136,696,996,235,202,704,334,913 +640,571,170,700,803,650,592,545,421,703,600,638,590,242,316,203,3,531,906,233 +424,899,571,333,226,66,159,698,326,330,62,662,140,191,933,742,755,478,349,99 +645,790,316,205,637,935,187,700,565,485,746,947,130,188,436,726,311,827,309,58 +153,200,307,361,169,634,608,312,228,163,313,654,520,511,527,705,300,173,306,433 +125,56,770,177,237,447,425,55,557,192,275,652,160,568,495,508,525,100,487,588 +877,457,275,799,205,889,890,304,568,893,237,825,597,202,911,175,917,164,337,822 +312,306,427,893,562,326,904,931,703,693,946,71,181,631,328,566,552,190,750,709 +91,137,910,193,277,702,142,457,562,335,228,568,672,195,349,139,759,754,946,57 +548,892,303,808,883,514,69,705,942,615,128,822,514,366,54,934,554,420,433,926 +306,518,931,549,652,792,282,808,157,752,60,857,341,104,632,202,806,98,336,940 +144,991,568,185,756,367,893,695,784,631,901,797,607,69,545,696,369,944,948,641 +60,542,350,690,178,793,273,322,688,321,719,433,592,67,518,808,449,758,180,447 +901,740,339,828,898,913,895,284,93,794,789,894,529,238,75,439,519,797,54,890 +301,314,556,624,202,207,161,277,140,138,330,740,908,553,190,432,99,532,789,54 +534,67,160,994,129,272,550,599,657,630,786,556,626,319,245,692,64,948,397,532 +518,545,351,652,920,142,105,706,185,167,268,549,540,184,140,347,597,830,653,753 +275,75,743,916,512,918,162,805,150,798,797,178,67,935,603,300,94,494,491,452 +555,322,542,648,363,787,747,747,909,245,305,203,455,758,920,110,349,150,451,315 +640,309,891,542,541,519,69,720,699,435,799,131,699,686,948,541,520,703,529,696 +918,924,201,345,458,359,821,535,528,431,164,93,563,497,657,187,606,102,325,897 +154,877,828,160,346,675,144,300,304,174,605,708,437,831,934,234,234,911,550,793 +428,128,570,341,530,891,303,184,366,752,485,573,156,277,335,104,217,202,174,149 +500,558,336,927,881,135,640,440,931,242,648,304,338,235,895,232,126,61,308,551 +201,899,52,447,175,624,677,518,519,915,343,788,429,664,647,233,420,276,655,490 +396,884,892,744,877,186,988,203,639,103,143,181,900,510,346,556,631,788,742,177 +630,534,685,517,134,590,908,627,370,525,541,907,320,807,302,186,706,340,815,247 +791,490,78,232,73,273,890,589,543,271,655,169,180,530,441,137,629,918,278,920 +814,0,436,661,362,458,497,787,72,318,900,341,190,130,897,896,487,602,95,904 +918,179,141,508,886,99,307,894,686,634,641,318,546,232,563,165,543,885,705,929 +652,807,144,143,642,265,420,887,55,51,157,513,748,169,420,427,651,692,880,937 +318,565,305,929,754,587,318,308,306,825,568,457,72,218,146,805,160,342,269,70 +555,688,323,557,816,651,229,491,237,795,694,517,931,827,629,586,150,229,108,663 +907,230,149,455,109,536,910,601,801,548,346,942,159,125,158,59,74,174,446,496 +396,756,177,597,157,940,802,337,122,623,795,938,883,746,397,227,741,70,900,55 +536,159,803,195,336,426,228,888,434,911,887,753,888,735,309,185,876,920,799,623 +280,920,396,155,202,367,656,454,454,875,324,24,240,562,885,821,493,519,702,142 +491,199,150,134,433,186,949,200,101,97,546,152,706,788,337,56,760,366,145,857 +644,528,644,422,752,165,351,593,549,347,941,243,244,512,757,537,99,626,905,804 +631,901,747,424,904,510,206,99,594,820,180,910,357,171,231,488,59,328,805,656 +229,923,194,517,656,364,74,485,99,804,943,190,946,343,573,751,392,819,420,236 +616,823,922,633,149,746,565,558,322,593,319,897,695,496,914,568,552,511,94,587 +119,568,129,320,302,305,804,554,232,647,303,194,923,891,915,744,485,551,540,68 +74,336,432,197,715,923,914,527,278,660,910,53,692,452,422,513,568,531,650,944 +787,604,243,646,429,56,73,546,553,883,170,883,432,200,634,701,920,22,54,896 +318,271,875,590,360,445,177,63,999,154,746,637,535,329,92,892,949,204,442,435 +51,558,155,421,441,325,920,568,820,300,804,537,544,423,74,231,91,616,245,312 +659,652,941,431,349,351,50,662,520,646,305,642,96,490,350,697,671,637,495,797 +776,131,949,887,272,457,910,642,940,425,702,176,746,510,271,245,885,928,886,562 +313,420,594,938,946,571,193,999,938,534,161,100,607,136,101,894,934,595,561,590 +269,745,143,347,305,593,722,69,487,662,60,137,569,240,653,71,590,891,648,632 +542,623,629,806,515,178,898,230,496,143,748,509,485,604,518,445,918,981,818,626 +706,303,536,635,196,190,642,884,300,55,179,920,813,634,520,328,796,189,560,101 +239,542,116,685,104,801,759,52,567,436,322,745,628,487,687,520,203,856,191,641 +332,748,664,896,929,593,740,881,318,654,427,148,7,235,939,205,422,348,128,800 +919,553,103,430,426,727,437,663,368,368,795,103,912,751,933,922,361,492,231,516 +231,586,567,204,101,574,762,167,567,567,161,568,317,934,603,510,68,655,892,907 +491,273,431,135,161,192,930,484,167,361,396,197,247,830,938,454,939,363,605,931 +339,888,500,830,328,630,629,750,273,300,279,603,562,103,57,277,127,342,309,306 +733,68,884,341,650,602,804,656,307,891,551,789,201,485,185,488,69,188,183,600 +525,601,168,649,235,519,922,453,130,193,87,105,529,943,799,880,898,788,320,56 +822,164,814,195,519,700,546,896,595,94,916,492,457,745,491,919,597,278,67,894 +703,310,529,551,898,564,857,924,915,538,530,61,529,788,920,819,730,314,493,699 +497,337,168,443,698,502,911,496,700,800,814,905,422,62,493,202,881,820,430,891 +185,794,689,155,191,797,131,103,163,91,897,602,902,154,520,927,686,447,364,277 +927,607,746,440,322,752,202,596,427,101,194,22,346,630,127,128,752,947,561,508 +159,513,441,763,644,856,146,698,527,595,239,439,178,918,142,600,149,494,820,552 +343,557,340,70,452,655,381,883,785,137,130,908,496,653,877,894,940,791,151,433 +169,586,177,757,332,717,367,540,826,536,815,750,542,800,520,792,831,364,324,902 +935,516,687,946,99,337,447,625,936,422,351,518,79,661,149,826,184,457,73,434 +744,289,881,568,484,703,640,334,520,917,828,133,199,328,304,137,345,370,560,439 +804,487,367,273,67,239,739,587,892,697,158,508,929,143,523,909,418,637,184,135 +297,627,931,235,828,324,941,586,703,520,934,634,423,439,941,158,67,180,883,902 +432,155,443,557,254,311,340,450,807,239,277,243,628,817,789,689,591,554,696,517 +307,73,278,429,881,197,328,792,900,918,882,332,105,740,58,758,933,195,92,81 +697,759,167,816,537,430,875,444,790,943,498,649,144,525,655,359,463,909,324,573 +370,883,875,67,428,97,206,143,518,124,920,513,439,201,918,179,791,176,650,641 +792,63,139,564,738,520,175,520,365,591,694,932,631,249,887,438,103,946,174,98 +945,909,559,597,605,270,928,692,881,149,366,571,703,754,784,744,572,898,495,162 +754,316,191,157,704,153,111,551,883,535,362,800,925,130,929,949,425,686,91,923 +551,440,753,714,104,749,691,445,143,340,427,555,277,167,758,606,300,305,314,302 +433,604,649,372,751,889,568,305,654,160,194,536,921,930,573,337,230,552,303,817 +568,926,140,332,144,183,724,924,313,935,132,935,795,535,798,823,146,201,591,233 +351,605,724,662,56,704,443,562,896,787,347,234,793,816,494,561,659,898,552,454 +857,893,188,127,184,93,562,795,125,490,54,243,361,943,276,348,988,818,103,540 +308,787,793,232,426,273,704,397,740,907,830,311,126,100,985,542,628,636,157,485 +650,551,594,909,534,514,277,554,745,432,569,494,582,230,590,922,750,562,126,311 +814,904,444,204,821,160,492,205,324,489,792,912,699,454,828,341,983,275,830,187 +637,924,804,175,948,515,211,604,624,827,746,820,798,742,485,451,785,488,184,100 +153,208,199,827,200,56,530,185,655,821,177,700,148,170,535,337,707,900,343,521 +192,878,310,319,922,133,898,368,794,804,898,96,311,622,787,894,564,690,589,942 +242,899,820,143,58,623,811,52,661,342,702,562,878,146,538,510,307,206,795,900 +928,893,947,827,895,161,275,266,99,338,882,930,227,445,129,50,192,626,337,906 +756,554,564,101,96,287,198,800,192,92,798,639,687,878,932,321,785,694,153,631 +789,743,557,565,915,188,481,740,538,422,159,625,70,270,660,143,139,695,523,701 +437,657,397,336,698,592,329,175,452,913,492,816,492,478,313,923,915,181,819,645 +926,248,489,490,180,526,273,91,819,515,742,875,65,875,62,307,439,930,701,442 +787,892,816,592,332,299,331,786,151,547,161,755,798,95,572,235,499,567,644,311 +754,125,490,559,71,553,514,279,397,437,929,5,204,327,228,132,234,340,560,633 +913,87,426,522,242,240,184,193,708,750,510,558,697,103,151,651,625,332,948,571 +300,427,555,241,423,949,59,230,339,590,685,806,647,914,100,630,544,213,71,100 +755,343,926,350,822,445,943,693,932,200,905,97,129,664,159,916,251,450,557,589 +698,54,529,201,71,55,693,187,488,24,607,915,456,448,179,489,454,160,876,545 +437,756,54,565,445,901,194,206,945,821,349,59,696,496,902,532,166,160,633,150 +101,177,158,698,165,928,572,364,60,545,547,554,706,350,319,200,95,97,327,697 +51,68,223,67,883,827,533,432,949,643,497,906,519,66,312,593,188,97,635,66 +306,98,918,128,664,184,428,140,181,492,758,325,291,922,590,441,231,878,562,789 +468,541,235,433,334,946,192,97,449,940,168,61,495,155,560,639,657,825,587,948 +451,541,754,99,586,534,692,19,132,758,441,366,929,531,420,690,633,876,178,532 +553,331,320,193,887,433,104,817,241,374,91,700,708,498,269,708,151,269,635,739 +630,824,178,166,829,645,68,339,397,747,103,132,857,243,596,204,690,97,898,335 +550,741,634,426,58,381,934,363,456,895,345,487,898,703,99,906,528,498,635,360 +907,934,498,698,793,810,691,275,423,238,313,438,575,425,141,563,322,884,135,201 +14,330,588,105,146,173,309,897,59,176,334,891,785,656,492,315,571,426,104,795 +153,876,887,321,657,931,855,510,362,333,556,92,64,591,180,641,54,179,931,910 +361,328,275,565,359,532,894,133,61,567,701,632,470,67,509,806,626,747,911,271 +2,198,322,698,608,447,817,454,532,68,888,540,690,447,434,921,949,705,946,97 +182,361,485,348,368,922,52,799,433,187,298,369,238,168,693,797,156,631,200,936 +754,553,559,545,685,191,490,634,589,539,392,879,128,105,701,509,549,815,511,687 +882,564,261,156,564,655,455,908,739,359,137,516,485,426,904,933,597,307,349,660 +419,896,64,802,443,543,804,300,746,914,793,593,426,314,489,803,929,743,275,59 +171,636,681,93,927,315,520,587,168,694,50,130,333,441,795,628,702,202,68,920 +139,738,164,895,128,344,806,653,438,887,136,939,351,458,361,239,746,102,510,594 +921,911,367,799,548,897,51,122,366,934,929,229,625,157,685,945,130,513,916,367 +947,195,626,827,707,535,439,700,707,326,657,455,109,179,147,450,599,96,690,159 +438,95,521,520,937,226,794,364,522,127,883,645,424,423,524,704,312,917,1,344 +947,635,455,738,814,740,422,450,793,138,519,988,232,947,792,64,426,65,663,428 +840,367,447,188,909,333,130,245,927,241,73,315,574,173,229,325,273,508,878,689 +882,143,361,90,309,447,909,929,330,234,509,363,743,50,931,756,336,603,516,332 +129,829,154,143,646,350,105,155,524,443,171,65,338,345,336,742,302,644,982,688 +575,739,805,347,944,747,308,509,686,569,928,203,757,92,436,912,822,281,205,808 +744,710,565,141,237,67,694,569,147,434,664,949,700,528,820,623,337,597,68,340 +719,185,486,550,369,316,831,175,420,632,490,629,899,364,912,485,923,657,61,646 +885,276,511,745,789,313,400,545,573,708,687,650,72,692,876,625,202,823,750,608 +74,930,695,875,635,608,335,658,642,689,227,657,743,16,896,142,944,795,167,525 +423,831,603,795,452,351,794,238,857,97,606,360,735,426,426,895,931,336,514,315 +902,227,487,754,520,177,98,191,316,332,745,738,502,645,828,240,148,826,703,541 +136,173,317,265,640,348,653,894,75,686,563,125,949,443,641,183,634,104,650,334 +191,628,943,661,808,657,645,160,316,148,316,637,166,606,652,344,277,943,565,448 +370,949,693,569,147,938,204,926,796,700,880,437,328,891,172,308,5,100,635,145 +498,304,533,453,446,52,184,310,634,527,933,59,405,913,650,624,545,521,59,446 +451,14,454,313,143,799,643,784,485,690,651,58,565,938,330,742,300,756,193,556 +799,103,882,650,785,603,820,317,636,453,111,593,626,902,630,795,638,928,534,527 +303,134,527,820,145,127,548,825,200,232,801,573,594,598,920,456,925,723,593,341 +829,540,461,605,702,534,785,237,587,155,635,143,176,489,930,205,126,705,228,320 +915,144,484,559,142,804,158,76,237,335,921,660,531,370,194,457,891,660,627,508 +426,239,910,745,557,805,435,154,431,795,528,856,989,539,206,346,659,231,182,326 +54,893,815,195,567,142,940,452,628,638,533,319,936,760,547,425,569,695,749,818 +663,157,244,699,323,129,489,510,93,100,143,821,72,543,549,172,335,648,165,228 +597,426,936,829,799,315,787,148,98,259,913,497,200,326,344,641,276,278,201,822 +250,941,689,157,312,639,631,588,572,902,632,334,311,226,921,522,647,240,566,820 +746,928,535,791,342,51,931,167,637,935,155,655,848,831,926,342,881,882,126,136 +437,792,745,628,556,69,91,893,161,436,64,877,186,436,533,679,423,184,552,170 +147,192,755,556,570,199,181,642,103,128,125,549,593,741,934,202,984,435,101,308 +275,948,568,340,538,947,338,156,541,487,334,336,219,561,738,365,530,188,624,422 +531,397,664,617,908,57,93,171,149,364,598,148,875,818,199,823,455,128,328,820 +193,489,794,169,159,365,76,803,75,484,915,634,276,330,229,421,156,98,587,456 +324,159,6,66,237,458,489,167,887,155,530,934,321,53,226,97,748,605,359,179 +744,596,339,431,759,453,889,456,441,130,12,485,927,877,498,561,746,545,457,300 +944,194,517,587,426,489,129,96,136,885,801,788,554,157,457,538,615,154,527,428 +628,485,820,803,883,203,888,599,204,794,784,564,245,692,606,288,327,906,434,146 +510,314,660,644,698,568,262,351,359,513,946,361,657,607,56,310,351,884,624,498 +798,928,439,531,555,159,4,331,742,75,931,790,532,822,425,792,144,196,305,902 +786,751,749,893,808,91,190,445,944,877,921,887,686,165,97,820,135,234,337,662 +829,925,635,819,559,748,205,594,803,71,791,319,449,937,203,132,71,386,62,520 +892,226,631,900,803,172,203,305,495,397,143,175,328,194,72,171,588,130,722,320 +301,518,630,913,143,548,226,132,184,448,304,229,662,231,608,763,245,906,828,437 +453,273,189,550,269,600,441,703,125,299,631,759,436,321,882,125,644,263,815,426 +787,879,590,455,154,203,74,95,334,359,559,314,552,319,513,454,24,299,364,656 +429,437,322,739,827,230,168,197,708,701,186,441,749,312,635,856,445,777,902,635 +946,4,831,146,508,326,450,206,492,662,69,98,897,650,658,547,333,889,197,129 +300,917,642,791,661,825,306,450,278,237,940,943,188,158,138,713,630,946,550,817 +511,340,588,630,545,554,359,443,269,824,325,639,752,829,128,423,493,936,787,123 +928,92,807,754,161,280,317,337,877,493,299,546,940,802,820,877,716,143,707,902 +207,424,789,178,179,552,707,785,275,233,455,598,887,68,921,641,522,754,432,738 +514,116,60,191,534,633,598,427,327,369,341,54,130,599,347,572,707,337,102,232 +807,530,347,364,543,330,695,93,901,190,333,603,615,57,648,697,449,320,592,822 +878,696,303,298,892,366,697,234,754,186,443,572,488,188,172,700,443,935,927,183 +495,147,901,788,647,197,171,925,745,919,701,941,73,568,542,390,429,912,529,131 +800,696,330,793,655,914,59,180,447,816,50,321,806,917,58,51,78,900,430,881 +166,808,924,185,139,428,64,888,659,151,519,336,277,194,91,484,875,488,526,363 +875,172,904,364,919,794,926,236,915,816,816,135,909,118,595,750,530,925,656,193 +807,379,919,57,440,741,931,426,307,757,487,940,487,362,485,195,226,623,323,493 +206,789,424,130,573,831,355,945,60,658,790,368,931,944,548,534,757,942,341,486 +948,280,664,190,126,560,436,885,571,893,550,785,68,281,159,889,881,312,942,705 +557,542,818,697,913,351,635,130,801,930,66,946,351,230,170,260,508,93,438,903 +890,570,314,658,785,245,882,510,325,636,929,322,337,710,923,451,303,550,187,458 +891,790,943,449,689,549,519,588,2,443,304,160,556,240,553,75,320,275,436,572 +56,946,556,623,142,930,875,318,686,285,454,562,637,935,152,902,496,704,97,917 +637,102,294,643,179,522,493,442,546,453,884,185,351,652,178,206,129,341,931,168 +522,626,821,308,198,547,637,792,984,827,693,456,596,330,73,204,646,234,698,149 +198,327,324,564,815,904,947,702,798,70,203,758,233,129,647,96,880,269,2,904 +682,420,455,944,928,168,368,943,947,273,940,556,552,424,924,135,346,324,56,561 +508,101,190,526,934,622,945,925,341,159,586,549,180,703,437,820,65,368,635,396 +748,787,876,487,158,589,169,653,905,334,631,637,329,270,338,615,625,324,238,228 +183,803,751,563,206,204,320,876,13,949,594,647,568,317,750,628,877,155,546,880 +90,818,606,509,636,172,59,599,818,498,435,229,234,801,904,168,802,315,567,458 +522,327,105,857,186,641,131,234,821,154,817,887,718,608,232,140,566,598,804,485 +645,744,827,913,103,602,229,525,569,187,544,163,370,793,450,925,245,510,68,738 +932,365,93,115,147,237,654,137,50,913,485,92,458,787,342,174,898,58,817,910 +315,488,205,645,638,699,235,364,663,74,687,597,771,749,896,631,139,532,897,550 +145,130,336,914,322,76,492,338,359,798,536,64,361,509,917,370,95,586,934,935 +525,544,796,226,96,572,367,916,652,71,634,745,161,998,591,942,547,344,227,626 +794,806,486,897,231,361,808,739,183,370,227,192,69,136,560,439,887,109,269,331 +496,928,270,550,800,179,788,646,197,789,906,511,640,550,904,227,592,81,895,92 +396,334,738,230,104,929,502,137,302,440,927,175,449,169,304,451,421,559,901,513 +899,187,303,161,608,545,638,160,496,537,338,426,516,374,66,303,650,430,453,758 +95,991,554,932,943,95,740,276,323,190,856,697,888,270,498,595,600,786,149,454 +384,155,54,630,181,230,645,58,540,745,548,520,430,935,155,755,171,571,592,892 +892,695,529,937,330,605,60,901,520,539,553,330,205,588,538,472,689,753,934,423 +53,195,67,817,21,625,543,912,368,945,509,183,425,486,367,922,156,829,755,793 +271,337,271,229,827,947,313,163,548,278,823,186,687,747,59,328,149,897,926,892 diff --git a/2020/day16/test1 b/2020/day16/test1 new file mode 100644 index 0000000..fe34e40 --- /dev/null +++ b/2020/day16/test1 @@ -0,0 +1,12 @@ +class: 1-3 or 5-7 +row: 6-11 or 33-44 +seat: 13-40 or 45-50 + +your ticket: +7,1,14 + +nearby tickets: +7,3,47 +40,4,50 +55,2,20 +38,6,12 diff --git a/2020/day16/test2 b/2020/day16/test2 new file mode 100644 index 0000000..b48bf37 --- /dev/null +++ b/2020/day16/test2 @@ -0,0 +1,11 @@ +class: 0-1 or 4-19 +row: 0-5 or 8-19 +seat: 0-13 or 16-19 + +your ticket: +11,12,13 + +nearby tickets: +3,9,18 +15,1,5 +5,14,9 diff --git a/2020/day17/day17.c b/2020/day17/day17.c new file mode 100644 index 0000000..3b3557c --- /dev/null +++ b/2020/day17/day17.c @@ -0,0 +1,144 @@ +#include +#include +#include +#include + +#define INPUT_SIZE 8 +#define SIZE 30 // = (size of the input + 6 for growth + 1 padding) * 2 + +bool alive3(bool state[SIZE][SIZE][SIZE], int x, int y, int z) { + int neighbours_count = 0; + for (int i = -1; i <= 1; ++i) { + for (int j = -1; j <= 1; ++j) { + for (int k = -1; k <= 1; ++k) { + neighbours_count += state[x + i][y + j][z + k]; + } + } + } + neighbours_count -= state[x][y][z]; + + if (state[x][y][z]) { + return (2 <= neighbours_count) && (neighbours_count <= 3); + } + return 3 == neighbours_count; +} + +bool alive4(bool state[SIZE][SIZE][SIZE][SIZE], int x, int y, int z, int w) { + int neighbours_count = 0; + for (int i = -1; i <= 1; ++i) { + for (int j = -1; j <= 1; ++j) { + for (int k = -1; k <= 1; ++k) { + for (int l = -1; l <= 1; ++l) { + neighbours_count += state[x + i][y + j][z + k][w + l]; + } + } + } + } + neighbours_count -= state[x][y][z][w]; + + if (state[x][y][z][w]) { + return (2 <= neighbours_count) && (neighbours_count <= 3); + } + return 3 == neighbours_count; +} + +int part1(bool input[INPUT_SIZE][INPUT_SIZE]) { + bool state[SIZE][SIZE][SIZE] = {false}; + bool new_state[SIZE][SIZE][SIZE] = {false}; + + for (int i = 0; i < INPUT_SIZE; ++i) { + for (int j = 0; j < INPUT_SIZE; ++j) { + state[SIZE / 2 + i][SIZE / 2 + j][SIZE / 2] = input[i][j]; + } + } + + for (int step = 0; step < 6; ++step) { + for (int x = 1; x < SIZE - 1; ++x) { + for (int y = 1; y < SIZE - 1; ++y) { + for (int z = 1; z < SIZE - 1; ++z) { + new_state[x][y][z] = alive3(state, x, y, z); + } + } + } + memcpy(state, new_state, sizeof(state)); + } + + int active_count = 0; + for (int x = 1; x < SIZE - 1; ++x) { + for (int y = 1; y < SIZE - 1; ++y) { + for (int z = 1; z < SIZE - 1; ++z) { + active_count += state[x][y][z]; + } + } + } + return active_count; +} + +int part2(bool input[INPUT_SIZE][INPUT_SIZE]) { + bool state[SIZE][SIZE][SIZE][SIZE] = {false}; + bool new_state[SIZE][SIZE][SIZE][SIZE] = {false}; + + for (int i = 0; i < INPUT_SIZE; ++i) { + for (int j = 0; j < INPUT_SIZE; ++j) { + state[SIZE / 2 + i][SIZE / 2 + j][SIZE / 2][SIZE / 2] = input[i][j]; + } + } + + for (int step = 0; step < 6; ++step) { + for (int x = 1; x < SIZE - 1; ++x) { + for (int y = 1; y < SIZE - 1; ++y) { + for (int z = 1; z < SIZE - 1; ++z) { + for (int w = 1; w < SIZE - 1; ++w) { + new_state[x][y][z][w] = alive4(state, x, y, z, w); + } + } + } + } + memcpy(state, new_state, sizeof(state)); + } + + int active_count = 0; + for (int x = 1; x < SIZE - 1; ++x) { + for (int y = 1; y < SIZE - 1; ++y) { + for (int z = 1; z < SIZE - 1; ++z) { + for (int w = 1; w < SIZE - 1; ++w) { + active_count += state[x][y][z][w]; + } + } + } + } + return active_count; +} + +int main(int argc, char *argv[]) { + if (argc < 2) { + printf("Usage: %s \n", argv[0]); + return 0; + } + + FILE *fp = fopen(argv[1], "r"); + if (fp == NULL) { + printf("Could not open file %s\n", argv[1]); + return 1; + } + + bool input[INPUT_SIZE][INPUT_SIZE] = {false}; + int i = 0; + int j = 0; + char c; + while ((c = fgetc(fp)) != EOF) { + if (c == '\n') { + i++; + j = 0; + } else { + input[i][j] = (c == '#'); + j++; + } + } + fclose(fp); + + printf("%d\n", part1(input)); + printf("%d\n", part2(input)); + + return 0; +} diff --git a/2020/day17/day17.rkt b/2020/day17/day17.rkt new file mode 100644 index 0000000..9d9e9ea --- /dev/null +++ b/2020/day17/day17.rkt @@ -0,0 +1,58 @@ +#lang racket/base + +(require racket/list + racket/set) + +(module+ test + (require rackunit)) + +(define (read-input filename dimension) + (with-input-from-file filename + (lambda () + (for/set ([line (in-lines)] + [i (in-naturals)] + #:when #t + [c (in-list (string->list line))] + [j (in-naturals)] + #:when (eq? c #\#)) + (append (list i j) (make-list (- dimension 2) 0)))))) + +(define (neighbours pos) + (define dim (length pos)) + (define relative (remove (make-list dim 0) (apply cartesian-product (make-list dim '(-1 0 1))))) + (map (λ (rel) (map + pos rel)) relative)) + +(define (lives? state pos) + (define neighbours-count (length (filter (λ (n) (set-member? state n)) + (neighbours pos)))) + (define current (set-member? state pos)) + (or (and current (<= 2 neighbours-count 3)) + (and (not current) (= 3 neighbours-count)))) + +(define (step state) + (define dim (length (set-first state))) + (define indexes (flatten (set->list state))) + (define min-index (sub1 (apply min indexes))) + (define max-index (+ 2 (apply max indexes))) + (for/set ([pos (apply cartesian-product (make-list dim (range min-index max-index)))] + #:when (lives? state pos)) + pos)) + +(define (power n f) + (apply compose (make-list n f))) + +(define (part1 filename) + (define input (read-input filename 3)) + (set-count ((power 6 step) input))) + +(define (part2 filename) + (define input (read-input filename 4)) + (set-count ((power 6 step) input))) + +(module+ test + (check-equal? (part1 "test") 112) + (check-equal? (part2 "test") 848)) + +(module+ main + (displayln (part1 "input")) + (displayln (part2 "input"))) diff --git a/2020/day17/input b/2020/day17/input new file mode 100644 index 0000000..c5cc44d --- /dev/null +++ b/2020/day17/input @@ -0,0 +1,8 @@ +..##.#.# +.#####.. +#.....## +##.##.#. +..#...#. +.#..##.. +.#...#.# +#..##.## diff --git a/2020/day17/test b/2020/day17/test new file mode 100644 index 0000000..eedd3d2 --- /dev/null +++ b/2020/day17/test @@ -0,0 +1,3 @@ +.#. +..# +### diff --git a/2020/day18/day18.dyalog b/2020/day18/day18.dyalog new file mode 100644 index 0000000..cca82fa --- /dev/null +++ b/2020/day18/day18.dyalog @@ -0,0 +1,4 @@ + ⎕io←0 ⋄ ⎕pp←34 + p←⊃⎕NGET'input'1 + +/⍎¨⌽¨('\(' '\)' '\*'⎕R{')(×'[⍵.PatternNum]})¨p ⍝ part 1 + +/⍎¨⌽¨('()*'{⍺⍺(⍵⍵⌷⍨∘⊂⍳)@(∊∘⍺⍺)⍵}')(×')¨p ⍝ part 1 (without regex) diff --git a/2020/day18/day18.rkt b/2020/day18/day18.rkt new file mode 100644 index 0000000..62100c9 --- /dev/null +++ b/2020/day18/day18.rkt @@ -0,0 +1,63 @@ +#lang racket + +(module+ test + (require rackunit)) + +(define (read-input filename) + (with-input-from-file filename + (lambda () + (for/list ([line (in-lines)]) + (parse-expression line))))) + +(define (parse-expression str) + (read (open-input-string (string-append "(" str ")")))) + +(define (eval-left lst) + (match lst + [(? number? x) x] + [(list x) x] + [(list-rest a '+ b r) + (eval-left (cons (+ (eval-left a) (eval-left b)) r))] + [(list-rest a '* b r) + (eval-left (cons (* (eval-left a) (eval-left b)) r))])) + +(define (part1 filename) + (define input (read-input filename)) + (apply + (map eval-left input))) + +(module+ test + (check-equal? (eval-left (parse-expression "1 + 2 * 3 + 4 * 5 + 6")) 71) + (check-equal? (eval-left (parse-expression "1 + (2 * 3) + (4 * (5 + 6))")) 51) + (check-equal? (eval-left (parse-expression "2 * 3 + (4 * 5)")) 26) + (check-equal? (eval-left (parse-expression "5 + (8 * 3 + 9 + 3 * 4 * 3)")) 437) + (check-equal? (eval-left (parse-expression "5 * 9 * (7 * 3 * 3 + 9 * 3 + (8 + 6 * 4))")) 12240) + (check-equal? (eval-left (parse-expression "((2 + 4 * 9) * (6 + 9 * 8 + 6) + 6) + 2 + 4 * 2")) 13632)) + +(module+ main + (displayln (part1 "input"))) + +(define (eval-left-priority lst) + (match lst + [(? number? x) x] + [(list x) x] + [(list-rest a '* b '+ c r) + (eval-left-priority (list* a '* (+ (eval-left-priority b) (eval-left-priority c)) r))] + [(list-rest a '+ b r) + (eval-left-priority (cons (+ (eval-left-priority a) (eval-left-priority b)) r))] + [(list-rest a '* b r) + (eval-left-priority (cons (* (eval-left-priority a) (eval-left-priority b)) r))])) + +(module+ test + (check-equal? (eval-left-priority (parse-expression "1 + 2 * 3 + 4 * 5 + 6")) 231) + (check-equal? (eval-left-priority (parse-expression "1 + (2 * 3) + (4 * (5 + 6))")) 51) + (check-equal? (eval-left-priority (parse-expression "2 * 3 + (4 * 5)")) 46) + (check-equal? (eval-left-priority (parse-expression "5 + (8 * 3 + 9 + 3 * 4 * 3)")) 1445) + (check-equal? (eval-left-priority (parse-expression "5 * 9 * (7 * 3 * 3 + 9 * 3 + (8 + 6 * 4))")) 669060) + (check-equal? (eval-left-priority (parse-expression "((2 + 4 * 9) * (6 + 9 * 8 + 6) + 6) + 2 + 4 * 2")) 23340)) + +(define (part2 filename) + (define input (read-input filename)) + (apply + (map eval-left-priority input))) + +(module+ main + (displayln (part2 "input"))) diff --git a/2020/day18/input b/2020/day18/input new file mode 100644 index 0000000..cf4cd87 --- /dev/null +++ b/2020/day18/input @@ -0,0 +1,380 @@ +7 + (9 * 8 + 5 + 5 * (3 * 4 * 7 + 6 * 4)) * ((3 * 6 + 3 * 4 * 7 * 4) + 4 * 3 * 5 + 5 * (5 * 6 + 7)) * 2 + 6 * 4 +9 * 4 * ((9 * 8 + 9 + 2 + 9) + 2 * 9 + 2 + 2) * 5 * 6 +3 * ((9 * 3 * 8 * 6 * 6 * 7) + 8) * 2 * 9 + 4 * 8 +(3 + 4 + 4 * 4 + 9) + (7 + 6 + 2 * 8) * 9 + 7 * 8 +9 + 6 + 6 + 9 * 9 * 5 +(3 * 5 + (4 + 3 * 7 * 8) + 7 + 8 + 2) * 8 * (3 * 4 * 8) * ((4 + 5 * 2) * 7) +6 + (5 + 8 * (6 * 8 * 9 + 9 + 8 * 9) * 4 + (5 * 9)) * 2 + 2 +(6 + 8 + (6 * 6 + 2) * 6 * (7 + 7 + 8 + 9)) * 3 + 8 + (6 * (8 + 8 + 9)) + 2 +9 + (4 + 6 + 5 * 9 * 4) +(5 * 3 * 4 * 4 + (6 * 4 * 5)) * 2 * 9 +(2 * 3 * 9) * 2 +6 + (4 + 8 + 2) +(9 * 7 + (2 + 9 * 9 * 9 + 3) + (7 * 3 * 4 * 2 + 3 * 7) + (5 + 9 + 4 + 3) + 4) * 9 +(2 + 2 * 5 + 9) * ((5 + 9 * 4 + 7) * 2) * 7 + 4 +4 + 2 + ((4 + 3 * 2 * 4 + 5) * 6 + 7 * (4 * 2) * 9 * (6 + 3 + 8 + 2 * 5)) +(5 + 9) + 6 + 9 + 8 * 5 + 4 +5 * 5 + ((3 + 5 * 4 + 7 * 9 * 7) + (7 + 2 * 3 * 4 + 8) * 6) + (5 * 9 + 9 + (3 + 5) * (8 + 2) + 5) + (3 * 3 * (6 + 3 + 7 * 8) + 3 + 2) +2 + 4 + 8 + 4 + 7 + (2 + (4 + 8 * 4 + 4 + 6) * 8 * (6 * 6 + 7 * 2) * 6 * (8 + 5 + 9 * 4 + 5 + 6)) +7 * 4 + 8 + (8 + (7 * 3 + 4)) * 3 +(6 + 7 + 8 * 4) + ((8 + 7 + 8 * 5) + 8 * 8) +9 * 5 * 8 + 2 +6 * (9 * 5 * 9 + 9 + (3 + 7) * (8 + 9 + 3 + 5 + 2 + 7)) * (6 + 7 + 4) + (2 + (2 + 7 * 2 + 4 + 2) + 4 * (9 + 6 * 5 + 2 * 9)) + (8 + (8 + 6 * 5 + 6 + 9) + (2 * 7 + 2 * 9 * 9) + 7) +4 + 2 + 9 + ((3 * 6 + 8 + 4 + 5 + 4) + 4 + (5 + 4 * 8 + 8) * (3 * 4 * 8) * 7 + (8 * 3 + 8)) + 5 +6 + 9 + 4 +9 * 3 * 4 * 3 * 9 +2 * 7 * (9 * (6 + 9 + 6 + 5 * 5 + 6) + (2 * 7 * 2 + 3) + 6 * 2) +(6 + 3 + 6) * 9 + 5 * ((9 + 9 + 7 + 5) + 4) +8 * 4 * (8 + (7 * 4) * 5 + 6 + 7 + (5 * 7 + 9)) + (5 + (8 + 7 * 2 + 2 + 3) + 8 + 6 + 2 + 2) * (5 + (7 + 4 * 2 + 6 + 6 + 3) + 3 * 8 + 7) +9 + (5 * 6 + 5 * 2 + 8) * 3 +5 * ((9 * 5 + 9) * 9) + 4 * 8 +4 * 5 * (5 + 5 + (2 * 9 + 3) * 4) * 7 +9 * 8 * (8 * (9 * 4 + 7 * 2 + 3 * 8) + (2 * 7 * 2 * 3 + 7 * 2)) +9 * 4 + 2 * 7 * (5 * (4 * 5 * 6) * 3 * 4 + 4) * (4 + 4) +2 * (5 + 6 + (2 * 3 * 3 * 2 * 5 * 5)) + 4 +(5 * 7 * 8 + 4 + 6) * 2 + 3 +8 * ((5 * 3) * (6 + 6 * 6 * 2) * 8 * 6 * 6) * 7 * (3 + 6 * 2 + (9 * 8 * 8 + 7) * (5 + 2 * 2 + 5) + 9) +7 * (7 + 5 + 2 + (5 + 9 * 4 + 5 + 3) * 8) + 2 * 8 * 6 +2 * (6 + 7 * 7) + 3 * 7 * (4 * 7 * 6) +7 + 7 + 8 * (7 + 2 * (3 + 9 + 8 + 7 + 4) * 9) + 5 +8 + 3 * 9 * (8 + 8 * 5) + 8 * 2 +6 * 6 * 5 * (8 * 9 * 2 + 6 * 2 * (9 + 3 + 4 * 3 + 6)) + 2 + 4 +3 + 8 + 7 + 3 * 5 + 9 +(4 * (9 * 2 + 3 * 4) * 5 * 2 + 5) + (7 * 7 * 4 + (4 + 3 + 5 + 6 + 3 + 7) + 6 + 3) * (3 + 9 * 2 + 2) + 3 + 8 * (7 * 8 * 5) +8 * (6 + 6 * (4 * 3 * 6 + 9 + 9) + (2 * 3 * 2 * 4 * 2)) * (2 * (8 + 8) * 6 * 4 + 3) + 9 * 6 +3 * ((7 + 6 * 8 * 9) + 7 * 7 * 2 + 3 * 7) * 8 + 9 + (2 + 7 * 6) * 3 +4 * 8 + 6 + (3 * 3 + 8 * 7 * 9) + 4 * 6 +2 * 5 * (8 * 2) * 4 +((3 + 9) * 2 * 5 + 5 + 8 + 8) * 6 + 2 +9 + 2 + 3 +7 + 4 + 9 * 9 + (9 * 6 * 5 * (3 + 3 * 7 + 3 + 9 * 7) * 9 + 8) + 9 +(6 + 2 * 9) + (6 * 6 + 2 + (6 * 6 * 3 * 6)) * 4 + 2 + 2 +5 + 9 * ((3 + 8 + 7 + 3 + 9 + 3) + 8) +(4 + 7 * 9 * (4 * 8 + 7 + 2 + 6) + 2) + 9 * 9 * 2 + 8 + 8 +(3 * 6 + 3 + 7 + 5) + ((2 * 3 + 2 * 3 * 7 * 5) + 6 + 6 * 9 * 7 * 8) +5 * 7 + 7 * (6 * 5 + 8 * (7 + 5 * 9)) + 8 +(7 + 6 * (2 * 5) + 3 * 6) + 5 * 2 + ((8 + 9) * 6) * 2 +4 + 8 * 3 * (7 * (5 * 5) * 3) + 3 +9 + 7 + (3 + 7 * 5 + 3 + 2) + (8 + 7 * 5) +2 * ((5 * 8 * 2 + 5 * 2 + 8) * 2 * 4 * 3) + 5 * 5 * 9 * 4 +3 * 6 + 6 + (8 + (3 * 8 * 4 * 7) * (6 + 5)) * 6 +6 + (5 * 3 * 7 * 2 + (2 * 6 * 6 + 4) + 9) * 2 * 6 + 6 +(4 + 9 + 9 * (3 + 6 + 3 * 7 + 8 + 5)) * 8 + 5 + 5 * (8 + 6 + 3) * 4 +7 * 8 + (2 + (5 + 6 * 5) * 6 * 6 + 5 + 3) +7 + (3 + (8 + 7 * 5 + 5 + 5) * 5 + 4 + 8) + 9 + 3 +7 * ((7 * 5 * 9 + 7) * 6 * 4 * 6 * 6 + 6) +7 + 5 + (3 * 3) * 6 + 5 +(4 * (3 * 3 * 5 + 8 + 9) * 4 * 8 + 7 * 3) + 5 * 5 + (8 + 2) * 9 * 3 +8 * (2 + 3 + 4) + 4 + 8 + (3 * 4 * (3 + 2) * 4) +9 * 2 * (9 + (8 + 6) * (7 + 9 * 5 * 6) * 8 + 7 + 7) + 5 * 2 * 9 +7 * 7 + 7 + 2 + (5 + 2 + 6 + 7 * 6 + 8) + (9 * (6 + 2) * 3 + 9 + 4 + 7) +(3 * 4) * 9 + ((2 + 5 * 2 + 9 + 6) + 5 + 9 * (4 * 9 * 7 + 2 + 3 + 6) + 4 + (4 + 7 * 8 + 5 * 9)) * 9 + ((8 * 9 + 2 + 7 + 8 + 5) * 7 + 5 * 2 * 9 + (7 * 8 * 6 + 8 + 2)) +((4 + 9 + 7 * 6 * 6) + 3 + 6 * 3 + 3 * 5) * 7 + 2 * 9 * 4 +3 * 7 * 3 +(6 * (9 + 8) + (3 * 4 * 8) + 9 * 4 * (8 + 6 * 8 + 8 + 3 * 5)) + 3 * 4 * 9 * 6 + 2 +((5 * 7) * (9 + 2)) + (2 * 9 * 7 + 3) * 8 + (7 * 5 * 5 * (9 * 9 * 2)) + ((7 + 7 + 8 + 4) * (5 * 3 * 7) * 6 * (7 * 7) * (2 + 2) + 7) * 6 +((9 * 9) * (8 + 3 * 5 + 9) + 5 * 7 + 3 + 8) + 2 + 7 + 3 +8 * 5 * (8 + 3 * 6) + 4 + 8 + 5 +(4 * 9 + (8 + 9 + 8 * 9 * 3) + (3 * 8 * 9 * 9 * 2) + 6 + 5) + 2 + (5 * (6 + 4 * 9 + 3)) + (4 * 9 * (9 * 8 * 7 * 6) * 5 * (2 * 7 * 9) + 5) * ((4 * 5 + 6 * 4) * 6 * 6 + 9 * 7) +(8 * 8 * 7 * 5 * 2 + (9 * 9 + 4 + 8 + 3 + 5)) + 5 * 3 * 3 +5 + (8 * (3 * 3 * 2 + 7) + 9 + 2) * 8 * 4 +9 * (9 * 4 + 2 + 9 * 5 + 3) * 3 + 3 * (5 * (9 * 5 * 8 + 2) * (3 + 8 + 3 + 2) + (6 * 5 * 9 * 5) * (4 + 2 + 5 + 2 * 9) + 4) * 5 +8 + (7 * 7 * 9) * 7 * 8 * 9 * 3 +6 + 9 +(3 * 8 + (8 * 2 + 9 + 3 * 5 * 6) * 2) * 6 * 2 + 4 + 4 * (4 + 5 * 4) +(6 + 8) * 3 + 4 +7 + 2 * 4 + 9 + 7 +8 * (7 + 2 * (2 + 4) + 3 + 6 + 9) * 2 * 9 +(6 * 9 * (2 * 6 + 2)) * 4 + 7 + 9 +((2 + 7 + 7 + 4 * 2) + 2 * 9) * 9 +3 + 8 + 9 +5 * 9 * (3 + 4 * 6 + (8 + 3 * 3 + 5)) +(4 * 4 + (8 * 6 * 7) + (7 * 5 + 9 + 6 * 7 + 8) + 8 * 7) * (6 + 2) * 5 * 3 +6 * 3 + 5 * (9 * 2 + 8 + 5 * 9) * 8 +(8 * 9 + 7 * 7 * 8 * 8) * 7 * 6 +6 + 7 * 6 + 2 * (6 + 7 * 5 * 9 + 6 * 4) +4 + ((9 * 3 + 9 * 9 * 5) + 5) * 9 +2 * (2 * 7) * 6 + 9 + (8 * 7 + (2 * 5 + 8 + 5) + 4 * 5 * (4 * 3)) +(9 + 2 + (9 + 5 + 7) * 3 + 7 * 3) + 3 + 8 + (6 * 5 * 9) +(9 * (7 + 6 * 9) * 5 + 5 + 6 + 6) * 5 + 9 +7 * 8 * 2 * 9 +5 * 2 + 7 + ((6 * 4) + 8 + 2 * 3 + 6) * 9 * 2 +((6 * 8 * 6 * 5 + 3 * 4) * (4 + 5) + 4) + 9 + 4 +4 + 7 + 7 + (4 * 7 * 3 + 9 + (6 + 5) * 9) + 5 +(2 + 4 * (8 + 6 * 5 + 4) * 2 + (9 + 6)) * 2 + 8 +(2 * (3 + 2 + 9 * 4)) * 8 * 9 +3 * 3 * (9 + 6 + 7) +6 + 2 * 6 * 5 + (4 * 7) + 8 +((6 * 4 * 8 + 2 + 4) + 5 * 5) + 4 * 4 * 9 + 4 +(7 + 9 * 2 + 8 * (7 * 3)) * 6 * 9 + 4 +(5 * 8 + 6 + 2 + 3) + 6 + 8 * (4 + 4 * 7 + 8 + 7 * 4) + 3 +(8 * 5 + 4 + 3 * 2) + (8 + 5 + (9 + 7) * (5 * 9 * 2 * 5 + 9 + 9)) * (7 + 8) + 2 +9 + (2 + 7 * 2 * 7 * 8) + 9 * 5 + 4 + 9 +5 * 7 * ((5 + 9 * 5 * 5 + 9) + 2) + 4 +7 + 7 + (4 + (3 * 6 * 9 + 8) + 2 + (9 * 6 + 5) * 2) +9 * 8 + ((7 * 5 * 2 * 3 * 3) * (4 * 8 * 2 * 9 * 8 + 5)) * 6 + 4 * 9 +(8 * 5 * 8 * (2 * 5)) * 6 +((9 + 7 * 5 * 6 + 3 + 8) + 8) * 6 + (5 + 2 * 2) + 4 + 9 * ((4 * 5 * 7 * 9 + 4) + 9 + 2) +((3 + 3 + 2 * 4 * 4) * 7) * 3 * 8 + 4 + 8 +2 + (2 * 3 * 7 * 2 * (3 * 4 * 6 * 2 + 2 + 5) * 7) * 3 * ((8 + 5) * 4 * 4) +(7 * 3 * 9 + 7) * 9 * 6 + 2 + 6 + (8 + (5 + 6 + 9 * 7) + 6 + 4) +(8 * 4 * 6 * 7 * 2 * 4) * 5 + 2 * 3 + 9 +7 * (7 * 3 + 8 * (5 * 4 + 8 * 8) + 7) + ((3 * 6 * 3 * 2 + 6) * 5 * 9) + 4 +5 + 3 + ((4 + 9 + 8 * 4 * 3) * 4 + 3 * 6) +5 + ((4 + 4) * 2) * (9 * 5 + 3 * 3 + 9) * 7 +9 * 2 * 4 * (4 + 3 * (4 + 3) * 3) * 4 +3 + 4 * ((5 * 8 * 2 * 3) + (9 + 8 * 2) * (5 * 3 + 3 + 7) * (2 + 8) * (6 * 4 * 9 * 4)) +9 + 3 + 5 + (4 + (3 * 2 * 6) * 9 * 9) +9 * 2 + 3 + 5 * 2 + 3 +((9 + 3 + 3 * 6 * 4 + 5) + (9 * 3) * 4 + 2 + (2 * 5 + 5)) * (9 + 5 * 3 * 7) * 8 * 4 + 9 + (2 * 8 * 4) +9 + ((4 * 8 + 2) * (8 + 4 * 4) + 4 + (7 + 9 + 6 * 3 * 4 * 8) * 8 * (5 + 8 + 9 * 8)) + 3 * (4 + 3 * 5 + (3 * 4 * 9)) +(9 * 3 + 9 * 8 + 6 + 2) + 6 * (4 + 4) +(6 + 3 + 6 + 4) * 9 * 5 +6 + 8 * (6 + 3) * (7 + 6 + 7 * 9 * (2 + 5 * 2)) + 3 +3 + 5 + (4 * 5 * 2) + 2 + 7 +6 + 9 * 5 + (4 + 2 + 5) * (2 + 6 * 2 * 3) +8 * ((9 * 5 + 9 * 2 * 9 * 9) * (2 + 5 * 3 + 9 + 6 + 2) + 6 * 8 + (8 * 8)) * 6 + 6 + (9 * 8 * 8 * 2 * 5) + 5 +3 + 5 + 2 + (2 * 4) +2 * (2 + 6 + 8 * 2 + (2 * 5 + 6) * 5) +(9 + (2 * 8 * 3 * 3) + 9 + 8 * 2) + 2 * 9 + 7 +2 * (9 + 6 + 7) + (2 * 2 * (7 + 8) * 4 * (4 * 4 + 3 * 5)) + 6 * 3 +(3 * 4 * (5 + 9) * (7 * 3 * 3 + 3 + 9 + 8)) * 2 * 8 +(7 * 2 + 7) * ((2 * 4 * 5) + 2 * 3 + (7 + 8)) + 3 + 9 + 3 +4 + 2 * (5 * 4 + 7 + 6) * 6 +2 * (7 * 3) +((9 + 9 * 4 * 4 + 6) + 6 + (4 + 7 * 9 * 5 + 9)) + 8 + 7 +3 + (6 * 3 * (8 + 4 * 8 + 8 * 7 + 9)) * 3 + 5 + (5 + 4 * 7 + 4 + 3 * 4) * 2 +5 * 5 * 3 * 9 + ((5 + 2 + 8) * 2 * 2) +(9 + 5 * 7 + 8 * 5 * (2 * 6 * 8 + 3)) * 5 +5 * 7 * 4 * ((6 + 5) * 3) +5 * 8 * ((3 + 2 + 8) + 2 + (7 * 2) + 3 * 9 * 9) + 5 * 8 + (5 + 8 + 2 * 6) +2 + 2 * ((4 + 6 * 9) + 3 + 5 + 8) +(5 * 6 + 8 + 5) + 7 * 5 * 8 * 2 +2 + (7 * 2 * (2 * 9) * 3) * (5 + 7) * 8 +((8 * 3 + 2 * 8) + 4) + 2 + 8 + 3 * 7 + 9 +2 + 3 + 3 * 9 + (4 + 6 + (6 + 8) + 5 * 5 * 5) +9 * 8 * (2 * 3 + (4 * 8 * 7 + 9) * 7 + (6 + 7 + 9)) * 7 +6 * (8 * (4 * 3 + 9 + 7 + 2) * 8 + (6 + 4 + 9 + 7) + 3) +(5 * 8 * (2 * 8) + 7 * 4) + 3 + (7 + 6) * 3 +(5 + 4) * 3 + ((9 * 2) + 3 + 5) * 2 +(2 * 6 * (8 * 5) + 9 * 5) + (3 * 9 + (2 + 5 + 6)) +6 * (5 + 3 * 3 * (2 * 6 * 4 + 6 * 4 + 6) + 4) + 5 + 2 * 4 +(9 + 3 * 8 + 8) + 3 + 3 + 9 +3 * ((8 * 4 + 4 + 9) * 7) + 8 * 3 * 7 +5 * 2 + 9 * 7 + 4 +5 * 5 + 7 * 6 +2 * 7 + ((2 * 8 + 4 + 4 + 2 + 4) * 9 * 2 * (9 + 7 + 8 * 9)) * 5 + 8 +4 + 6 + ((2 * 3) + 2) * 4 + 9 +2 * ((6 * 6 * 5 * 6 * 3 * 9) * 6) * 4 +((4 * 8) * 3 * (9 * 2 * 5 * 3 * 3 * 2) + (6 * 7 + 3 + 9) + (3 + 5) * (6 * 4)) * 4 * 8 +5 * 3 + (9 + 4) + 3 + 9 * 6 +(5 * 8 + 5 * 2 + (7 * 5 + 4)) + 5 * 9 * 7 +(6 * 2 + 9 * 5 * 5) + 2 + 2 * 5 +3 * (4 + 7 + 2 * (7 * 9 + 5 * 6 * 6)) * 6 + 8 +6 + 9 + (4 * 4 + 6 * 7 + 6) * 5 + 8 + 6 +8 + ((2 + 5 + 4) * 9 * 5) +4 * (9 + 5 + 7 * (6 + 8 * 7 * 2) * 4 + (9 * 8 * 7)) +5 * 5 + (9 * 4 * 5) + 2 +(4 + 3 * (5 + 9 + 8 + 4) + 4 * 4) + 2 * 2 * (5 * (3 + 9) * (4 * 9 * 8) * (2 + 8 + 3 + 5 * 4 + 4) * 6) +7 * 2 * 3 + 2 + 9 +(9 + 5 * (8 * 2 * 5) * 9) + 7 +8 + 3 + (8 * 2 * 6 * (8 * 2) * 4 + 3) * 2 +(3 + 6 * 3) + 9 * (7 * 6) +5 + (6 * 3 + 6 * 3 * 7) + 4 + 9 +9 + (7 * 5 * 8 * (8 * 2 * 5 + 5 * 3) * 3 * 5) * 2 * 4 +4 * ((6 + 7 * 9) * (9 * 2 + 2)) + ((2 + 3 + 5 + 6 + 9) * 9) + 6 +9 * 3 + (4 * 7 + (9 + 8 + 5)) + 4 + 4 +((3 * 4 + 6) * 9 + 8) * 4 * 3 * 2 + 7 +(6 * 9 + 3 * 5 + 2) + 2 * 5 + (8 * 8 * 7 + 6) + ((6 * 5 + 4 + 3 * 9 + 7) + 3 + 4 * 3 * 9) + 5 +7 * (8 + (7 * 2 * 7 + 5 * 4) + 7 + 4 + 7 + 2) * 2 * 4 +3 + (7 * 8 + (3 * 9 * 9 * 6 * 6)) + ((7 * 8 + 8 * 9) + 5 + 2 * 9 * 6 + 8) + 3 * 6 + (8 * 8 + 2 * 8) +4 * 4 * 5 +(3 + 8) + 4 + 6 * 8 * 5 +4 * (8 + 9 * 2 * (5 * 9) + (2 + 8)) * 5 + 8 +(3 * (6 * 4 + 9 + 8 * 5 * 3) * (7 + 4) + (7 * 2 + 4 * 7 + 5) + 7 * 4) + 9 + 2 * 5 * 8 +3 * 8 + 6 + 6 * 4 * 9 +4 * 5 * 2 * (2 * 5 * 4 + 5 * 4 * 2) +((3 * 9 * 9) + 4 + 7 * 4 * (8 + 2 * 4 + 3 + 3) + 8) * 8 * (6 * (5 * 8 + 9 + 9 + 3 * 8) * 7 * 5 * 2) +(5 * 3 + (6 * 6 + 3 + 7 * 6 * 9)) * 9 * 2 * 5 + 3 +9 + (7 * (7 + 9) + 3 * 2) +2 + 5 * ((3 + 4 + 5) * 6) * 9 + ((6 * 6) + 5) +5 + (5 + 2) + (3 + 8 + 4) + 6 * 4 + 8 +(6 + 5 + 7 + 3) * 5 + ((6 + 7 + 5 + 3) + (2 * 6 + 9 + 2 * 8) + 4) * ((7 * 7 + 8 + 8) + 4 * 7 * 8 * 2 + (4 + 5)) + (7 + (5 * 9 * 6 * 5) * 9 * (7 + 2) + 7 * (8 * 6 + 9)) +(9 * 8 * 5 + 8 + 9 + (6 * 9 + 4)) + (6 * 4 * 8 + 3 + 4 * 5) + 8 + 5 +5 * 2 * (4 + 5 * 6) + 5 + 9 + (9 * 9 + 2 + 3 + (3 + 2 * 4 * 6 * 3)) +3 + 2 + (7 * 9 + (4 + 8 * 2)) + 3 * ((7 + 9) * 9 + 8 * 8) +(5 * 7 * 4 + 3 * 2) + 9 +7 * (5 + (7 * 4 + 6 + 7)) + 2 + 3 +(4 + 4 * 7) * 2 * (7 + (8 + 8 * 8 + 2 + 7) * 2) +(6 + (4 * 2)) + 5 * 8 +6 + (5 + 2 * 7 + 4 * (8 * 7 + 3 + 3 + 9 * 9)) * 6 +4 * 9 * (9 * 8 * 4 + 2 + (5 * 6 + 7) * (7 + 5 * 7 * 4 + 8)) + 9 + 2 + (4 * 8) +((9 + 7 * 7 * 3 * 6) * (9 + 6 * 2 * 7 * 6 + 6) + 2 + 3 * (8 * 8 * 5) + 8) + 6 + 5 * 4 +(6 + (5 * 2) + 9 + 6) + 2 * 8 * 8 +8 * 2 * 5 * 8 * 4 + ((2 + 6 * 6 + 4 + 4) + 7 + 6 * 5 + 6 * 5) +4 * 5 * ((8 * 5 * 6) + 2 + (5 + 8 + 3 * 9 * 9) + 8 * 2) +2 * ((2 * 9 * 8 * 7) + (2 + 2 * 6 + 6) * 2) +9 + 3 +3 * (5 + 2 + 6 + 5 * 6 + (3 + 7 + 4 + 7 * 8 * 5)) * 9 + 7 + 7 +2 + (7 * 5 * (4 * 5 * 5)) + (7 * 7 * 3 * 3 * 7) +8 + (4 + (6 + 3 * 9 + 2 + 8) * 6 * 5) + 3 + (3 + 8 * 3 * 3 + (7 + 9 * 3) + 4) +((9 * 4 + 5 * 2 * 4) * 4 + 8 * (9 * 8 + 7 * 7) * 9) * 8 + 4 * 2 * 2 + 4 +3 * 6 + (4 * 7 + (4 + 8 + 7 + 7) * (9 * 4) + 4) + 3 * 7 + 7 +7 * (8 + 8 + 2 + 4 + 6) + 7 + (8 + 3) + 3 +(3 + (9 + 3 + 8 * 8 + 2 + 2)) + 2 + 9 * 2 + 5 + 4 +5 * 3 * 8 + 7 + (3 + 4 * 9 + 7 * 7) +3 * 2 * (2 + (3 * 5 + 3 * 3) * (9 + 6) + (5 + 5 + 5 * 4)) * 4 +(3 * 5 * 9 + 4) + 8 * (5 + 7 + 6 + 4) +2 * 9 +8 + 2 + 5 + ((8 + 3) * 4 + 6) * 4 * 6 +8 + (5 * 7 * 2 + (6 * 6 * 2 * 5) * 5 * 5) + (5 + 3 + (7 * 5) * 5) * (5 * 7 * 6 + 3 * 2 + 3) + 7 + 5 +2 + (5 * 8 + 9) * 7 * 7 + 8 +(6 + 6 + (6 * 7 * 6 + 4 + 2)) + 8 * 5 + 9 + 7 * 5 +6 + (3 * 9) + 9 +6 * (5 + 6 * 9 * 8 * 5 * 6) +6 * 4 * (4 * (7 + 4 * 9 + 4 * 3) * 4 + 5) + (4 + 6 * (5 + 4 * 9) * (8 + 7 * 8 + 9 * 2)) +4 + 7 +((5 + 4 * 3 * 7 + 2 * 3) * (8 + 5 * 4 + 3 + 6) + 7 + 9 * 2 * 9) * 7 + 6 + 7 + 7 +(5 * 9 + 2 * 6 * 4) + 8 + 7 * 3 * 2 +2 * (8 * (2 * 2 + 6)) * 3 +9 + (9 * 7 + 3 + 5 + 2 + 3) * 2 * 2 +(8 + 4 * (2 * 5 * 6) + 9) * 8 * 6 +7 * 2 * (6 + 4 + 3 + 9) * 7 + 4 +2 * 3 + 8 * ((5 + 9 + 6) * 5 * (7 * 4 * 5)) * 8 +3 + ((2 + 3 * 2 * 9 * 3 * 4) + 6 * 5 * 2 * 2) +7 * ((5 + 7 * 9 + 9 + 3 + 2) * 5 * 6 * 8 + 6 + (9 + 9 + 7 * 8 * 2 + 3)) * 3 * 4 * 6 +3 + 3 + (6 + 6 * 6 + 7 * 9 * 4) * 8 +3 + 4 * (4 + 5 + 8 * 4) * (3 + 7 * 6 * 7 + (9 + 4)) * (2 + 8 + 5) + 6 +5 * 9 + (4 * 6 + 7 * 5 + 8) + (2 + 4) * 4 +(6 * 2 * 7 * 8 * 9 + 7) * 9 +9 + (5 + 2 + 8 + (6 * 9 * 7 + 2)) + 9 +7 + (7 * 9 + 8 * 5 + 2 * 2) + 8 + 6 * 5 +(6 + 6 * 8) + (5 * 5 + 6 + (9 * 2 * 6 * 3) + 2 * 7) + 8 +(2 * (5 * 8 + 5 + 5) + 7) + 5 * 8 * 6 * 8 + 2 +(8 * (7 * 7 * 3 * 4 + 9 * 4) * (9 * 3 + 8) + 6) * 7 * 6 * 2 * 8 +9 * ((9 + 7 + 3 * 5 * 3 * 5) + 6 * 7 * 3) * (6 + 6 + 6 * 2 + 9 + 5) + 4 * 9 +4 * 3 * 8 + ((9 + 3 * 2) * 9 + 2 + 2) +3 + 6 * ((6 * 2) + 2 * 3 + 6 * 5) +7 * (2 * 5 * 2) * 5 +(8 + 2) + (6 + 9) * 6 +((2 * 3) * (8 * 7 * 4) * 4 + 8) * 9 * 9 + (7 * (4 * 2 + 2 * 7) + 4) * (9 + 3 * 6 + 6 + 8 + 7) +5 * 5 + (8 + 7 + 4 * 2) * 7 + 9 * 2 +5 + (2 * 7 * 3) * 9 * 9 +3 + (3 * (6 * 2)) + 6 + (3 + (7 * 7 * 6 * 3 + 4) * 9 + (9 + 9 * 5 * 2 + 9 * 4) * 6 * 6) + 9 * 6 +2 + 9 * (6 * 6 * 3 * 4) +8 * 6 + (3 * 9 * 9 * 4 * (8 * 2 * 2)) + 8 + 5 +(2 + (7 + 3 + 2 * 6 * 8)) + 4 * ((5 + 4 * 7 * 2) * 8 * 5 + (5 + 8 + 9 * 9)) + 8 + 6 * (8 + 7 * (7 + 3 * 4 * 7) * 4 + (9 * 8 + 3) + 3) +(4 * (8 * 8 * 6 * 2) * 7 + (8 + 3) + 7 + (6 * 4)) * 3 * 8 * 2 * 9 +3 + (4 * 3 + 3 * 2) * 7 * 3 +(4 + 2 + 8) * 2 * 6 + 8 + 9 +7 * (8 * (8 * 7 * 6 * 5) + 8 * 6 + 6) +(7 + (6 + 3 * 5) + 2 + 4 * (5 + 9 * 7 * 5 + 7) * (2 * 4 + 6 * 5 + 2 * 3)) + 9 * 7 +5 * (5 * 5 * 4 * 2) + 3 +(5 + 8 * 8) * (5 + 5 * 7) * 3 * 5 +8 + (7 + 6 * 3 * 4) + 5 * 4 * 3 + 8 +3 * 5 * ((4 + 2 + 5) * 8 * 3 * 4 + 5) + 4 + 9 + 4 +(9 * (7 + 2 + 6 + 4 + 4 * 2) * 8 + 6 * 8) + 3 + 9 * 3 +9 + 8 +6 + 6 * (7 + 9 + 7 + 3 + 4) + 6 + 7 +7 + (6 + 2 + 6 + 7) +6 + (9 * (6 + 2 + 6 * 9 * 2) * 7 * (9 + 6 * 7 * 3 + 5 + 2)) +3 * 7 + 2 * 9 +9 * 7 + 9 * (2 * (2 * 6 + 6 * 6) + 8 * 9 * 2) +((7 * 9 + 7 + 7) * 6 * 5) + 4 +2 * (7 + 4 + 3 * 5 * 6 + 3) * 5 * ((6 * 6 * 9 + 3 + 2 + 9) + 5 * 3 + 3 + 5 * 3) * 7 + (8 + 4) +(7 * 6 * 9 * 3 + 8 + 4) + 6 * 7 * 6 + 3 + 4 +2 + 6 * 7 * 5 + (7 * (2 * 3 + 4 + 6) + (3 * 3 + 7 * 4) * (3 + 8 + 7 + 6 + 4 + 4)) +(8 * 3 + (7 + 4 + 5 + 5)) + (3 + 3 + 7 * (9 + 2 * 9)) +8 * 4 + (9 + (7 * 3 * 9 + 4 * 7) + 6 + 9 + 5 + 6) +2 + 4 + 2 + 4 * 7 +((7 + 5 + 5 + 3) * 3) + (5 + 6 + (3 + 8) * 2 + 4) + (6 + 2 * (5 + 6 + 9 + 8 + 5) + (9 * 9) + 3 * 6) * 3 +(5 * 7) * 6 + (8 + 4) * 6 +(2 * 4 * (8 * 6) * 2) + 5 + 8 * 9 * 7 +((5 + 5) * 5) * 9 + (5 + 4) + 4 * 6 +5 * (8 + (4 * 5 + 7 + 5) + (8 + 4 + 6)) + 9 + 7 +2 * 8 + 7 + (3 + (8 + 8 * 5 * 5 * 8 * 5) + 9 + 9) + 7 + (7 * 8 + (3 + 5 + 8 * 7 * 8 * 8)) +(9 + 7 * (7 + 6 + 8 + 2 * 5 * 2)) * 9 +4 + (2 * 5) * (4 * (8 + 5 * 4) * 9 * 4 + 9) +4 + (8 + 8 + 8) + 3 * 2 + (2 + (5 * 6 * 7)) + 7 +((5 * 3 * 6 * 6 + 7) + 2 + 2 + 2 * 8 + (6 + 3 + 2 * 4 + 8)) + 4 + 3 * (4 + 6) * 9 * 3 +5 + 9 + 7 + 4 * ((2 + 5) * 4 + 9 * 9 + 4) +6 * 7 + 4 * 5 + (4 * 7 * 8 * (2 * 4 * 9 + 9 + 5) * 6) +6 * 9 + (3 * 9) * 8 + (4 * (8 * 3 * 2 * 2 + 3) * 4 * 8 * 7 * (4 + 5 + 7 * 3 + 4 * 3)) +8 + (4 + 2) * (8 * 8 + 9 + 5) +((6 * 8 + 3 * 2 * 6 * 9) + 7 + 8 + 4) * 4 +4 + (2 * 3 + 3 * 7) + 2 * (2 * 5 + 7 * 6) + 8 + 6 +8 + 7 + ((3 + 2 + 4 * 5 * 3 * 2) + (2 + 4) * 8 + 5 * (7 * 2 * 9) + 3) * 2 +8 + 6 + (7 + 6 * 7 * 8 + 4) +(7 * 9 + (2 + 6)) + 5 + 3 * 8 + 7 * 3 +(6 * 9 + 6 + 3 + 5 + 4) * 8 * 4 * ((8 * 4 + 7) + 2 + 9 + (3 + 4 + 8 + 6 * 2 + 7) + (3 + 2 + 7 + 5 * 7) + 2) +8 * 8 + 2 * (8 * (8 + 6 + 6 + 5 * 6)) + (2 + 6 * 3 * 5) +8 * 3 * 3 + (3 * (4 + 6 + 6 * 4 * 2) + 4 + (7 + 3 * 3 * 9) + 6) +5 + 7 + (3 * 8 + 8 + 2 + 4 + 9) +(3 * (5 * 3 + 2 * 8) + 8) * 7 + 5 + (8 * 5 + 3 * (6 * 9 * 5 + 9 * 6)) + 4 +6 + (6 * (3 * 2 * 4 * 7 + 4 + 5) * 4) * 5 + 8 + 3 + 5 +(8 * (2 + 8) + 9 + 7 + 8 * (3 * 6 + 7 * 6 + 5 + 7)) * (2 + 9 * (4 * 7 + 3 + 4 + 6 * 5)) * ((2 + 9 + 6 * 3 * 8) * 5 * 4) * 7 +5 * 7 + 2 + 7 * (5 * 8 * 5 * 4 * 2 + 3) + 8 +2 * 6 + 2 + 8 * 6 * 6 +4 * 4 * (9 * 8) +8 * (2 * 8) + 5 * 5 +2 + 4 * 3 * 8 +8 * (5 + (8 + 9 + 8) * 8) * ((3 + 9 + 8 + 2 + 7 * 2) * 8 * 5 + 8) * 7 + 2 +(2 * 3) + 3 +4 + 4 + 2 + 5 + ((9 + 2 * 2 + 6 + 6) * 4) +7 * 9 + (9 + 4 * (4 * 2 * 7 * 6 * 2 + 4)) +8 + (6 + 8) + 3 + 2 + 3 +(3 * 4) + 8 + 3 + (3 + 5 * 3 * (4 + 8 * 7 + 2) * (4 + 7) * 5) * 3 + 2 +3 + (6 * 3 + 2) + 6 * (6 + 4 * 8) + 7 +6 * 7 * 9 + 8 * 6 * (4 * 4 + 8 + 3 + 7) +8 * 9 + 9 + (7 + 5) + 8 * 6 +(4 * 3 + 2 * 7) * 3 * 4 * 6 * 2 + 5 +(8 * (4 + 9 * 5) * 5 * (4 * 9 + 8 + 6 * 7)) + 6 +6 + 8 * 9 * (9 + (4 * 6 + 2) + 8 + 8 + 8) +4 + 4 * ((3 + 4 + 5) * (3 * 6 + 2) * 4 + 4 + 9) + 4 + 7 +3 * 3 * 4 * (6 * 6 + 4 + 2 * (7 * 5 * 7)) * 3 * (4 + 4 * 3 * 4) +2 + (5 * 9 * 2 * 8 * 4 * 6) + 8 +6 + (6 * 2 * 9 * 4 + (5 + 8 * 7) + 4) + (5 + 9 * 5 * 7 + (5 * 9 + 6)) + 3 * 3 + 8 +2 + (4 + (9 * 6 + 2 * 6) * 2 + 7 * (4 * 4)) * 7 + 2 + 3 + 7 +(4 + 4 + 8 * 9 * 2) * (9 + 5 + (6 + 4) * 4 + (6 + 3 + 7 * 9 * 3) * 7) +8 * 9 * (7 + (7 * 4 + 7 * 2 + 7)) * 9 +(9 * 6 * 8 * 6) + (3 * 4 * 5 * 8) * 6 + (9 * 5 + 6 + (3 * 2) + (5 + 8 * 5 + 6 * 9 + 5)) * 7 +7 + 3 * 2 + (5 + (5 + 8 * 9 * 3 + 3) * 9 * 9) + 2 +7 + 7 * 4 * (8 * (9 * 8 * 9 * 8 + 3) + 6 * (2 + 7 * 8 + 8) * 3 * 2) +8 + ((4 + 2 * 4 * 7 * 2) + 2 * 9 + 9 + 7) * 9 + 9 * 3 +(8 + (5 + 5 + 2) * 8 + (8 + 6 + 4 * 7 * 2)) + 2 + 9 +(6 * 3 + (9 + 6) + 8 + 3) * 5 + 6 * 7 + (5 * 9) + 9 +2 + ((3 * 2 + 6) * (6 * 5) + 6) + 6 + 4 +6 + 6 * 7 * (3 * 8 + 8) + 2 +((8 * 9) + 3 * 7 * 4) + (3 * 7 * 5 * 6) +(3 * (8 + 6 + 3 * 9 * 3 * 4) * 9) + 2 +((7 * 9 + 7 * 2) * 2 * 3 + 6) * 5 * 4 * 9 + 5 +5 + (5 + 6 + 7 + 2 + 6 + 6) * 9 * (5 + 4 + 3) * 6 * 9 +(9 * 9 + 8 * 5 + 4 * 5) + 9 * (3 + 3 + 8) + 2 +6 + 5 * (5 * 9 + (6 + 4 * 5 + 2 + 7 * 6) + 5 + (9 * 9)) * 4 * 5 +(2 + 2 * 7 + 6 + (5 + 3)) * 7 * 4 +((4 * 3) * 8 * 2 * 7 * 3 * 2) * 4 * 2 + 8 * (5 + 6 + (9 * 6 + 2 * 4) + 4 + 7 + 9) * 8 +3 + 4 + 7 + (2 * 7 + (2 + 9 + 3 + 6) + (2 * 2 + 4 + 3 + 2 * 5) + (3 * 8 + 4 + 4 * 9 * 4)) * 5 +8 * 6 * 2 * ((6 * 7 * 4) + 6 * 9) +5 * 5 * 6 * (7 + (4 + 2 * 6 * 6)) + 9 + 7 +4 + (5 + (2 * 3) * 8 * 3 + 8 + 5) +(5 * 9 * (3 * 6 * 9 * 4) + 4) * 9 + 5 +(5 * (5 + 3 + 8 + 9) * 3) + 6 +(7 + 9 + 3 + (7 + 3 + 5 * 2) + 9 * 5) + 8 + 8 + (3 + 8 * 9 * 9 + (7 * 7 + 2 + 5 * 6 + 4) * 7) +((9 * 9 * 3 * 4 + 9) * 5) * 7 +4 + 3 + 7 * 6 * (6 + 2 * 6 + 9) * 6 +8 * 2 + 7 + (9 + (6 + 7 * 8 + 5 + 2) * 3 + 4 + (8 * 4)) * 2 + 6 +3 + 5 * 6 * 2 + (9 + 3) +(7 * 2 + 4 * 3 + 2 * (6 + 4 * 8 * 2 * 9 + 9)) * 7 +(8 + 9) * 8 + 7 + 5 +2 * 6 * 7 + (5 * 9) * 5 +(5 + (4 + 7 * 9 * 3) * 8 + 3 * 2 + 3) + 8 * 9 + (4 + 3 * (2 + 4 + 4) + (3 * 3 + 8 * 6) + 5 * 8) * 4 +9 * 8 + (6 * 5) * (6 + 7) +(3 * (2 * 4 + 9 * 5) + 2 * 5) * ((5 + 9) * 2 + 2) +2 * (2 + (2 * 9 + 7 * 6 + 8)) +(5 + 2 + 6 + 2 + 6) + (2 * 6 + 4 * 3 + 9 * 4) * (2 + 9 * 7 + 6) + (5 + 5) * (2 + 5 + 7) * 6 +5 + 4 + 3 + 2 + (3 + 4 + 3) +((6 * 9 + 7 + 7) * 9 * 7 + 7 * 6 + 6) * 2 * 9 + ((5 * 6) * 3 * 3 * 8) +5 * 8 + (7 + 2 + 6) * (8 + 2 + 8 + 4 + 9) + (5 * 6 * 6 * 3) + 8 +6 + (7 * 4 + 4 * 7 + 3 * 7) + 9 + 5 * 7 * 5 +3 + 2 + 8 + (4 + 9 * 4 * 2 + (9 * 9 + 9 + 5) * 5) + 6 +3 * 9 * 4 * (5 * 4 * (8 + 3)) diff --git a/2020/day19/day19.rkt b/2020/day19/day19.rkt new file mode 100644 index 0000000..62c8081 --- /dev/null +++ b/2020/day19/day19.rkt @@ -0,0 +1,64 @@ +#lang racket + +(module+ test + (require rackunit)) + +(define (read-input filename) + (define file-str (string-split (file->string filename) "\n\n")) + (define rules (for/hash ([str (string-split (car file-str) "\n")]) + (define rule (string-split str ": ")) + (values (string->number (car rule)) + (string-split (cadr rule))))) + (define messages (string-split (cadr file-str) "\n")) + (values rules messages)) + +(define (rule->str rules idx) + (match (hash-ref rules idx) + [(list (regexp #rx"\"(.)\"" (list _ x))) x] + [(list x ... "|" y ...) + (string-append "(?:" + (apply string-append + (map (λ (s) (rule->str rules (string->number s))) x)) + "|" + (apply string-append + (map (λ (s) (rule->str rules (string->number s))) y)) + ")")] + [(list x ...) (apply string-append + (map (λ (s) (rule->str rules (string->number s))) x))])) + +(define (part1 filename) + (define-values (rules messages) (read-input filename)) + (define rule0 (regexp (rule->str rules 0))) + (length (for/list ([msg (in-list messages)] + #:when (regexp-match-exact? rule0 msg)) + msg))) + +(module+ test + (check-equal? (part1 "test") 2)) + +(module+ main + (displayln (part1 "input"))) + +(define (part2 filename) + (define-values (rules messages) (read-input filename)) + ;; Rule 0 is just "8 11", rule 8 is just "(rule42)+", and rule 11 + ;; matches "(rule42)+(rule31)+" with the same repetition. Thus we + ;; only need to check that rule 42 matches more times than rule 31. + (define rule42 (rule->str rules 42)) + (define rule31 (rule->str rules 31)) + (define rule0 (regexp (string-append "(" rule42 ")+(" rule31 ")+"))) + (for/sum ([msg (in-list messages)] + #:when (regexp-match-exact? rule0 msg)) + (define n31 (length + (regexp-match* rule31 + (cadr (regexp-split (regexp (string-append "^(" rule42 ")+")) msg))))) + (define n42 (length + (regexp-match* rule42 + (car (regexp-split (regexp (string-append "(" rule31 ")+$")) msg))))) + (if (> n42 n31) 1 0))) + +(module+ test + (check-equal? (part2 "test2") 12)) + +(module+ main + (displayln (part2 "input"))) diff --git a/2020/day19/input b/2020/day19/input new file mode 100644 index 0000000..f2bdc2b --- /dev/null +++ b/2020/day19/input @@ -0,0 +1,587 @@ +105: 12 | 69 +42: 69 48 | 12 41 +66: 69 69 | 12 12 +91: 69 38 | 12 26 +75: 105 105 +39: 69 119 | 12 124 +88: 12 87 | 69 133 +7: 69 55 | 12 84 +55: 12 12 +31: 116 69 | 125 12 +100: 96 69 | 87 12 +40: 49 12 | 66 69 +58: 69 71 | 12 57 +122: 12 34 | 69 17 +65: 12 98 | 69 124 +2: 69 49 | 12 84 +111: 20 69 | 54 12 +64: 12 51 | 69 108 +9: 98 69 | 82 12 +38: 55 69 | 84 12 +71: 59 12 | 100 69 +120: 86 12 | 30 69 +6: 12 87 | 69 124 +63: 12 124 | 69 49 +129: 12 52 | 69 103 +0: 8 11 +69: "a" +35: 111 12 | 58 69 +32: 69 3 | 12 46 +78: 69 37 | 12 87 +93: 69 82 | 12 49 +99: 2 12 | 61 69 +16: 12 133 | 69 98 +37: 12 69 +115: 12 119 | 69 66 +21: 117 69 | 124 12 +119: 69 69 | 12 69 +8: 42 +84: 69 105 | 12 12 +83: 69 49 | 12 117 +130: 12 56 | 69 21 +132: 66 69 | 98 12 +124: 69 12 +24: 12 113 | 69 123 +53: 12 93 | 69 83 +117: 69 12 | 12 105 +18: 55 12 | 75 69 +68: 133 69 +17: 12 106 | 69 127 +56: 12 55 | 69 75 +112: 124 12 | 66 69 +57: 12 2 | 69 59 +30: 87 12 | 119 69 +12: "b" +70: 96 69 | 101 12 +3: 75 12 | 119 69 +73: 69 29 | 12 130 +79: 12 85 | 69 81 +92: 69 55 | 12 87 +26: 12 124 | 69 96 +41: 12 35 | 69 89 +47: 87 12 | 124 69 +114: 69 47 | 12 16 +28: 91 12 | 45 69 +11: 42 31 +22: 133 69 | 55 12 +72: 39 12 | 70 69 +118: 75 105 +52: 69 134 | 12 80 +131: 12 66 | 69 37 +13: 76 12 | 27 69 +4: 69 75 | 12 87 +27: 12 63 | 69 7 +113: 69 114 | 12 79 +80: 12 5 | 69 118 +125: 12 126 | 69 129 +51: 112 12 | 15 69 +33: 69 131 | 12 59 +101: 12 69 | 69 105 +10: 69 23 | 12 25 +77: 69 33 | 12 104 +20: 69 102 | 12 18 +25: 59 12 | 60 69 +126: 12 13 | 69 64 +116: 69 122 | 12 19 +97: 69 117 | 12 55 +87: 12 69 | 69 12 +109: 98 69 | 75 12 +96: 12 12 | 105 69 +15: 12 101 | 69 119 +107: 69 96 | 12 87 +14: 12 10 | 69 1 +108: 12 59 | 69 94 +123: 95 69 | 32 12 +46: 87 69 | 98 12 +86: 82 12 | 124 69 +61: 117 12 | 49 69 +121: 117 12 | 98 69 +74: 96 12 | 124 69 +59: 124 12 | 84 69 +102: 82 12 | 84 69 +135: 62 69 | 38 12 +34: 99 12 | 67 69 +95: 74 12 | 65 69 +5: 37 69 | 96 12 +81: 49 12 | 98 69 +98: 69 69 | 69 12 +89: 69 73 | 12 44 +48: 12 14 | 69 24 +110: 69 133 | 12 37 +67: 121 12 | 78 69 +82: 69 69 +62: 84 69 +134: 132 12 | 110 69 +43: 88 12 | 97 69 +50: 84 12 | 37 69 +94: 101 12 | 98 69 +103: 12 120 | 69 90 +104: 6 69 | 40 12 +60: 87 69 | 124 12 +49: 12 12 | 69 12 +29: 22 12 | 4 69 +76: 12 63 | 69 109 +133: 12 69 | 12 12 +90: 50 69 | 36 12 +19: 77 69 | 28 12 +106: 69 107 | 12 88 +45: 92 69 | 110 12 +1: 12 53 | 69 72 +54: 12 18 | 69 68 +23: 9 69 +128: 49 12 | 84 69 +85: 66 69 | 75 12 +44: 69 43 | 12 135 +127: 115 12 | 128 69 +36: 55 69 | 55 12 + +babababbabaababbaaabababbaabaaabaaabbbbb +abaabbaaaaababbbabbbaaaa +bbbbbabbbbbabbaabaabaabbaabaabaa +ababbbbbabbaabaabbabbaaabbbbabbbaabaaaababaaaabb +aabaaaabbabababaabbababa +abbbababbbaabababbaababaabbabbbbabaabaab +bbabaaaabbbbaabaabbbaabb +bbbaaaabaaababaaaaaaaaabbbaababababbbbaabbbabbba +abbbaaabbbbaabbaabbbaaabaabbbabbabaabbaaabaaabaa +aaaaabbbaababbbaabaabbab +ababbbbbabbbaaabbabaaaaa +aabbbaabbbbbabbabbabbabbbaaabbaabbababba +bbaaaababbbbbabbbababaaa +abbbabbabbabaabbabaaababbbbbabab +babbbbbbbbbaabaaaabbbbaa +bbbaabaabbaabbbaabbbabba +ababaabbbbbbaaabaaabbaaa +baaabbabbaabaabaaaabbbbabbbbaaaabbbabbbb +aaabababbbbbbababbbaaabbaabbbbaaabbbaaaa +bbbbbbabbbabbababaaabaabbbaaababaaabaaba +babaabbbabaaababbbaaabbb +abbbabaababbaaaaabaabbab +aaaaabaaabbbbabaabbbbbba +bababbbaabaabababbabbbaa +bbabbabaabaaaaaaabbaaabaabaabaabbbbaabbbbababaabbbbbaaaaababbabb +abaababaabaaaaabaaaababaaaaababaabbbaaaa +bbbabaabbaababaabaaababb +aaabababaaababbbbbabaaaaaaaaabbabbbaaabaabbbbaab +aaabaabbabbaabaabbabbaaabbaabbaaabbabbbbbbabbbabbabbaabaabaaabaa +abababbabbabbabbabbbbbaa +abbbababbabaababbbbabbba +ababaabbbbbaaabbbababbbaaaaabbbbbaaabaaabbbaaaba +aaababbaababbbaabbababbb +abaaaabaabaaabbabbaaaabababbabbbabbbaaba +bbabbaaaababababbaaaabaa +abbaabaaaaaabbbabababababbbaabbbbababaabbbbbabaaaaaabbabbbaaaabbaabaaaba +babbbbabbbbbbbbaaaaaaaaa +bbbbbabaaabbbabbaaaaaaba +baaaabbaaababaaaabababaa +bbaaaabbbabbababbbababbaaabbabba +abbabaabbbaaaaaabbababbbabaabbaabababaababaabbaa +bbbbbababbbbaaabbaaaaaaababbabbbaabaabab +babbabbbbabaaababbbabaaa +bbaaaaabaaabbaababbbaaabbbaabbba +babaabbbbbaaaaabbaabaaab +babbbbbbabbbabaaabaaaaabbbaaabbb +bbbaaabababbaabbbbbbbaababbabbaaabbabbabbbabababababbbbababbababababaabb +bbbaabbababbbbbbbaaaaaaa +aaabababbaabaabbbaabbababbbbbbbaabababbbaaabbaab +baaaaabababbabbbaaababbbbbaabaabbabbbabbbbababba +abaabaaaaabaaabbbabaaabb +bbbaaaaaaaaaabbbbababaaa +bbbababbababbbabbbababab +abbbabbaaababbbbaabbbbbbbaabababaaabbbab +abaabbaabaabbabaababbaaababbbbaababbabaaaabababa +abababbbababbaaabaaabbba +baabbababaabbaaaababaaba +bbbbbababbbaaaaabababaaa +babbaabbbbbababbaaabbaba +baabbbbabaabababbbbabbaaaabaabaaaaabaabaabababbabbaababababaaaaabbababaababbbbbbaabbbbbb +aaaabaababbbbbabaabaabaa +bbabbababbbbbaabaaabbbaa +bbaabbaaabaabbaabaababbb +aabaaabaaaabbaabbbbbbbabaabbbbbbbbbbbabaabbbabaaabbaabbb +abbaaabaabaababbabbbaaabbbaaabba +babbbbaaabbaabaabbbababbbababbaa +bbabaaaabaaaaaaaaabaaaab +abaabbababbabababaabbbabaabaaaababbbbbbb +abbbbbabbaaaaaaababbbaba +baabbbbbbbbabbbbbbabbbaa +bbababaaaabbbbbbabbaabab +babbbbbbaaaabaabaaaabaabaabbbbaaaaaaabab +aabbbaabbbaabbabbbababbaaabbbabbbbbbababbaabaabaabbaaaaaaabaaabbabaaaabaabbbababbbbbaaba +bababbabbbabaabbbaaaabab +abaabababaaabbaaabbbaaaa +bbababbababbababbbabaabaaabbaaab +bbbaabbaaaabababbbbaabab +bbbbbabaaaabbbabbaaabababbbbaaaabbabaabaaabababbaaabbaaaabbaabbbaaaaabbababbaaabaabbabaaabbbbabb +abababbaaabaabababaaabbb +aaaaaaabbabbabbbaaaabaababababababbabaabbbaaabba +bbbaaaabaaaababbabaabbab +abaabbaabbbbbbababaabbaabbbabaaaabaabbba +bbbaabbaabbaaaaabaaaabaababbaaba +bbbaabaabaaabaababaabaab +babbabaababbbbabababaaaa +aabbbaababababbabbabaabbbbbbabab +bbbbbbbbabbaabbbbbaababaaaabbaaaaabbaaaabaaabbaabaabbabbabaabbbabbbabaaa +abbaabbbbabbabbaaabaaaaabaaaabbabaaabbaaabbaababaaaaaaabbbaababbbbbaaaba +aaababababbaabaabbbaaabbbbaaabba +aabbbbbbaabbbbabbbbaabababaaaabbabaaaabbbaabbababaabbbaa +abbbabbabbabaaaabababaab +babaababbbababaabaabaabbabababaabaaabbba +aabaaabababbbbbbbababbbb +abbaaaababaabaabbbaaabbaabbabaabaabbbabbabaaaaabbbbaabbb +babbaaaababaabbababbbabb +baaaabaaaaaaabbabaabbabbbaabbababbbaabaabbbbbaaabbbabbbb +bbaaaababbbaaaaaaababaabbaabaaababbabaab +aabaaabbaaababaaaaaaaabbaababbbabaaababaabbabbabbaabbbba +aaabaabababbaaaabbaaaaaaaaaaaabbaabaabbbaabaaaababbabbbaaabbbbba +bbbababbbaabbbaaabababbbbabbbaaababbbbaa +bbaabaababaaabababaabbbb +bbaabbbaabbbbaaabbaabbbb +ababababbaaabbaaabbaabbb +abaaabbaabaaabbaabbbababbbbababbabbabbababbbbaabababaababbaabaaaabbbbaba +abbaabbaabbababbabbaabbbaabbaaabaabaaabaaabaabbbbbbaabbabababbab +abbaabaaaabbaaaababbbbabaabbbabaabababaa +baababbababaababbbaaabaa +baaabbbbbaaaabbaabaabaaaabbbbbabaababaabaabaabbb +babaabbbbbabaabbabaaaaabaaabababbbbbbbaaaaabbababbaabbab +bbababaabbaabbbabaaaabbb +ababaabbbaaababaaababbaa +aabababaabaabbbbabbabbbaabaabbbb +baabbaaaaababaabbabbbbba +bbbbbbbbbaababaabbabbbaa +ababbbabbbbbbaaaabaababb +bbabbabbababababaabababa +bbbbbbbbbaaaabbbabbaaababaabaaaaaaabbbaabbbaaabbabbbbabbbaabababbbabbbbb +bbaababaaabbbbbabaaababb +aabbabbbaabbbabbaaabaaba +baabbaaaaaaaabbaabbaabab +abbbabbabaababbaabaabbbb +baaaaaaababbabbbbbabbbaa +aabbaabbbaaabbbbbbbaabaabbabbababbaabaababbaababbbababba +bbbbbbbaaaaaababbbababab +aabbbbabababbaaaaaabbbab +aaaaaaabbabbaaabbbabbbaaababbbba +aabaaababaaabaababbabbabaaaabbabbbabaaba +bbbaaaabaaaaaaabababbaaababaaaaa +aaaaaaababaabaaababbbbba +ababbbabbaabbabbbabbbbba +babbbbabbbaaabbbbaabababbaaaabab +abbbbaaaabaaaaabaababbaa +abbaaaaabbaabbabbbabbbbabbbabaaaabbbbaaaabbabbbababababaababbbbb +aaabaabbaaaababababbabab +aabaaaabaabbabbaabababaabbbbabaa +aaabaabbbabbaabbaabababa +abbbaaabbbbaaaabaaabbbab +abaaaaabaaaaabbaabbbaabb +baababbabbbaaaaaaabaaabbaababbaababbbaaabbaaabba +bababbbaaaaabbbbaabbaabbbbbababaabababaaababaaaa +baaabbabbababbabaabaaaab +bbbbaaaaaaaaaaabaaabaaabbaaaabbabaaabaabaabbbaaaabbabbabbabaaabbaabaabaaabaaabbb +aaaaababbbaaababbabbabbabbaabbbbaaaabaaabbaababbaaaabaaa +bbbabbbbaabbbbbabababbabbabbaaabbbaaabababbaabaabaabaaaababbbbabbbaaabbabbbaaaaaababbaab +abababbababbabbbabaaabbaabaabbababbaabbb +aabbbbababbbabbbbabbbabb +bbabbaabbbbaaaabaaaabaabaabaaaaa +aaaaabbaababbaaabbbaabba +abbaabaaaaaaabaababbabab +aaaababaaabbbabbbaabaaabaaabbbab +aabbabbbaaaababbaabababa +aaabababbaaaaaaababbabaaaabaaaab +aabaabbabbbbbaaaababbabbabbbbaaababbbababbabbabbabababbaaaabaaababaabaababaababbbaaaabaaaabaabba +abaaaaaabbbaabbaabbbbbbbbabbbbbabbabaaabaaabbbbaabaabbbabbbbabababbbbaab +aabaabababbbabababbbbbaa +bbabbababbbbbaababababbaaaaabbaa +babaabbabaaaabaaaabaaabb +abaababaabaaaaaababbbbbbbabbbababbabaaab +bbaaababaaababaaababbbabbbaabbbaabaabaababbabaab +abbaabaaaaabaaaaaaaaabba +bababbbaabababbbbaaabbaababaaaaababbaaba +aaaabaabaaaaabbaabbbbabb +ababaabbbabbaaaabbabbbab +babaabababbaaabaababbaab +aaabababababbbbbbbaabbaaababbbbabaabbbba +aaaaaaababaaaababbabaaba +bbbbbabaaaaababbabaabbaabbbbaabbbbabaabbabaabbbbaaabbbabbbbabababaaaabbb +aaabaabaaabababbbbbbbbaa +bbbbaababbabaabbbaaabbabababababbbabbaababaabbbb +baabbabbabaababbbaabbabbaaaababbabbbbbbb +baabaababaaabbabaaabbabb +bbbbbaabaabbaabbaababbbabababbaa +bbbabbaaababaabbaabaababaaabbabb +bbbaaabbaabbabbaabbbaaaa +abbbbbabbbabaaabbaaaabababbbaabb +aabbbaaabbbababbabaababaaababbbaababbaaabbbaaaaaabbabbbb +aabaaaabbbbbbbbaabbabbbbbbabaabbbabbbaabbbaabbbabbbabbbaabbaaaaababbbabbbaabbbba +aabaaababaaaaaaaaaabbaba +babaabaabbbbbababbbabbbb +bbabbbabbaaaababaabbbaababbaabaaaaabbbaabbbbaaabbbabaabaaaabbbbbbbaaabaabbbaaabbabbababbbaaaabbb +aaabbaabbbbaabbaababaaabaaabbaba +aaaabbbbaaabbbbaaabbbaababbaabaabaabbabbbbbbaaaababbbaaabbbbbabaaabaabbaabbabbaaaaaabaaa +bbbbaababbbbaababaaaabab +ababababbbbbbababbbbbbbbabbbbbba +bbbababbbbaabbaaababbaba +baabbbbbbbabbaaabaabbbabbbbabbaaaabbbbaaaaabbaabaaaaabaaababbbbabbbbaaababaaaaaa +abaabaaaabaababbbbbabaaa +bbbaabaabbbbabbababbaaba +baabaaabbbaaaaaaaaaabbbaababaaaaabbabababbbaaabaabbaaaaabaababbaaabbabaaabaaabbbabbaabbb +bbaabaababababbaabbababa +bbabaabbaabbbaabbaaababb +abababbbbbaabababababbbaabbababa +aaaaaaabbaaaaaaaaabaaaaa +aabbbbababbbaaabaaababbaababaabbaabaabbb +aabbaababbabbaabbababbbb +bababbbabbaabbbabbbbaaabaabbbbababaaabbb +aaabbaababaaaababbbbabbbbbbababa +aaaabaababaaabababaaababaaabaaab +aaaababaabbbabaaaabaabababbbbaaabbabbaaaaabbbbbabbaaaabb +aabbaababbbbbabaabaaabbb +bbbabaabbaaaaaaaabababaa +bbbbabbababbabbbbbaabbaabaababbabbbaabab +aaaaabbabaabbbbbabaaaaaaaaaabbababbababb +bbabbababaaabaabbaababbb +ababaabbbabbbbabbbaabbab +babaaabababbaabbbaabbaabbbbaaaba +abaabaaababaabbabbbabbbb +bababbbaababbbaaaabbaaaabbabbbababbaaaaabbbbaababaabbbaa +aaaabaababbbbbabbaaaabab +abbababbbbabbbaaabbabbab +abbababbaabbbbaabbbbaabbabaaabababbabbaaabbbaaaabbabaabbbbbaaaba +aabbbbbabaaabbbbaabaaaaa +bbbbabbabaabbabaababaaba +baaabbbbbbaababaaaaaaaaaaabaabbaaaaabbabaaababab +ababaabbaabbaabbbabbbbab +bbbaaaaaabbbababbabbbbabaaababbabaabbbbaabbabbabaaabbbbbaaabbaaaaabbabaaabaabaaa +aaabbbabaaabaababbbbaabaabaaaabbaaaaabaaababbbbababaabaa +aaabaabbaaaabababaaaabab +bbabaaaaaaabbbbabbabbaabaaaaaabbbbbbbbaa +abaaaabaabbaaaaaaaaababbbbbaabbaaabaabba +bbaabbbababbbbababbbaaba +aaabbaabaabbaaaabbbbbaaabbabbababbbbbaab +abbbabbbbbbbbbabaaaaabbaaabaaaababbbaaba +bbbaaabaaaabaababbbabaababbbaaabbaabbaabbbbbbaaabbababab +aaabbaabbbabbabbababbbaa +abaaabbaabaaaaabbabaaaab +baabbbbbbabaababbaabaaaa +baabbaabababbbababbabbab +bbbbaabbabbbabaaaaaababbabaaababbabbabaabbbbababbabbbabaabbabaaa +bbaabaabbbbaaaababababbbaabaabba +aaababbbbbbaabaabababaaa +babababbbbbbabaabaabbaababaaabbabbbbabbbbaaaabbb +baabbabbaaaaabbabbbabaaa +abbaaaaabbababaabaaaaabb +bbabaabbbaaabaaaaabbbbabbbaabbbaaaabaaabaabbabab +abababbababbbbaaabbaabba +aabbbbabbbbbbaababbbababbaabbbbbabaababaaabaaaab +bbbaaabbbaabbabbabababbababbaaaabbbbbaabaaabbbbabaabbbabaabaabbbbbbababaababbbaa +babababbaaababaabaabbbbbbaabbaabbbaabbbb +baaabbababaabbaaabbbbbaa +aabbbbbabbaabaabaaabaaaaaaabbbaa +bbaabaabbbababbbabaabaab +aababaabaabaaabbaaababbbbbbabbbbaabaabba +bbbaaabbbabbbbabaabbbaaaabaababaabbbbbaa +bababbababababbaaaaaaaba +aabbbaabbbabbaaababbbbabbabbbbbbbabbbaaa +bbbaaaaaaaabaaaabaaababb +bbaaababbbbbbabaabbbbaba +baaabbbbbbbabbaaabbabbaa +abaababbabaaaaaaaaabaaaabaaaaabaaaaabbabbbbababa +baabaaabbbbbababaaabbbabbbaaaaab +aaababaababbbbaaabaababa +aababaabaaaaaaaaabbababaaaababbbbbbbbabb +baaabababbbabaababbbbbbb +babababbaabbbbabbabaaabb +bababbbabababbbabaabbbab +baaabbaabbbbbbabbaabbbab +ababbbbbbabbaaaabbbbabaa +baabbbbabbbbbbaabababbabaababababababbaaababbaaaabbbabbabbabbaaabbbababa +babaabbabbabbaaabbabbabbbabbababbbbbbbaa +aaaababababaaabaaabaaaabaababaaabbaabbbabbbabbaaaaaabbbbbbbabbabbbabaabaaaababbbabababaaaabaabaa +abbbbaaabbbbbababaaaabbabaaabaabbabbbaab +aaaaaabbbbaaaaaabaaaaabb +aaaaabbabbaabbbbaabbbbaabbabaabbaabababbaaaaabbbbbaaaaaabbbbaabbabbabbababbaabaa +babababbabababbbaaabbaba +bbabbaabbbbbbaaabbaabbbaababbaab +bbaabbaaaabbbbbbaabbaabbbabbbaaa +abbaabaaabaaababbbaaabba +abaaaaaababaabaaababbabb +baaabaabbbbabbaabaabaaab +babbabbbaaaaaaabbbbaaaba +aaabaabbbaaababaaabaaabaaabbabbababaaaab +bbbaaaabbbbaabbbbaabbabaababbbbaaaaaabbabbaabbbabbbbabab +abaaabbaabbbbbababbabaaa +aaababaabbbaabbaaaaaabaaabbabbba +ababbaaabbabbaaabaabaabbaaabaaaaabbaabba +ababbbbbbbaabaabaaabaabbabbaababbbbaabbb +babbbbbbaababbbbbabbaaba +bbbaaaabbabababbabababbb +babbbbaabababbbaabababbababaabaabaaaabbbbbaaaabbaabbabab +abbbbababbbbbbbabbbbaaababbbbababbbbabbaaabbabbbbaababbabbabababbbabbabbabaaabbabbbbbaaa +abbbabbaaaababababaabbaabbaababaabbaaabbabbaabbb +aaababaaaaabbaabbbaaababbaabbbbbbbaabaaababaaaab +aabbaabbabbbbaaababaaaaa +bbbaabbaabababbababbabbbbaaaaabbbbaaaabb +aabbaaababaaabaaabaabbbbaaabbbab +baaaabbabbaabababbaaabba +aabbbaaaaababbbbbaaabaaa +aababaababbaabaabbababaabbababbaaabbabba +bbaabbaaababbaaababababa +abaababbbabbabaaababaaaa +aaaaabaaababbbabbbbbbaab +bbbababbbbbbbbbabbabbbab +bababbabbababbbaababbbbbaabbaaab +aaaaaabbaaaabaabaabaabba +babaabbabbaabababbbaabaaaaabbabb +bbbaaabaabbabababbbaaaba +aabbbbbbaabbbabbbbaaaaabbabbbaabababbaba +abbbabbaabaabaabaaabaaaa +abaabaaaaaabbbbaaaababaaaababbbabbaabaabababbaababbabbbbbbabaaba +bbabbabbababbaaaabaabbbb +aabbbababbbaaaaabbbabbaaaaabaaabaaabaaabbbaababbbaaabbaabbbbabaaaabbaaabbaaaababbaabbbbb +ababaaabbababbabbabaaaaa +abaaaaaaabbaabbbaabbaababbbbbbab +aaababbabaabbbbbbbbaaabbbabbbaab +aabbaabbbaaabbababaabababbaaabbbbbbaabab +bbaaaaaabbbbbabaaabaaaaa +abababbbaaaaabaabababaab +abaaabbaaabbbbabaaaabbab +abbabbaabbabbbbabaaabbabaaabaaababaaaaabaaaabababbabbaba +bbbabbaaabaaabbaabbbabbababbaabb +babbbabaababbabaaabababbbbabaaaabbbaababbaaababb +aabaaabaaabbbaaaababababaaaabbab +bbbaaaabbababbbaabbabaab +aaabababaabaaabbbaabbbba +baababaabaaabaabbaabbabaababaaaabbbbabab +aabbbabbaabbbaaaaabbbbbababaaabababbbaaa +abaaabababaaaabaaaabbaba +aaaababbbaaaaaaaabaaaaaaaababbaaabbaaaab +bbabaabbababbaababababaaabbbbabb +ababaabbaaaaabbbbbaaabba +ababaaabbaaabbaababbbbbbabbaabba +bbbbbabbabbabbbabbabaababbbbabbabbbabababbaababbaabaaaaaabababaababababb +abaaabbaabbaaaaaababaaaa +baabaabbbabaabaabbbaabbabaabbbaabbaababbaaabaaab +baaaabbaababbbbaababbaba +aabaaabaabaaabbaaaabbbbaaabbbbaa +baaababaaaabaaaababaaaab +bbaababbabaabaabbbaabaabbbbaaabbabbabbbbbabbaabbbbbaaaababbbaabb +bbbababbbbbaaabbbabbaaaababbbbbbaaabbbabaabbabaaaaabaaba +bbabaabbbabaabbbaabbaababbbaabbbbbaaaabb +abaabaaabbaabaababaabbbb +abaaabaaaabbabbbbbabababbaabababbbbababbaababbbbaaaaaaaaaaabaaabbbaaaaababbababb +bbbaabbabbbaabbbbabbabab +bbbaaaaaaabbbabbaaaabbaa +aaaabbbbababaaabbbbbbaabbabaabbabbaaabaaababaaaaaaaaaaaa +bbaaababbaabaabbbaaabaabaabbbbaaababbaab +aabbbaaabaaabbaabababbba +bbaaababaaaababbbaaabaabbbbababa +bbbaaaaabbbbbbabaabbabbbabbabbbb +baaababaaaabababaaaabaaabaabbabbababbbabaaaababbaabaabbbaaababbbbbbaabaabbaababababbbbbb +bbbbbabbaaaaabbaabbaaaaaabbbabaabbbbbbaa +baaaabbabbabbaabbaabaaaa +abbaaaaabbbbbbbabaaaabbaabaaaabb +abbaabaabbaaabbaabbaaaabbaaaaabaaababbbbbbbabbbaaaabbbabbbbabaaababbabaaaabaabbbbbbababb +baabaaaababaaaabbabbbabb +baababbababaabbabbbabaaa +bbaabbbaaaaaabaaabaaaaaabbbaaaaaabaababbababaaaaaaaabbabbababbaa +bbbabbaaaabbbbababaaaaaaabaaaaaaabababbbbbbababa +bbaabababbbaaaabaabbbbbabaabaabaabbbbabbabaaaabb +abababababaaaaaababbbbaaaabbbbbbaababbbaaabaabbbaababbaaabababaa +abaabbaababbaaaababbbaab +abbbbaaaabababbabbabbaabababbaaabbaaabba +bbaaaaabbabbabaabbabbaaaaabbabababbaaaabababbbbabbaaabbbbabababa +bbbaabaabababbabaabbaaaababaaaabaabaaabaabbbaabbaababbababbbaaabbbaaaaba +aaabbaabbaaabbbbbaabaabaaabbbaaabbaabbaabaaaaaaaabbaabba +baaabbbbaabbaabaaaabbaaa +bbabaaaabaabbababbbbbbbaaabbbaaaaabaabbbbabbbabb +abbaaabaaababaabbabbbaba +abbbaaabbaabbababbbbabab +babaabaaabababababbaabba +bbabaaaabaabbaaabaabbaaababaabaababbabbbbaaaabaaababbbaaabbaabbaaaabbabaababbababbbbbbaa +babaaaaabababaaaabbbaabbaaababbbaabbabbbbaaaabba +aabababaabbbaabbbabababbaabbbbbabaaaaababaaaabbbabaabaaaaaaaabaaaaaaaabb +baabbbabaaabbaabbaaaababaabbabbbbbbaabbbbaaabbaaaaaababbbbabbbbabaabaaaabbaabbbaabaaaabbbbaabbbb +aaabbaabbaababbaaabababa +bbaaababbbaaababbbaaababaaababaabaaaaabaaabababbaababbababbabbba +aabbabbbbabbbbaababbbaaa +abaabaaabaaaaaaabbaabbabaaaaaaabbbbabbaabbabbbab +ababaabbbabbabaaabbbaaaa +abaabbaaabbaaabaaaaabaaa +bbbaabaabbaabaabbaabbabbbbbaabbaaabaaaaa +babbaaaabaabbaaaababbbbbbbbbaaaa +bbaaaaabbbababaaaaaaaaaa +abbbabbbbbabaaaaabababab +baabaabbbaaabababababaaa +aabaabaaabbbbaababbaaabbbbaaabbbabbbbabaabbbaaba +babbaaaaaaabaabbbbbbabaa +ababaaababaabbbbbaabbbbabbabaababaabaaaa +abbbabaaaabbaaaabbbbbbbabbaababb +bbbabbbbaaabbabbbabbabba +baababbaababbaaaaaabbbbb +abaabaaaaaaaaabbbbaababaabaaaaaaaaabaaba +baaabbbbaabbabbbbbbbbaabbaaababbaabbabab +bbbabbaababaaababbaabaaa +abbabbaaabbbaabaaabaabaa +ababaaabbaaabbaabaaaabbb +abaabbaaabaaababaaaabbaa +baababaaaababbbbabbabbaa +bbbbaababbababaaabbbbaab +aababbbabbbaaabbaabbabbbaaababbabbabbbba +abababbaababbaaabbbaabaababababbbaaabbaabbaaaaaaaabbaaababbbbbba +aaaaaabbbaaababaaaabbaaa +abaabbaaaababaabbababbbabbbbabbb +aabbabbbaababbbbbbbbaabbbabbabbbbaaababb +babababbaaabbbbabbbababa +aababaaabaabaabbbabbaaaababaaabb +bbbbbaaababaabaababaaababaaaabbaaaabbabb +bbbaaabbbbabbabababaabbbbbaaaaaaababbbababbbbbaaabaabbbabbbaaaba +aaaababaaabbbabbabaabbbb +babaaabaabababbaababaaaa +abbaabaabbbbbaabbaaaaabb +abbbbabaaabaaaabbabbaabaaaaabbab +abaaabbaaabaaabaababbabb +abbbbbabaabaababbaababbaaaabaaab +bbabbababbaababbbbabbbbabbabaabbbbaabbabbbabbabbaabaabbbabaaaaababbababbaaababababbabbab +bbbbbaaaabaabbaaabaaaabaaaaaaabbbaaaabaaabbababbaaabaaba +bababaaabbbbabbaababaaabbbababbaababbaaaabbaabbaaaabbbab +bbabbabaaaabaabbbabbabbbabbbaaba +ababaaabbaababaaaaaaabbabaaaaabaaabbabab +bbbaabbaababbbbbaabbbaabbbbaabba +baaabaabaaaababbabaaabaababbaabaabaabbbaabbaabbb +abaaabbaabaaabaabaabababaaaabbababaabbabababbaabbaaabaab +abbaaaabaababbabababaaba +bbbabbbabaababaaaaaabbababbabbbaaaabbbab +bababbabbbabbabaaabbbbbabaabaaaa +abababababaabaaabbabaabbababbbaa +bbbbaabbaabbaabaabbbabaabbabbaaabbaaabaa +aaababaaaaabbbbabaabbbba +babbbbabbbaaaabaabbababa +abaababbaabbaaaaaabaabaa +abaabbaabbabaabbbbaabbbaaaaaabbbbaabaaabbababbaa +abbaaaaaaabbbbababababbbaaaaaaaa +baaaabaabbabbbaaaaaaaabaaaabaabaaabbbabbaaaabbbb +aaaababaabbbabbabaabbaaabbbabbbababbbaab +bbaabaababaabaaaabbbabaaabbabbab +bbbbabaababbbaaaabbaaabaaabababababaaababbaaaabbbaaababa +abaabaaaaababbbbbaaabbba +baabbabbbabbbbabbbbbbbbbaaaaabbaabaaabbabbbabbba +babaabbaabbbbbaababbbabbaabaabbaaabbabaa +abbbbbabaaaabaabbbbaaaaaabbbababbaabaabababaaabbaaaaaaaaabbbbabb +ababababbaaabbbbbbbbabaa +abaaaababbbabbaaabbabbab +aabbaabbbbbaabaabbbababa +baabbaabbabbbbaaaabababa +babbaabbbbbbababaabbbbabaabaabbaabbbaaaaabaabbab +abbabbbaabbaabbababbbaababbbbaab +bbbbbbbaaabbabbbaaabbaba +babbaabbabbbaaabbbaabbbaabababbbaabaaabbaaabbabb +bbaaaababbbbbaaabbaaabba +aaaabababaabbaabbabaaaaa +bbabaaaaaabbbaabbabbbbbbbbbabbaabaaaaabbaabaabbb +aabbbbabbabbbbaabaaabbbbababaabaabaabbbbbaabbbba +aaababaabbbababbbbababab +baaabbbabaaabaaaaababbaabbaaabba +baabaabaababbaaabababbbb +baababbabaaaaabaaaaabaabababaaabbabbbbabaaaaaabaaaaaababaabaabba +aabaaabbaababaabaaabaaab +babababbbbaaaabaabbaaaab +bbbaaabbbbabaabaaaaabbab diff --git a/2020/day19/test b/2020/day19/test new file mode 100644 index 0000000..1500b6f --- /dev/null +++ b/2020/day19/test @@ -0,0 +1,12 @@ +0: 4 1 5 +1: 2 3 | 3 2 +2: 4 4 | 5 5 +3: 4 5 | 5 4 +4: "a" +5: "b" + +ababbb +bababa +abbbab +aaabbb +aaaabbb diff --git a/2020/day19/test2 b/2020/day19/test2 new file mode 100644 index 0000000..8c931b1 --- /dev/null +++ b/2020/day19/test2 @@ -0,0 +1,47 @@ +42: 9 14 | 10 1 +9: 14 27 | 1 26 +10: 23 14 | 28 1 +1: "a" +11: 42 31 +5: 1 14 | 15 1 +19: 14 1 | 14 14 +12: 24 14 | 19 1 +16: 15 1 | 14 14 +31: 14 17 | 1 13 +6: 14 14 | 1 14 +2: 1 24 | 14 4 +0: 8 11 +13: 14 3 | 1 12 +15: 1 | 14 +17: 14 2 | 1 7 +23: 25 1 | 22 14 +28: 16 1 +4: 1 1 +20: 14 14 | 1 15 +3: 5 14 | 16 1 +27: 1 6 | 14 18 +14: "b" +21: 14 1 | 1 14 +25: 1 1 | 1 14 +22: 14 14 +8: 42 +26: 14 22 | 1 20 +18: 15 15 +7: 14 5 | 1 21 +24: 14 1 + +abbbbbabbbaaaababbaabbbbabababbbabbbbbbabaaaa +bbabbbbaabaabba +babbbbaabbbbbabbbbbbaabaaabaaa +aaabbbbbbaaaabaababaabababbabaaabbababababaaa +bbbbbbbaaaabbbbaaabbabaaa +bbbababbbbaaaaaaaabbababaaababaabab +ababaaaaaabaaab +ababaaaaabbbaba +baabbaaaabbaaaababbaababb +abbbbabbbbaaaababbbbbbaaaababb +aaaaabbaabaaaaababaa +aaaabbaaaabbaaa +aaaabbaabbaaaaaaabbbabbbaaabbaabaaa +babaaabbbaaabaababbaabababaaab +aabbbbbaabbbaaaaaabbbbbababaaaaabbaaabba diff --git a/2020/day20/day20.rkt b/2020/day20/day20.rkt new file mode 100644 index 0000000..a254bd6 --- /dev/null +++ b/2020/day20/day20.rkt @@ -0,0 +1,107 @@ +#lang racket + +(module+ test + (require rackunit)) + +(define (read-input filename) + (define tiles-str (string-split (file->string filename) "\n\n")) + (for/hash ([str tiles-str]) + (parse-tile str))) + +(define (parse-tile str) + (define tile-id + (string->number (cadr (string-split (car (string-split str ":\n")))))) + (define tile (string-split (cadr (string-split str ":\n")))) + (values tile-id + (for/set ([s (in-list tile)] + [i (in-range 10)] + #:when #t + [x (in-string s)] + [j (in-range 10)] + #:when (eq? x #\#)) + (list i j)))) + +(define (get-tile-edges tile) + (define edges-lists + (list (for/list ([k (in-range 10)]) + (if (set-member? tile (list 0 k)) #\1 #\0)) + (for/list ([k (in-range 10)]) + (if (set-member? tile (list k 0)) #\1 #\0)) + (for/list ([k (in-range 10)]) + (if (set-member? tile (list 9 k)) #\1 #\0)) + (for/list ([k (in-range 10)]) + (if (set-member? tile (list k 9)) #\1 #\0)))) + (define reversed-edges-lists (map reverse edges-lists)) + (map (λ (lst) (string->number (list->string lst) 2)) (append edges-lists reversed-edges-lists))) + +(define (get-neighbours tiles) + (define neighbours (make-hash)) + (for* ([(tile1-idx tile1) (in-hash tiles)] + [(tile2-idx tile2) (in-hash tiles)] + #:unless (= tile1-idx tile2-idx) + #:when (not (set-empty? (set-intersect (get-tile-edges tile1) (get-tile-edges tile2))))) + (hash-update! neighbours tile1-idx (λ (ns) (set-add ns tile2-idx)) (set)) + (hash-update! neighbours tile2-idx (λ (ns) (set-add ns tile1-idx)) (set))) + neighbours) + +(define (part1 filename) + (define tiles (read-input filename)) + (define neighbours (get-neighbours tiles)) + (for/product ([(tile-idx tile) (in-hash tiles)] + #:when (= 2 (set-count (hash-ref neighbours tile-idx)))) + tile-idx)) + +(module+ test + (check-equal? (part1 "test") 20899048083289)) + +(module+ main + (displayln (part1 "input"))) + +(define (display-tile tile) + (for* ([j (in-range 10)] + [i (in-range 10)]) + (when (= i 0) + (printf "\n")) + (if (set-member? tile (list i j)) + (printf "#") + (printf ".")))) + +(define (rotate tile) + (for/set ([x (in-set tile)]) + (list (- 9 (cadr x)) (car x)))) + +(define (flipx tile) + (for/set ([x (in-set tile)]) + (list (- 9 (car x)) (cadr x)))) + +(define (flipy tile) + (for/set ([x (in-set tile)]) + (list (car x) (- 9 (cadr x))))) + +(define (all-transformations tiles) + (define r1 (set-map (hash-values tiles) rotate)) + (define r2 (set-map r1 rotate)) + (define r3 (set-map r2 rotate)) + (define s (set-union (hash-values tiles) r1 r2 r3)) + (list->set (set-union s + (set-map s flipx) + (set-map s flipy)))) + +(define (edge tile side) + (define side-fn (match side + [1 (λ (k) (make-rectangular 0 k))] + [-1 (λ (k) (make-rectangular 9 k))] + [0+1i (λ (k) (make-rectangular k 0))] + [0-1i (λ (k) (make-rectangular k 9))])) + (string->number + (list->string (for/list ([k (in-range 10)]) + (if (set-member? tile (side-fn k)) #\1 #\0))) 2)) + +(define (find-corner tiles) + (define neighbours (get-neighbours tiles)) + (define corner (for/first ([(tile-idx tile) (in-hash tiles)] + #:when (= 2 (set-count (hash-ref neighbours tile-idx)))) + tile)) + corner) + +;; Too boring, cheated diff --git a/2020/day20/input b/2020/day20/input new file mode 100644 index 0000000..0717f0e --- /dev/null +++ b/2020/day20/input @@ -0,0 +1,1728 @@ +Tile 2953: +.###.###.. +.#....#..# +#.#......# +.###.#..## +#..##..#.. +....#....# +.##.#..#.# +#......#.. +#......... +..##..#.#. + +Tile 2053: +##.##...#. +......#.#. +..###.#... +..#..#.### +##.......# +###...#.## +.#.##.##.. +##...#...# +##.##..### +.#...####. + +Tile 1213: +.......#.. +#...##...# +....#..#.. +..#..###.. +#..##..#.. +#.#.#..... +...#.#..## +#.#.#.#... +....#..... +..##....## + +Tile 2801: +.#.##.#... +#.#....### +.....##..# +.....#.... +#....##... +#.#...#..# +..#..#..## +#........# +#..#...#.. +..###..... + +Tile 1109: +#######... +.......... +##..#....# +#........# +.#.#...#.. +####.....# +...#.##... +.##....#.# +#..##...#. +#.#..##... + +Tile 2833: +#.#.#.#..# +#.#...#..# +.....#.#.# +#.##....## +#.##..##.# +#.#..##.#. +..#......# +#....#.... +..#.#.#... +#..##..##. + +Tile 2099: +##.#..#..# +.....#..#. +.........# +.....###.. +#......... +####.#..#. +######...# +##.##.#... +.....###.. +.....##..# + +Tile 1867: +#..####.#. +#....#..## +#..##.#..# +..#..#...# +#...#....# +...##..... +.......... +....##.### +##..#.#.## +##..#.#### + +Tile 2551: +#.#.#...#. +#....#...# +.#.#.....# +#.#.#...#. +#.#...#.## +...#.##..# +...#.....# +#......... +#..#.#.... +##..#.##.# + +Tile 2239: +#.#...###. +#.#.....## +##....#... +##.......# +.#.#..#..# +###......# +#......... +...#....## +#..#.##..# +...###.... + +Tile 3049: +..##....#. +...##...## +....###..# +.#.##..... +.##...#.#. +..#...#..# +#......#.. +.####...## +#..##..... +.##.##.### + +Tile 1913: +###....#.. +.....##... +#.#.....#. +....#....# +#...#...#. +.......### +..#....#.. +##........ +..#...#..# +##....#.#. + +Tile 3469: +.##.##...# +#...####.. +.###.##... +##.#...#.. +#...#...## +#.##.#..## +##......## +.......... +#.....#..# +#.##..##.. + +Tile 2467: +##.#.###.. +..#####..# +#....##... +#.....#.## +#.#...#... +.....##.#. +#..#..#..# +#....##..# +#..###.#.. +.##....... + +Tile 3467: +##..##.... +##......#. +##....#... +.#...##... +#.#....#.. +##....#.## +#..#..#.#. +#.....#### +#.#..####. +.#.#.#..#. + +Tile 2683: +#..##...#. +.####....# +#.......## +#.....#.## +...##.#..# +##.#...... +##....#... +.##.....#. +..#......# +##.....##. + +Tile 2927: +.#..#.#### +#..##....# +..##.###.# +..###..##. +##.....##. +#......... +.#..#..#.# +.###....#. +#..#..#... +##..##.... + +Tile 3037: +..###...#. +#..#.....# +.####....# +#....###.# +..#....#.# +#.##...#.. +......#..# +.##..##... +..#..#..#. +.##....### + +Tile 1019: +.##..#...# +...#..#.## +###.##..#. +.##..#.... +#.#...#... +....##...# +..##.#.#.# +#.....#### +......#### +..###....# + +Tile 3089: +#..##..##. +..##...... +.#....#... +..#..#.... +.......#.# +...##..... +#.#...#... +#.......#. +#........# +.##...#..# + +Tile 2011: +...#.###.# +#.#..#.#.# +#.#..###.. +.......##. +...#.....# +.#.......# +##..#..#.. +...#..#... +###....##. +...#.#...# + +Tile 1801: +..####...# +#..#..#..# +#...#...#. +....#....# +..##.....# +....#..... +#..##..... +#.###..... +....##.... +..#.#.#... + +Tile 1217: +#.#.#.##.. +##.#...#.# +.....#.... +..#.....#. +#...##...# +..#.#..### +#..#..#..# +.#........ +#......#.# +#...#.##.# + +Tile 1789: +.#.#####.. +..#.#....# +.##..#..#. +..#.###.## +..##...... +.#.#..#... +#...#.#... +.......... +#.##...... +#.#..#..## + +Tile 3719: +..####.##. +###....... +...#..#.#. +.......#.. +#.###....# +........## +#.....#... +...##..#.# +#.#....##. +#.#..##.#. + +Tile 3637: +#....#..#. +##..#..#.. +#.....#..# +#......... +##........ +#.###....# +#..##....# +..#.#...#. +......###. +..#.#..##. + +Tile 1471: +.##.#..#.. +.##....#.# +###...##.# +..##.##.## +.......... +#......### +#.#.#.#..# +.....#.### +#.#..#...# +...#####.. + +Tile 1933: +##.###.... +#..#....#. +#..#..##.# +.#..#..### +.....##... +.##..#...# +....#.#..# +#..#...... +#.##.#.##. +....###.#. + +Tile 1381: +.##..##.#. +.#..###..# +##.#.##.## +.#..#..... +#...##...# +.#.......# +#........# +####.....# +#.#...#### +.#..#..### + +Tile 2423: +#.#.###### +#......... +##....##.# +#....#.#.. +..#..#.... +......#..# +##..#..#.. +....###... +#....#.... +..#.##.... + +Tile 3373: +.#.#..#### +#.#.#....# +#..#.....# +....#....# +#..#..#.## +.....##... +#...##..## +..#.....#. +.#.#....## +##..##.#.# + +Tile 1163: +###.....## +#...#....# +##.......# +.........# +...###.#.# +..#....... +...##.#..# +.#.#...##. +..#.##.... +######.### + +Tile 2543: +#...#.##.# +#.#......# +....#.#..# +##......## +##..#...## +.......... +#.....##.# +###..#.### +.####.#..# +##...##... + +Tile 1427: +#.#....##. +#.......## +...#.###.# +...#...... +..#..#.... +.#.....#.. +..##.....# +#.#.#...#. +..#.#.#.## +.#...##.## + +Tile 3371: +.##...#..# +#...#..#.. +.#........ +..#...#### +..###.#..# +##.#....#. +.##.#.#.## +#..####... +....#..### +###.#...#. + +Tile 3529: +.#.#..#..# +##..#..#.. +.......... +#..#..##.. +###....#.# +.#....##.# +#.#......# +...#.#.#.# +#......... +.#.#..#.## + +Tile 3539: +###.#..##. +##.#...### +#..#...### +#..#...... +...##..#.# +#...#.#... +#.#.##.... +#.#..#..## +#..#.##.## +##.#.#.... + +Tile 1511: +#..#####.. +.##..#..#. +#.....#..# +#.#..##..# +..#......# +.#........ +#.#.#.#..# +##.#.#..#. +##........ +....#..... + +Tile 2521: +.###....#. +#........# +.......#.. +.#....#..# +##....#..# +......#... +...#.#..## +#......### +#...#....# +....###..# + +Tile 1637: +.#..#..... +#.......#. +...#..#.## +#......#.. +#.###.#..# +.#...##... +..###.#... +##...#.### +..#..##.#. +.##.#..#.# + +Tile 2351: +####.###.. +##...###.. +#....#..#. +#........# +#.#....... +##..##...# +####..#... +##...##.#. +##...#.#.. +..#####.#. + +Tile 3929: +.#..##...# +.#.#..#... +##..##.#.# +..#...#... +.##.#...#. +#.....#..# +...#..#..# +##...#.... +##......#. +.##..##... + +Tile 1223: +....#..... +..#..#.... +..#...#... +...#....## +..#......# +#.....#... +..#..##... +....#..... +#.....##.# +..##.#.... + +Tile 1009: +#....###.# +#.#......# +....##..#. +#......... +#..##....# +.##....... +.....#...# +.......##. +.....#.#.# +.#.....##. + +Tile 1289: +.##..#.#.# +.......##. +.#...#...# +....#..... +........## +#...#..#.. +#....#...# +#....###.# +#..#....#. +###..#.... + +Tile 3943: +.#.#.#.... +#.....#.#. +#....#...# +....#.#.#. +....#..#.. +##.#.#.#.. +##...#.#.. +#......... +.#....##.# +#.#.#####. + +Tile 2633: +.####..##. +....#..... +....###... +......#..# +....#..... +#..#.#...# +#.##...#.# +##..#.##.# +..#.....## +#.#.####.. + +Tile 2797: +.###..#.#. +#...#.##.# +#.....#..# +....#...#. +...#....#. +.##.#..... +......##.. +....#....# +#......... +..#...###. + +Tile 1973: +....#.##.# +##.....#.# +..#..#.#.# +#.#.#..#.. +.....##.## +.##.#.#... +..###.#... +........## +##...#...# +..#...#..# + +Tile 2621: +#.##.##.## +.#..#.#.## +........#. +#...##.... +.####..#.# +....#....# +.#........ +...#....## +..##.#.#.# +###.##.... + +Tile 1303: +..######## +.#.#...... +#.#..#..#. +.#.#.....# +...##..#.. +..##...... +.#.#...#.. +#.....##.. +#........# +#.##.#.#.. + +Tile 1483: +.##....... +.#.#.##.#. +.##...#... +##...#..## +.#.#..#.## +#...#.##.. +.##...#... +.......#.# +.#........ +.#..#.##.. + +Tile 1229: +#.#.##..## +..#.##.##. +#####.###. +.#.#.....# +....##..#. +...#.##.#. +#.....#..# +#.##...... +.........# +#.###....# + +Tile 1319: +#..#..##.# +##..#....# +..#....##. +#.#...#..# +...#.....# +#.#..#.#.. +##....#..# +###.....#. +..#.#..#.# +.#..##.... + +Tile 2837: +#.##.#.##. +.##.#..... +##..#..... +#...##..#. +.#.#...#.# +..#...#..# +..#..#...# +..##..#... +...##....# +.#.#..##.# + +Tile 2503: +##...##### +##...#.... +....#....# +..#####... +##.#.##.#. +#....#.#.# +#.#....#.. +........## +.#..#..... +#..####.## + +Tile 2711: +.##.#.##.. +.#.....#.# +......#..# +##..#...## +..#....### +.##.#.###. +....#..#.# +......#... +#....#...# +#..####.#. + +Tile 2137: +#.......## +#.#....... +#.#.#..... +#.....#..# +#...##.#.# +#..#...#.# +#..#.#.... +..#.#.#... +#.##...... +#.####.#.# + +Tile 1543: +#.....#.## +..##.....# +#..#...... +####....#. +#.#.#..#.# +..#..#.... +....#..#.. +###..##..# +..##.#.### +##.#....## + +Tile 2161: +..#...##.. +##...####. +#.##.#.##. +##........ +#.....##.# +..#.#.##.. +#...#..... +#.#..#..## +...##..### +.#..###.#. + +Tile 2377: +...######. +#.....#..# +#...##.... +#.....##.. +.#......#. +.#.#..##.. +......#..# +.......#.. +..#.....#. +..###.#.#. + +Tile 1429: +.#.##.#..# +.#....##.. +.#...##..# +.#...#...# +...##.###. +.......### +##......## +#..#..##.# +#....##..# +#..###..## + +Tile 2113: +#.######.. +..#...##.. +#.####.#.# +.......... +..##...... +....#.###. +#....#...# +#...##.... +......##.. +.######... + +Tile 2677: +#..#.##### +......#..# +....##...# +....#..... +.##.##.... +#......##. +...###.#.# +####.#..#. +..#...#... +##.#####.. + +Tile 2591: +.#.##..##. +##.#...... +.#..#.#.## +.##..##..# +.........# +#..#.#.##. +........#. +...#..#... +.....#..#. +.#.####... + +Tile 2287: +..##...##. +##.###.... +#....#..## +#.#.....## +#.......#. +#...#....# +...#..#.## +.#..##...# +#....#.##. +.####..#.. + +Tile 1279: +#..##.#..# +##........ +...##..... +##...#...# +#..#.....# +.......#.# +..#..#...# +...#.#.##. +#..#....#. +#.#...##.. + +Tile 3769: +##.....##. +....#....# +...#.#.... +....#....# +#....#...# +#..#..##.# +#......#.# +.......... +.....#...# +##.#.##..# + +Tile 1931: +.##.#.##.# +..###..#.# +#.##..#... +..#..#.#.. +..#...#### +#.....#.#. +.......... +..####..## +..#....### +....#.##.# + +Tile 3847: +.#.####... +.......#.# +##...#...# +#...##...# +....#....# +..#..#.... +#.#.#..#.. +..#..#.... +##...#.... +##..##.#.. + +Tile 2549: +..##....#. +#......... +#....#.... +#.....#... +#.##...#.. +##...#.#.# +.####..#.. +......#### +...####.## +..#####..# + +Tile 3067: +..####..## +#....#.... +##.....#.# +....#...## +........#. +...#...### +.......#.# +#..##..##. +..##...#.# +...#...##. + +Tile 2083: +.####..#.. +##.#..#..# +.......#.. +##..##.#.# +.......##. +##....###. +#....#...# +#...##...# +...#...... +.####.#..# + +Tile 2819: +...##..### +#.##.....# +##.##.#..# +.....#..## +#......#.# +#........# +##....#### +#.....#.#. +#....#...# +....#...#. + +Tile 2089: +#####.#.#. +###..#..#. +#.....#... +.####..#.. +..####..#. +#....#..#. +....#.#... +....#.#.## +#.#....... +..####.#.. + +Tile 1459: +..##..#..# +.##..#..#. +...#...... +.....##.#. +.#.#.#.... +.....#...# +.....##... +.#.#..#### +#...##...# +.#.#.#.#.. + +Tile 3761: +..#.#...#. +...#.##### +.#...#..## +#..#.#.... +.......... +..#..#..## +#.####..#. +....####.. +##.#..#... +#.##.##### + +Tile 2707: +######.### +##..#.##.# +.#.......# +...#...#.. +#.....#... +...#...... +........#. +#...#..... +.###..#..# +.....#.##. + +Tile 2371: +.###..#### +###......# +......#... +...##..#.# +...#.....# +##......#. +...#..##.# +#.....##.. +##..##.#.. +##...#.#.. + +Tile 1907: +.#.#.####. +#..#.....# +#..##..... +##..#.###. +#...#.#.#. +..#.#..... +#.##...... +###......# +#........# +#.#.#....# + +Tile 1499: +####...#.. +...#...... +.....#.... +##..#....# +#...##...# +#.#....#.. +.....#.### +#......#.# +###...#.## +##..##...# + +Tile 2267: +.#..##...# +#...#.#..# +##.....#.# +.......... +###.##.... +.####..#.# +#........# +......#.#. +#.#..#.#.# +..#.#...## + +Tile 1283: +######..## +##.#.....# +#.......## +#...##...# +##........ +#.....#..# +#....#...# +#..###.#.. +#......... +...##..... + +Tile 3499: +##..#..##. +#........# +#....#.... +#.####.... +#.#......# +....##...# +#..#....#. +#...#....# +#.#....##. +.#.#.#.#.. + +Tile 3881: +#..#....## +#..#.....# +..#...#..# +#...##...# +#.......## +..#..##### +....#...#. +##..##.... +#.#..#.... +..##.###.# + +Tile 2341: +...##.#.## +...#.##.## +.##..###.# +#..####### +##..#..#.# +......##.# +....#.##.# +####.#..## +##....###. +.##.#..#.# + +Tile 2399: +......#### +#...#..... +..#...#.## +.#.#....## +##........ +##.....##. +.....#...# +#....#.##. +#...#..#.. +..#.#.###. + +Tile 3697: +..#..##..# +#.###..#.# +.#.#.#...# +#.#.#....# +#.###.#..# +......##.# +##.#....## +.#......#. +####.#...# +#.#..#.### + +Tile 3331: +#.#.##.... +##.....### +####...... +.#.##.#..# +.##....... +#.#..#...# +.....#.#.. +#.##.#.##. +###......# +.#.#...##. + +Tile 1979: +...###..## +..#..#..## +...##....# +###...#.#. +#.....#..# +..##..#... +.....#.#.. +#..#...... +##........ +#####..... + +Tile 3041: +#...##.#.# +#..###.#.# +...#...### +#...#..#.# +.#..##...# +#.....###. +......#... +.#.#.#...# +..#.##..## +...#..#.## + +Tile 1307: +.#.#.#...# +.##...##.# +...#.....# +#.....#... +#........# +##.###.#.# +##....#..# +#........# +.###....## +##..#.###. + +Tile 1523: +..#.....## +.....##... +#........# +#.#.#...#. +#..#..#.## +#.......## +..#..#.#.# +....#....# +###......# +...#.#..#. + +Tile 3491: +####..#... +.#....#.## +.#..#..#.# +#...#..### +#.......#. +#.....#..# +.....#.#.. +#.#..##... +.#...#...# +##.#..#.#. + +Tile 3989: +####....## +##..###..# +#..#....## +...#####.# +###..#..## +#.####..#. +##..#....# +..#......# +...##...## +.##.#..### + +Tile 3727: +#.#..#.#.. +#.#......# +......#..# +..#....### +#..##.#... +...#..#... +#..##.#### +#..#.....# +.......#.. +...###..## + +Tile 1583: +..##....## +#....##... +##..#...#. +....##.#.. +#...###..# +.##.#..... +....#..#.. +...#.#.... +....##..## +#..##...#. + +Tile 3581: +##..#..... +....#..##. +##..#....# +..#....... +#.....#... +#.....#... +#...#....# +.........# +.....##..# +##..#.#### + +Tile 3559: +.#........ +....##.... +....#..#.# +##..#.##.. +#..#.#.... +..##.#...# +.#..##..## +....#..#.. +##.#.....# +#....##### + +Tile 2131: +..######## +#......... +..#.##..#. +.#.#.#.... +####....## +#####..... +#......... +#.#.....#. +..##....## +...###.##. + +Tile 1061: +###...##.. +.#...##... +.#.#..#... +..##...... +#......##. +#.....#... +#.......## +#........# +#.##.##... +##.#.##.#. + +Tile 3947: +.#####.##. +..#.#.#... +#.......## +#.#....#.# +..#....##. +.##.#...## +#....#.##. +....####.. +###....#.# +########.# + +Tile 2213: +.###...... +....#...## +#..##..... +#..##.#... +...#....#. +.........# +#####....# +#......#.# +###....... +..##.##.#. + +Tile 3319: +..##.###.. +.#...##... +..#.#..#.. +..#.##.... +...###.... +##.#...... +#.#...#### +.....#.#.# +.#........ +#.....#.## + +Tile 1423: +#....#..#. +..#...#..# +.#.#.#.##. +#.##..##.. +#.##...... +#.#...##.# +..#......# +#.##...### +###.#.#.## +.###.....# + +Tile 1607: +#.#...#..# +.##....#.. +.#...#.#.# +##.#.....# +...###..## +#...#..#.. +.......... +#..#.....# +#..#...... +.#.##..#.# + +Tile 3301: +...#.#...# +.#.#....## +.#.####... +#..##.#... +##..###..# +#...#.#.## +......#..# +#........# +#..####.## +####..#.## + +Tile 2917: +.##..####. +#......#.# +##.......# +.##..#.... +......#..# +.##..##... +#.####.#.# +##......## +#......##. +.....#.##. + +Tile 3851: +#.##.#.#.# +###..#...# +#.##.....# +..##..#... +#.##.....# +.##...#.#. +#..#.##... +#...#..... +...#.#...# +...#..#### + +Tile 1439: +..##.##.## +.....#...# +#..###...# +....##.... +##.#..#... +.....#...# +##.#.#.... +...#.#...# +..#..###.. +..#...###. + +Tile 1493: +.#.###.... +.#.#.#.... +#.#....#.# +#...#..#.. +#....#..#. +..#...#... +...#...... +.......... +...#.##..# +##....#.#. + +Tile 1889: +..###.###. +..##.#.... +#....#...# +..#...#..# +#.......#. +#...#..#.# +..#..##... +..#......# +#....####. +##.#.##... + +Tile 3407: +#..#.....# +........#. +..#....... +...#...... +...#.##.## +#..##..... +##.##..##. +#...#..... +#....##... +##.##..##. + +Tile 2699: +....##..#. +#......... +#.#...###. +...#..#..# +.##..#...# +##..#..##. +####....## +#.#...#..# +........## +.####..... + +Tile 2861: +.....##... +.....#..## +...###.... +..##..#..# +..#.#..... +#.#....... +.....#.... +.##..#.#.. +##.#..##.. +#.####...# + +Tile 1619: +##....#.## +#.#...#..# +#.#....#.. +.......### +#.#....... +......##.# +.#....#.#. +#....###.. +#....##.## +#.#####... + +Tile 1531: +...#.##... +#..#.#.... +#..#...##. +.....#.... +#........# +#.#....... +##.##....# +......#..# +#.#....... +..#####... + +Tile 3169: +##.####..# +.......... +#...#..#.# +#........# +.#...#.... +#...##.... +.........# +#....#..#. +......###. +..#.####.. + +Tile 1249: +###.#..#.# +#..#.###.# +#.#.#..... +#...#..... +###.#.#... +.....#.##. +#.......## +#....#.#.. +....#..##. +..#..##.## + +Tile 2293: +..#...#..# +#....#...# +#....#..#. +.......... +.......#.# +####...... +.##....#.# +####.....# +#..#.....# +#.#.##.... + +Tile 1723: +.#.#..#..# +#...#..#.# +#.....#... +.##..#..#. +.........# +#.#..####. +###..###.. +###..##.## +#.......#. +#..#.#.#.# + +Tile 3191: +.#..#####. +........#. +.#..#...## +#..#...#.# +.##.##.... +.......#.# +...#...#.# +..#....... +##.......# +...####..# + +Tile 1663: +.####.##.. +....#...## +##..##...# +#..#...... +....##.... +##.#..##.. +##..##..#. +...#.#.#.# +#......#.. +.##..###.# + +Tile 2281: +####.#..#. +#......### +.#....###. +.......... +..#.....## +.........# +..#.#.#.## +#...#..... +###.#..#.. +##...#..#. + +Tile 3677: +..####.##. +###......# +.##....#.. +#....#...# +....#.#.#. +#.##.#..#. +...##.#... +....#.#..# +..#....... +##..##..#. + +Tile 1361: +.#..###.## +.........# +#....##... +..##...#.. +#.#.....## +#.#####... +##.#...#.. +#..#...### +#..#.#...# +#####.#.#. + +Tile 1051: +######.##. +####..#..# +###.##.... +#.#......# +#####..### +#.#.#..#.# +...#.#...# +##.#.....# +..#...#### +....#..### + +Tile 1831: +##.#..#### +####...##. +##...##..# +#...#...#. +....#..... +#...#....# +#.....#... +#####..... +......#... +.###.###.# + +Tile 1861: +....###..# +.####...#. +#..#...### +#..#.#.... +#.##.#.... +....#.##.. +.#..#...## +.....#.... +#...#.##.# +##.##.#... + +Tile 1873: +.#.###..#. +##.......# +.####...## +##......#. +#......... +.#........ +.##.#....# +...###.##. +..#..##..# +.#.###...# + +Tile 2129: +#####..### +##..##..#. +.#.#...... +##....#..# +#.####.... +....#....# +###..##.## +.##.#..#.. +#.#..##.## +...#.##.#. + +Tile 2333: +..#.#...#. +#......... +#...#....# +....###### +..##...### +##....###. +...#...... +##.####..# +#####..... +.#....#.#. + +Tile 2851: +.###..##.. +...#..##.. +#......##. +......#.## +.......... +.###....#. +#....#.#.. +#.....#.## +.......... +.#######.. + +Tile 2689: +.#######.# +.....#.... +........## +###..#.##. +#......... +#......### +.#.###.#.. +....###... +#..#..#... +..#...#.#. + +Tile 1193: +.##...#... +####...... +...#.###.# +..#..#..#. +#.#...##.# +.....##.#. +#...##.##. +#....#..## +...##...## +#..##.#..# + +Tile 2663: +......#.## +##......## +.#.....##. +.##.##...# +#.##..##.# +...##..#.# +#......... +#.#..#...# +.......#.. +.#...##### + +Tile 1481: +.#.#...#.# +#..#...... +.#.......# +#.##..#.#. +..#..#.... +##........ +.#...##### +#....#.#.# +#....##..# +.###.####. + +Tile 2417: +###..####. +....#..#.# +...#....## +#........# +#.##...#.# +#.#....... +.......#.# +#......### +#..#.##.## +#.##.....# + +Tile 3671: +..#####.## +....#..... +.....#.#.. +....#...#. +.......... +#.#..##.#. +..##.#...# +#..#.....# +.#......#. +...#.###.# + +Tile 1181: +###..#.#.# +........#. +#........# +#..#..#.## +#.#..##... +..#....#.# +.......... +.####.#.## +...#.#.... +...#....## + +Tile 1999: +#..#..##.. +...#...... +##.#.#.#.# +#.....#..# +...#....#. +##..##..## +####.#...# +....#....# +.....#...# +#.#.####.# + +Tile 2207: +...##.##.. +......#.#. +###.#.#..# +.....##... +..##.#.#.. +#.....##.# +.#.#...... +#...#..#.. +..#.#####. +..###..#.. + +Tile 3359: +#.#..#...# +#......... +####..#.#. +#........# +....#.#... +.#..###... +.#....#..# +....####.# +#.....###. +#...##.#.# + +Tile 1847: +##..#.#.## +#........# +#.#####... +..##.##... +##..#...## +##...#..## +.#...#.... +#.#......# +##..##...# +..#.#####. + diff --git a/2020/day20/test b/2020/day20/test new file mode 100644 index 0000000..b07aa4b --- /dev/null +++ b/2020/day20/test @@ -0,0 +1,107 @@ +Tile 2311: +..##.#..#. +##..#..... +#...##..#. +####.#...# +##.##.###. +##...#.### +.#.#.#..## +..#....#.. +###...#.#. +..###..### + +Tile 1951: +#.##...##. +#.####...# +.....#..## +#...###### +.##.#....# +.###.##### +###.##.##. +.###....#. +..#.#..#.# +#...##.#.. + +Tile 1171: +####...##. +#..##.#..# +##.#..#.#. +.###.####. +..###.#### +.##....##. +.#...####. +#.##.####. +####..#... +.....##... + +Tile 1427: +###.##.#.. +.#..#.##.. +.#.##.#..# +#.#.#.##.# +....#...## +...##..##. +...#.##### +.#.####.#. +..#..###.# +..##.#..#. + +Tile 1489: +##.#.#.... +..##...#.. +.##..##... +..#...#... +#####...#. +#..#.#.#.# +...#.#.#.. +##.#...##. +..##.##.## +###.##.#.. + +Tile 2473: +#....####. +#..#.##... +#.##..#... +######.#.# +.#...#.#.# +.######### +.###.#..#. +########.# +##...##.#. +..###.#.#. + +Tile 2971: +..#.#....# +#...###... +#.#.###... +##.##..#.. +.#####..## +.#..####.# +#..#.#..#. +..####.### +..#.#.###. +...#.#.#.# + +Tile 2729: +...#.#.#.# +####.#.... +..#.#..... +....#..#.# +.##..##.#. +.#.####... +####.#.#.. +##.####... +##..#.##.. +#.##...##. + +Tile 3079: +#.#.#####. +.#..###### +..#....... +######.... +####.#..#. +.#...#.##. +#.#####.## +..#.###... +..#....... +..#.###... diff --git a/2020/day21/day21.rkt b/2020/day21/day21.rkt new file mode 100644 index 0000000..1ab1c5a --- /dev/null +++ b/2020/day21/day21.rkt @@ -0,0 +1,59 @@ +#lang racket + +(module+ test + (require rackunit)) + +(define (read-input filename) + (map parse-food (file->lines filename))) + +(define (parse-food str) + (define match (regexp-match #px"(.+)\\(contains (.+)\\)" str)) + (list (string-split (cadr match)) + (string-split (caddr match) ", "))) + +(define (find-allergens foods) + (define h (make-hash)) + (for* ([food (in-list foods)] + [allergen (in-list (cadr food))]) + (define s (hash-ref h allergen (list->set (car food)))) + (hash-set! h allergen (set-intersect s (list->set (car food))))) + (unique-allergens h)) + +(define (unique-allergens h) + (if (for/and ([(k v) (in-hash h)]) (= 1 (set-count v))) + (for/hash ([(k v) (in-hash h)]) (values k (set-first v))) + (begin + (for ([(k v) (in-hash h)] + #:when (= 1 (set-count v)) + [(other-k other-v) (in-hash h)] + #:unless (equal? other-k k)) + (hash-set! h other-k (set-remove other-v (set-first v)))) + (unique-allergens h)))) + +(define (part1 filename) + (define foods (read-input filename)) + (define allergens (find-allergens foods)) + (define all-ingredients (apply append (map car foods))) + (define allergen-ingredients (hash-values allergens)) + (length (for/list ([ingredient (in-list all-ingredients)] + #:unless (set-member? allergen-ingredients ingredient)) + ingredient))) + +(module+ test + (check-equal? (part1 "test") 5)) + +(module+ main + (displayln (part1 "input"))) + +(define (part2 filename) + (define foods (read-input filename)) + (define allergens (find-allergens foods)) + (define allergen-ingredients (for/list ([allergen (sort (hash-keys allergens) string<=?)]) + (hash-ref allergens allergen))) + (string-join allergen-ingredients ",")) + +(module+ test + (check-equal? (part2 "test") "mxmxvkd,sqjhc,fvjkl")) + +(module+ main + (displayln (part2 "input"))) diff --git a/2020/day21/input b/2020/day21/input new file mode 100644 index 0000000..e175b11 --- /dev/null +++ b/2020/day21/input @@ -0,0 +1,36 @@ +smfnh svztk rqqf sfhvsx xctnhp bvn krv gkcplx ngpq hmhll dq mqr vnvgrb xbp dqsbql dlx mgvr cqvpp nqfjgtsj zscj jbndg gz xrkckp srzsljf mzmph gbxk mvqkdj frkpm vnhn sjfcj rgfx fjbqn lvrsl dvvsn rgpbkp vhdzgz pvq ktlh pzvvlgt knpp sbpkr bbzn rrjjt tsfx brnsf gfxb qmcj fdfr glllxz cmkqcs fctjm fmrdsr xmrd bpdfhd cjxgg gszbq gtqsr ftds qrdtdv vjmfl phbhgqh nbhpx sjlk xhzj kmfj xdsxjv hcrz xzxth xxcq kpnl pbhvldj msfmt sttj fdrzd bprg jdbpd hbhsx dfllj frvs fltn xxgp vlhnhf ggsz dmxdkc qbrqsr cgbgf gbgf szp zrtfglg (contains nuts) +msfmt vcnrl tsfx dqsbql hcxhl nbhpx vjmfl fltn gfxb cmkqcs knpp lcqn srnbhq zrtr xg gspk gvnj mvqkdj vhchvg ggsz bpxggt kmfj gkcplx nlh xjggx jbndg fjbqn dq svztk lcrpq xhksjm sqzhc rgfx gbxk lttlx ssbrn xlkm fcps kkkt ppdplc lxkbs frkpm fjvf hbhsx hnxc (contains soy) +gz fjbqn xqxgc xbp lcrpq vnhn ftds gszbq qbrqsr nkmxp zjg hnxc hbhsx sjfcj svztk ggsz nvsd rgfx mzmph tllxsfs dvvsn mvqkdj brnsf rqlljq rqqf vbn jbndg tclx ppdplc lxkbs szp gkcplx sqzfbq sqxsf mqr fmrdsr ktv hcxhl jbmlk ktlh ppskx kkkt cbpx zsxfl cdrm tbhxh drnrd nx gspk nmdv kvgbhx fjvf xjggx dqsbql lvrsl ndtf zbjtv (contains fish, eggs) +gbgf xhksjm xg zscj nbhpx xzxth sqzfbq sfhvsx vnvgrb phbhgqh kctf tsfx fkfr pzvvlgt nqfjgtsj bhtxd qmcj hbhsx zbjtv jbndg xxgp smscxzt gfjqxx cbpx zsxfl tfd qbrqsr phbrht nmdv zgvqnlv ppdplc bxpdm xbsps rrjjt cqvpp zrtr xvrvnt vdnvf lttlx qjjxv mvqkdj ndtf prrpm tmkc tllxsfs cgbgf fjbqn hnxc frkpm gszbq rqlljq lhtqk ngqg ppskx knpp xqxgc fnmx msfmt gvnj pbhvldj kmfj rqqf hdmpps ktlh glllxz ssbrn zrtfglg hcrz dqsbql frvs cjcvh vnhn ggsz fdfr vhchvg tclx fjvf (contains soy) +sbpkr hbhsx gszbq lgxx hmhll tsfx cqvpp gkphjq nvsd tfd fzrfrs fvgpcjh dfllj drnrd xg hcxhl vjmfl mvqkdj ndtf dvvsn ngpq gkcplx fkfr xmrd lttlx qmcj dqsbql fdfr msfmt sqxsf sttj nkmxp nbhpx pvq cjxgg jbmlk xjggx xhzj fdrzd ktv kmfj vhchvg frkpm mqr rgfx mzmph srnbhq pbcptj zscj cgbgf sqzhc ppdplc xvrvnt ssbrn tmsn ktlh bprg cmkqcs lcqn cdvdt lvrsl rgpbkp smscxzt cdrm tclx xzxth xbsps xlkm srzsljf tmkc zrtfglg gvnj krv gxgbkd dfkt npjrb xbp vdnvf zgvqnlv pbhvldj (contains dairy, fish, eggs) +vdnvf kkxq sttj mhzdcc srnbhq krtlhc fjbqn fjvf mvvbb vhchvg lgxx cqvpp lxkbs ggsz xjggx jbndg rqqf qrdtdv lttlx bhtxd xdsxjv nbhpx mvqkdj dfllj ndtf hcrz gtqsr ftds fnmx rrjjt fvgpcjh szp tmkc brnsf vbn frxfc zscj bxpdm dqsbql xhzj bpdfhd kddggl fhhq sjlk prrpm hdmpps msfmt gbxk phbhgqh xmrd vpsv zsxfl xzxth xvrvnt gkcplx kctf xxgp xg fzrfrs fspk kvgbhx cjcvh lcqn ppskx zrtfglg drnrd dfkt hnxc fdfr rqlljq tclx gszbq cbpx hbhsx gspk ngpq bpxggt ktlh gbgf xqxgc kxmgm (contains wheat, fish, soy) +fdfr vpsv kkkt kctf kkxq drnrd prrpm kmfj gz qjjxv vhdzgz dqsbql bxpdm fqrtvrv qbrqsr dfllj cdrm vlhnhf tclx ktlh sjlk lhtqk vhchvg pzvvlgt pvjd lttlx tllxsfs sqzhc bvn xdsxjv mzmph cmkqcs xxcq blbl sqzfbq frkpm ggsz fkfr jdbpd cqvpp zjg vjmfl gbxk mvvbb mhzdcc ngqg ndtf llhld cjxgg pbcptj fmrdsr ppdplc msfmt dlx zrtfglg mvqkdj ccxlqzv gkcplx brjx fspk fvgpcjh jsmpg pvq fdrzd smscxzt xvrvnt rgpbkp gtqsr lpgptlj hdmpps fzrfrs zgvqnlv (contains shellfish) +gspk vdnvf lcqn fqxcjh jdbpd tsfx kkxq hmhll vhchvg gxgbkd xzxth krtlhc krv jbndg fdfr ggsz dqsbql xqxgc fkfr mgvr zscj sqzhc svztk gkphjq vpsv glllxz srnbhq ngqg gkcplx kvgbhx cbpx zrtr hpqf hdmpps cmkqcs ppdplc srzsljf gcch sqzfbq fctjm pvjd qfktb cdrm cgbgf xbp cjxgg kkkt lttlx vnvgrb xxgp hrbbhg msfmt mvqkdj dq gfjqxx ktv hcxhl tbhxh drnrd nmdv hcrz ktlh (contains dairy, eggs, sesame) +sqzhc vdnvf krv nkmxp pvq dq fvgpcjh dfkt xmrd fjvf vpsv xdsxjv zrtr zjg xhzj zgvqnlv nbhpx fnmx tfd ppdplc xhksjm ktlh pzvvlgt msfmt xg dqsbql hrbbhg gszbq cjcvh rqqf mzq ndtf gtqsr cdvdt mvqkdj vnvgrb hpqf lpgptlj gkcplx srzsljf lcrpq jbndg gcch fltn gbgf fhhq hbhsx fqrtvrv xbsps gbxk vjmfl xbp hcxhl llhld rggl zsxfl kvgbhx frxfc xxgp (contains sesame, wheat) +dnkcf fqrtvrv cmkqcs ktlh pbhvldj blbl nx xmrd vlhnhf rqqf gkcplx hcxhl nmdv brjx tllxsfs hbhsx frxfc hdmpps qfktb lcrpq mvqkdj smscxzt qjjxv zsxfl frkpm lttlx ppdplc vhdzgz fctjm ndtf kkxq gkphjq ggsz ktv xctnhp fkfr zscj dqsbql xzxth xbsps brnsf tclx tbhxh jsmpg vjmfl xxcq lgxx kvgbhx llhld (contains shellfish, sesame, fish) +zrtr frxfc mvqkdj zrtfglg nx hbhsx phbrht nlh brjx ssbrn pvq sqxsf jbmlk jzjb jshns nkmxp fdrzd hcxhl pgtrjst mgvr qjjxv ggsz xlkm smfnh srzsljf vnhn fctjm rqlljq fqrtvrv lttlx bpdfhd sttj nmdv dfllj knpp ktlh frkpm zbjtv tllxsfs fjbqn fvgpcjh zscj fjvf vjmfl xxgp xg msfmt fnmx llhld vdnvf phbhgqh mhzdcc xzxth sqzhc xmrd hcrz xctnhp ktv vlhnhf gkcplx qvxntmh dqsbql tbhxh gcch hdmpps ngqg glllxz fmrdsr sfhvsx dmxdkc (contains eggs, soy) +ccxlqzv ngpq qmcj hcrz nkmxp fspk rxtp gcch ktv vcnrl rgfx llhld sqzhc jbndg ssbrn pzvvlgt prrpm xqxgc rkgb lpgptlj srzsljf fltn srnbhq fjvf mqr krv dfkt fdfr glllxz jdbpd npjrb ktlh dnkcf pvjd hbhsx cjcvh dmxdkc xrkckp qfktb rqlljq dqsbql ggsz tmsn phbhgqh kctf mvqkdj szp gkcplx gbxk qvxntmh fnmx vnvgrb nqfjgtsj gvnj tfd nlh ppdplc pvq bbzn lttlx bpxggt lgxx xxgp hdmpps cjxgg gfxb kxmgm knpp brjx (contains wheat) +nkmxp hbhsx frkpm tfd vlhnhf mgvr fdfr mqr zjg tsfx xdsxjv vnvgrb fqxcjh vcnrl llhld lpgptlj sfhvsx rgpbkp fzrfrs xrkckp qmcj bvn gkphjq lcqn pvq xhksjm smfnh ggsz vbn gfxb cqvpp bxpdm xmrd fcps pbhvldj msfmt qfktb mzq rggl fltn ppdplc fjbqn xzxth ppskx gfjqxx fdrzd nx gvnj ktlh srnbhq xbp fnmx qsx jbmlk hmhll vhchvg xbsps krv dqsbql sqzfbq xctnhp gkcplx lxkbs ssbrn szp pvjd blbl fhhq (contains wheat) +fltn frxfc qrdtdv gkcplx jdbpd phbhgqh mhzdcc dfllj mvqkdj sfhvsx rggl zrtfglg nqfjgtsj gszbq hcrz sqxsf fzrfrs kpnl ppdplc pbhvldj llhld fjbqn kkxq ssbrn qsx phbrht gvnj cjcvh fcps fqrtvrv xctnhp hbhsx zscj smscxzt dlx fjvf msfmt vjmfl xvrvnt dqsbql gcch ndtf rxtp kmfj gspk dnkcf sjfcj lcqn ggsz zsxfl jshns (contains nuts) +qfktb fqxcjh cjcvh cdvdt hcxhl mvvbb hcrz glllxz nqfjgtsj sqzhc nbhpx zjg xmrd pgtrjst tmkc vnvgrb cgbgf lttlx ppdplc sjfcj dvvsn gszbq dmxdkc kxmgm dq brnsf fjbqn vdnvf qrdtdv ggsz vcnrl cbpx phbhgqh pvq jsmpg sttj mvqkdj xbsps sqxsf ktlh xdsxjv bpdfhd vhchvg tfd lvrsl xzxth lcqn qbrqsr hpqf nlh krtlhc lgxx zbjtv ccxlqzv rxtp zrtfglg nmdv ftds msfmt xhksjm gkcplx dqsbql mzmph tbhxh srzsljf jzjb cmkqcs gbgf dlx srnbhq lpgptlj rrjjt (contains shellfish, eggs) +dqsbql lcrpq ftds hbhsx brjx fqxcjh llhld msfmt drnrd gfxb xbsps nvsd gkcplx xvrvnt zscj gtqsr tfd qsx ngqg fqrtvrv phbhgqh dnkcf gz xg qjjxv sqzfbq jdbpd sbpkr mzmph ssbrn hmhll cqvpp xqxgc cjxgg krtlhc smscxzt gxgbkd mvqkdj xdsxjv brnsf vhchvg lcqn kxmgm qvxntmh pbhvldj ktlh cdvdt dq szp ppdplc dfllj fvgpcjh fdrzd knpp kpnl tmsn nqfjgtsj rggl jsmpg xzxth cdrm bpxggt vjmfl cgbgf rkgb xhksjm nlh dfkt sqxsf (contains fish, eggs) +xrkckp nlh ktlh gfxb jbndg zscj rqlljq xctnhp nkmxp vhdzgz gfjqxx mgvr fdfr sqxsf bxpdm gkcplx fmrdsr msfmt smscxzt krv fqxcjh kpnl cgbgf npjrb prrpm qbrqsr ppskx gxgbkd mvvbb ggsz gcch ppdplc gszbq lttlx fspk dqsbql dfkt bpxggt szp rggl fltn tsfx bvn fnmx lpgptlj mzmph svztk gbgf mqr xg lcqn mvqkdj pgtrjst phbrht fhhq cbpx glllxz qjjxv kctf brnsf drnrd sjlk kkkt (contains sesame, shellfish, dairy) +ngqg mvqkdj gkphjq dlx dqsbql ktlh rqlljq bpxggt vnhn srnbhq frxfc fspk frvs kctf lxkbs jzjb glllxz rgfx pbcptj fnmx xxcq bprg ppskx rqqf qvxntmh cmkqcs rggl jdbpd fjbqn frkpm mzq hpqf sqzfbq llhld xqxgc vnvgrb tllxsfs zscj lvrsl ngpq vhdzgz nlh ppdplc gz zgvqnlv bvn gspk jsmpg fzrfrs fkfr rrjjt msfmt cjxgg krv vhchvg ggsz npjrb smscxzt gtqsr kddggl hbhsx kpnl xg sbpkr tmsn nkmxp xjggx nbhpx jshns cjcvh (contains shellfish) +ppdplc dqsbql brjx ktlh xrkckp kpnl zrtfglg svztk dfkt mhzdcc xmrd kddggl sjlk nkmxp jshns xvrvnt zbjtv xdsxjv mvqkdj glllxz vlhnhf hbhsx hrbbhg fdrzd xg pbcptj xbp rkgb ngpq msfmt lttlx fdfr llhld dmxdkc krv cdvdt rggl qjjxv xxgp vbn sbpkr gvnj vnvgrb pbhvldj vjmfl dq srnbhq mvvbb gkcplx vnhn bvn jbmlk xzxth krtlhc fjvf kxmgm dvvsn vpsv rxtp cgbgf nmdv (contains nuts) +pgtrjst ktlh fmrdsr llhld pbhvldj dfllj lvrsl xqxgc ppdplc rqqf lcrpq nlh vnhn cdvdt msfmt hmhll zbjtv ktv fspk tclx fdfr prrpm lgxx sbpkr dfkt qrdtdv sjfcj vhdzgz dlx cqvpp xhzj vhchvg tllxsfs fctjm mvqkdj bbzn qjjxv vjmfl sttj ndtf nkmxp tsfx vnvgrb sjlk dqsbql ggsz sqxsf fjbqn qbrqsr vbn dnkcf gfxb lxkbs cmkqcs hbhsx kxmgm zgvqnlv vlhnhf xmrd gszbq srnbhq gxgbkd xhksjm xrkckp mvvbb gtqsr ccxlqzv jshns tmkc jbndg frxfc tfd zrtr fzrfrs (contains nuts, shellfish) +nmdv svztk vpsv zsxfl gfxb fnmx pzvvlgt dlx rkgb tclx fdfr rqlljq lvrsl sfhvsx blbl kvgbhx jsmpg tfd xrkckp kkkt gkcplx cdvdt ppdplc fqxcjh brjx tmsn dq kxmgm bhtxd xvrvnt fspk sjfcj gcch xxgp hpqf mgvr srnbhq qvxntmh xzxth msfmt jbmlk dqsbql srzsljf ktlh zbjtv gz mvqkdj nkmxp rrjjt xqxgc cjcvh kctf mzq dfllj hbhsx fmrdsr fdrzd bpxggt kmfj gkphjq (contains wheat) +rgfx fvgpcjh mzmph cqvpp ggsz gfjqxx kctf gspk zrtfglg gkphjq dmxdkc ktlh fdfr qfktb srnbhq xctnhp phbhgqh zgvqnlv xqxgc rqqf sfhvsx xbsps cjcvh kkkt nlh fhhq cdrm kddggl mvqkdj npjrb lhtqk hdmpps zbjtv nmdv lttlx vbn pzvvlgt lcrpq dvvsn cdvdt bpdfhd nkmxp hrbbhg ssbrn rggl dfllj vhchvg pbcptj dnkcf xjggx nbhpx fdrzd vhdzgz pbhvldj mvvbb qjjxv zscj hbhsx gxgbkd vnhn gz ppdplc cmkqcs hcrz bprg prrpm vnvgrb msfmt pvq gkcplx rkgb bxpdm (contains wheat, shellfish, soy) +nkmxp xg vjmfl gspk gxgbkd ggsz cmkqcs fjbqn mvqkdj mgvr jdbpd hbhsx cjcvh zbjtv xxcq xqxgc gkcplx zgvqnlv gtqsr lgxx gfxb msfmt qjjxv pbcptj bpdfhd bvn xrkckp fzrfrs pgtrjst xmrd vpsv nx gz dfkt fcps xhksjm nlh bprg vhdzgz drnrd ngqg gkphjq dfllj rgpbkp fkfr fqxcjh xzxth kctf tbhxh mvvbb dq hpqf mzmph xctnhp dmxdkc lvrsl tmsn lxkbs fdrzd rxtp cgbgf nvsd gbgf krv rggl frvs gvnj vcnrl ppdplc sttj hrbbhg gszbq qmcj hcxhl fspk fnmx dqsbql nqfjgtsj kxmgm ccxlqzv zjg (contains nuts, sesame, eggs) +npjrb xvrvnt sttj pvjd lvrsl pgtrjst fjbqn lcqn xxgp kvgbhx qvxntmh bvn cbpx gkphjq gkcplx gszbq rxtp mzmph lgxx zrtfglg gspk gbxk nvsd bpdfhd sjlk kctf qsx kddggl vhdzgz ktv xrkckp fqrtvrv jdbpd fltn fctjm frxfc svztk nx phbhgqh vpsv kxmgm hmhll ktlh xdsxjv phbrht zgvqnlv smfnh tbhxh sbpkr srzsljf xjggx mhzdcc xhzj fdrzd ccxlqzv cdrm dlx msfmt mgvr ppdplc qmcj lhtqk hcxhl gbgf fspk ngpq lpgptlj ftds jzjb cmkqcs ggsz rqqf mvqkdj cdvdt brnsf xzxth smscxzt fdfr tmsn ndtf brjx gfxb rrjjt sjfcj vhchvg dqsbql cqvpp qrdtdv (contains soy, dairy) +lcrpq fmrdsr fdfr gtqsr nlh hnxc bprg dqsbql hmhll mvqkdj hbhsx sqxsf fdrzd szp bbzn pbcptj sbpkr qsx rgpbkp xctnhp rxtp bvn ktlh bxpdm zgvqnlv lhtqk bpdfhd sjfcj xdsxjv nmdv qjjxv ppdplc ggsz qfktb vhdzgz vlhnhf xhksjm nqfjgtsj vnvgrb mhzdcc msfmt jsmpg dfkt (contains fish) +ppdplc rqqf vbn zjg xdsxjv msfmt nlh nkmxp mhzdcc glllxz bvn xjggx gfxb zrtfglg qvxntmh sqzfbq qfktb gz bpxggt fqxcjh phbhgqh bhtxd frkpm rqlljq dmxdkc lcqn vlhnhf vdnvf mzq sfhvsx svztk qbrqsr hnxc hbhsx brjx mvqkdj dq ktlh dqsbql dvvsn fzrfrs mvvbb tmkc vcnrl blbl gkcplx vhchvg (contains sesame) +rrjjt zsxfl dqsbql dmxdkc vcnrl vhchvg vnhn mzmph ssbrn rgpbkp msfmt fvgpcjh lpgptlj gbgf xmrd frxfc ktv ggsz nqfjgtsj qjjxv xzxth lhtqk qfktb cdvdt ktlh xbsps ftds phbrht jsmpg jbndg zjg mvqkdj sqxsf brnsf ccxlqzv zrtr pvq bpdfhd frvs ppdplc vjmfl gbxk blbl kvgbhx sjfcj mvvbb xg gz kmfj xdsxjv nkmxp svztk lvrsl hbhsx bxpdm xxgp vpsv hcxhl (contains nuts, soy, wheat) +nkmxp hnxc rqlljq knpp vnhn zjg rqqf rrjjt xlkm msfmt xbsps jshns vhdzgz gfxb brnsf qmcj fspk dmxdkc xzxth lcrpq phbhgqh ggsz bpxggt szp lxkbs sqxsf gszbq brjx ngqg qrdtdv dqsbql gkphjq bpdfhd ktlh mgvr ktv mvqkdj xctnhp ppdplc ndtf nqfjgtsj pzvvlgt jbmlk dlx lgxx rgfx fjvf gkcplx xhksjm kmfj llhld (contains fish) +gvnj kkxq ktlh gkphjq tsfx svztk msfmt pvq lpgptlj gz gbgf fzrfrs hcxhl dnkcf xbp gfxb tllxsfs kpnl fjbqn zscj ppdplc lxkbs lcqn hcrz zjg kddggl gkcplx ngqg vnvgrb hbhsx hmhll rxtp bpdfhd frxfc fqxcjh pgtrjst qfktb fhhq xbsps xhzj srnbhq bhtxd vjmfl ggsz ktv phbhgqh fkfr dqsbql vbn jsmpg rgfx xrkckp sjfcj llhld nbhpx phbrht rggl tbhxh blbl vcnrl rgpbkp nqfjgtsj lvrsl dq nvsd mvvbb ngpq xxgp nkmxp xmrd gxgbkd fltn jbmlk rqlljq qvxntmh (contains dairy, sesame, eggs) +nbhpx gcch fvgpcjh gtqsr srzsljf cgbgf nmdv cjxgg tsfx ngpq vbn rkgb dnkcf nqfjgtsj vnhn xqxgc ngqg dmxdkc vhdzgz fzrfrs glllxz kddggl dqsbql vhchvg xbp svztk mhzdcc ppdplc mzq qvxntmh phbhgqh frxfc pvq lxkbs bxpdm sqxsf kkxq gkcplx zrtr fnmx bvn kkkt pzvvlgt gz fdfr gfxb xhzj fltn vjmfl qsx sfhvsx hbhsx sttj ftds qmcj tmsn rgfx mzmph gfjqxx jbmlk qjjxv kxmgm fcps vnvgrb ggsz mvqkdj sjfcj nkmxp pbhvldj ktlh (contains eggs, dairy, fish) +gkcplx xrkckp vbn smscxzt mhzdcc cjxgg kddggl zgvqnlv dqsbql ppdplc kkkt hbhsx gspk kvgbhx rqqf prrpm xxcq mzq srzsljf msfmt xbsps hpqf ngpq pbcptj mzmph xmrd gvnj ktlh cmkqcs dlx cbpx hmhll xlkm bhtxd mvqkdj gbxk nx (contains shellfish, fish) +qsx zjg lcrpq glllxz zscj rggl dmxdkc jshns frvs sjfcj kddggl xlkm msfmt rxtp zsxfl ktlh kpnl frkpm sttj ngpq brjx brnsf hcrz fctjm fcps zbjtv nx cmkqcs mhzdcc kkxq vpsv pbcptj qrdtdv fltn llhld gkcplx mvvbb qmcj nkmxp szp rqqf dvvsn nvsd jzjb mzmph dlx gbgf mvqkdj dqsbql vjmfl gszbq phbhgqh ppdplc tbhxh xxgp fvgpcjh ccxlqzv ggsz lhtqk vcnrl bxpdm gtqsr jbmlk srzsljf bbzn lgxx rqlljq frxfc zrtfglg (contains dairy) +ppdplc dmxdkc gtqsr fdfr srnbhq hnxc xvrvnt jbndg lxkbs bhtxd fzrfrs vpsv pzvvlgt dqsbql zrtfglg frkpm cqvpp zjg npjrb fvgpcjh vnvgrb fnmx pvjd fdrzd frxfc nmdv zbjtv tclx bxpdm phbhgqh krv ktv qrdtdv knpp sttj hbhsx sqxsf xqxgc vhdzgz gkcplx lcqn rrjjt tmkc xxgp rqlljq bbzn gszbq jzjb zscj fjvf ktlh vlhnhf mgvr xbp smfnh dlx rgpbkp lgxx msfmt lcrpq hcrz ggsz xhzj qvxntmh gxgbkd vnhn cgbgf xbsps xjggx gspk jshns ftds cdvdt rggl pvq xhksjm ndtf kkxq gz pbhvldj fmrdsr mzmph gfjqxx (contains fish, eggs, soy) +kctf bxpdm tmsn cgbgf kpnl vnvgrb rggl bpxggt kddggl pvq msfmt xvrvnt lxkbs xxgp npjrb knpp svztk gz fvgpcjh ndtf fdrzd sqzhc gfxb fqxcjh sbpkr gbxk hcrz zsxfl zgvqnlv nx blbl llhld sjfcj rqqf cdrm ggsz xqxgc ftds sfhvsx fctjm krtlhc srzsljf jdbpd mvvbb dqsbql nvsd dmxdkc lcqn gkcplx fjbqn glllxz ktlh vhchvg ssbrn gxgbkd dvvsn kxmgm pbcptj xbp tmkc hbhsx mvqkdj (contains wheat, nuts, shellfish) +fmrdsr gtqsr sqxsf fvgpcjh lpgptlj mvqkdj frvs nkmxp zrtr bxpdm ccxlqzv msfmt vjmfl dvvsn hnxc zgvqnlv nqfjgtsj mzmph rrjjt gkcplx pgtrjst mvvbb vbn tllxsfs bhtxd nlh qsx vpsv npjrb jbndg gxgbkd tclx xhksjm sjfcj ktv rxtp hcxhl xzxth qjjxv hbhsx ggsz xxgp tmsn ktlh dqsbql dlx kctf gszbq bbzn pzvvlgt gbgf cqvpp fqrtvrv szp pbhvldj (contains eggs, sesame) +xhksjm mhzdcc kvgbhx ngpq rkgb nlh ppdplc qbrqsr gbxk ngqg drnrd phbrht zrtr dq rgfx qvxntmh dnkcf phbhgqh mvqkdj rrjjt fjbqn nkmxp xdsxjv cjxgg ktlh kctf xmrd zgvqnlv blbl msfmt fdfr cjcvh tsfx sjlk lgxx vhchvg ggsz sqzfbq svztk lhtqk zsxfl nvsd vhdzgz gkcplx ssbrn lcqn rqqf kmfj vcnrl mvvbb hbhsx pbhvldj gspk tmkc hpqf kddggl nmdv xbp cdvdt ktv xctnhp (contains eggs) diff --git a/2020/day21/test b/2020/day21/test new file mode 100644 index 0000000..1c0ea2f --- /dev/null +++ b/2020/day21/test @@ -0,0 +1,4 @@ +mxmxvkd kfcds sqjhc nhms (contains dairy, fish) +trh fvjkl sbzzf mxmxvkd (contains dairy) +sqjhc fvjkl (contains soy) +sqjhc mxmxvkd sbzzf (contains fish) diff --git a/2020/day22/day22.rkt b/2020/day22/day22.rkt new file mode 100644 index 0000000..022cb0f --- /dev/null +++ b/2020/day22/day22.rkt @@ -0,0 +1,59 @@ +#lang racket + +(module+ test + (require rackunit)) + +(define (read-input filename) + (apply values + (map (λ (s) (map string->number (cdr (string-split s "\n")))) + (string-split (file->string filename) "\n\n")))) + +(define (play p1 p2) + (match (list p1 p2) + [(list xs '()) (list xs '())] + [(list '() ys) (list '() ys)] + [(list (list-rest x xs) (list-rest y ys)) + (if (< x y) + (play xs (append ys (list y x))) + (play (append xs (list x y)) ys))])) + +(define (play-recursive deck1 deck2) + (define states (mutable-set)) + (let loop ([p1 deck1] + [p2 deck2]) + (let/cc return + (when (set-member? states (list p1 p2)) (return (list p1 '()))) + (set-add! states (list p1 p2)) + (match (list p1 p2) + [(list xs '()) (list xs '())] + [(list '() ys) (list '() ys)] + [(list (list-rest x xs) (list-rest y ys)) + (if (and (<= x (length xs)) (<= y (length ys))) + (if (empty? (cadr (play-recursive (take xs x) (take ys y)))) + (loop (append xs (list x y)) ys) + (loop xs (append ys (list y x)))) + (if (> x y) + (loop (append xs (list x y)) ys) + (loop xs (append ys (list y x)))))])))) + +(define (winning-score play-fn deck1 deck2) + (define final-deck (apply append (play-fn deck1 deck2))) + (for/sum ([x (in-list (reverse final-deck))] + [i (in-naturals 1)]) + (* x i))) + +(define (part1 filename) + (define-values (deck1 deck2) (read-input filename)) + (winning-score play deck1 deck2)) + +(define (part2 filename) + (define-values (deck1 deck2) (read-input filename)) + (winning-score play-recursive deck1 deck2)) + +(module+ test + (check-equal? (part1 "test") 306) + (check-equal? (part2 "test") 291)) + +(module+ main + (displayln (part1 "input")) + (displayln (part2 "input"))) diff --git a/2020/day22/input b/2020/day22/input new file mode 100644 index 0000000..aa6f3cc --- /dev/null +++ b/2020/day22/input @@ -0,0 +1,53 @@ +Player 1: +41 +33 +20 +32 +7 +45 +2 +12 +14 +29 +49 +37 +6 +11 +39 +46 +47 +38 +23 +22 +28 +10 +36 +35 +24 + +Player 2: +17 +4 +44 +9 +27 +18 +30 +42 +21 +26 +16 +48 +8 +15 +34 +50 +19 +43 +25 +1 +13 +31 +3 +5 +40 diff --git a/2020/day22/test b/2020/day22/test new file mode 100644 index 0000000..391cd24 --- /dev/null +++ b/2020/day22/test @@ -0,0 +1,13 @@ +Player 1: +9 +2 +6 +3 +1 + +Player 2: +5 +8 +4 +7 +10 diff --git a/2020/day23/day23.c b/2020/day23/day23.c new file mode 100644 index 0000000..8cd5c39 --- /dev/null +++ b/2020/day23/day23.c @@ -0,0 +1,133 @@ +#include +#include + +#define TEST_INPUT 389125467UL +#define TEST_RESULT_10 92658374UL +#define TEST_RESULT_100 67384529UL +#define TEST_RESULT_PART2 149245887792UL +#define INPUT 198753462UL + +void print_cups(unsigned long cups[static 1], unsigned long start) { + printf("(%lu) ", start); + unsigned long c = cups[start]; + while (c != start) { + printf("%lu ", c); + if (c == 0) { + printf("\nreached zero, abort!\n"); + return; + } + c = cups[c]; + } + printf("\n"); +} + +unsigned long move(size_t size, unsigned long cups[size], unsigned long current) { + /* print_cups(cups, current); */ + /* printf("current: %lu\n", current); */ + + unsigned long picked_up[3] = {0}; + unsigned long c = current; + for (int i = 0; i < 3; ++i) { + picked_up[i] = cups[c]; + c = cups[c]; + } + /* printf("pick up: %lu, %lu, %lu\n", picked_up[0], picked_up[1], + * picked_up[2]); */ + + unsigned long dest = current - 1; + while ((dest == 0) || (dest == picked_up[0]) || (dest == picked_up[1]) || + (dest == picked_up[2])) { + dest = (size + dest - 1) % size; + } + /* printf("destination: %lu\n", dest); */ + + cups[current] = cups[picked_up[2]]; + cups[picked_up[2]] = cups[dest]; + cups[dest] = picked_up[0]; + + return cups[current]; +} + +unsigned long *play(size_t size, unsigned long cups[size], unsigned long start, + unsigned long steps) { + unsigned long current = start; + for (size_t i = 0; i < steps; ++i) { + /* printf("-- move %zu --\n", i+1); */ + current = move(size, cups, current); + } + + return cups; +} + +unsigned long *init_cups(unsigned long n, size_t size) { + unsigned long *cups = calloc(size, sizeof(unsigned long)); + unsigned long start = n / 100000000; + + unsigned long q = n; + unsigned long r = start; + while (q != 0) { + cups[q % 10] = r; + r = q % 10; + q = q / 10; + } + + if (size > 10) { + cups[n % 10] = 10; + for (size_t i = 10; i < size - 1; ++i) { + cups[i] = i + 1; + } + cups[size - 1] = start; + } + + return cups; +} + +unsigned long run_part(int part, unsigned long n, unsigned long steps) { + size_t size = 0; + if (part == 1) { + size = 10; + } else if (part == 2) { + size = 1000001; + } + unsigned long *cups = init_cups(n, size); + unsigned long start = n / 100000000; + play(size, cups, start, steps); + + unsigned long res = 0; + if (part == 1) { + unsigned long c = cups[1]; + while (c != 1) { + res = 10 * res + c; + c = cups[c]; + } + } else if (part == 2) { + res = cups[1] * cups[cups[1]]; + } + + free(cups); + return res; +} + +int main(int argc, char *argv[]) { + unsigned long res = 0; + + res = run_part(1, TEST_INPUT, 10); + if (res != TEST_RESULT_10) { + printf("Test 1: %lu (expected = %lu)\n", res, TEST_RESULT_10); + } + res = run_part(1, TEST_INPUT, 100); + if (res != TEST_RESULT_100) { + printf("Test 2: %lu (expected = %lu)\n", res, TEST_RESULT_100); + } + + printf("%lu\n", run_part(1, INPUT, 100)); + + res = run_part(2, TEST_INPUT, 10000000); + if (res != TEST_RESULT_PART2) { + printf("Test 3: %lu (expected = %lu)\n", res, TEST_RESULT_PART2); + } + + printf("%lu\n", run_part(2, INPUT, 10000000)); + + return EXIT_SUCCESS; +} diff --git a/2020/day23/day23.rkt b/2020/day23/day23.rkt new file mode 100644 index 0000000..d906ab3 --- /dev/null +++ b/2020/day23/day23.rkt @@ -0,0 +1,71 @@ +#lang racket + +(module+ test + (require rackunit)) + +(define (labelling->cups num) + (define cups (make-vector 10 0)) + (define start (quotient num 100000000)) + (let loop ([prev start] + [n num]) + (define-values (q r) (quotient/remainder n 10)) + (vector-set! cups r prev) + (if (= q 0) + (values cups start) + (loop r q)))) + +(define (cups->labelling cups) + (let loop ([idx (vector-ref cups 1)] + [num 0]) + (if (= 1 idx) + num + (loop (vector-ref cups idx) (+ (* 10 num) idx))))) + +(define (move! cups current) + (define picked-up (let loop ([idxs (list (vector-ref cups current))] + [i 0]) + (if (>= i 2) + idxs + (loop (cons (vector-ref cups (car idxs)) idxs) (add1 i))))) + (define destination (let loop ([d (sub1 current)]) + (if (or (= 0 d) (member d picked-up)) + (loop (modulo (sub1 d) (vector-length cups))) + d))) + (vector-set! cups current (vector-ref cups (car picked-up))) + (vector-set! cups (car picked-up) (vector-ref cups destination)) + (vector-set! cups destination (last picked-up)) + (vector-ref cups current)) + +(define (play! cups start steps) + (for/fold ([current start]) + ([i (in-range steps)]) + (move! cups current))) + +(define (part1 input steps) + (define-values (cups start) (labelling->cups input)) + (play! cups start steps) + (cups->labelling cups)) + +(module+ test + (check-equal? (part1 389125467 10) 92658374) + (check-equal? (part1 389125467 100) 67384529)) + +(module+ main + (displayln (part1 198753462 100))) + +(define (part2 input) + (define-values (base-cups start) (labelling->cups input)) + (define cups (make-vector 1000001 0)) + (vector-copy! cups 0 base-cups) + (vector-set! cups (remainder input 10) 10) + (for ([i (in-range 10 1000000)]) + (vector-set! cups i (add1 i))) + (vector-set! cups 1000000 start) + (play! cups start 10000000) + (* (vector-ref cups 1) (vector-ref cups (vector-ref cups 1)))) + +(module+ test + (check-equal? (part2 389125467) 149245887792)) + +(module+ main + (displayln (part2 198753462))) diff --git a/2020/day24/day24.rkt b/2020/day24/day24.rkt new file mode 100644 index 0000000..3e0db07 --- /dev/null +++ b/2020/day24/day24.rkt @@ -0,0 +1,80 @@ +#lang racket + +(module+ test + (require rackunit)) + +(define (read-input filename) + (map string->tile (file->lines filename))) + +(define (string->tile str) + (path->tile (map string->symbol (regexp-match* #rx"(e|w|se|sw|ne|nw)" str)))) + +(define (path->tile path) + (define-values (q r) + (for/fold ([q 0] + [r 0]) + ([s (in-list path)]) + (match s + ['e (values (add1 q) r)] + ['ne (values (add1 q) (sub1 r))] + ['nw (values q (sub1 r))] + ['w (values (sub1 q) r)] + ['sw (values (sub1 q) (add1 r))] + ['se (values q (add1 r))]))) + (list q r)) + +(define (initial-grid tiles) + (define grid (make-hash)) + (for ([tile (in-list tiles)]) + (hash-update! grid tile not #f)) + grid) + +(define (count-alive grid) + (for/sum ([(k v) (in-hash grid)] + #:when v) + 1)) + +(define (part1 filename) + (define tiles (read-input filename)) + (count-alive (initial-grid tiles))) + +(module+ test + (check-equal? (part1 "test") 10)) + +(module+ main + (displayln (part1 "input"))) + +(define (count-alive-neighbours grid tile) + (define q (car tile)) + (define r (cadr tile)) + (for*/sum ([i (in-range -1 2)] + [j (in-range -1 2)] + #:unless (= 0 i j) + #:unless (= 2 (abs (+ i j))) + #:when (hash-ref grid (list (+ q i) (+ r j)) #f)) + 1)) + +(define (step grid) + (define size (+ 2 (apply max (flatten (hash-keys grid))))) + (for*/hash ([q (in-range (- size) size)] + [r (in-range (- size) size)]) + (define color (hash-ref grid (list q r) #f)) + (define n (count-alive-neighbours grid (list q r))) + (values (list q r) + (cond + [(and color (or (= 0 n) (> n 2))) #f] + [(and (not color) (= 2 n)) #t] + [else color])))) + +(define (part2 filename) + (define tiles (read-input filename)) + (count-alive + (for/fold ([grid (initial-grid tiles)]) + ([i (in-range 100)]) + (step grid)))) + +(module+ test + (check-equal? (part2 "test") 2208)) + +(module+ main + (displayln (part2 "input"))) diff --git a/2020/day24/input b/2020/day24/input new file mode 100644 index 0000000..57ab419 --- /dev/null +++ b/2020/day24/input @@ -0,0 +1,561 @@ +wwwnewnwwnwewswnwsenwwwnwnwwwnww +wewswseswnwwwwenwnewnwswenwsenee +sesesesesesenewsesesesesesesesesesesese +swnenewneneeeseeswnenweswsenenwnenene +eneeeenenesweneseneeeenew +neseneseewenewswnwsesenwwnenenwene +nwwsewwwnwnwnenwwwenwwwnwwnwswse +nwnenwnewnwsenwnwnwnwnwsenwwnwnwnwnwnwnwnw +seseseseseeseseseseswseseseseswswsenwse +eeweseseeeeenwneewweeseeee +seseeseseseseseweseseneseseseseseesee +seseseseeseseeweseseseneeseseesese +swwnwwwnwnwwnwnwenwnwnwnwwwnwwnwnw +eewsenwseneseseswseenwsesenwseesewsw +wswwwswswswwswswwwwswswweswww +nwnwnwnwwnwnwewnwnwnwseswewnwwnwnwnw +wwswswswswwneswswswwseswwnewwswswsw +swsenwswswswswswwsesweeswsese +eseesenwesesewweeeneeneenewenew +eenwswnwnwnwnwswnwnwnwenwwnwnenewsw +wweweswnwwweswswnwwwwwswwww +swneswwswswswswswseswswswnwswsweseswswsw +wswseseswsesenesesesesewseswseseswnesese +nenwnwwwnwswewnwwwnwwwswnwnwnwnwnw +seseseswswswsenwswswne +swswwnewneswswswswneseswsesese +seswseswseswswsenwseswsewswseswswseesw +wsewwwwwwwswwnewwwwwwwww +sesesesesesenesesesewseseseseseseseswse +enwseswswseswswswswswswswseswseswsesesw +nenenenwneenwneenenenwnwnenenenwswnwsw +enwseeeeeneswseewswnwnenewwe +eewnenwwswswneneeewweeseenesene +eswswnwnwnenwenwneswnwnwnwnenwnwnwnwne +wwseeesenwnwneeewwseweewneesw +seesenwneeseesweseeeeeseseseseese +wwwswswswwswswweswswwswswwswsww +nwnweseswswswswswswswseswseswswswswswsw +eneseneneneeenenenenwnenenwneeneese +senwsenenewnwseewnesesenwsesesesesew +neeeeneneneeneeneeeeweeneesene +swenwsweswsweseswweenwnww +nwnwwwnwwnwwwwwwwnwwnewswwnw +eesenweseeeeswsesese +swseseeseesenwseseseswseswseswsesesew +nenwnewwenenwwswseswesewnenwenwene +wwswwwnwwnwnwnwwwwnwwneww +seneeeeeneenwnwsweseeneeneeweee +nenwswnwswswnwnwnwwnwwnwnenenwnwnwesenwse +neneeswneneeeeneeeneeneneeneeswne +wswsenenwneseswswwnwwweseneswswsene +seseseseseseseswseseneseseswsenewsesesesw +wswseswsesenwneswnwsewwneeswse +swnwswwswswswwswseeswesweeneswswnw +swswneswswswswenwswwswswseswswseswswsw +esesewseeweswsesenwswswswneseswseswse +nwwneswswswswswnweeenwnenwnwnenesewe +seeseewseeseewseseeeseeeseese +newsenwseseseswseesenenewseseseseesesww +wneswswwswswswwswswwswswswswsewswsww +wesesesewewseseewwseseseseeseese +enenwnwnwnwnwnenewnwnwneswenwwnwnwne +seeeseseeseseeeseeeesesesew +swnwnenwnwswnenwnwenwnenwnenwnwnenenwnwnw +nenenenenewneenwneeswswnene +enwnwwnwnwnwswesenwnwswseeewewse +swwnwenenewwnwseeneswenwsewenene +seeseeweesenesenweeeeesesesee +nwnwnwnwnwnwneswwnwnwwnenwnwwsenwnwenw +wswswseseseswswswseneseseswsenenwswseswse +wwwsewwwwswwwwwnwwnewwww +wnwnwwwswewswwswwweww +nwswswswseseeseseseseseseseseseswnesese +eeeeweneneeneeewe +swswswsewswswswsesenwswnwseswswseeew +nwnwnwnwwnwswenwenwneswwnwnwnwnwnwswnwnw +nwnwnwnwnwsenwwnwnwwnenwnwnwnwnwnwnwnwnw +nwneswneswnwswenwneneeneseenewnwnenwse +neewswswswseneseneseswsesewsewswsesww +enwneneneneneneeeeneneseneneneneene +eneeseseeeeseeeeeeeeeswee +seeseeeseneseeeeesesesweseseswnwsee +newnesewswneewnwneeneeneseneenenew +ewsenwnwsweenwnesewnwseseseswsewsenw +ewseseseseseseseseeeeeeseeseewse +wwswswwewwnwwwwwwwwswwwnewsw +eeswneeswnwenwenweseeneesesesenwe +eswswswswnewwnwseswwseseneswnenenwswsw +sesesesenwsenwneseseseneswnenwsewwsenww +neeeeeneeeneseeneeeenweneee +nenwwswwwwwnwwwwwwnww +nwnenwnenwnenwnenenwnwnwnwnenwnwsenewnene +nwwwneswwswswswsweswsewswwswswswswswsw +nenwnwnwnwnwsenwnwsenwnwnwnw +seeeeeeeeeeeeeweesee +nwnwnwnwnwnwnenwnwnwsenenwnwnwnwnenwewnw +eenesesweeeseeneenweswseeeeee +neswsenewnenesenenenesenwneneneneneswwne +sesesewsenwseseseseseseseseseseesesese +seseseseesesesesesesesesesesenwseswsesese +enwswseesewsesesewnesesesewnwseseesw +seseswseneseseseseseseseseseseswsesesese +nwsenwnwnwswwnwnwnwnenwsewnwnewnwnwwe +wesenweswswneneewnenwswswswnwesew +seseseseeseseswseseseseswswsesesenwsesw +wnwswneeneswwnwwswenwnwswnwnenwnesenw +swnenenwnwnwnenwnwnwswnenenesene +neneewnesenenewnewsenwnenenwnwnenenenene +swewwnwwnwwnwwwnewwwswwnw +senwsewswesesenwnesesesesesesesweseswse +seseeeenwseeseseneesewseeew +wnweswnesenewwseswsewwnwwwnese +eeeeseeweseseneeseseeseseneesesw +senewesenewnwswwwnesenwewwnesw +nwnwnwnwnwnwwnwnwnwnwnenwnwnenwe +eeneewneesenenenenenenenenenenenene +sweeneneneswneeneneswneneswnenenwswene +wswwswswweswwswswwnesweswswwsw +eeeeneeenwneneeeeewnesenenenee +sweswswswswswswswswswswwnwswswswswswsw +sesewseseeseenweseeseeeseseesese +swnwswswseswseswswswseseseswswsesenw +sesewsesesenwseseseseseseewneseesese +swwswswswswswswswwswwwswswneswswswsw +eenwseeeeenwneeenwsewswseeswee +swswseseseseseseswseneswswswswseswswsesenw +wwswswnwewwwswswesw +neneneneenwswnenenwwnenwnenw +seswseswswsweswswswwnwswseswseswswswsese +seseseeweseenweseeseesweeneeese +swswwwwwwswwwswwwswwnenwewww +swwwewnewwwwwenewswwwww +eeenenesenwseeneeeew +wwwwnwswswswwwewwwwwwswwswe +seenwseseseseseeneseseeseswseseswsesese +sesewnwesenwnewseswwneneseswseswew +swswswswsweseswswseswswswseseseswswsew +eneenwneenwseeseneeeenwswweswsww +seewneseseseesesesenesenwsesewseeee +sweeesewneweweeeese +nwnwnwnenwnwnwnwnwnenwnwnwnwsenwnwnwnew +wwswswneneswswswswseswswswswswswewswnwsw +wwnwwwwswwnewnewwwsewwwwwnw +sewsesesenweseswsesewswseseneeswsese +seswswswswswswswswswswneswswswswswwsesesw +eeseenesenwsewseneeesenweswnweesw +swseesenwewneseseeseswswnewewnesw +nenesweeeenenewnwneeeneneswnewsene +swwseswsweswseswsesesenwseeswswseswsw +nwnwneswweswesenwnwnwwnwnwnwnenenwwwse +wwwwswwwwnwswwwwwwwewww +eseseneeseswwneweeswswnenwnwneswese +senwwnwnwenenenwsenew +swswswswseswswswneswswswswswswswswseswnw +seswsesenwswseseswseswswswseseswswswswsw +enweenenweesewneeeeeseeswseenenw +neneneneeseweeneneneeeneneneeene +esesenesenwseswseseswseseneseseseseww +eswswsenewseswseswenweswwnwseseswsenw +seseneseseseseseseseseseseewseesesese +nenenenenenenesenenewnenene +swswswswwswswswneswenewswswwswseswwsesw +nwnwwenenwsenwnenwwnenwsenenw +seeneseseesewsewnweneesesewesese +neseeseenweneeeneneweesweeenww +swsesenwseseseseseswsesesesesesesesesese +swwseneseswsewseseseneswseswswseswseeswse +nwnwneewnenwnwnwwwnwnwwnwswwswsese +wwewwwsweswwwnww +swnwnwnwnwnwwnwewnwnwneenwnwnwwswnw +swwwwswwwseneswswwswwwswwswwww +neeseseseseewsesewseenesesesesenenwwse +nwnwwnwnwnwnwnwnwnwnwnwnwsenwwnwnwnwnw +eeweneeeeeeeeeneseeeeee +enwwesweeeneeneneeeseneenenenew +swswsenwswwswweswwswwswswwwwswne +wewnwwnewnwwnwnwnwwnwnwwnwswwswnw +nenwneneneseneeneneeneeneeenenenene +nwwswnewsewnwwwwwnewwww +eneneneesenwneneeneeeswswnesweenwne +wwwwwwwwwwwnwwwwsenwwenww +swswnwesewwswswwwwswswwwwnewswwsw +wwnwwwwwwnwnwnwwwenwwnwww +seesenwseseseseseswswseswseswwnwseswsw +nwnwnwnwnwneneneneswswnenwnenwenwnwnenenw +sewwwsewnewnwnwsenwwnenwnwswnwnwnew +neneseeneeeneneneneeneenwneneneee +sweswewswwswnwnwswswswswsesweswnwwsw +wwnenwenwsenwnwwnwnwwnwnwnwnwwwnw +eneeneweeesewneneeeeneneeeee +swswnewswswswseseseswswswswneswseswswsw +wwnewwswnwewsw +neenwneeeswenweneseneeeneenenese +seswswnwsesesenwswseswseswseeswswswseswse +neneswswswswseswswwswneswswwswsweseneswne +sesewnwwnwnenwnwnwenwnwnewneenwnenw +wswsenwewnewewwswswwswswwswswwwne +senwnwsesesweswswnesewseseseeesee +eeswneneneeneenenenenenenenenenenene +swwseswswswswswswswneswswseseswnewswswswne +eswseswswswswswwswseswswseswneswswnesw +swsesenwwnwswsenwseseeswsesenenenwwse +seesewseseseeeseseseseeeeseeese +swseseswswneswseswswswseseseseswswswsesw +wwwnwwwewnwnwwwwwwwwwswww +nwnenwnenenenenenenenwneneswnenenenwswene +neseneneneseenwnenenenewnewnwnwnenwnww +wwnwweenwwwwwwnwnwwwswwwwnw +wnwwsenwsenewnewnwwnwnwwnwwnwww +wnwwwwnwnwwwwwnwnwwswwnwweww +wswswwwswswwswwwneswwseweswwe +seeneseeeseseweeee +senwnwnwenwnwnwswwnwnwenwnw +eneneeneenwneeswnenenenenewnenenee +swwweeseseeseeeneneseseseseeeene +seseeseseeseeseseseseneseseseseswese +neswsenwswsesesesesenwseseseseeseesesw +senwswnenwnenenenwewnwnwnenwnwnwne +nweenwswseswnwneseneseseswnewseswnwwne +swwwsewwwewwswwwwnwswwwwswnwsw +wnwnwnwenenenenwnwsenwneenwneseswnwswnwnw +neswnenenwneneenenenenwneseweswnenwsene +wwswneneswnwsenewneeneeeenenewsw +eseneeeseeeseseseswseseneewseewe +nwnenwnenwnwnwnwwnwsenenenwsenwnwneswne +wwwsewwwenewwsw +nwnwnenwnesenwwwwwnwnwwnwsewewnw +nwnwenwnwnwnwnwnwnwnwsewnwnwswnwnwnwnww +swnenwnewwnweswswenwnwnwsenwwnwenw +nwnwnwnwnwwenwnwwewwnw +swswnwnewnenenwseswnenenenenenenenwswesene +swswsweeswsewseswsesesesesesewswswsenw +wnwwswswwwswsewswneewswswswwneww +eweeeeweneenee +seeswseneneseneswsewneswsewswswwsese +nenesenwneneneneewneeneeee +wswswwsenewswswewnwwwswsw +wneenenwnwnenwnesenwnwnenwnwnwnwnwwnw +enwseewenwswswnwnwseswswnweswsesenwnw +nwswswsesenenwnwwnenesenwnew +neswwsewwneewswswnewswwnwnwwsesw +nwnenenenwneneeswnenenwnenwneswnwnwnene +neesewnwnwwwwnw +seeseseseweseneeeseesenewseseese +sweneneneneswsweeeesenwnenww +neneneneneneneseneneneneneewenene +seseseenweseseseeseseseseseenwse +seswswswswwwswwwswswswneswswswwnwswsw +swswwswswswnwswsweswswewswswswswweswsw +senenenewnwnenwsene +swnenwnwneswnwnwnenweenwnw +sewwwseseesenesesenwwswseesesenesese +nwnwsenenwnwnwnwwnenwnwnenwnesenwsenenenw +eeeseseeeseseeseeeenweseseee +neseseseswnwsenwsenwsesesenenwsewsesese +eeeeeneeseseseseesewesweeneesese +nwwwwswnewwwwwewenenesesewsenw +wnenenwnwnenesenwnwnenwswnwnenwneeswnwnw +seeswswnwseenesenwsesesenwwenwswwswse +seseseneseseseswseseseneseneseseseswwse +nwnwnwnwnweswenwnwnwnwswnwnwseswewnwse +eeswneeeneeeweeneeenweenenew +swneswswwwnwswwwswnewswseswwewswne +sesenwseseseseseseesesenwsesesesesese +enwseneswwswewwswwewwwwswnenwnww +wwnewwwwwwnwwwwnwsewwwnwwnw +nwswwwswwswwseswswswwwswwwswww +eewnwsweeeeeenweeeenesweseee +seeeseeeeeeseseeseseseseeesenw +neseswsenewseseeswswsewne +nwseseseseseseseswneesewseswswseswsese +swnwnwnwwnesesenww +senwnwwnwneweswnwwsenesewwnewwne +eenwsweeeseeeseseeeeseeseesee +eeseswneseeseeeswesenwseseeseese +eeeseseneesesweeseenweseeesewew +wwwswnweswwswswswswnwswnewseswswsw +nwwswnewseswswswnewwswewwwswseww +swnwswswwsesweswswswswswswswswswswswswse +nwswwswneswnwwweswwwseswwwwswwwsw +ewwnwswwnwnewseww +wwwwwsesewwwwnenwewwnwwseww +seseseesenweseseeseseenwsesenwseswnwswnw +swswsewswswwswnew +neneneneneneneneneswnenenenenenenenenene +wnwswwewwnwsewweneswwwwswweww +seseseseesewswseseseseenenesesesesese +ewswswwswwswwewswwwwnwwsweww +nwnwnwnwwsewnwnwnwnwnenwnwnwnwnwsenewnwnw +seseswswswswnweswsenesesesesenwsesese +nenenwnwwnesenesenwswnenwnwnweewnese +wwwswswswwwewwswwwwwwwswsw +nesewweenwswnesewsewnewnwenwsewse +swnwwwnwwewwewseswwswwswwsww +eseeeeseseeswneseeeesenwse +swswswsesweswswswswswswswswswnwswswnwswswsw +newwneswwwwsewwwswsewwwseneesw +senwswseneeswseseesenwwnesesesweseesese +nwenewneenesenenwneswnwnwsenwnwnenwwnw +eeeeneesweeeenwneweeeneeee +wewwwwwwsewwwwswwswwwneww +nenenwneswewswneneswsenesenew +nwneswnwnwnwneenenenwsenwnwne +nwseweenwnweweeeeswsesenwwee +enwseswwwswwwwnewwwswswswwswswsew +nenewneeneneenenesenenenesenenewnene +seswsweeseswswsewseswswsewnwswsw +nwnwnwnwnwnwneenwnenwnwnwnwnwnwwnwnwnw +eeeneeeeeeswneenwneeeeeswe +senwnenwnwnwnwnwnwnwwnwnenwneenwwnenwse +swwwnwnwwwswwnenwwnwneenweseseew +sesenesewsewneswsesesesenwwesenwsese +newwnwneewsewwswwnwnwwwnwwswnw +nenwwswwnwwwwnw +nenenenwneswneeeenwenenesweneswnenene +nwwswwswwwnesewwwwswwswse +sesenwseswswswseswswswswsw +eesweeeeneee +swewswswsesesweswswswseseseswswswsenw +swswswseseswsenwseseseswsweswswseseswsesw +wwnwenwnwwwsewwewwnwwnwwww +swswswwswswswwswswneswswswwseswswswsw +wewseseenesenwsenwnenwnwnwnwsenwnwnwnw +neneswnenwnenenenenenwneswnenwne +seswweswswseseseswseswswsweseswswswswswnw +swswswwswswwwswwwneswswseswswswswsw +eneneeweeseeeneneewe +nwnwnewseneneeneneseswswnenenenenwnwnenw +wneeeneneneneseneneeswnewneeweese +nwsenwnewnenwnwnwnenwsenenwnesenwnewnwnwnw +eesweeseeeeenweeeeeweeee +nwnwnwwwnwwwnwnewwse +wseseenwnwsenwnwnwnwnenenwnwnwnwswnwnwnw +wnwsenwwnwsewnwnewnwnwwwwwneww +nwsenwnenesenenenwnenenenwnwwnwwnenenenwse +neeseseenesewsewnwnesweeewwneeee +swseseseseseseseeeseseseseesesesesene +eweeeseeneeseeseeseweseesesw +wwnwsenwneswnenenwnenweseneneswnwswne +neewwnesenesenewenenenenenenenenenene +nwnenwnwnwenwnwwnwwswnwnenwnwswswsew +esenenenenenenenenenenenewneneneneseewne +senwseswseswswseeseswseseseseseswsesesese +wnwewwnwwnewsewnwww +seewwseseseseswswseseeseswswseseseswnw +seneseeswnwsesesesesenweesesenwwsee +wwwswwwwweswswww +sesesesewnwsenwsweseweseseeseseenesese +swwwseseseswnwwnenwnwswsw +swseseseesenwswnewsenwseswseseseswnesesw +swswswwwswewswwnwswwwwwswswswsw +neneswseswswnwneswnwswswswswsewswsesw +eeeewenenweeeeesenwseeeew +swseswseswswnwswswseswsweswswswwswswsw +nenenewnwnenenwnenwnenwnenenesenenenenenw +wwwwnewnwwsewwnwwwwwsewnewwnw +nwswswseswswswsenwseswswseswswswswnwsene +nenenwsweneneneeneneewneneewseswnenwne +seseswswseswseswswneswsweswnwenwseswswsw +nwneswnewnwnwseewewneeneswnwnwenesw +senwnwnwnwnwnwnwwswenwnwnewnenwwnwsee +nenenenenenenenwnenenenenenenesenesenewnw +eenenwenweeneneswneneesw +newwwwswnewwnwwwsewwwsewwse +enwnwnesenenwenweswsewseweswnewswse +nwnwnwnwnwnenwnenenwnwnenwnwnwswnwswnenwenw +nenenweeneneneeeneeeneneseenene +eswwsweswsweswswswwswswwsw +eeneneenenenenwneeneneneneeneeneesw +wwwswnwwewwnwnwnwnwnwnwenwnwwnw +swswnwswswswwwswswneswseeswswswswswww +eeneneseneneneneneswnwneeseneenenwne +nwwwseenwnwnwwsww +nwesesenwnwsesweeseseseeseeseesee +weweeeweeneeseeeswseeenwew +wswwwwwwwwsewwewwswwnenew +wewneeeeeesweeeeewswenene +nwwneewsesewswwwnwewwsewnwnwnw +seeseswenwneseeeeeseneseewnwwwnw +neneneswnenenenwnenenenenenenenenenenene +sewnwnwnwwwswnwewnwneswwnesenww +neswsesewswwsenwswnwnweswne +eneeneswneeneeweeeene +swnwsenwnwnwnwnwnwnwnwnwnwnwewnwnwnwnw +eseseseseseseeeesenwseseeseseewse +nwnwnwnwsenwwwnwwwnwnwnenwswnwnesenw +neswneswneseneneneswenenenenenenenewnenw +seenwenweeseswesweeeeeeeese +wnenweswwnwneneneenenenwnwesewnenw +neneneeswenenenenenenenenenwnenenenenene +weneeswnweeweeeseseeeese +wwwwwnewwwswnwwwwwwwwww +nwsenwsesesenwwwnwnwwewnwnwsenwnwnenw +nwnenwwsenenwesenwnwwsewnwnwnenewsw +nwnwnwnenwnwnenwswnwneneneenwsenenwnwnew +neneneneneneneneneneneneneseewnenenenwne +nenewnenwneneeseeewseenenwnenesesw +enewswswswswswswweswswwseswwswswenww +wswswswswswswswswswsweswswneneswswswne +wnwnwnwnwenwswnwwnwwwwnwnwwenwnwnw +seseseewesesenwseseeeseese +nwnesenwnenwnwnenwnwenenwnenwneswnwnenwsw +wesenwneswwswwswnewwswwwewww +sewewnwwewsewnenenwseswwwswweswsw +eswswswseswswwewwwwnenwwnewsww +wnwswwswnwneseswseswswsesesweeesesenene +seseswneneseswseseswnewseseseseswsesew +wwwnwwwwwwwneewnwwwsew +esenewsewseswnese +wnwnwswnwwnewnwwnwnwwnwnwnwwnwww +sewseseswseswneeswseseesesesewsese +wwwswewnwwwwenwnwwnwew +neneseeneeneneneeeneswwnwnwneneeenene +eeeeeneeeeeeeeesweeeene +wwwwswwwwwnwwwsewwnewwwwne +swsenwswsewneswswswswswswseneswswsw +nenewweneeseenesenwnenwwneeeseswsene +swswwwswswswwneswswswweswswwswwsw +sweneewwswwswswswneswswwnwwswwswse +wseneneswneswnenenenenenwenwnwswswsenenee +wswwswwwneswwswseswswswwwswswene +enweeeeeeeeeeeeeeeswee +enwseseeeeneeewenweeeesewe +nenwnwnenenwnwneenenwnwnwnenenwswnwnene +nenenewneswneeesenwneneneneewenenene +nenwneneneneneneneneseswnewneseenenenenew +nwnwnwnenwnwnwnwnwswnwnenwnwnwnwnwenwnenw +seeswnwseseseswseswseseswswswswswswsesw +nwewewnwnwnwewnwwsewnwwswweww +nwnwnwnwenwnwnwnwnwswnwnwnwnwnwnwnwnwnw +seseseneswwsweesesewseseseswseswwne +wseneseseeswswswsewseswswseswswwese +wwnwswwwnwnwsewwwenwnwnwww +wseswseseseeseseseseseseseseswsesesese +swsesenwswwswsweswneswswnwswswswswsesw +weeeenenenwseewnesweneeeneswnene +eenwnenenenenenenwneesenenesenenwnwsesw +swesweswnwnewenwnwnwwnwwenwwwnwnw +seewsenwswswswseseseseseseseswseswswsese +neeenewsewneneneseweeneneenenwne +nenwnwnwnwneeenwnenwnenenwswnenenwwne +swswwswswewswswwswswswswswswswswswsw +eseseseseseseesewenwseswseeesesese +nwnwnwsenwnenwnwwnwnwnwnwnwnenwnenene +esweenwneeeeseenw +sesenwseseesesesesesesesesesesesesesenw +wwwwnwwnewwwwwwwnwwse +swnwewnwneeswweneeeseeenenenenene +newenewnenesewswnenwsenenwsenwenenw +seneseseseseseeswseseseswseswnwswseseswse +nwwwwwwwwwwswwwnewwwnwwnw +eenwsweewswnwewnwseswswswwwsesw +eeneneneeneenenesweneneeeeenwne +nenewnenewneneneneneneseenenwnenwnenene +weeenweneeneeeneneeneeeeesee +nenwneneeesenwswsewnewwnesweenesene +wswnewneseswsenwsesewnwswsenenesewsw +swswswnwnwwswsewnenewnesesww +nwwenwnwwnwnwwnwseneenwwnwsew +seeseseseseswseseseseseseseswsesenwswnwnw +sewwwwswwewwwwswwwswwneswsewne +seneseneneenenesenwnenesenwnenewwenene +nenenenenenenwnesenenenenw +swwswswswswweweswwswswswwwwwenw +wwwsenwswswswwewwwswwwswwneww +wwwwwsewsewwswnwwnwwnwsewwww +eeneswswnwewweeneesweee +eneswswwswswswswswswwnwswwswwwswse +swseseseseswnwseseseseneswswswswsesesesw +swseseseseswsewswseseswsesenesesesesese +neeeweeneeenesweeneeewesenene +nwswswswseswswswseswsenwseseswseseswswsw +swneeseneneneenwenweeeeewnenene +wwsesweswnwwwwwwenwwsewnwnwne +swswseseswswsewswseeswsese +wwwwswswswwwswswnwewwswswwwsw +swwsweswwswewewwwswnwewwww +esenwsewsenesweseesenweesee +eneeeeseeseeeneswweneseenewwe +swnwswswswswswswswswswswswswswswswswswesw +eneeseeesesesenwwenwsese +neeneneeesweeneeneneeeneeenenenw +wsenwwwswwwwnwnewwnwnwwwnwwww +neseeneneneeneneneneneenweneeeee +nwneswwswwswnwenwwneneseeseseswwswnw +nwnwnwnenwnwnwewnwwsenwnwnwnwnwnwnwnwne +ewwnewseenwwnwew +nwnenenenenewnenwnenwneneenenwnenenwnw +nenwnwnewnwnwnwwsewsew +eseeseeeeeeseeeeew +seseeseeseseswnwsenwsesenwsesesesenwsenwse +wnwenwnwenwnwsewnwnewnwneswwewswsw +neneneneneneswnenenewnenwnenenenwnesene +sesesesesesesenweswseseseseseesesesesese +enweeeeeeseseeeeenweeeeese +sesesesenewseseneseseneseseseswsesesewse +seswswseweswnwswnweseswneswwswswswse +wsenwwnwwwwww +nwsewwnwwswwnewnewwwwwswww +newwwsewwnwnewwwswswwwswwwsw +sesenwneneswseswesewseseeneseeswnwnw +nwseseseeseswseseeeseseswsenwesenese +nwnwswswswewswewsewswwsw +sesenwseseseseneseseeswseneseswseswwsese +ewwwsewwwwewwnwwwnwwwww +eeswneenweeenwseeeesweenweee +wswseesweswswnwswwwswewswneswswsw +swseseseswsweswwseeseseswswnwsenweswse +seseswwseseswseswswseseseswnesesesesesesw +swneswswnewenwnesewnesewnenenwseeene +nwenwnwnwnwwnwnwnwswnwnwsenwnwnwnwsenw +wnwenwneswseesee +eeeenweseseeesweeeeeeenwnw +swswswswswswsesweswswswswnwswswswswswswsw +nwwewwwwwwewwwwwew +nenenwnwswnwnwnwnwnwnenenenwnwnwenwnenwnw +neewnenewnwnenenwsenwe +sesewsenwseseenwnwswene +nenwnwenenesenenewneswnenenenesenw +eeeseeesenweeenwenweeeneese +wnewswnwwwwwswwswseswswnewwwnew +sesesesesewseseesenesesesw +nenenesenenenenenenwneenene +swsesesesenesewseseseseswsesesesesesene +neeneeeneeneneenenweeeesee +senwnwnwnwenenenwnwnwswnw +swswneswswneswswwwswwswswswswswwsww +wwwwwwsewwwwwwwwwnewnwsew +eeseesesewneeeseseseseeeeesesese +neswnenwswswwswsenesweswwswswsweswswsw +swseswwwwnwswsenwwwwewwwnesww +neeseeswnwnwsweswe +wenwnwnewnwnwsenwnenenwnwsenwnwswnwnwne +eweswneeesesesenwneeseeesesesewsee +nwneswneenwnwnenwnwnwnenwnwnwnwnwnwnenw +swseseseswswneswnwwseseseseswsesesesesese +nenwnewenenwneswsenenenenwnenewsenenenw +nwnwnenwnwnwnwwnwnwnwnenwnwse +esesewsenweseseseeneseee +swsesenweeeeeenwneeeeesweeswe +nwnwnwwswewsewwwwnwsewwwnwwe +nwnwenwnwwnwnwnwnwnwwnwnwnwnwwwwwe +nwwesweewsesenwsenewnwswnwsenwswsesw +nesenenwnenenenenenwswnenenwnwnenwnew +seneewnwnesweseneenwnenewnenenene +nenenenwneswnwnenenwnwwenwenenenwnwnenw +nwnwenwnwnwnwnwnwnwnwnwnwnwnwnwswnwww +nenenenenenenenenewneswneneneenenene +swnwenwnwnwswnenwnenewwweseeseewswne +eeenweeneesweeeeeeeneeee +eeneeneweneee +wseswenewseeneenwneneseenwwesesw +nwnwnwnwnwenwwnwnwnwwwnwwnwnwnwwnw +nesewswswsesewesweswswseseswswnwnene +nwswswnwwnewwwsesesenwesewswnese +wwwsewnenwsewwswswswwnwwsewewsw +eswsesewseseneswwseesenenwnwnweswseswse +swswwswswseswswswswswswswswswswswswneswsw +nwneseseswwnesewsenwswnenewsene +wswswswnwswswswswswswswswsweswswseswnesw +senesenesewseeewseseswsesesesenesesese diff --git a/2020/day24/test b/2020/day24/test new file mode 100644 index 0000000..3dc2f67 --- /dev/null +++ b/2020/day24/test @@ -0,0 +1,20 @@ +sesenwnenenewseeswwswswwnenewsewsw +neeenesenwnwwswnenewnwwsewnenwseswesw +seswneswswsenwwnwse +nwnwneseeswswnenewneswwnewseswneseene +swweswneswnenwsewnwneneseenw +eesenwseswswnenwswnwnwsewwnwsene +sewnenenenesenwsewnenwwwse +wenwwweseeeweswwwnwwe +wsweesenenewnwwnwsenewsenwwsesesenwne +neeswseenwwswnwswswnw +nenwswwsewswnenenewsenwsenwnesesenew +enewnwewneswsewnwswenweswnenwsenwsw +sweneswneswneneenwnewenewwneswswnese +swwesenesewenwneswnwwneseswwne +enesenwswwswneneswsenwnewswseenwsese +wnwnesenesenenwwnenwsewesewsesesew +nenewswnwewswnenesenwnesewesw +eneswnwswnwsenenwnwnwwseeswneewsenese +neswnwewnwnwseenwseesewsenwsweewe +wseweeenwnesenwwwswnew diff --git a/2020/day25/day25.c b/2020/day25/day25.c new file mode 100644 index 0000000..8c9ff5f --- /dev/null +++ b/2020/day25/day25.c @@ -0,0 +1,51 @@ +#include +#include +#include + +#define MODULO 20201227UL +#define PUB1 3248366UL +#define PUB2 4738476UL + +unsigned long modexp(unsigned long a, unsigned long b, unsigned long n) { + if (b == 0) { + return (n == 1) ? 0 : 1; + } + if (b == 1) { + return a % n; + } + if (b % 2 == 0) { + unsigned long c = modexp(a, b / 2, n); + return (c * c) % n; + } + return (a * modexp(a, b - 1, n)) % n; +} + +unsigned long discrete_logarithm(unsigned long a, unsigned long b, + unsigned long n) { + unsigned long m = ceil(sqrt(n)); + unsigned long *table = calloc(n, sizeof(unsigned long)); + + for (size_t j = 0; j < m; ++j) { + table[modexp(a, j, n)] = j; + } + unsigned long t = modexp(a, n - m - 1, n); + + unsigned long res = 0; + unsigned long c = b; + for (size_t i = 0; i < m; ++i) { + if (table[c] != 0) { + res = table[c] + i * m; + break; + } + c = (c * t) % n; + } + free(table); + return res; +} + +int main(int argc, char *argv[]) { + unsigned long priv1 = discrete_logarithm(7, PUB1, MODULO); + printf("%lu\n", modexp(PUB2, priv1, MODULO)); + + return EXIT_SUCCESS; +} diff --git a/2020/day25/day25.rkt b/2020/day25/day25.rkt new file mode 100644 index 0000000..11da053 --- /dev/null +++ b/2020/day25/day25.rkt @@ -0,0 +1,36 @@ +#lang racket/base + +(module+ test + (require rackunit)) + +(define (modular-expt a b n) + (if (= b 0) + (if (= 1 n) 0 1) + (let loop ([b b]) + (cond + [(= b 1) (modulo a n)] + [(even? b) (define c (loop (quotient b 2))) + (modulo (* c c) n)] + [else (modulo (* a (loop (sub1 b))) n)])))) + +;; https://en.wikipedia.org/wiki/Baby-step_giant-step +(define (discrete-logarithm a b n) + (define m (inexact->exact (ceiling (sqrt n)))) + (define h (for/hash ([j (in-range m)]) + (values (modular-expt a j n) j))) + (define t (modular-expt a (- n m 1) n)) + (let loop ([c b] + [i 0]) + (if (hash-has-key? h c) + (+ (hash-ref h c) (* i m)) + (loop (modulo (* c t) n) (add1 i))))) + +(define (part1 public1 public2) + (define private1 (discrete-logarithm 7 public1 20201227)) + (modular-expt public2 private1 20201227)) + +(module+ test + (check-equal? (part1 5764801 17807724) 14897079)) + +(module+ main + (displayln (part1 3248366 4738476))) diff --git a/2020/day25/input b/2020/day25/input new file mode 100644 index 0000000..2e0c587 --- /dev/null +++ b/2020/day25/input @@ -0,0 +1,2 @@ +3248366 +4738476 diff --git a/2021/.gitignore b/2021/.gitignore new file mode 100644 index 0000000..cd78db9 --- /dev/null +++ b/2021/.gitignore @@ -0,0 +1,4 @@ +*\~ +a.out +.gdb_history +*.link diff --git a/2021/README.md b/2021/README.md new file mode 100644 index 0000000..602e9d5 --- /dev/null +++ b/2021/README.md @@ -0,0 +1,3 @@ +# Advent of Code 2021 + +My answers for [Advent of Code 2021](https://adventofcode.com/2021). diff --git a/2021/day01/day01.bqn b/2021/day01/day01.bqn new file mode 100644 index 0000000..1c06bb8 --- /dev/null +++ b/2021/day01/day01.bqn @@ -0,0 +1,5 @@ +a←•BQN¨•Flines"input" +# Fn←{+´(¯1⊸↓<1⊸↓)+˝˘ 𝕨↕𝕩} +Fn←{+´0>𝕨↓⌽𝕩-𝕨⌽𝕩} +•Show 1 Fn a # part 1 +•Show 3 Fn a # part 2 diff --git a/2021/day01/day01.c b/2021/day01/day01.c new file mode 100644 index 0000000..37bb644 --- /dev/null +++ b/2021/day01/day01.c @@ -0,0 +1,23 @@ +#include + +int main(void) +{ + int buf[5000] = {0}; + int count = 0; + while (scanf("%d\n", &buf[count++]) != EOF); + count--; + + int part1 = 0; + for (int i = 1; i < count; ++i) { + part1 += buf[i] > buf[i - 1]; + } + printf("%d\n", part1); + + int part2 = 0; + for (int i = 3; i < count; ++i) { + part2 += buf[i] > buf[i-3]; + } + printf("%d\n", part2); + + return 0; +} diff --git a/2021/day01/day01.scm b/2021/day01/day01.scm new file mode 100644 index 0000000..2cd5d46 --- /dev/null +++ b/2021/day01/day01.scm @@ -0,0 +1,13 @@ +(import (chicken io) srfi-1) + +(define (read-input #!optional (port (current-input-port))) + (map string->number + (read-lines port))) + +(define (part1 l) (count < l (cdr l))) + +(define (part2 l) (count < l (cdddr l))) + +(let ((in (read-input))) + (print (part1 in)) + (print (part2 in))) diff --git a/2021/day01/day01_golf.c b/2021/day01/day01_golf.c new file mode 100644 index 0000000..bb30d30 --- /dev/null +++ b/2021/day01/day01_golf.c @@ -0,0 +1,7 @@ +b[5000],p,q,n,i; +main(){ +for(;~scanf("%d",b+n++);); +for(i=n-2;i--;)p+=b[i+1]>b[i]; +for(i=n-4;i--;)q+=b[i+3]>b[i]; +printf("%d %d",p,q); +} diff --git a/2021/day01/day01_r7rs.scm b/2021/day01/day01_r7rs.scm new file mode 100644 index 0000000..05b1103 --- /dev/null +++ b/2021/day01/day01_r7rs.scm @@ -0,0 +1,25 @@ +(cond-expand + (r7rs) + (chicken (import r7rs))) + +(import (scheme base) + (scheme write) + (scheme cxr) + (srfi 1)) + +(define (read-input) + (let lp ((lines '())) + (if (and (not (null? lines)) (eof-object? (car lines))) + (map string->number (reverse (cdr lines))) + (lp (cons (read-line (current-input-port)) lines))))) + +(define (part1 l) (count < l (cdr l))) + +(define (part2 l) (count < l (cdddr l))) + +(let ((in (read-input))) + (write (part1 in)) + (newline) + (write (part2 in)) + (newline)) + diff --git a/2021/day01/input b/2021/day01/input new file mode 100644 index 0000000..3f5fd3b --- /dev/null +++ b/2021/day01/input @@ -0,0 +1,2000 @@ +100 +125 +124 +127 +141 +145 +160 +161 +178 +185 +193 +196 +195 +200 +212 +216 +222 +244 +274 +276 +279 +307 +309 +325 +332 +336 +338 +339 +359 +378 +380 +381 +386 +388 +417 +418 +432 +458 +459 +462 +463 +467 +468 +480 +482 +486 +495 +510 +518 +526 +528 +539 +537 +536 +537 +545 +564 +566 +567 +571 +580 +595 +602 +596 +605 +618 +630 +631 +633 +632 +634 +645 +657 +673 +693 +694 +705 +721 +722 +743 +744 +753 +754 +755 +756 +757 +772 +775 +812 +801 +811 +812 +813 +816 +806 +807 +808 +825 +837 +838 +833 +825 +827 +826 +818 +808 +825 +828 +834 +836 +839 +859 +879 +870 +875 +886 +889 +894 +897 +898 +901 +904 +942 +955 +965 +983 +982 +984 +985 +987 +984 +1005 +1012 +1024 +1033 +1036 +1048 +1052 +1058 +1070 +1078 +1080 +1079 +1094 +1102 +1104 +1110 +1122 +1117 +1118 +1107 +1108 +1118 +1133 +1138 +1165 +1167 +1172 +1169 +1179 +1193 +1157 +1164 +1165 +1167 +1170 +1178 +1179 +1180 +1188 +1187 +1188 +1202 +1201 +1200 +1206 +1213 +1214 +1213 +1219 +1220 +1223 +1233 +1235 +1237 +1245 +1246 +1250 +1251 +1256 +1263 +1268 +1271 +1294 +1295 +1308 +1311 +1314 +1317 +1321 +1332 +1336 +1337 +1327 +1330 +1310 +1319 +1323 +1325 +1356 +1353 +1370 +1372 +1397 +1410 +1413 +1425 +1428 +1432 +1440 +1443 +1452 +1451 +1455 +1456 +1457 +1461 +1462 +1463 +1464 +1456 +1467 +1470 +1471 +1474 +1492 +1478 +1492 +1498 +1508 +1516 +1515 +1516 +1519 +1520 +1509 +1510 +1521 +1526 +1528 +1533 +1536 +1547 +1560 +1571 +1589 +1586 +1589 +1591 +1597 +1598 +1605 +1613 +1615 +1617 +1618 +1642 +1632 +1628 +1638 +1641 +1640 +1657 +1669 +1675 +1690 +1714 +1715 +1716 +1715 +1717 +1740 +1741 +1743 +1741 +1746 +1759 +1766 +1772 +1773 +1792 +1793 +1795 +1827 +1832 +1833 +1834 +1846 +1867 +1868 +1872 +1877 +1878 +1876 +1878 +1881 +1883 +1886 +1904 +1920 +1921 +1924 +1929 +1955 +1956 +1961 +1962 +1968 +1971 +1968 +1955 +1973 +1974 +1991 +1984 +1989 +1990 +1987 +1991 +1998 +2002 +2005 +1989 +1986 +1985 +1987 +1991 +2011 +2014 +2019 +2021 +2022 +2033 +2039 +2044 +2046 +2045 +2056 +2060 +2062 +2058 +2063 +2072 +2073 +2075 +2100 +2124 +2131 +2143 +2145 +2153 +2155 +2154 +2156 +2157 +2158 +2174 +2197 +2187 +2188 +2192 +2194 +2195 +2205 +2206 +2208 +2210 +2211 +2222 +2227 +2229 +2230 +2240 +2245 +2246 +2243 +2244 +2261 +2262 +2263 +2258 +2261 +2263 +2284 +2294 +2295 +2294 +2289 +2290 +2293 +2294 +2295 +2290 +2319 +2323 +2324 +2332 +2336 +2340 +2373 +2374 +2375 +2377 +2408 +2417 +2422 +2442 +2443 +2444 +2447 +2448 +2465 +2467 +2468 +2485 +2486 +2489 +2504 +2505 +2506 +2529 +2530 +2531 +2557 +2563 +2579 +2582 +2583 +2595 +2629 +2634 +2638 +2635 +2640 +2643 +2653 +2658 +2656 +2657 +2658 +2660 +2662 +2670 +2679 +2672 +2685 +2688 +2699 +2695 +2696 +2714 +2698 +2702 +2703 +2707 +2711 +2718 +2719 +2727 +2742 +2758 +2759 +2768 +2769 +2773 +2787 +2801 +2810 +2811 +2805 +2806 +2811 +2812 +2815 +2848 +2850 +2856 +2845 +2855 +2866 +2874 +2885 +2887 +2877 +2878 +2879 +2880 +2887 +2888 +2892 +2899 +2900 +2891 +2901 +2900 +2876 +2885 +2893 +2921 +2923 +2925 +2940 +2945 +2947 +2950 +2944 +2947 +2949 +2950 +2958 +2959 +2961 +2957 +2958 +2959 +2963 +2959 +2966 +2976 +2985 +2986 +2987 +2993 +2994 +3005 +3008 +3010 +3011 +3028 +3032 +3035 +3036 +3059 +3060 +3061 +3060 +3065 +3069 +3115 +3123 +3129 +3130 +3128 +3126 +3123 +3124 +3120 +3124 +3134 +3138 +3143 +3145 +3149 +3188 +3196 +3203 +3201 +3203 +3204 +3206 +3208 +3214 +3201 +3220 +3236 +3237 +3259 +3260 +3274 +3276 +3283 +3280 +3282 +3301 +3313 +3319 +3326 +3338 +3339 +3341 +3345 +3331 +3335 +3363 +3364 +3369 +3364 +3371 +3370 +3388 +3390 +3398 +3399 +3398 +3387 +3394 +3395 +3396 +3404 +3408 +3416 +3414 +3437 +3451 +3453 +3455 +3477 +3481 +3482 +3489 +3488 +3486 +3501 +3510 +3520 +3538 +3561 +3564 +3570 +3583 +3563 +3565 +3566 +3567 +3569 +3573 +3575 +3576 +3584 +3593 +3569 +3585 +3586 +3585 +3591 +3593 +3596 +3597 +3592 +3611 +3614 +3620 +3621 +3637 +3641 +3642 +3648 +3660 +3667 +3664 +3678 +3687 +3703 +3715 +3725 +3730 +3731 +3738 +3739 +3740 +3754 +3756 +3760 +3768 +3772 +3775 +3779 +3809 +3816 +3806 +3807 +3806 +3811 +3813 +3820 +3819 +3820 +3822 +3827 +3828 +3826 +3836 +3837 +3838 +3832 +3833 +3835 +3836 +3839 +3849 +3853 +3854 +3862 +3868 +3871 +3872 +3877 +3878 +3881 +3910 +3911 +3912 +3913 +3925 +3926 +3958 +3961 +3964 +3977 +3995 +4001 +3997 +3981 +3960 +3961 +3954 +3964 +3963 +3968 +3964 +3965 +3980 +3984 +3985 +3986 +3991 +3998 +4008 +4015 +4019 +4020 +4023 +4040 +4055 +4061 +4064 +4074 +4078 +4079 +4078 +4086 +4101 +4102 +4104 +4106 +4109 +4107 +4113 +4112 +4120 +4108 +4116 +4118 +4119 +4130 +4123 +4135 +4132 +4133 +4136 +4109 +4088 +4090 +4091 +4092 +4094 +4099 +4102 +4113 +4131 +4130 +4151 +4152 +4153 +4157 +4161 +4180 +4182 +4186 +4192 +4223 +4218 +4219 +4220 +4246 +4255 +4259 +4257 +4258 +4274 +4293 +4294 +4303 +4305 +4316 +4314 +4315 +4324 +4330 +4317 +4318 +4331 +4332 +4376 +4379 +4388 +4396 +4399 +4403 +4405 +4401 +4409 +4415 +4419 +4421 +4427 +4428 +4446 +4447 +4448 +4456 +4467 +4483 +4484 +4486 +4495 +4496 +4503 +4516 +4517 +4521 +4523 +4532 +4536 +4555 +4557 +4563 +4564 +4565 +4577 +4579 +4576 +4577 +4581 +4598 +4600 +4620 +4623 +4624 +4627 +4630 +4645 +4646 +4658 +4668 +4671 +4682 +4665 +4702 +4701 +4705 +4712 +4716 +4715 +4716 +4720 +4726 +4741 +4760 +4765 +4760 +4761 +4764 +4755 +4756 +4757 +4758 +4759 +4761 +4767 +4768 +4769 +4776 +4774 +4775 +4780 +4782 +4780 +4781 +4782 +4785 +4795 +4788 +4793 +4800 +4812 +4830 +4832 +4831 +4832 +4833 +4846 +4849 +4845 +4849 +4853 +4866 +4870 +4898 +4900 +4904 +4905 +4907 +4909 +4910 +4911 +4906 +4866 +4868 +4881 +4882 +4894 +4898 +4900 +4913 +4914 +4918 +4926 +4925 +4926 +4918 +4933 +4925 +4932 +4933 +4939 +4940 +4946 +4947 +4957 +4958 +4960 +4961 +4963 +4968 +4969 +4963 +4964 +4966 +4946 +4950 +4974 +4975 +4978 +4980 +4983 +4985 +5005 +4990 +5002 +5026 +5021 +5039 +5052 +5025 +5024 +5023 +5026 +5037 +5045 +5056 +5058 +5059 +5060 +5040 +5047 +5050 +5079 +5081 +5086 +5088 +5064 +5067 +5068 +5083 +5097 +5102 +5101 +5087 +5090 +5089 +5088 +5090 +5092 +5104 +5109 +5111 +5116 +5113 +5114 +5103 +5120 +5122 +5117 +5104 +5126 +5127 +5128 +5121 +5123 +5124 +5127 +5129 +5131 +5132 +5137 +5141 +5164 +5178 +5184 +5196 +5211 +5210 +5218 +5219 +5250 +5251 +5260 +5250 +5256 +5253 +5251 +5243 +5244 +5245 +5256 +5261 +5262 +5266 +5269 +5270 +5276 +5291 +5299 +5300 +5315 +5317 +5320 +5321 +5322 +5324 +5333 +5330 +5359 +5362 +5383 +5386 +5389 +5391 +5412 +5413 +5415 +5438 +5439 +5441 +5459 +5460 +5459 +5465 +5461 +5463 +5466 +5470 +5467 +5477 +5483 +5485 +5486 +5487 +5490 +5518 +5537 +5546 +5556 +5576 +5574 +5582 +5583 +5587 +5583 +5584 +5589 +5590 +5600 +5601 +5602 +5604 +5605 +5606 +5607 +5617 +5604 +5609 +5596 +5597 +5601 +5607 +5612 +5613 +5625 +5627 +5640 +5642 +5651 +5655 +5651 +5655 +5656 +5680 +5683 +5684 +5687 +5689 +5691 +5696 +5706 +5708 +5729 +5748 +5749 +5753 +5757 +5772 +5773 +5783 +5785 +5783 +5784 +5785 +5786 +5785 +5787 +5808 +5801 +5803 +5810 +5818 +5823 +5829 +5832 +5826 +5839 +5841 +5844 +5846 +5847 +5860 +5862 +5872 +5869 +5854 +5865 +5866 +5870 +5872 +5875 +5911 +5924 +5937 +5947 +5965 +5969 +5971 +5976 +5974 +5976 +5960 +5962 +5963 +5965 +5975 +5976 +5985 +5986 +5981 +5990 +5993 +5982 +5989 +5990 +5994 +6015 +6020 +6030 +6041 +6012 +6014 +6035 +6040 +6016 +6038 +6061 +6047 +6052 +6055 +6057 +6072 +6094 +6099 +6104 +6112 +6110 +6126 +6125 +6135 +6152 +6161 +6169 +6172 +6187 +6197 +6198 +6206 +6207 +6205 +6204 +6202 +6205 +6200 +6202 +6206 +6223 +6224 +6231 +6237 +6241 +6271 +6272 +6273 +6281 +6277 +6282 +6283 +6298 +6305 +6307 +6333 +6334 +6340 +6341 +6342 +6343 +6336 +6342 +6343 +6348 +6355 +6375 +6388 +6389 +6391 +6416 +6417 +6418 +6419 +6428 +6462 +6463 +6464 +6465 +6432 +6443 +6444 +6446 +6451 +6453 +6472 +6470 +6483 +6484 +6495 +6485 +6489 +6490 +6466 +6462 +6468 +6461 +6462 +6458 +6461 +6475 +6499 +6502 +6504 +6506 +6512 +6527 +6528 +6540 +6542 +6545 +6565 +6566 +6585 +6592 +6597 +6598 +6599 +6613 +6622 +6626 +6637 +6639 +6657 +6672 +6679 +6684 +6687 +6684 +6721 +6722 +6725 +6727 +6728 +6730 +6732 +6751 +6756 +6763 +6764 +6779 +6807 +6817 +6822 +6824 +6826 +6821 +6823 +6838 +6834 +6835 +6837 +6843 +6862 +6863 +6864 +6865 +6835 +6839 +6844 +6845 +6884 +6885 +6895 +6904 +6905 +6908 +6909 +6914 +6916 +6917 +6920 +6921 +6920 +6921 +6934 +6913 +6917 +6928 +6930 +6931 +6941 +6944 +6957 +6959 +6967 +6970 +6971 +6973 +6984 +6986 +6987 +6990 +6993 +6994 +7018 +7019 +7026 +7028 +7044 +7048 +7051 +7053 +7052 +7050 +7053 +7056 +7030 +7044 +7043 +7055 +7067 +7068 +7083 +7065 +7066 +7082 +7084 +7088 +7079 +7078 +7080 +7081 +7083 +7086 +7092 +7102 +7122 +7146 +7149 +7150 +7155 +7167 +7170 +7168 +7176 +7185 +7186 +7182 +7183 +7185 +7187 +7204 +7208 +7209 +7211 +7228 +7230 +7232 +7233 +7239 +7242 +7245 +7246 +7247 +7251 +7253 +7255 +7258 +7259 +7268 +7270 +7272 +7291 +7319 +7320 +7321 +7323 +7333 +7351 +7343 +7349 +7366 +7378 +7383 +7384 +7381 +7377 +7379 +7383 +7386 +7401 +7410 +7438 +7441 +7443 +7444 +7446 +7445 +7446 +7448 +7459 +7462 +7457 +7461 +7462 +7466 +7477 +7489 +7497 +7500 +7501 +7523 +7524 +7527 +7536 +7538 +7539 +7541 +7533 +7536 +7539 +7547 +7567 +7548 +7544 +7546 +7548 +7563 +7564 +7571 +7583 +7585 +7594 +7597 +7605 +7606 +7633 +7655 +7656 +7660 +7672 +7676 +7684 +7686 +7687 +7688 +7689 +7681 +7680 +7691 +7690 +7711 +7725 +7726 +7729 +7741 +7744 +7745 +7772 +7773 +7786 +7782 +7783 +7788 +7794 +7795 +7803 +7804 +7813 +7817 +7848 +7858 +7849 +7856 +7858 +7860 +7859 +7877 +7878 +7879 +7901 +7931 +7935 +7937 +7944 +7945 +7949 +7954 +7955 +7953 +7956 +7968 +7970 +7973 +7974 +7971 +7975 +7991 +7989 +7994 +7985 +7988 +8002 +8008 +8015 +8019 +8029 +8028 +8052 +8057 +8051 +8063 +8065 +8064 +8069 +8082 +8093 +8098 +8105 +8104 +8109 +8103 +8119 +8130 +8153 +8165 +8157 +8159 +8176 +8168 +8173 +8171 +8162 +8176 +8182 +8190 +8208 +8212 +8213 +8214 +8220 +8222 +8209 +8194 +8220 +8221 +8242 +8252 +8255 +8252 +8231 +8239 +8236 +8237 +8242 +8244 +8245 +8246 +8261 +8280 +8281 +8282 +8288 +8289 +8283 +8287 +8288 +8299 +8303 +8305 +8318 +8319 +8328 +8331 +8344 +8346 +8371 +8377 +8388 +8405 +8414 +8415 +8416 +8396 +8364 +8352 +8353 +8362 +8363 +8369 +8375 +8382 +8403 +8405 +8407 +8406 +8411 +8419 +8423 +8427 +8433 +8434 +8439 +8442 +8447 +8436 +8442 +8443 +8451 +8452 +8472 +8473 +8499 +8504 +8496 +8481 +8484 +8511 +8503 +8506 +8513 +8517 +8522 +8525 +8524 +8527 +8532 +8551 +8552 +8554 +8555 +8558 +8567 +8568 +8570 +8571 +8573 +8574 +8577 +8578 +8579 +8586 +8596 +8597 +8616 +8617 +8620 +8624 +8625 +8627 +8629 +8642 +8643 +8648 +8662 +8664 +8665 +8679 +8686 +8685 +8711 +8714 +8718 +8720 +8724 +8726 +8735 +8736 +8777 +8778 +8780 +8783 +8779 +8788 +8789 +8825 +8827 +8837 +8871 +8873 +8874 +8881 +8898 +8902 +8871 +8884 +8885 +8889 +8915 +8909 +8910 +8912 +8915 +8914 +8922 +8927 +8941 +8979 +8974 +8987 +8974 +8981 +8975 +9004 +9008 +9011 +9025 +9027 +9028 +9030 +9043 +9057 +9072 +9078 +9084 +9088 +9091 +9095 +9101 +9105 +9114 +9123 +9134 +9174 +9171 +9172 +9173 +9171 +9179 +9183 +9188 +9190 +9196 +9197 +9198 +9202 +9210 +9231 +9232 +9243 +9256 +9257 +9259 +9263 +9265 +9264 +9258 +9273 +9282 +9285 +9269 +9274 +9262 +9261 +9270 +9284 +9285 +9286 +9289 +9290 +9291 +9293 +9282 +9285 +9286 +9289 +9287 +9289 +9291 +9289 +9290 +9299 +9302 +9316 +9317 +9342 +9337 +9339 +9340 +9341 +9342 +9371 +9373 +9374 +9373 +9374 +9376 +9384 +9390 +9423 +9424 +9427 +9429 +9430 +9431 +9432 +9434 +9465 +9473 +9474 +9478 +9482 +9483 +9485 +9469 +9471 +9441 +9457 +9467 +9462 +9474 +9475 +9481 +9475 +9476 +9479 +9482 +9484 +9493 +9500 +9506 +9509 +9510 +9511 +9524 +9529 +9558 +9571 +9576 +9579 +9581 +9582 +9587 +9594 +9618 +9638 +9646 +9649 +9650 +9649 +9655 +9646 +9648 +9652 +9665 +9659 +9697 +9703 +9733 +9750 +9751 +9753 +9754 +9755 +9761 +9762 +9766 +9784 +9789 +9766 +9767 +9768 +9771 +9785 +9789 +9792 +9807 +9821 +9823 +9830 +9844 +9847 +9857 +9858 +9860 +9873 +9870 +9873 +9887 +9880 +9878 +9891 +9893 +9894 +9896 +9902 +9911 +9920 +9931 +9963 +9972 +9974 +9973 +9974 +9976 +9990 +9989 +9996 +9995 +10024 +10025 +10026 +10028 +10040 +10041 +10040 +10041 +10044 diff --git a/2021/day02/day02.awk b/2021/day02/day02.awk new file mode 100644 index 0000000..c3e3965 --- /dev/null +++ b/2021/day02/day02.awk @@ -0,0 +1,6 @@ +/down/ {aim += $2} +/up/ {aim -= $2} +/forward/ {pos += $2; depth += aim * $2} +END {print pos * aim, pos * depth} +# one-liner +# /^d/{a+=$2}/u/{a-=$2}/f/{p+=$2;d+=a*$2}END{print p*a,p*d} diff --git a/2021/day02/day02.c b/2021/day02/day02.c new file mode 100644 index 0000000..e7269c3 --- /dev/null +++ b/2021/day02/day02.c @@ -0,0 +1,32 @@ +#include + +int main() { + char instr[9] = {0}; + int n = 0; + + int pos = 0; + int depth = 0; + int aim = 0; + + while (scanf("%s %d\n", instr, &n) == 2) { + switch (instr[0]) { + case 'd': + aim += n; + break; + case 'u': + aim -= n; + break; + case 'f': + pos += n; + depth += aim * n; + break; + default: + fprintf(stderr, "unknown instruction: %s", instr); + break; + } + } + printf("%d\n", pos * aim); + printf("%d\n", pos * depth); + + return 0; +} diff --git a/2021/day02/day02.scm b/2021/day02/day02.scm new file mode 100644 index 0000000..2fde495 --- /dev/null +++ b/2021/day02/day02.scm @@ -0,0 +1,30 @@ +(import (chicken io) + srfi-1 + srfi-152 + matchable) + +(define (read-input #!optional (port (current-input-port))) + (map (lambda (s) (let ((l (string-split s " "))) + (list (string->symbol (car l)) + (string->number (cadr l))))) + (read-lines port))) + +(define (move steps pos depth aim) + (match steps + (() (values pos depth aim)) + ((('down n) . rest) (move rest pos depth (+ aim n))) + ((('up n) . rest) (move rest pos depth (- aim n))) + ((('forward n) . rest) (move rest (+ pos n) (+ depth (* aim n)) aim)) + (_ (error "unknown instruction" (car steps))))) + +(define (part1 l) + (let-values (((pos depth aim) (move l 0 0 0))) + (* pos aim))) + +(define (part2 l) + (let-values (((pos depth aim) (move l 0 0 0))) + (* pos depth))) + +(let ((in (read-input))) + (print (part1 in)) + (print (part2 in))) diff --git a/2021/day02/day02_golf.c b/2021/day02/day02_golf.c new file mode 100644 index 0000000..42ea37f --- /dev/null +++ b/2021/day02/day02_golf.c @@ -0,0 +1 @@ +c,n,p,d,a;main(){while(scanf("%c%*s%d\n",&c,&n)>1)c^'d'?a+=n:c^'f'?p+=n,d+=a*n:a-=n;printf("%d %d",p*a,p*d);} diff --git a/2021/day02/input b/2021/day02/input new file mode 100644 index 0000000..7834464 --- /dev/null +++ b/2021/day02/input @@ -0,0 +1,1000 @@ +forward 8 +forward 9 +forward 9 +down 3 +forward 9 +down 1 +down 7 +down 7 +down 4 +down 2 +down 6 +down 6 +down 2 +forward 6 +forward 6 +forward 2 +forward 2 +forward 7 +forward 6 +up 6 +up 8 +forward 5 +forward 4 +down 6 +forward 7 +down 5 +forward 5 +down 8 +down 8 +down 7 +forward 4 +down 2 +forward 7 +up 8 +forward 3 +down 2 +forward 1 +up 3 +forward 3 +up 1 +down 3 +up 7 +up 2 +down 4 +down 2 +forward 9 +forward 3 +down 8 +forward 5 +up 9 +up 4 +forward 9 +down 1 +forward 6 +down 3 +forward 8 +up 2 +forward 3 +up 7 +down 4 +forward 2 +forward 7 +forward 3 +down 1 +down 3 +up 5 +forward 6 +down 5 +down 4 +down 8 +down 2 +up 5 +forward 7 +up 8 +forward 2 +down 5 +forward 3 +up 1 +up 5 +down 8 +down 3 +forward 4 +forward 4 +forward 1 +up 8 +down 9 +forward 7 +forward 9 +down 5 +up 3 +down 9 +up 6 +forward 1 +forward 3 +forward 5 +down 5 +forward 6 +down 3 +down 8 +forward 3 +forward 5 +forward 7 +forward 6 +down 9 +down 5 +down 6 +down 5 +down 1 +down 8 +forward 3 +down 9 +down 5 +down 5 +forward 9 +forward 2 +down 7 +forward 9 +forward 9 +up 1 +forward 3 +up 9 +forward 5 +forward 7 +down 7 +forward 2 +up 8 +up 6 +down 7 +down 3 +down 5 +down 2 +forward 6 +forward 6 +up 6 +up 2 +forward 4 +forward 7 +forward 1 +down 4 +up 8 +down 3 +up 1 +down 2 +forward 4 +forward 7 +up 1 +down 7 +forward 8 +up 2 +down 8 +up 4 +up 4 +up 2 +down 8 +up 4 +down 6 +up 8 +down 5 +up 5 +down 8 +forward 9 +down 1 +down 5 +forward 3 +forward 3 +up 9 +down 2 +forward 3 +down 6 +forward 1 +forward 9 +forward 3 +down 8 +up 4 +down 1 +down 8 +up 1 +forward 2 +down 7 +up 3 +up 8 +down 2 +up 6 +forward 6 +down 9 +forward 4 +forward 7 +up 9 +forward 3 +forward 2 +down 8 +down 2 +down 5 +down 5 +down 1 +up 7 +down 4 +forward 5 +down 9 +down 5 +down 1 +down 6 +forward 9 +down 6 +forward 3 +down 3 +up 6 +forward 2 +forward 6 +down 2 +down 9 +down 6 +down 1 +down 7 +down 6 +down 6 +up 1 +forward 8 +down 9 +down 6 +down 8 +down 8 +down 6 +down 3 +forward 9 +forward 6 +down 9 +forward 5 +down 6 +down 6 +down 9 +down 7 +down 3 +forward 1 +up 9 +forward 9 +down 7 +forward 4 +down 1 +forward 9 +up 9 +down 7 +forward 5 +down 3 +up 7 +forward 9 +forward 6 +forward 3 +forward 8 +down 4 +down 1 +down 7 +down 7 +up 4 +down 9 +forward 6 +forward 7 +down 8 +forward 2 +forward 2 +forward 9 +forward 6 +forward 9 +up 6 +up 8 +forward 2 +up 3 +forward 9 +forward 1 +down 4 +forward 8 +down 4 +forward 5 +forward 7 +up 2 +forward 5 +down 4 +forward 3 +down 5 +forward 9 +up 3 +forward 8 +down 7 +down 7 +down 9 +forward 2 +down 1 +down 6 +up 8 +down 2 +down 1 +up 3 +down 3 +forward 2 +forward 6 +up 6 +down 3 +up 9 +up 3 +down 8 +up 6 +down 2 +forward 4 +up 1 +down 5 +down 4 +up 9 +up 7 +forward 7 +down 9 +forward 9 +forward 5 +forward 3 +down 4 +up 6 +up 7 +down 7 +down 6 +up 9 +up 4 +down 7 +forward 7 +forward 8 +down 9 +forward 5 +forward 4 +down 5 +forward 8 +forward 5 +up 3 +down 9 +forward 1 +forward 2 +up 3 +down 2 +down 1 +forward 5 +forward 5 +forward 6 +up 2 +forward 3 +down 7 +down 6 +up 3 +down 4 +down 4 +forward 5 +down 3 +up 6 +forward 1 +up 8 +forward 7 +forward 1 +forward 9 +down 2 +up 8 +up 1 +up 4 +forward 9 +forward 3 +forward 5 +down 1 +up 9 +down 1 +forward 3 +down 6 +down 8 +up 4 +forward 6 +up 7 +down 8 +forward 9 +up 2 +down 7 +down 1 +forward 9 +up 7 +forward 3 +forward 9 +forward 1 +forward 1 +down 9 +forward 1 +up 4 +down 5 +forward 4 +down 1 +forward 4 +forward 9 +up 4 +down 3 +down 6 +up 2 +down 6 +down 5 +forward 5 +up 1 +up 9 +forward 8 +up 3 +down 1 +forward 3 +forward 7 +up 6 +up 3 +down 6 +forward 7 +up 6 +down 7 +forward 8 +up 4 +down 8 +up 9 +up 3 +down 3 +forward 8 +down 4 +down 9 +forward 2 +down 7 +up 1 +forward 9 +forward 5 +up 8 +forward 9 +forward 4 +forward 9 +forward 7 +down 4 +up 4 +down 7 +down 4 +down 4 +down 1 +forward 5 +forward 4 +down 1 +down 4 +down 8 +down 3 +forward 7 +forward 4 +down 1 +down 9 +up 3 +forward 2 +down 8 +down 9 +down 2 +down 5 +up 9 +down 9 +up 9 +forward 5 +forward 8 +forward 9 +down 5 +forward 6 +down 8 +down 9 +forward 8 +up 5 +up 9 +up 7 +up 8 +forward 9 +forward 1 +up 6 +down 8 +down 8 +forward 1 +up 1 +forward 8 +forward 6 +down 4 +forward 1 +down 7 +forward 8 +forward 3 +up 3 +down 4 +down 2 +forward 2 +forward 3 +up 4 +down 3 +forward 2 +down 8 +forward 7 +up 3 +down 2 +forward 2 +down 5 +up 6 +up 6 +forward 4 +up 4 +down 8 +forward 8 +down 9 +down 9 +down 6 +down 2 +forward 2 +up 6 +up 5 +forward 3 +forward 3 +up 9 +down 3 +forward 8 +down 5 +forward 5 +forward 7 +down 3 +down 4 +down 1 +down 8 +down 1 +down 1 +forward 9 +forward 3 +down 8 +down 6 +up 9 +forward 1 +forward 5 +up 9 +up 8 +forward 2 +up 8 +down 9 +up 2 +forward 5 +forward 1 +forward 8 +down 3 +forward 4 +down 5 +up 6 +forward 8 +forward 9 +forward 3 +down 1 +down 3 +down 3 +up 4 +forward 9 +down 3 +down 6 +forward 3 +forward 2 +down 6 +down 8 +forward 6 +up 8 +up 3 +up 4 +forward 2 +forward 4 +forward 4 +forward 7 +down 6 +up 8 +down 3 +forward 8 +forward 4 +down 7 +down 5 +forward 6 +forward 4 +forward 6 +down 3 +forward 3 +down 1 +down 7 +forward 3 +forward 2 +forward 7 +down 5 +up 4 +down 6 +down 9 +forward 3 +forward 5 +forward 3 +down 1 +forward 2 +up 5 +up 6 +forward 2 +down 4 +forward 3 +down 4 +down 1 +forward 8 +up 2 +down 3 +down 6 +up 5 +forward 3 +forward 6 +down 3 +forward 1 +down 7 +forward 2 +forward 1 +forward 6 +forward 5 +forward 3 +down 4 +down 8 +forward 1 +up 2 +up 8 +down 4 +forward 9 +up 6 +forward 5 +forward 7 +down 5 +forward 5 +down 1 +forward 4 +forward 5 +up 2 +forward 5 +up 8 +up 1 +forward 2 +down 4 +down 6 +forward 4 +down 2 +down 3 +forward 2 +up 3 +up 4 +forward 2 +down 6 +forward 1 +forward 4 +down 6 +forward 7 +up 2 +forward 7 +forward 6 +up 2 +forward 8 +forward 4 +forward 9 +down 1 +down 8 +forward 3 +forward 2 +down 8 +up 1 +forward 4 +down 8 +forward 2 +forward 8 +up 2 +down 1 +forward 4 +forward 2 +up 4 +up 2 +down 3 +up 8 +forward 3 +up 8 +forward 9 +up 1 +up 5 +down 5 +down 6 +forward 1 +up 5 +up 8 +forward 7 +down 5 +up 4 +forward 2 +up 4 +up 4 +down 2 +forward 6 +forward 2 +down 7 +down 5 +forward 1 +down 2 +down 5 +down 7 +up 8 +down 8 +up 5 +down 1 +forward 5 +down 2 +forward 5 +down 1 +up 7 +up 2 +forward 2 +forward 3 +forward 6 +forward 3 +down 8 +up 8 +forward 8 +forward 1 +forward 7 +up 2 +forward 9 +down 1 +forward 5 +up 9 +forward 3 +forward 7 +forward 8 +up 1 +down 3 +forward 5 +down 2 +forward 6 +forward 3 +down 9 +up 5 +forward 2 +down 4 +up 1 +forward 4 +up 4 +down 8 +down 8 +forward 3 +forward 8 +down 7 +up 3 +forward 1 +up 3 +forward 9 +forward 7 +forward 1 +down 6 +forward 3 +down 1 +down 8 +forward 5 +forward 3 +up 6 +forward 5 +forward 4 +forward 3 +forward 9 +forward 8 +down 6 +down 2 +forward 7 +forward 6 +up 6 +down 6 +down 4 +down 3 +forward 8 +down 9 +up 5 +forward 3 +forward 2 +down 5 +up 4 +down 6 +down 3 +forward 9 +down 2 +forward 9 +forward 8 +up 1 +down 2 +forward 7 +up 5 +up 6 +down 8 +up 9 +up 8 +forward 1 +forward 5 +down 9 +forward 8 +down 8 +up 1 +down 7 +forward 7 +up 3 +down 3 +down 1 +forward 2 +down 3 +forward 9 +forward 2 +down 8 +down 2 +forward 5 +down 9 +down 1 +down 5 +down 6 +up 4 +up 3 +down 1 +up 7 +forward 6 +down 3 +down 6 +up 5 +forward 8 +up 8 +down 1 +down 2 +up 8 +down 7 +forward 7 +forward 4 +down 8 +down 3 +forward 3 +down 4 +forward 3 +down 6 +forward 4 +forward 7 +forward 9 +up 7 +forward 1 +down 7 +down 8 +down 8 +up 6 +down 3 +forward 5 +forward 5 +forward 9 +forward 4 +down 4 +down 8 +down 7 +down 1 +forward 2 +forward 4 +down 3 +down 6 +down 7 +forward 5 +down 8 +down 1 +forward 4 +forward 3 +forward 1 +down 6 +down 7 +down 1 +forward 6 +down 4 +up 2 +forward 4 +down 2 +up 5 +down 2 +down 6 +up 7 +forward 4 +forward 7 +forward 9 +up 5 +down 9 +up 5 +forward 6 +down 2 +up 8 +up 9 +up 9 +forward 5 +down 2 +forward 2 +down 7 +forward 5 +forward 9 +up 8 +down 8 +forward 1 +down 2 +up 3 +forward 3 +down 5 +forward 4 +down 3 +forward 4 +forward 9 +forward 3 +down 5 +forward 4 +down 2 +forward 5 +forward 8 +up 6 +up 2 +down 3 +forward 6 +down 5 +down 4 +down 4 +down 4 +up 2 +up 2 +forward 6 +forward 2 +forward 9 +down 2 +down 9 +down 8 +forward 2 +down 3 +up 3 +forward 5 +down 4 +up 3 +forward 3 +down 1 +forward 7 +forward 5 +forward 6 +down 8 +down 5 +down 5 +down 9 +up 2 +forward 3 +down 4 +down 9 +forward 3 +forward 9 +forward 2 +forward 4 +up 6 +down 6 +up 9 +forward 8 +down 7 +forward 1 +forward 4 +up 1 +up 2 +down 9 +forward 6 +down 6 +down 1 +down 4 +down 7 +down 6 +forward 5 +up 1 +up 7 +down 2 +down 8 +down 2 +down 7 +down 3 +up 9 +down 7 +down 5 +down 6 +forward 9 +up 3 +forward 2 +down 8 +forward 4 +down 6 +forward 3 +up 3 +down 5 +up 4 +forward 6 +forward 7 +forward 9 +down 3 +forward 7 +forward 3 +down 4 +up 4 +down 8 +forward 6 +forward 7 +forward 9 +forward 4 +down 3 +up 5 +down 7 +down 7 +forward 9 diff --git a/2021/day03/day03.bqn b/2021/day03/day03.bqn new file mode 100644 index 0000000..106ae2b --- /dev/null +++ b/2021/day03/day03.bqn @@ -0,0 +1,3 @@ +in←-⟜'0'¨•FLines"input" +D2B←2⊸×⊸+˜´∘⌽ +•Show ×´D2B¨(1⊸-⋈⊢)(+´>≠÷2˙)in # part 1 diff --git a/2021/day03/day03.c b/2021/day03/day03.c new file mode 100644 index 0000000..7be44c4 --- /dev/null +++ b/2021/day03/day03.c @@ -0,0 +1,35 @@ +#include + +#define N 1000 +#define M 12 + +int main() { + char c = 0; + int i = 0, j = 0; + char in[N][M] = {0}; + + while ((c = getchar()) != EOF) { + switch (c) { + case '\n': i++; j = 0; break; + case '1': in[i][j] = 1; j++; break; + case '0': j++; break; + default: fprintf(stderr, "unknown digit %c", c); return 1; + } + } + + // Part 1 + int counts[M] = {0}; + for (i = 0; i < N; ++i) { + for (j = 0; j < M; ++j) { + counts[j] += in[i][j]; + } + } + int gamma = 0, epsilon = 0; + for (j = 0; j < M; ++j) { + gamma = (gamma << 1) + (counts[j] > N/2); + epsilon = (epsilon << 1) + (counts[j] <= N/2); + } + printf("%d\n", gamma * epsilon); + + return 0; +} diff --git a/2021/day03/day03.scm b/2021/day03/day03.scm new file mode 100644 index 0000000..99c4985 --- /dev/null +++ b/2021/day03/day03.scm @@ -0,0 +1,47 @@ +(import (chicken io) + (chicken bitwise) + srfi-1 + srfi-13) + +(define (binary-string->list s) + (map (lambda (c) (- (char->integer c) (char->integer #\0))) + (string->list s))) + +(define (list->binary-string l) + (string-concatenate (map number->string l))) + +(define (read-input #!optional (port (current-input-port))) + (map binary-string->list (read-lines port))) + +(define (part1 l) + (let* ((n (/ (length l) 2)) + (counts (apply map + l)) + (most-common (map (lambda (x) (if (> x n) 1 0)) counts)) + (gamma (string->number (list->binary-string most-common) 2)) + (epsilon (string->number (list->binary-string (map (lambda (d) (- 1 d)) most-common)) 2))) + (* gamma epsilon))) + +(define (o2-rating numbers i) + (if (= 1 (length numbers)) + (car numbers) + (let* ((digits (map (lambda (l) (list-ref l i)) numbers)) + (most-common (if (>= (apply + digits) (/ (length numbers) 2)) 1 0)) + (new-numbers (filter (lambda (n) (= (list-ref n i) most-common)) numbers))) + (o2-rating new-numbers (+ 1 i))))) + +(define (co2-rating numbers i) + (if (= 1 (length numbers)) + (car numbers) + (let* ((digits (map (lambda (l) (list-ref l i)) numbers)) + (least-common (if (>= (apply + digits) (/ (length numbers) 2)) 0 1)) + (new-numbers (filter (lambda (n) (= (list-ref n i) least-common)) numbers))) + (co2-rating new-numbers (+ 1 i))))) + +(define (part2 l) + (let ((o2 (string->number (list->binary-string (o2-rating l 0)) 2)) + (co2 (string->number (list->binary-string (co2-rating l 0)) 2))) + (* o2 co2))) + +(let ((in (read-input))) + (print (part1 in)) + (print (part2 in))) diff --git a/2021/day03/input b/2021/day03/input new file mode 100644 index 0000000..6a7de1a --- /dev/null +++ b/2021/day03/input @@ -0,0 +1,1000 @@ +101011111001 +100100110111 +101010101011 +010100010000 +001101101101 +110001101010 +001001011001 +101111101111 +110001001000 +111111000000 +111100110001 +101100010100 +000010000011 +000110000011 +101010100101 +000111001010 +100101101110 +111111010101 +110010001100 +000011001101 +001001111110 +100101001100 +000011100100 +000100110011 +000101101000 +101010011011 +101011110000 +010010110011 +110110101110 +001110000110 +001110111101 +110111100101 +000010101010 +101010101010 +011011001101 +110110000111 +011010011000 +000111000101 +100000101011 +010010101100 +110000101110 +000010001001 +101010001100 +101111110101 +101111011110 +110011100001 +011011100100 +111100011010 +110110101001 +101011100010 +111000110110 +111011100101 +111000001111 +101110110011 +111101000000 +101111100110 +011111101101 +100111110111 +000111011011 +001001001111 +100010110000 +001101010000 +100101101001 +100001010000 +110101110001 +100111111111 +101101000101 +001110100110 +101010110000 +101111010010 +101011100101 +001110010100 +011110110100 +100011000000 +001000000100 +010000010001 +101101111011 +111010001011 +101010100000 +101001000000 +001000010101 +010011000111 +101010111100 +111101000101 +111111100010 +100010011101 +101001111101 +010111001111 +111111110110 +100111101010 +010101000101 +100101010010 +010110010001 +011101000111 +011110011010 +100000111100 +011111111000 +001111010001 +110110100111 +111000001011 +110010010011 +101010110010 +110000110111 +101111010000 +110111010000 +110011100011 +010000100111 +001010110001 +011101011010 +110111010010 +011001001101 +101101001111 +011101110100 +001101101110 +011011101101 +111001010001 +001100101000 +010011100000 +011000010100 +111000111111 +001001100001 +010011001010 +001110101100 +010010111010 +000111111011 +010010000110 +110001100100 +001110110111 +000010001111 +100011100001 +100001101110 +100001110111 +010110100000 +100101101111 +001100000111 +101100111001 +100100001100 +100000101100 +010101000110 +101110001000 +101110000110 +101110011100 +001001010001 +110111101011 +101001000001 +111100111110 +001100010100 +010001111111 +110011000011 +100110011101 +011010100100 +011111000011 +000110001000 +010010111111 +010011111011 +001000111110 +000111101011 +100010111100 +010110001111 +011011000000 +010111000011 +010001011111 +111000101100 +010110110000 +001100111011 +011110100101 +100011100011 +001000101000 +101011001011 +101111001111 +111000100101 +111101100111 +111010101000 +001110000111 +010101011110 +001111010100 +101011011101 +000111101010 +000011001011 +111000010001 +011001011011 +011011011001 +011110111000 +000010001100 +011110010000 +010000101001 +101011011111 +100111001100 +101000011100 +111000000100 +011100110000 +011100101010 +010001110011 +100100100010 +011110010010 +011000100111 +110101000101 +111011000001 +011000010111 +010011110011 +011001000001 +000100101110 +100111110001 +010010011010 +111101011001 +100110101111 +100010001100 +010010000111 +100011100100 +111001111011 +110000010111 +101001010001 +011111001010 +110111111100 +000101111101 +101011000111 +000100010000 +111100001111 +100000110010 +110001110100 +000001001100 +000101000001 +100111101011 +011000110110 +101111000000 +010100101100 +101111100011 +100111001101 +100000010010 +100101001111 +011110100010 +110110100110 +100000100001 +110100001110 +010011001111 +011010010000 +000000010101 +111111011100 +000011100000 +011110111101 +110000011100 +011011011000 +010100111010 +010010100101 +001110100011 +000110000100 +100111000101 +000010001000 +110110110000 +010011000100 +011001100010 +110000011110 +000110100111 +010111111011 +011100000011 +100011101110 +001100011010 +000010100100 +000011110000 +000000101000 +101001101001 +101111010101 +101100101101 +110000000000 +111011001110 +001100101110 +100101111000 +010001000111 +111100111010 +000100011101 +010001000011 +100000101001 +111111101101 +000000011101 +001101110110 +001100000101 +010110011110 +001011100100 +110001100101 +001011110011 +011101111000 +001001100110 +000001011000 +001011010000 +110001010100 +000100011011 +010101101010 +101000101010 +101111011000 +110001010111 +111100110011 +101011101000 +000100010110 +111010000110 +000100000001 +101011110101 +010010010011 +100101011001 +100101001010 +110100110101 +010011100111 +100110010101 +111010000011 +011011110110 +111000101110 +001011101100 +010110100010 +011001101011 +011000101101 +011011111110 +011011111001 +100001001101 +101110011011 +001111011100 +111110010011 +000010101011 +001111101010 +100001101000 +111100100000 +010011100100 +011101101100 +000001101011 +001100001110 +000011000111 +100110001000 +101101101011 +001011011110 +101010111101 +101110100110 +011111000100 +111101111000 +001011110111 +010010011001 +111110110001 +100101000100 +011011010101 +100010010000 +100010101000 +110010000100 +000001001111 +101110011010 +010000111111 +111101010001 +100000000000 +011101100110 +001110101101 +001001110010 +110011101001 +101101011001 +000000110101 +011101100011 +010100000011 +101011110010 +100101000010 +100110001100 +000111111010 +111100011001 +111110101001 +010000111000 +100110000011 +100011001110 +000100010010 +001101100100 +000000001100 +011101001001 +100001001000 +101100111000 +110011011111 +111110101110 +101101001010 +111000011001 +111110011001 +110111010100 +011001111011 +101101111000 +010010010100 +100000110110 +011110010100 +010010101010 +001111100100 +100000011101 +110100010010 +101101100000 +111001111010 +010001100110 +011000110101 +011110010011 +011111100000 +001000101100 +000100010111 +011000101010 +011000010110 +010001101011 +110101010000 +000100100100 +011011001100 +010100011101 +100111110110 +111010000001 +001001111111 +010100001111 +011111101011 +011000011011 +111010000100 +110001001111 +111011011010 +001110001110 +100100101001 +101101101001 +001100001001 +001000001110 +101111000010 +000110001110 +101111110010 +110011001011 +000000010100 +110100110001 +111000011111 +100000001110 +100100011011 +101100100011 +011101000010 +001100100101 +111110101101 +011100001001 +101100000110 +101011010011 +000101101100 +001011101001 +110000000101 +011111011110 +000001100110 +100110011011 +111010100100 +011001101001 +010111110011 +110111000000 +011100101011 +010110100111 +110011001001 +000010111011 +101110010110 +000001011001 +100101000111 +110110111011 +000101110001 +100000111101 +011110001011 +000101010101 +101011110011 +000110011001 +101010000001 +100001011110 +010000000111 +000011100110 +100111100010 +110101000111 +001010101110 +111000100000 +001100101101 +000111010111 +101110000000 +011111000010 +111000001110 +001100110101 +101001000100 +010111011101 +000100000100 +111111000111 +111011001111 +101000011110 +110011101101 +111101000011 +101101111001 +010010010101 +110000100010 +000100100111 +000110111111 +000011001000 +011011100001 +101100111101 +011111000001 +000110101100 +010010111001 +111100101110 +100111010100 +011111000000 +001011001000 +101111000011 +000100001010 +110100010000 +110001000011 +010010101111 +001010001010 +010001110001 +011000001101 +101001010111 +000000011100 +010011111000 +110010011011 +001110100111 +011101000011 +111110011101 +100111000000 +101011101110 +111000010111 +101001000011 +011110011001 +000100010001 +101110000100 +111101101101 +000100100110 +010011010001 +000101100110 +010111110001 +001110111100 +100000111111 +101100000011 +110011000100 +100000001011 +010101100000 +101010000101 +010110101101 +010011100001 +001101001111 +101100100111 +100000001101 +100100101100 +101111010111 +010101001100 +011001111111 +010111110000 +010100110101 +101111010001 +111101111100 +011010011011 +111100110100 +111110001010 +011110011111 +000110001100 +011001010111 +000010010111 +011100101111 +111110111000 +110010110010 +000101111010 +001010010100 +100110110001 +101101010001 +100001111011 +010101001001 +000001000010 +100101100011 +010100101010 +001001001100 +101000110110 +111110001000 +100101110010 +001000111011 +100111010111 +000000110000 +110101111000 +011000101110 +110101001111 +101000010010 +101011000010 +100110000111 +110101011001 +110010010100 +010000001111 +110011011001 +111010110100 +010000101010 +101100111011 +000000011010 +110110001000 +001011011011 +101110100001 +010100011011 +111101001101 +010000011001 +110010100100 +101101011010 +110000100001 +010101111000 +101000111010 +011011010100 +011110011101 +010000100100 +001111101001 +010011110000 +111000100111 +010101010101 +000001001010 +010001001100 +111011111100 +001110000011 +110101101000 +111010011110 +110011010011 +001010101101 +001111110001 +110001011110 +011110010001 +010010000100 +111010111001 +000100111111 +000001010101 +001010110111 +000110010011 +000010011111 +011110100001 +011111010110 +001110010110 +001001000011 +101111011101 +011100110111 +010000001101 +010010100111 +010000110011 +011110110111 +010000110110 +011101011011 +000010100001 +001100011111 +011110110000 +111011011011 +101011101111 +010001000101 +010100001000 +010100101110 +001000000101 +001001011011 +111001000101 +110101110100 +111111010111 +101010100111 +110000011010 +000100100000 +011101000001 +000011000001 +010101010001 +010010011100 +010001110101 +010110110111 +010011110010 +011011100110 +000110100011 +100010100011 +101111110011 +001011100101 +011101110000 +110001110000 +111010010000 +111111000011 +010010001100 +010111101010 +010010101000 +111001010111 +010110110011 +001101110010 +011111001111 +010100110100 +010010100100 +101011101100 +000111101001 +000001011010 +101010111000 +100011111111 +100100011111 +111000010010 +011011100010 +000111010010 +101010101111 +010000100101 +100110110101 +011011100011 +011011110011 +111011000100 +100010001010 +110000010000 +100101011111 +101100001100 +111110101111 +100111000100 +011101001110 +100011011101 +111101011010 +110101111001 +001000110101 +111110101100 +001010010111 +100110000000 +110101010100 +110110001101 +011110101101 +100110101110 +000000000010 +011010111001 +000001101111 +000100000101 +110000100011 +001010000101 +100111011010 +000001101001 +001011000001 +000111100110 +111111110011 +000101000000 +111000110000 +000010000111 +000101010001 +000011110001 +101100110100 +100001111110 +001111111111 +100011000110 +011100011001 +101011110100 +001010001111 +100010100001 +001111100110 +010110110010 +110010110101 +011000110011 +000101011110 +101000100100 +010110010110 +001000000110 +110000100100 +011101101011 +100100000111 +000111010101 +110111000100 +001010110000 +101001110001 +001001101011 +101000100101 +111111000010 +000010110101 +110000000110 +000100110000 +111111011011 +101101100101 +011001010010 +111111101111 +000111101101 +100110110011 +110000001000 +111000001101 +110011010010 +110110111110 +000001011111 +001100001010 +111101011100 +010010100010 +110100011011 +110001101011 +010111111010 +011111100100 +001010010110 +001010111111 +111110111110 +011010000110 +111111111001 +011011011110 +001010011101 +001110010111 +001001111100 +110010111000 +000111000100 +001100001000 +110110110100 +101001010000 +000101000101 +010101101100 +101010110110 +111101011000 +101010011100 +110010110011 +111110001110 +100100101110 +001010000000 +001000110010 +101000111111 +111110111101 +000110010110 +101100100110 +100010011001 +100110100010 +111101100110 +111100111111 +010111011011 +111100011111 +001010010011 +111101010010 +110111001010 +010110000000 +011111011001 +101011100011 +011100110011 +111100011110 +101001001001 +100101100110 +000100110010 +010011101110 +000011110111 +000000011111 +110011011100 +111110100100 +101110101111 +001101011000 +101101110001 +101011000100 +111001101100 +110111111001 +011010101001 +000000000000 +111100000101 +110010111001 +000100001110 +110101111100 +110010011111 +001001110111 +111111111111 +000110011100 +110101111010 +011010111011 +111000000101 +011110100111 +001010101111 +001011011001 +101010001011 +100001000000 +111110111010 +001110111110 +000000110100 +111110111001 +111000010101 +110011110111 +110111001101 +111011010010 +110100000110 +100111111100 +010001100010 +111100010000 +100111011101 +101001000111 +111110110011 +010101010100 +101000110111 +000111101100 +100001011001 +010000011111 +000100101011 +011011011010 +001111000010 +111001101011 +100011010111 +110111100111 +100001010110 +100001110101 +100110110111 +011111111011 +111111101110 +111111001000 +101010000110 +110010010110 +100110100111 +011101011100 +011010011101 +101111101101 +110111010110 +110000000100 +110000110100 +001100000110 +001011001101 +001010011111 +011001110000 +100111100100 +001111000000 +110100011001 +110000110011 +000000101101 +111101111111 +111111010010 +011101101110 +111101101100 +100000110000 +110101010001 +101001110100 +010010110110 +111011000111 +101100000100 +010011010101 +111101000001 +101001111000 +101110000011 +001011011101 +111010000010 +001001110100 +111111001001 +001001010000 +001110000001 +111100000000 +010101110100 +000101011011 +001100011001 +001110001100 +001110100010 +000000100111 +000100111000 +110100101100 +110100111010 +111001101101 +111100101011 +011101100000 +100000100011 +010111110010 +010011001000 +101001100110 +100110001111 +000110110101 +111001110110 +000101010110 +011000011010 +010100110110 +110100111111 +111000110011 +001011111000 +001000000000 +111111010100 +111111100110 +000000001111 +110001000001 +010000101000 +101111111010 +100100001101 +111011110100 +110101110011 +010111111110 +001000101111 +100110101100 +110010010010 +010010001000 +011111101100 +111100100011 +110111101000 +100000111001 +001011100011 +001010111100 +000100001100 +010111000110 +001111000101 +001110000010 +110100101000 +001110000101 +101000110000 +001001011101 +101001011001 +011110100011 +101010010110 +101000001101 +110111111111 +010010001101 +011100010110 +000100100001 +001111111101 +001001111000 +001100101111 +111010111100 +110100010111 +000000010011 +100110110000 +101100101111 +100011010100 +001001101110 +110001101000 +110101101110 +010011110101 +010000110001 +100011111000 +111110000010 +100111100000 +100001100110 +110111000110 +000101100011 +010110001100 +100000100010 +001011000000 +110101000010 +101110101001 +011010100110 +111111110000 +001010110010 +010000001011 +100000010011 +010111010111 +101111100010 +010100010011 diff --git a/2021/day05/day05.scm b/2021/day05/day05.scm new file mode 100644 index 0000000..d5903e0 --- /dev/null +++ b/2021/day05/day05.scm @@ -0,0 +1,55 @@ +(import (chicken io) + srfi-1 + srfi-42 + srfi-69 + srfi-152 + matchable) + +(define (read-input #!optional (port (current-input-port))) + (define (parse-entry s) + (map (lambda (x) (map string->number (string-split x ","))) + (string-split s " -> "))) + (map parse-entry (read-lines port))) + +(define (horizontal? line) + (match-let ((((x1 y1) (x2 y2)) line)) + (= x1 x2))) + +(define (vertical? line) + (match-let ((((x1 y1) (x2 y2)) line)) + (= y1 y2))) + +(define (diagonal? line) + (and (not (horizontal? line)) + (not (vertical? line)))) + +(define (range x1 x2) + (iota (+ 1 (abs (- x2 x1))) + x1 + (if (>= x2 x1) 1 -1))) + +(define (all-points lines #!optional (diagonals #f)) + (define h (make-hash-table #:initial 0)) + (do-ec (: line lines) + (or (horizontal? line) (vertical? line)) + (match-let ((((x1 y1) (x2 y2)) line)) + (list-ec (: x (range x1 x2)) + (: y (range y1 y2)) + (hash-table-update! h (list x y) add1)))) + (when diagonals + (do-ec (: line lines) + (if (diagonal? line)) + (match-let ((((x1 y1) (x2 y2)) line)) + (list-ec (:parallel (: x (range x1 x2)) + (: y (range y1 y2))) + (hash-table-update! h (list x y) add1))))) + h) + +(define (part12 lines diagonals) + (length + (filter (lambda (n) (> n 1)) + (hash-table-values (all-points lines diagonals))))) + +(let ((lines (read-input))) + (print (part12 lines #f)) + (print (part12 lines #t))) diff --git a/2021/day05/input b/2021/day05/input new file mode 100644 index 0000000..7d9c95a --- /dev/null +++ b/2021/day05/input @@ -0,0 +1,500 @@ +556,286 -> 341,71 +337,201 -> 782,646 +786,780 -> 117,111 +977,864 -> 199,86 +544,127 -> 544,144 +539,471 -> 539,972 +364,765 -> 364,285 +282,325 -> 892,935 +536,941 -> 158,941 +280,39 -> 806,565 +168,662 -> 363,857 +639,676 -> 639,701 +397,809 -> 466,809 +716,118 -> 625,209 +153,582 -> 497,926 +35,706 -> 398,706 +61,41 -> 519,41 +158,557 -> 158,922 +320,177 -> 624,481 +800,779 -> 466,779 +292,270 -> 292,497 +919,17 -> 757,17 +935,520 -> 935,688 +948,480 -> 303,480 +306,811 -> 306,467 +227,582 -> 464,819 +757,807 -> 757,688 +983,12 -> 30,965 +632,262 -> 640,262 +755,314 -> 138,931 +179,599 -> 179,144 +556,246 -> 801,491 +114,218 -> 114,60 +183,70 -> 423,70 +561,661 -> 231,331 +875,738 -> 723,890 +812,828 -> 812,78 +98,707 -> 88,707 +804,979 -> 188,979 +503,178 -> 453,178 +902,678 -> 248,678 +603,618 -> 737,752 +788,735 -> 559,964 +839,134 -> 839,408 +569,356 -> 491,356 +566,543 -> 566,77 +624,386 -> 111,386 +781,109 -> 781,52 +187,709 -> 23,545 +220,123 -> 856,123 +210,528 -> 398,716 +942,935 -> 58,51 +102,13 -> 102,560 +926,588 -> 969,545 +529,117 -> 146,117 +989,211 -> 739,461 +207,201 -> 207,106 +799,876 -> 284,876 +370,773 -> 687,456 +571,972 -> 571,351 +877,910 -> 877,12 +384,205 -> 384,940 +493,915 -> 912,496 +764,412 -> 368,16 +368,220 -> 333,220 +526,271 -> 778,271 +379,203 -> 417,165 +168,577 -> 168,709 +529,808 -> 598,739 +959,506 -> 959,626 +576,89 -> 863,89 +277,412 -> 311,378 +12,19 -> 975,982 +620,951 -> 240,571 +937,206 -> 954,206 +231,177 -> 918,864 +499,825 -> 315,825 +289,876 -> 289,302 +408,569 -> 46,207 +461,838 -> 91,838 +281,294 -> 281,737 +61,541 -> 61,747 +768,857 -> 768,276 +782,97 -> 33,97 +544,563 -> 251,856 +731,216 -> 731,19 +767,142 -> 242,667 +469,612 -> 952,129 +508,363 -> 508,540 +614,845 -> 614,739 +342,362 -> 235,362 +880,703 -> 880,653 +942,669 -> 651,669 +884,976 -> 884,924 +158,822 -> 945,35 +510,716 -> 884,342 +523,946 -> 73,496 +334,430 -> 157,253 +593,77 -> 105,565 +269,132 -> 243,132 +902,529 -> 180,529 +554,767 -> 554,938 +164,615 -> 425,615 +51,713 -> 51,341 +428,606 -> 89,945 +600,402 -> 600,185 +774,550 -> 774,207 +465,204 -> 697,436 +577,719 -> 255,719 +647,990 -> 970,990 +649,170 -> 886,407 +428,503 -> 428,394 +381,608 -> 381,444 +778,175 -> 778,121 +795,379 -> 379,379 +929,792 -> 218,81 +504,837 -> 504,449 +212,216 -> 212,76 +446,744 -> 446,116 +824,247 -> 577,247 +77,214 -> 553,214 +913,234 -> 913,670 +949,24 -> 43,930 +733,758 -> 733,62 +628,659 -> 962,659 +172,749 -> 755,749 +901,717 -> 184,717 +457,578 -> 923,112 +943,11 -> 912,11 +728,597 -> 116,597 +465,134 -> 465,159 +170,953 -> 170,533 +231,715 -> 231,219 +209,187 -> 984,962 +798,515 -> 798,601 +479,123 -> 479,148 +360,387 -> 360,356 +962,818 -> 962,770 +852,607 -> 852,886 +159,838 -> 967,30 +823,659 -> 642,478 +374,893 -> 545,893 +248,819 -> 248,978 +894,473 -> 894,47 +182,975 -> 278,879 +75,248 -> 913,248 +969,533 -> 969,827 +18,40 -> 842,864 +972,909 -> 220,157 +378,159 -> 571,159 +875,478 -> 238,478 +95,807 -> 264,638 +418,68 -> 418,387 +784,548 -> 332,548 +365,354 -> 365,836 +731,615 -> 235,615 +885,104 -> 513,476 +816,47 -> 385,478 +626,741 -> 626,499 +371,372 -> 920,921 +83,150 -> 922,989 +623,520 -> 645,498 +612,305 -> 561,305 +845,149 -> 788,149 +914,35 -> 829,35 +143,165 -> 143,520 +164,218 -> 266,218 +118,644 -> 397,644 +59,942 -> 970,31 +616,774 -> 970,420 +30,468 -> 874,468 +454,208 -> 454,536 +524,488 -> 524,931 +54,479 -> 560,479 +815,591 -> 815,813 +959,971 -> 30,42 +23,181 -> 149,181 +841,294 -> 841,681 +34,47 -> 367,47 +913,590 -> 913,374 +690,64 -> 690,672 +541,112 -> 781,112 +380,843 -> 687,536 +303,330 -> 465,330 +408,403 -> 326,403 +352,962 -> 925,389 +121,882 -> 873,130 +979,294 -> 29,294 +228,688 -> 228,738 +845,930 -> 901,930 +726,189 -> 27,888 +223,888 -> 989,888 +483,632 -> 483,321 +606,810 -> 820,810 +225,31 -> 225,342 +841,18 -> 841,417 +375,185 -> 375,413 +641,189 -> 307,523 +126,900 -> 126,990 +530,220 -> 690,220 +496,263 -> 154,263 +140,503 -> 419,503 +349,733 -> 349,819 +43,29 -> 928,914 +683,842 -> 683,489 +113,634 -> 806,634 +771,145 -> 130,145 +88,467 -> 908,467 +328,642 -> 328,795 +986,191 -> 218,959 +857,166 -> 857,594 +950,763 -> 229,42 +263,940 -> 101,940 +689,182 -> 689,835 +241,237 -> 733,237 +965,150 -> 279,150 +871,242 -> 474,639 +688,947 -> 688,11 +319,738 -> 945,112 +21,853 -> 853,21 +69,533 -> 69,741 +492,981 -> 492,210 +942,69 -> 249,69 +63,364 -> 203,364 +340,505 -> 15,505 +41,43 -> 979,981 +395,623 -> 217,801 +540,37 -> 540,381 +64,112 -> 882,930 +887,212 -> 217,882 +168,159 -> 108,159 +117,22 -> 959,864 +413,500 -> 413,616 +775,597 -> 962,597 +171,901 -> 143,901 +777,391 -> 41,391 +901,139 -> 70,970 +215,75 -> 215,261 +973,433 -> 786,433 +757,568 -> 612,423 +363,347 -> 185,525 +274,363 -> 274,709 +435,569 -> 880,569 +267,297 -> 86,478 +221,852 -> 985,88 +322,560 -> 322,962 +470,259 -> 470,508 +861,860 -> 843,860 +172,474 -> 172,714 +53,839 -> 499,839 +600,40 -> 600,227 +820,952 -> 99,231 +650,486 -> 586,486 +305,273 -> 305,392 +826,417 -> 826,92 +309,934 -> 309,720 +381,644 -> 381,623 +38,78 -> 38,54 +326,450 -> 173,450 +474,100 -> 474,135 +607,536 -> 192,121 +686,504 -> 164,504 +538,623 -> 429,623 +200,385 -> 933,385 +568,275 -> 31,275 +105,201 -> 706,201 +582,584 -> 827,584 +24,469 -> 24,519 +306,224 -> 32,224 +429,528 -> 304,528 +272,851 -> 272,927 +636,113 -> 636,244 +481,107 -> 783,107 +834,87 -> 175,746 +684,50 -> 61,673 +30,335 -> 739,335 +621,893 -> 266,893 +968,942 -> 968,390 +895,23 -> 136,23 +742,650 -> 756,636 +42,582 -> 368,582 +890,266 -> 786,266 +591,807 -> 921,807 +915,333 -> 915,160 +746,326 -> 826,326 +663,803 -> 34,174 +533,513 -> 692,513 +205,133 -> 935,133 +730,138 -> 58,810 +290,87 -> 290,488 +693,513 -> 693,323 +188,491 -> 188,587 +562,593 -> 562,122 +629,457 -> 629,299 +132,781 -> 381,781 +356,965 -> 356,899 +720,715 -> 487,715 +356,120 -> 954,120 +657,507 -> 323,173 +13,190 -> 742,190 +677,640 -> 491,640 +145,605 -> 366,605 +143,683 -> 681,145 +700,787 -> 557,787 +958,406 -> 212,406 +267,734 -> 705,734 +470,333 -> 257,120 +790,656 -> 523,389 +13,904 -> 898,19 +29,970 -> 961,38 +846,454 -> 846,153 +564,488 -> 98,488 +904,19 -> 60,863 +493,112 -> 472,133 +945,977 -> 141,173 +720,231 -> 720,367 +783,133 -> 783,422 +165,754 -> 165,604 +752,308 -> 715,271 +413,969 -> 431,951 +833,437 -> 833,881 +612,802 -> 612,64 +974,187 -> 543,618 +655,183 -> 675,183 +696,833 -> 906,623 +756,792 -> 756,741 +338,140 -> 878,680 +854,955 -> 241,342 +602,466 -> 326,466 +470,125 -> 464,131 +568,141 -> 43,666 +826,318 -> 783,275 +194,986 -> 194,466 +896,330 -> 621,55 +482,709 -> 704,931 +345,912 -> 345,741 +758,119 -> 758,841 +11,777 -> 11,249 +88,945 -> 795,945 +665,74 -> 124,615 +243,831 -> 249,837 +40,69 -> 720,749 +757,804 -> 757,900 +803,265 -> 336,732 +299,155 -> 758,614 +787,173 -> 172,788 +251,400 -> 251,168 +217,480 -> 486,480 +939,974 -> 21,56 +767,649 -> 378,649 +197,764 -> 561,400 +767,577 -> 579,577 +952,982 -> 28,58 +282,527 -> 282,640 +944,125 -> 184,125 +149,848 -> 351,848 +36,437 -> 350,437 +63,527 -> 764,527 +66,313 -> 302,549 +805,485 -> 577,485 +660,626 -> 903,626 +927,542 -> 897,542 +577,344 -> 577,934 +624,284 -> 624,497 +649,618 -> 153,122 +942,32 -> 227,747 +10,190 -> 10,629 +84,638 -> 470,252 +362,89 -> 362,762 +351,844 -> 916,279 +683,561 -> 497,747 +628,473 -> 103,473 +319,525 -> 782,62 +842,131 -> 551,131 +980,960 -> 51,31 +662,12 -> 666,12 +337,814 -> 337,736 +720,99 -> 760,99 +867,515 -> 867,650 +248,872 -> 142,872 +295,274 -> 298,274 +102,369 -> 102,648 +523,142 -> 54,611 +369,798 -> 978,189 +215,688 -> 835,688 +846,242 -> 786,182 +68,923 -> 68,342 +690,416 -> 559,547 +567,134 -> 278,134 +89,126 -> 846,883 +779,325 -> 389,325 +675,461 -> 675,622 +278,925 -> 953,250 +907,460 -> 519,848 +769,60 -> 592,60 +331,103 -> 331,49 +148,366 -> 148,516 +933,52 -> 332,52 +488,642 -> 488,523 +632,403 -> 83,952 +321,840 -> 756,405 +302,627 -> 907,22 +650,449 -> 650,553 +219,466 -> 219,297 +841,947 -> 78,184 +40,746 -> 712,74 +559,306 -> 895,306 +317,592 -> 317,275 +267,183 -> 267,428 +43,397 -> 43,359 +952,705 -> 952,634 +921,837 -> 258,174 +634,783 -> 656,805 +366,309 -> 224,309 +383,470 -> 526,613 +717,419 -> 717,332 +543,752 -> 543,500 +954,892 -> 101,39 +294,379 -> 583,379 +829,388 -> 829,491 +748,509 -> 283,509 +347,75 -> 467,195 +618,958 -> 371,711 +986,827 -> 213,54 +34,617 -> 982,617 +716,902 -> 716,429 +970,52 -> 107,915 +563,33 -> 563,680 +803,82 -> 136,749 +24,968 -> 273,968 +816,483 -> 620,287 +783,588 -> 623,588 +397,210 -> 988,801 +911,387 -> 911,446 +770,730 -> 786,730 +22,11 -> 982,971 +395,316 -> 151,316 +301,420 -> 301,248 +10,10 -> 989,989 +637,358 -> 247,358 +932,341 -> 642,341 +162,594 -> 162,448 +51,946 -> 396,946 +591,253 -> 958,620 +567,849 -> 567,713 +879,910 -> 879,603 +889,642 -> 437,642 +669,528 -> 945,252 +644,237 -> 774,237 +488,870 -> 738,620 +692,388 -> 959,388 +506,17 -> 701,17 +663,514 -> 663,216 +684,862 -> 289,862 +511,235 -> 519,227 +866,940 -> 153,227 +381,518 -> 87,518 +837,573 -> 181,573 +337,191 -> 337,135 +324,573 -> 945,573 +449,800 -> 390,741 +763,378 -> 763,695 +24,457 -> 444,877 +267,875 -> 798,344 +724,848 -> 395,848 +931,322 -> 931,244 +426,241 -> 280,241 +175,879 -> 175,883 +496,158 -> 560,158 +899,319 -> 805,319 +799,424 -> 563,188 +958,388 -> 958,290 +558,95 -> 314,95 +768,646 -> 961,839 +246,534 -> 246,147 +808,720 -> 808,385 +912,147 -> 912,305 +670,676 -> 776,676 +534,594 -> 696,594 +736,768 -> 736,364 +377,784 -> 377,368 +799,105 -> 978,284 +763,575 -> 763,253 +581,205 -> 581,45 +932,782 -> 678,782 +400,950 -> 936,414 +68,616 -> 897,616 +399,662 -> 291,554 +354,397 -> 354,489 +219,276 -> 862,919 +115,138 -> 195,138 +863,326 -> 863,335 +884,130 -> 271,743 +986,148 -> 234,900 +254,186 -> 973,905 +975,971 -> 672,971 +122,533 -> 19,636 +316,512 -> 219,609 +113,480 -> 716,480 +483,540 -> 845,178 diff --git a/2021/day05/test b/2021/day05/test new file mode 100644 index 0000000..1d4e36d --- /dev/null +++ b/2021/day05/test @@ -0,0 +1,10 @@ +0,9 -> 5,9 +8,0 -> 0,8 +9,4 -> 3,4 +2,2 -> 2,1 +7,0 -> 7,4 +6,4 -> 2,0 +0,9 -> 2,9 +3,4 -> 1,4 +0,0 -> 8,8 +5,5 -> 8,2 \ No newline at end of file diff --git a/2021/day06/day06.scm b/2021/day06/day06.scm new file mode 100644 index 0000000..c410d6a --- /dev/null +++ b/2021/day06/day06.scm @@ -0,0 +1,36 @@ +(import (chicken io) + srfi-1 + srfi-42 + srfi-152) + +(define (read-input #!optional (port (current-input-port))) + (map string->number (string-split (read-line port) ","))) + +(define (count-fishes in) + (define c (make-list 9 0)) + (do-ec (: x in) + (set! (list-ref c x) (add1 (list-ref c x)))) + c) + +(define (simulate counts days) + (if (= 0 days) + (take counts 9) + (let ((n (car counts))) + (set! (list-ref counts 7) (+ n (list-ref counts 7))) + (simulate (cdr counts) (- days 1))))) + +(define (total-fishes counts days) + (apply + (take (simulate (apply circular-list counts) days) 9))) + +(let* ((in '(3 4 3 1 2)) + (counts (count-fishes in))) + (print "Test:") + (print (total-fishes counts 18)) + (print (total-fishes counts 80)) + (print (total-fishes counts 256))) + +(print) +(let* ((in (read-input)) + (counts (count-fishes in))) + (print (total-fishes counts 80)) + (print (total-fishes counts 256))) diff --git a/2021/day06/input b/2021/day06/input new file mode 100644 index 0000000..b323221 --- /dev/null +++ b/2021/day06/input @@ -0,0 +1 @@ +3,3,2,1,4,1,1,2,3,1,1,2,1,2,1,1,1,1,1,1,4,1,1,5,2,1,1,2,1,1,1,3,5,1,5,5,1,1,1,1,3,1,1,3,2,1,1,1,1,1,1,4,1,1,1,1,1,1,1,4,1,3,3,1,1,3,1,3,1,2,1,3,1,1,4,1,2,4,4,5,1,1,1,1,1,1,4,1,5,1,1,5,1,1,3,3,1,3,2,5,2,4,1,4,1,2,4,5,1,1,5,1,1,1,4,1,1,5,2,1,1,5,1,1,1,5,1,1,1,1,1,3,1,5,3,2,1,1,2,2,1,2,1,1,5,1,1,4,5,1,4,3,1,1,1,1,1,1,5,1,1,1,5,2,1,1,1,5,1,1,1,4,4,2,1,1,1,1,1,1,1,3,1,1,4,4,1,4,1,1,5,3,1,1,1,5,2,2,4,2,1,1,3,1,5,5,1,1,1,4,1,5,1,1,1,4,3,3,3,1,3,1,5,1,4,2,1,1,5,1,1,1,5,5,1,1,2,1,1,1,3,1,1,1,2,3,1,2,2,3,1,3,1,1,4,1,1,2,1,1,1,1,3,5,1,1,2,1,1,1,4,1,1,1,1,1,2,4,1,1,5,3,1,1,1,2,2,2,1,5,1,3,5,3,1,1,4,1,1,4 diff --git a/2021/day07/day07.scm b/2021/day07/day07.scm new file mode 100644 index 0000000..d8d5e11 --- /dev/null +++ b/2021/day07/day07.scm @@ -0,0 +1,35 @@ +(import (chicken io) + (chicken sort) + srfi-1 + srfi-152) + +(define (read-input #!optional (port (current-input-port))) + (map string->number (string-split (read-line port) ","))) + +(define (median lst) + (list-ref (sort lst <=) (/ (length lst) 2))) + +(define (part1 in) + (let ((target-pos (median in))) + (apply + (map (lambda (x) (abs (- x target-pos))) in)))) + +(define (cost start end) + (let ((dist (abs (- start end)))) + (/ (* dist (+ dist 1)) 2))) + +(define (total-fuel target-pos in) + (apply + (map (lambda (x) (cost target-pos x)) in))) + +(define (part2 in) + (apply min + (let ((min-in (apply min in)) + (max-in (apply max in))) + (let lp ((pos min-in) + (fuels '())) + (if (> pos max-in) + fuels + (lp (+ 1 pos) (cons (total-fuel pos in) fuels))))))) + +(let ((in (read-input))) + (print (part1 in)) + (print (part2 in))) diff --git a/2021/day07/input b/2021/day07/input new file mode 100644 index 0000000..80aca77 --- /dev/null +++ b/2021/day07/input @@ -0,0 +1 @@ +1101,1,29,67,1102,0,1,65,1008,65,35,66,1005,66,28,1,67,65,20,4,0,1001,65,1,65,1106,0,8,99,35,67,101,99,105,32,110,39,101,115,116,32,112,97,115,32,117,110,101,32,105,110,116,99,111,100,101,32,112,114,111,103,114,97,109,10,209,573,1277,704,518,276,196,62,1226,170,58,1450,101,65,99,435,986,1437,1570,35,354,247,110,105,139,1209,23,1074,339,69,483,21,33,323,1348,111,2,270,1239,316,529,1680,1056,1960,257,1009,1073,59,425,1181,198,31,299,771,53,817,728,931,72,517,39,279,304,401,1271,533,1551,133,297,162,902,370,985,643,1217,78,16,380,223,177,600,349,12,776,26,1738,526,85,1542,111,844,93,595,1545,873,836,422,180,1187,329,231,1521,54,162,212,471,1329,156,1299,160,541,676,67,200,22,24,76,242,178,1093,1173,818,1380,284,335,642,1047,112,271,541,927,52,983,238,116,135,871,400,436,1094,684,249,263,303,24,437,813,32,45,19,620,57,866,44,68,277,1112,110,77,1481,437,302,678,541,904,322,13,186,1474,836,43,1020,201,1586,1169,1149,470,535,55,879,133,1229,106,989,1023,256,103,56,401,667,557,98,288,694,286,237,1661,933,1063,20,227,80,815,289,1414,234,517,227,616,829,191,1211,92,591,279,22,139,67,214,60,145,468,10,521,807,1243,76,163,190,122,804,88,383,319,1127,399,376,423,304,126,10,297,377,1103,691,139,70,519,16,15,43,397,468,1183,90,28,1262,151,1448,62,64,1072,386,1330,1313,12,100,657,28,55,612,337,1865,704,263,565,249,564,565,1218,40,1146,150,718,1253,228,120,713,925,159,36,1087,1023,1490,316,540,1124,1127,781,417,656,0,174,1006,529,389,86,90,78,403,1500,253,35,655,650,933,815,108,168,321,345,147,251,258,25,173,243,740,48,476,1507,634,425,738,160,1415,395,448,156,636,1967,516,316,628,810,817,26,20,753,22,1133,352,204,211,47,22,874,43,12,18,1015,779,108,579,251,1398,33,1507,93,274,904,221,1062,868,3,363,42,14,435,62,1508,540,64,267,1690,418,205,502,152,142,414,178,50,344,780,81,635,128,355,239,1708,1814,29,251,624,22,38,789,948,186,529,895,76,150,416,502,975,1216,456,862,522,1149,131,10,121,1353,313,568,595,6,318,633,331,1652,656,214,21,35,289,80,860,229,244,1188,350,594,424,235,327,6,1083,40,134,839,279,172,1452,197,47,2,73,607,238,1151,844,533,110,1207,125,129,16,1000,965,236,228,497,589,111,1245,453,179,956,116,212,47,497,380,574,355,799,209,384,47,449,688,312,748,1531,1092,23,1001,69,155,924,1352,163,1561,743,609,1261,1231,32,1,739,513,300,370,36,568,89,487,201,11,146,274,163,1029,829,469,299,118,732,769,120,1093,776,610,1944,90,67,494,831,88,227,1257,344,662,401,310,664,56,94,183,935,179,643,4,1083,567,1525,208,204,899,123,36,438,1171,265,1406,177,202,1398,631,444,385,589,29,124,96,237,374,793,794,502,665,287,575,113,305,157,465,376,66,662,77,595,75,141,243,254,30,5,622,140,443,566,360,192,1531,1113,1299,598,147,469,732,1565,409,1380,550,173,232,361,131,99,37,547,132,1779,193,228,664,553,568,389,1069,58,71,610,738,624,261,491,158,105,416,131,198,35,823,9,313,6,429,1492,290,313,272,281,427,280,661,141,54,383,3,130,43,418,2,1040,1051,1006,38,151,1325,1357,117,1473,175,201,613,1458,1218,588,169,228,565,901,420,42,117,110,442,9,99,1685,979,84,35,129,248,1,21,360,123,203,1320,1200,209,510,362,106,148,313,292,63,842,93,88,134,720,565,156,118,983,119,1451,757,736,445,466,226,265,573,612,652,170,225,32,1049,1332,366,1375,692,270,388,321,1153,909,1266,93,5,495,377,212,429,90,199,278,631,693,63,816,395,281,315,0,737,575,121,865,1,485,262,49,804,518,109,600,358,221,14,370,450,947,448,67,576,22,1266,226,100,10,607,620,295,568,316,51,687,199,1478,45,489,1878,1035,298,219,363,85,664,1290,492,70,644,78,163,100,102,465,732,439,93,25,847,297,172,361,393,304,461,583,122,121,762,58,112,85,142,48,193,1617,386,685,1054,584,488,394,665,277,263,596,290,1231,171,1394,9,1218,77,54,487,182,528,695,662,413,345,51,690,1702,203,1500,461,1755,190,371,1122,1614,324,238,569,1482,15,711,1332,700,437,242,174,642,660,987,1232,121,620,17,389,22,105,847,36,251,285,1238,162,1227,1473,411,66,258,377,1135,438,117,664,281,1070,301,132,256,498,172,194,103,662,606,342,340,1501,802,549,380,58,179,361 diff --git a/2021/day09/day09.scm b/2021/day09/day09.scm new file mode 100644 index 0000000..0f8e37c --- /dev/null +++ b/2021/day09/day09.scm @@ -0,0 +1,65 @@ +(import (chicken io) + (chicken sort) + srfi-1 + srfi-42 + srfi-152 + generalized-arrays + storage-classes) + +(define (string->list-of-ints s) + (map (lambda (x) (- x 48)) (map char->integer (string->list s)))) + +(define (read-input #!optional (port (current-input-port))) + (nested-list->array + (map string->list-of-ints (read-lines port)) + s8vector-storage-class + 2)) + +(define (neighbours grid idx) + (let ((m (vector-ref (array-shape grid) 0)) + (n (vector-ref (array-shape grid) 1)) + (i (vector-ref idx 0)) + (j (vector-ref idx 1))) + (list-ec (:range k (- i 1) (+ i 2)) + (:range l (- j 1) (+ j 2)) + (and (not (and (= k i) (= l j))) + (or (= k i) (= l j)) + (>= k 0) (>= l 0) (< k m) (< l n)) + (list (vector k l) (array-ref grid (vector k l)))))) + +(define (low-points grid) + (let ((m (vector-ref (array-shape grid) 0)) + (n (vector-ref (array-shape grid) 1))) + (list-ec (:range i m) + (:range j n) + (:let x (array-ref grid (vector i j))) + (:let neighb (map cadr (neighbours grid (vector i j)))) + (if (every (lambda (n) (< x n)) neighb)) + (list (vector i j) x)))) + +(define (part1 grid) + (apply + (map add1 (map cadr (low-points grid))))) + +(define (compute-basins grid) + (define n (vector-ref (array-shape grid) 0)) + (define m (vector-ref (array-shape grid) 1)) + (define visited (make-array vector-storage-class (vector n m) #f)) + (define (basin-size idx) + (sum-ec (: neighbour (neighbours grid idx)) + (:let neighbour-idx (car neighbour)) + (:let neighbour-val (cadr neighbour)) + (not (array-ref visited neighbour-idx)) + (begin + (array-set! visited neighbour-idx #t) + (if (= neighbour-val 9) + 0 + (add1 (basin-size neighbour-idx)))))) + (list-ec (: lowp-idx (map car (low-points grid))) + (basin-size lowp-idx))) + +(define (part2 grid) + (apply * (take (sort (compute-basins grid) >) 3))) + +(let ((grid (read-input))) + (print (part1 grid)) + (print (part2 grid))) diff --git a/2021/day09/input b/2021/day09/input new file mode 100644 index 0000000..322b31f --- /dev/null +++ b/2021/day09/input @@ -0,0 +1,100 @@ +7659991098999876579910129879999876432123459874345567890126678999876588975767899323456989767899432101 +8998789987898765467891239868899876541012398765123456789234567897643467894656798912399878948678944212 +9867678976789878598954398756789997632343459873234569898765679999856578943547987893989865434567894323 +7654567895896989679767499847994398755456579987656778969876892198767989652129876889876976725678965734 +8767678954345698799898987659943219876577694598787889545987931019879996543298965679965987438789876799 +9898789921239799898989899798794399987688965679898993534598942123989987654987654567894596549899989987 +4969999892398989987876789987689989998789898789979992123989653934598798965976543678943987678999999876 +3459898789497878976545678986567878999895679898768989239879869896789659879865432469432198799998789765 +2498765699976567995434389765434567899934989977655679356965998789896545989865321258921019999987678954 +3987654398765456789321238979325456799329898766434798999876797698987432198754310347894329789876567893 +4696543219876967998910147998214345678998789954323987689999977567898543479885541456789498678988678932 +5987654423987878987521236987601234567891678893219876567898765479987654567976632367899987569899789321 +6798767834698989997432345698524568698932456789398765466989876567898765689987545478959768456789893210 +7899898945679499876545656997434578799843569892987654345678989679999876799798658569349654367878964322 +8977999498789398987896769876545689998767678931999869656789698789999987987698767895498743212567895433 +9656789329898987899929879987676790199898989949877998767896559899878998977569978999987654323458986654 +8797995434987896989434989798989891987919499896765569888921434998767789865452989998998795434569997765 +9979899549876785678945995639698999876329398764354456999990125899545678954321299987899987895678949878 +9865678998765434567899894324567892985498999863212347898989436798434599876210389996789999998789434999 +7654567899896647978989789212459921296987899954393478987678945987324879965341567895679891019998959865 +8543878901987656789765678901268933459876999895989569658567959876412568897432467894599789923987898654 +9212389919898767897654577892999545998765798789878978945456899954323456789576578923989679899876789543 +9543457898769879986543456789889959876543987676567899432345789976436567897697989219878565678965678932 +8754568987654989765432347898767899989432976543456964321012498987545679998989892109867434699764567891 +9867689298543299986541034987656789998743989654677895632134987898696789989878789298754324789543488989 +1978792129654569987732129874543567897654799965789976853239876799989999878765678999865455697601245678 +0989893098765678998653298763212375789795679878994989966398754889879898765464569899976566789212346789 +9898954239987789998784987654301234699989789989873398765459765678968789884323456789987677894323456898 +8777895345698999899895698976214345789878999997762129876589896789345678965434567999898989976564568967 +7656976457899019767987899765423456789569899876543299987678987891234569876545898998769394987875679456 +6546899568992198657898939878534677893456789987654989898789398932347678999856789889843212398986989345 +5435688979879932545679929989665788902569991298779878789899299543458789798767895678932101569997890123 +4323567899767891434589898998776899543457899999898768655978987654569899679878934569643219878998921254 +6764579987658910123456797879887899656568978789987653234567998785678998532989545678954399989999432765 +7875689998767891234567896569998998967989767698798767145678999896789987643498756789765989992987543876 +8976796899878932545678997998769467899899854599659898657789985959897898784569867899876978931098954987 +9697895799989873467889989999652348999799965678943939768999664543956789895679878979989867892129895698 +4598954569899964578999878987643499997689978789432129879998543212345678976989989459899756789298789789 +3499543798798765699998767898984987843579899996583235989987632105468789987899992398789898999987678991 +4985432987679876789999658989876986532498798889874346798798743236589893498989891987678989459986568990 +9876521296567987899876545878989875421987656778965498987669654587679999999876789898547678998765456789 +9876432987678998998765434569998767410996545567896569896556965689789987898865676789435589765432369999 +3987543498799549769886325679987654329877434456789698789439879789899976987764545678923459879321287899 +4599656789989432458997212568999769498764321298999987688956989897999899876743236789212398998932456998 +9798767897678921367989323459998998999875210147899876567897891956789798765432145794301987897893569997 +8999878996569432349876534569987687898654321236789767456789932345679659976545012689419876896789878986 +7899989987458943499998765678976546789985434545678954345679543567789545987983234568998765645678989565 +6789199654347896589989876789987434579876545758789543237789654579895434499874356789329874234567893434 +5679298789756789678976987899874323459987859767899654345678965989965421298765667895499932125689932123 +4568999898969898789765698998765212398498869878998765656789879898965432399876878976987891034567894034 +3456789987898999899894329987654323987349978989999898767896999797896743987987899989896789123678985125 +2346899876767892999989212398765499876567989999899959878934987676989659876798945698765695434679876789 +1256998765458993498979903459876989987698999999789943989949898455678998765759899987654989545689989899 +4349879876569989986567894967989878999789989897678892099898789334569987674545678998743478957897696999 +5478968987678979765456999898998767879899876789546789298788699212989876543234567998932569768998565678 +6568956998789569876567897789999857867998975695437995987657598909898995432123459886521678989895434567 +7678939879892458987678956699896645456987764789567894696543467898767986321019598765432789496789323878 +8789998765901456798789545598775435349876543999698943495432356789656997432198969876547892345689439989 +9895987654312345789899434459654324234987875898789212989321234896549876545997656989856921234579998997 +6954398767433566789998921398743210125698986789894309878540145789432997859876543398767890123467897686 +5695999876544678998787892987654341234589987895999498765431236894320989767987432129898921294878987575 +4989899987698789987656789398765492395678998934998989896549898965999878979876421012969939989999098464 +2976789998789899876543789249876989989989239019887678987656789879878767898985432123457898679889198323 +9895678999894968987654590123989879978990129198764569998987894998765459987899543434568987546778987634 +8654547899923656798985891294598768969893298998765678999598912349821398795698976546699876435569876545 +6543336789012349899876789989987656756789987899976789989499909496543989654567898687987665523456987676 +7652125978923598987987899878996541234567896569899899978987898987859878965678998789876563212345698787 +6543234567894987876798998769876532345978943456799998767896987598998969898799989898765432101234569898 +7685346878999876765689987655989645567899212566778987658965398459987856789899978999876543212385789999 +8876798989998765434569976743498756789956401234568998789876999349876546899988769899987654525678999999 +9987899697989954323798765632359867899543212345679239899989899956997635789879656789999769434789898989 +4599996546567893212987654321235978998764637566989139999998789899986523998967545698999898945699787678 +3499989435457899433498765435348989689895547677891098988997655798765439897645634567899976896789676567 +2989978921345678994569876546757894578987678788992987677893234569898698765430125698999865689896543456 +9879868935458789989778987987868943989998989999789987566989123456989789876321234789997684578965432123 +8965657899599999878989998999979659899879596545678976435778934569879894987432545679876543467896673294 +7654545698989997569999999998989799789965432434789897324567895979964933498545789789987432456998784989 +6543234987978965478999899987899987656974321023498788212379976798763212379676899899997544567899999878 +5432129876568896567898789656789976549875432164589654323568987987654343456987895978999655778956798967 +4321019987456789678987698943495987678987543765678965454569998998765454567898954567898776789345987954 +5432998765345698989996587992976798789798765897789876875678999869876569878979943459979987893212986543 +6549879876234767899985456789897899997659897899897987996789998754997878989767892598965398994323497632 +7698765438123456789876323496789992198943998943956998987899987643298989997656999987890139989434598745 +8899954321014567899865212345678989989894989012345899498989998759109499998747988976789239878965987656 +9998765732125678999954345489789679878789876543456789349678939998912349876434567895678949867896798767 +4349876653346789998769497679898998765699998754678991234569019887893498765325658934589998758659999878 +4239999778659899899898989989967987854897899869789893965678998766799987654312349898699896549237899989 +9398999889767998789987978995459876543786789878898789896799987655678998895401256789798765432126789997 +8987899999879987678976567894398765432645699989997678789929876543767899986212868999899654321034599896 +7856789432989876569875456894298764321237989899986565678910987432347678997343479756998789532123456789 +6545678921098765454986587932129879854349876799867434568924596541234599987654569545689898743454567895 +5436889932129854323697698943234988765698765987654523567895987762345789598968678934578999654765678954 +4321968894298765634598789954445699878987654599763212348997898943579893459899789545678998765878789875 +5872456789349878745679897895768789989877653459894103456789999874568932598789897676789129878989899986 +8763878995467989856789976979879899998765432345989294567899899865679943987699998989899234989299999899 +7654567896568995977891234568999978919876521239878989678956756978989894976568999195978976790199899788 +8765698987878923988910123456789567923987432399765679789432347989998769876456789234567897892988698677 +9878789498999219899321256587995456894898643989813478997643458994987656987567894345679998999876545556 +2989893219879998765432347898932345995798759876524567899856969543499897897698987457989899298765434345 +1099954523467899876545456999545476789899899976435788923987897652101998998789876567897654349854321237 diff --git a/2021/day09/test b/2021/day09/test new file mode 100644 index 0000000..6dee4a4 --- /dev/null +++ b/2021/day09/test @@ -0,0 +1,5 @@ +2199943210 +3987894921 +9856789892 +8767896789 +9899965678 diff --git a/2021/day10/day10.scm b/2021/day10/day10.scm new file mode 100644 index 0000000..03d0499 --- /dev/null +++ b/2021/day10/day10.scm @@ -0,0 +1,53 @@ +(import (chicken io) + (chicken sort) + srfi-1 + matchable) + +(define (read-input #!optional (port (current-input-port))) + (read-lines port)) + +(define (check str) + (let lp ((stack '()) + (input (string->list str))) + (match (list stack input) + ((() ()) #t) + (((#\( . srest) (#\) . irest)) (lp srest irest)) + (((#\[ . srest) (#\] . irest)) (lp srest irest)) + (((#\{ . srest) (#\} . irest)) (lp srest irest)) + (((#\< . srest) (#\> . irest)) (lp srest irest)) + ((_ (#\( . irest)) (lp (cons #\( stack) irest)) + ((_ (#\[ . irest)) (lp (cons #\[ stack) irest)) + ((_ (#\{ . irest)) (lp (cons #\{ stack) irest)) + ((_ (#\< . irest)) (lp (cons #\< stack) irest)) + ((_ ()) stack) + ((_ _) (car input))))) + +(define (check-score c) + (match c + (#\) 3) + (#\] 57) + (#\} 1197) + (#\> 25137) + (_ 0))) + +(define (part1 in) + (apply + (map check-score (map check in)))) + +(define (completion-value c) + (match c + (#\( 1) + (#\[ 2) + (#\{ 3) + (#\< 4) + (_ 0))) + +(define (completion-score lst) + (foldl (lambda (acc c) (+ (* 5 acc) (completion-value c))) 0 lst)) + +(define (part2 in) + (let ((scores (map completion-score (filter list? (map check in))))) + (list-ref (sort scores <) (/ (sub1 (length scores)) 2)))) + +(let ((in (read-input))) + (print (part1 in)) + (print (part2 in))) diff --git a/2021/day10/input b/2021/day10/input new file mode 100644 index 0000000..3767963 --- /dev/null +++ b/2021/day10/input @@ -0,0 +1,94 @@ +<({<[(({(((({(<><>)[[][]]}<<()>{{}}>)(<{(){}}((){})>))<[((<><>){()()})[(<>{}){[]{}}]]>){{(({[]()}<[][]> +{<({[[<<{(<{(<{}()>([][])){<<>}[<>()]}}[<(<>()){()()}>[[(){}]({}())]]>{({{<>{}}[<><>]}<{()<>}{{}() +{{<<<[<({[{{<({}())(<>{})>(<()<>><()[]>)}<([<>{}](<>[]))<{{}<>]>>}<[[<<><>><[]()>][[[]{}]{{}}]][{(<>( +[[<<<[([[([<(({}[]){{}[]})><{([]<>)[(){}]}[{()[]}([]{})]>][({({}[])<[]{}>}{[{}()](<>())}){(([]{}){[][]})[ +{((({{<[(((<(<()><()()>)>[{<[]()>{<>{}}}{([][])<[]()>}]){(({[][]}{()})(({}<>)[<>{}]))({{()< +[[[(({[<<[([[[[]<>]{[]()}]([{}()]{{}{}}]][{[()()]{(){}}}(([]())<{}>)])][{[(([][]){[]{}})]<{(()< +{<[{[({<{[{[<[()<>]>({[]<>}{[]()})]}{[([<>{}]({}{})){([]{})}]{{<{}{}>}{<()<>>(<>{})}}}](([{{(){}}<{}{}> +<{({{[(({({<[[[][]]]{[<>()][{}()]}>((<{}<>>))})(<(<[{}[]]({}<>)><({}<>)>)[[{()<>}{<>{}}}[{[]<> +[<[[[{<[([<(<<<>{}><(){}>>(<[]()>)){<<{}<>>[()]>[<[]<>>([][])]}><<{[{}()][{}[]]}<({}{})>>({{{}{}}} +{[[{<(<[{[<(<<{}{}>{[]()}>){{(()<>)[[]<>]}}>[[[[<><>]<[]{}>]]]]}({{{{([]<>)[[]{}]}}{{(()[])[[]{}]}}}}((<(<< +<[([({<({(<{[[[][]][<>()]][<{}[]>]}[{(()())<{}{}>}<({}())(<>{})>]>{(<<[]{}>>{{{}<>}[[]<>]}){{([] +{<<[<(<{[[<[{[()[]](<><>)}{<[]{}>(()[])}]<{{[]{}}<{}<>>}([[]()]([])))>(([[<><>]]))]<[<{{[][ +(((<<([[([<<[(()[]]<()<>>]<(()[]){{}[]}>><<[{}{}](()())>{<()()>[{}()]}>>])(([[({(){}}<<><>>)[{{}[]}[{ +[<{([[<(<<[[([<>[]][<>()])(((){})([]()))](<{[]<>}({}())>[<<>[]>(()[])])]{[((<>())[{}()])(([])((){}) +(({<{<([[[(<(<[]()>{<><>}){[[]()]{{}<>}}>)]<([<{()[]}<<><>>>{{<>()}{[][]}}][<{[]<>}<{}()>>])[<{ +<<<<[([({{(<[<<>{})]<[[][]][{}{}]>>[<{{}()}[[]<>]><[[]<>]{[]()}>])}}<(<([(()())({}())]({<> +{<[{{(<((<{<[<()()>[{}<>]][([]())[{}{}]]><{[[]{}]{()()}}{([]<>)<()<>>}>}><{(<<<>{}>[[]]><({}[])({}()]>)}<{[ +(<{{<(([[({<(<{}><<>{}>)><{[(){}]}<{<>()}[[]<>]>>}{({<(){}}({}{})})})<<[[<(){}>{[]()}]<[{}{}]>] +<{((<{[{<{[((((){})(<>{}))[<{}[]>[()]])(<[()()]{()<>}>)]{{({()}<{}[]))}[<(()[])><[()[]]({}<>)> +(<(<({[{<{{{<[{}][[]<>]><{<><>}(<>[])>}}}>}<{<[({<[]{}>[{}()]}([()[]]{[]<>}))[[({}[])]{({}{})[{}[]]}]][<{{<>( +[({<<[{{{<(<<<{}{}>{[]}>({()[]}({}()))>{<[{}()][{}{}]>[[<>{}](<><>)]})>(<<[<{}<>>]{<[]{}>([ +<(({{[(({(<{{([]<>)[{}<>]}}{<<[][]>{<>{}}>({<>()}{<>()})}>{[[[[]<>]](<<>{}><()<>>)]})({<([< +<<[(<<([([({<[{}[]]<{}()>]{<[][]>[[][]]}}({<()()>{()[]}}({<>()}((){})))){{(<()[]>[[]])(<<>{}>)}{<{{}[ +{{(<<{([{[{(([{}{}]((){})))}{<[(()())({}())][{()<>}]>}][{<{({}())<[]()>}[[<><>]{<>()}]>}]}[((< +<[[{(([<<<{<([[][]][()[]}){{[]<>}(()[])}>([(<>[]){{}[]}]{({})<<>{}>})}[[<{<>[]}<[]()>>][{{()[]}}[{{}() +{{([{<((<{<[<<()[]>(<>())>{[<>()][[]<>]}]([({}[]][<>()]][(<>())<()<>>])>({<[[]<>]>[[()()][[][]]]}<[<[]() +[<<({<{[[({[<((){})[{}]><<[][]>{()[]}>][<({}{})>[[{}()]{{}<>}]]}{{<<[]()>([]())>{{<>()}{<>[]}} +[({[({{(<(<{<<<>[]><<>()>>({()[]}{()[]})]>){(([[()()](<>{})]{([][])<()()>})(({()[]}<{}()>)[ +{<(<{<{(({{[(<<>()>{<>[]})(({}())[[]()])]([({}())(<>{}}])}{{<{{}()}[[][]]>{{[]{}}<<>[]>}}}}{<[{< +[((<{{{([<<<[({}[])[()<>]]<{<><>}<<>[]>>>>>[(<{[{}]<[]()>}{[<>]<[][]>}>{{(()[])}(([][]){<>[]} +{<((<{(({{{<([[][]]{{}{}}){{[]{}}{[]<>}}>[{<{}()>([]<>)}(<[][]>{<>[]})]}<([[()[]]]{{()()}([][])})([{[][]}<{} +[{([(([<{([(<{[]{}}[()[]]>(([])[<><>]))])[[{(({}())<[]<>>)<({}())[()[]]]}([<()()>[<><>]](<[]<>><<>()>))]( +{{[[[(((([[{[([]())[()>]}(<<()<>>({}<>)>[{<>[]}[()<>]])]<<[{[]()}{[]{}}]>({[{}{}]([]{})}[{(){}}{{}[]}])>] +[({[<(<[{[{({<<>{}>{{}{}]}[(<>())[<>{}]])(((<>[])<{}[]>)[<()()>[{}{}]])}[[<<{}<>>{{}[]}>[(<>< +[{<((([{{{(<{[{}<>][[]<>]}]){[({{}<>})<<{}()>{{}{}}>]{<([]<>)<[]{}>>[<(){}>(<>[])]}}}(([{[<>]<[]()>}([<>{}][ +{(([<{[[<({[<<<>{})([]<>)>[{[]()}(<><>)]][<(()[])>{(<>{}){[][]}}]}<{[([]())<[]{}>]<{[]()}(() +<{[{[<<{[(([{(<>{})<[][]>}<([]<>)(<><>)>](<[<>[]][[]<>]>[[[][]]({}[])])))]{[[{({<>}[()<>])[<[]<>>{[]()}]}( +{(<(({{(<{<[<<<>{}>[<>[]]>([[]][[][]))]([(<>{})({})])><[[{{}[]}({}[])][{<><>}<{}>]](<([][]){[]}><{[][] +{[[(({{({<(<(({}<>){{}}){([])({}{})}>)>}<<[([{<>[]}[[]<>]])<({[]()}[{}<>])<[{}{}][[][]]>>][{< +({[{[{[<([{{[[()()](<>{})]((<>{})(()<>))}[({[]()}({}{}))[<<><>>{(){}}]]}<((([]){()<>}))>])><<< +[{<({([<(([{[{[]<>}][(()<>)<<>[]>]}]<(<({}{})(()())>[([][])[(){}]]){<<()[]>>}>))<[{<[[[]{}]([]())][{{}{}} +{[(((<<{[[(([<[]()>(<><>)])(<<<>{}>[<>{}]>{<<>><[]<>>}))[{(<<>()>[[]<>])(([]<>){<><>})}[((<>)[[][]])(([]{})[[ +{([<<{((({[[[(<>{})[()()]]]]<[([{}{}]<[]<>>){<<>[]><()[]>}]>}{<<{<()()>}>{{([]<>)[[]<>]}{<()[]>[[ +<<[(<(<[({<{<([]())(<>[])>[{{}<>}((){})]}>{({(<>())({}<>)})}}{<{<(<>[])><{[]{}}<{}()>>}[{(())(()[])}[({}())<[ +{{([{{<{{<[(<[[][]]{{}()}>)[<{[][]}<{}[]>}({{}()}{()()})]][{[[[]()]{()[]}]<{{}}([]())>}{(< +[<<{{<<<[[[({[{}()]}{<{}[]>(()())}){({[]<>}([]{}))<({}{})(<>())>}]{({<[]<>>([]<>}}{{[][]}[[ +(({[[[{<(<{[[([][]){<>[]}]([[]<>])]<{[{}()]<{}[]>}[({}<>)<{}()>]>}[[(<<>[]>[<>()]){<()<>>{{}{}} +{<{([[<<(<<{<[()<>][()()]>[[()[]]({})]}>>)>>]])<{({<<[[<([(){}]<[]()>)<<[][]>[<><>]>]]]>[({[{<()<>>< +{({([(([({{((<()()>([][])))}{{{<<>>}[[()<>](()())]}<{<<><>><{}[]>}>}})({<[{<{}{}>[<>()]}[{{}<>}[{}{}]]]({( +{{(<{<[[(<(<[(<><>){[]()}]>)(([<{}{}>[[]<>]][<<><>>(<>{})])<<[[][]]><<[]()>{<>}>>)><<{<({}{})[<><>]>}< +{[[[[{{(<<{<{{[]{}}<{}[]>}[<()[]>[<>[]]]>{([{}()])(<{}{}>{<>{}}]}}[<<{<>{}}<()()>>{[<>]}>{[(<>{})<()<>>] +((<[{<[({<({[(()())(<>[])]<[<><>]{[][]}>}([([])[{}()]]<{<>()}{{}<>}>))><([<([]{}){[]}>[{[]}[[][]]] +[<[<({[{{({<[(<><>)<[][]>](<<>{}>(<>()))>}(<<<{}{}>[{}<>]><<[]{}>[<><>]>>(((<>())<()>))))}}[{[(<[{()[] +[{<[<(<<{[<([<{}[]><<>()>][[[]()]<()[]>])>[(<[(){}][{}{}]>{[<>{}]<{}()]})]]({[(<<>>)<[{}<>]<[]{}>>]<<<(){}>< +[<{<{<<<(((([<()>{<><>}][(()())[{}()]])[[{{}()}<()()>][{()}]])<(<<[][]>><<{}()>[{}[]]>)[([[][]][<>[]] +({{<[{[{(<<[((<>[])<[]()>)[[{}{}]({}{})]]>([[(()<>)<<>{}>]{(()<>)[{}()]}]{(([]())([]()))[[[]<>][<>{}]]})> +({<<[<{{[[([{<()<>>}])[<{<()[]>}[{(){}]<{}[]>]>[[[[][]]](<[]<>>{<><>})]]]<[{[([]{})<()()>]}(<({}<>){< +<([<<{(<({{{<({})(<><>)>{{<>[]}<[][]>}}<([()[]]({}{}))>}})>{{({[[{{}<>}]{[(){}][(){}]}]([{{}{}}({}{})][[ +{[({<[<[([[<<({}{}){()[]}>{([]<>)}>{(({}<>)<[][]>)[{{}<>}(<>{})]}]])[({[(([]<>){<><>})(([]<>)<[ +<[[[{<<({<{([<()[]><[]()>])<[{{}()}<()[]>](([]<>){[]()})>}>{[[(<{}()){<>{}})[<[]()><()<>>]]{[{[][] +{[(<{<{{{[(((({}[]){(){}})(<(){}>{{}<>})){([[]<>]{[]<>})[[<>{}]{<>()}]}){(([<><>][{}[]])([<>] +[<({[[[[{<<{[{[]()}<[][]>](<{}<>>[{}{}])}{({{}()}((){}))([()<>]<<>()>)}>>[<([{()()}{[]()}]{[< +{<{{([{<([<[{<(){}>(()[])}<<(){}>{{}{}}>][{[(){}](<>())}[{<><>}<[]{})]]>({({[]()}[[][]])<{<>()}<[]() +[{{<[{<((([{{<[]{}>[[]{}]}{<<><>>[<>[]]}}](({<<>{}><[]>}<(<>)>)[((<>{}){<>[]})[{{}<>}<[]()>]] +([<<{([<[<<([([]{})[{}()]]<(<><>)<()<>>>)><([{{}<>}[(){}]]([{}<>](<>{}))){<<[]<>>{()<>}>[<()<>>(<>) +{{({({(<{({<{[()()]{[]{}}}[<{}[]>]>{[{<>[]}{{}()}](<<>{}>[{}<>])}}[{<[{}{}]<<>[])>([{}[]]{{}[]}) +<{((<([<[{([([<>{}]([]<>))]{{<{}[]>[[][]]}})([(<{}{}>{()<>})[[[]()][{}{}]]}[{{{}()}<<>()>} +[{<[<<({({<[{<<>[]><<>{}>}<{<><>}<{}()>>][([[]()]{<>{}})]>{(<[{}[]]([]<>)>}<<[{}[]][{}<>]>{{{}()}{<>[] +[{<<([([[{<((({}<>)[{}()])[{[]()}(<><>)])<[<()<>)(<>())]>>([((<>()))[[{}]([][])]]<([<>()]<()()>)>)}(([<{ +(<(([{<{(<([[[<>[]]{[][]}][((){})]])([((()())({}{}))(<<><>>)]<([[]<>]((){}>)({[]{}}{<>()})>)>)({{{{[ +{<<{{(<{[<{{<({}[])<{}[]>><([]())<{}<>>>}<([[]{}]<()<>>)>}>{<(([<>[]]([]()))<{{}{}}(<>[])>){[([]() +{{(({<{[{[[[([{}<>](()))]{{{{}{}}{<>{}}}[[{}{}]([]<>)]}][([(<><>)[[][]]])<<(()())(()<>)>[([]()){() +(<[{<<[<<[(<{{<>{}}{[]<>}}[{[][]}[()[]]]>[<(<>())((){})>{({}{}){[]<>}}])]]>((([(<[<>{}]{{}<>}>{( +(<<{{<[{[(<<<[{}{}]([][])>[{()<>}[{}]]>{({()[]})(<()<>>(()))}>)}}][[<([({<{}>[<>[]]}){({()[]}(()[])){ +<(<([<<({[{(((<>[])<<><>>){{<>{}>}){{[()[]]<{}{}>}{({}{}){<>()}}}}[(<<<>{}>[{}{}]>(<()[]>[<><>]) +[{[<<{[<(([[({<>{}}(<>))<<()()>[<>{}]>][{{[]{}}}<<<>()>({})>]]><{([(<><>)]<<(){}>{{}{}}>){{{{}[]}<<><>>}[[() +[[[[<{(({{(<<<{}><[]{}>>((()[])[{}()])><<{[]<>}{<>[]}>[(<>()){{}<>}]>)(({(<>())({}[])}){[<(){}><[]{}>][[ +<{[[<{<[<<[{([()()]{()()})[{[]()){{}{}}]}][{({<>{}})<[()()]{[]()}>}<[[(){}][{}[]]]{{<>[]}}>]><(([(()()) +{<<(<(([<<{[{<[][]>}{([]())[()<>]}]{[[<>]<[][]>](([]{})(()[]))})[<<[{}<>]{<>{}}>[([]<>)[{}[]]]><( +[([({([([{<({<<>{}>[{}]})<[({}{})({}{})][{{}()}(<>{})]>><{{([]{})([][])}[[{}[]]<<><>>]}<((<><>)[() +([[[[{{{{{{{<<(){}>{<><>}}{[{}[]]({}[])}}<({{}[]}[<>]){<<>{}>{()[]}}>}{{{(()[])}{{{}}}}{[([]()) +(<{(({<<<{(<[<[][]>]<<{}<>>{{}{}}>><[{[]<>][<>[]]][[<><>]<[]()>]>)[(<([]{}){[]{}}>({{}{}}) +<((({[(<<{({(([][])){[[]<>]}}<(({}{})({}{}))(<[]()>[()()])>)}>({(<[([]())[[]<>>]([[]{}]<[]<>>)><{{()[]} +<{(<<({[(({{({<>[]}(<>{}))<<()[]>{<><>}>}<<<()[]>[(){}]>>})<{({(<>[]){<>[]}}[[<><>]])<[(())(<>[]) +[([<[{[[{({{({[]<>}{[]()})([{}{}](()<>))}{(<[]<>><<>[]>)}})}<<([<[<>()]<[][]>>([[][]]{[]{}})](<<() +<<<(<({[{[{{(<{}>[{}{}])(([][])[(){}])}{([{}<>](<>))}}]}[<<{<((){}){[]{}}>({{}<>}{[][]})}<{{()()}<<><>>}>>{(( +<<<{{{((<[<<{<[]{}>}><[({}{})[[]<>]]>>[<([<>()](()))<(<><>)(()())>>[{<()<>>{()()}}]]]({(({[]{}}({}[])))<({{ +[<{[{[[{{{[{({<>[]}<[][]>)[{(){}}{{}()}]}<[[()()][{}()]](({}<>)[()()])>]<({<{}<>>({})}([()<>])){[{()< +<{{{{([(([{{{<{}[]>(()[])}{({}[])({}[])}}}])<{({<({}<>]<<>{}>>[<()<>>({}())]}[<<[]()>[<>()]>(<()<>>{<>[]})]) +((([({[<[[([([<>[]]<[]<>>)(<()<>>)]{[{<>)[()()]][([]()){[]<>}]})]][{((<[<>[]]{<>()}>[<()<>>[{ +<[<{[[<[<<{{(<[]{}>){[()]({}{})}}(<[()[]]{[]()}>[<()[]>])}{{({[]<>>([]{})){{()<>}{<>[]}}}(<(< +<[<<<[{<[<[[{(()<>)[()<>]}]({{()<>}({}())}[[{}()]])][{([<>{}]){({}[])([]{})}}]>[[[<(<>{})<(){}>>]}]] +<<[[[{[<[(<<<{<><>}(()[])>{{()()}[()[]]}>>)[<{[<[]()>({}{})]{{{}[]}[[]]}}{{{[]<>}{()()}}}>[[[[(){}]({}<>)]{ +<[<((<<<{<[({[[][]]<{}{}>})({{<>{}}[()<>]}(({}{})[[]()]))]({{(<><>)<<>()>}{[[]{}]}}({(()())[{}() diff --git a/2021/day10/test b/2021/day10/test new file mode 100644 index 0000000..2f182d8 --- /dev/null +++ b/2021/day10/test @@ -0,0 +1,10 @@ +[({(<(())[]>[[{[]{<()<>> +[(()[<>])]({[<{<<[]>>( +{([(<{}[<>[]}>{[]{[(<()> +(((({<>}<{<{<>}{[]{[]{} +[[<[([]))<([[{}[[()]]] +[{[{({}]{}}([{[{{{}}([] +{<[[]]>}<{[{[{[]{()[[[] +[<(<(<(<{}))><([]([]() +<{([([[(<>()){}]>(<<{{ +<{([{{}}[<[[[<>{}]]]>[]] \ No newline at end of file diff --git a/2021/day12/day12.scm b/2021/day12/day12.scm new file mode 100644 index 0000000..5d80af0 --- /dev/null +++ b/2021/day12/day12.scm @@ -0,0 +1,59 @@ +(import (chicken io) + srfi-1 + srfi-42 + srfi-152) + +(define (read-input #!optional (port (current-input-port))) + (map (lambda (s) (string-split s "-")) (read-lines port))) + +(define (big-cave? cave) + (char-upper-case? (string-ref cave 0))) + +(define (small-cave? cave) + (char-lower-case? (string-ref cave 0))) + +(define (neighbours edges vertex) + (let lp ((acc '()) + (edges edges)) + (cond + ((null? edges) acc) + ((equal? vertex (car (car edges))) (lp (cons (cadr (car edges)) acc) (cdr edges))) + ((equal? vertex (cadr (car edges))) (lp (cons (car (car edges)) acc) (cdr edges))) + (else (lp acc (cdr edges)))))) + +(define (find-all-paths edges start end) + (define paths '()) + (let lp ((path (list start))) + (if (equal? (car path) end) + (set! paths (cons (reverse path) paths)) + (do-ec (: n (neighbours edges (car path))) + (or (big-cave? n) + (not (member n path))) + (lp (cons n path))))) + paths) + +(define (part1 edges) + (length (find-all-paths edges "start" "end"))) + +(define (small-caves-at-most-once-except-one? path) + (let ((small-caves (filter small-cave? path))) + (<= (- (length small-caves) (length (delete-duplicates small-caves))) 1))) + +(define (find-all-paths-2 edges start end) + (define paths '()) + (let lp ((path (list start))) + (if (equal? (car path) end) + (set! paths (cons (reverse path) paths)) + (do-ec (: n (neighbours edges (car path))) + (and (not (equal? n "start")) + (or (big-cave? n) + (small-caves-at-most-once-except-one? path))) + (lp (cons n path))))) + paths) + +(define (part2 edges) + (length (find-all-paths-2 edges "start" "end"))) + +(let ((edges (read-input))) + (print (part1 edges)) + (print (part2 edges))) diff --git a/2021/day12/input b/2021/day12/input new file mode 100644 index 0000000..ffa0fce --- /dev/null +++ b/2021/day12/input @@ -0,0 +1,23 @@ +dr-of +start-KT +yj-sk +start-gb +of-start +IJ-end +VT-sk +end-sk +VT-km +KT-end +IJ-of +dr-IJ +yj-IJ +KT-yj +gb-VT +dr-yj +VT-of +PZ-dr +KT-of +KT-gb +of-gb +dr-sk +dr-VT diff --git a/2021/day12/test1 b/2021/day12/test1 new file mode 100644 index 0000000..898cd56 --- /dev/null +++ b/2021/day12/test1 @@ -0,0 +1,7 @@ +start-A +start-b +A-c +A-b +b-d +A-end +b-end \ No newline at end of file diff --git a/2021/day12/test2 b/2021/day12/test2 new file mode 100644 index 0000000..ef30b81 --- /dev/null +++ b/2021/day12/test2 @@ -0,0 +1,10 @@ +dc-end +HN-start +start-kj +dc-start +dc-HN +LN-dc +HN-end +kj-sa +kj-HN +kj-dc \ No newline at end of file diff --git a/2021/day12/test3 b/2021/day12/test3 new file mode 100644 index 0000000..da6e083 --- /dev/null +++ b/2021/day12/test3 @@ -0,0 +1,18 @@ +fs-end +he-DX +fs-he +start-DX +pj-DX +end-zg +zg-sl +zg-pj +pj-he +RW-he +fs-DX +pj-RW +zg-RW +start-pj +he-WI +zg-he +pj-fs +start-RW \ No newline at end of file diff --git a/2021/day13/day13.scm b/2021/day13/day13.scm new file mode 100644 index 0000000..aec1798 --- /dev/null +++ b/2021/day13/day13.scm @@ -0,0 +1,52 @@ +(import (chicken io) + srfi-1 + srfi-42 + srfi-113 + srfi-128 + srfi-152 + matchable) + +(define-record point x y) + +(define (read-dot s) + (map string->number (string-split s ","))) + +(define (read-fold s) + (let ((n (string->number (string-drop s 13)))) + (match (string-ref s 11) + (#\x (lambda (x y) (if (< x n) (list x y) (list (+ n (- n x)) y)))) + (#\y (lambda (x y) (if (< y n) (list x y) (list x (+ n (- n y)))))) + (_ (error "invalid fold axis"))))) + +(define (read-input #!optional (port (current-input-port))) + (let ((in (read-lines port)) + (string-not-null? (lambda (s) (not (string-null? s))))) + (values + (map read-dot (take-while string-not-null? in)) + (map read-fold (cdr (drop-while string-not-null? in)))))) + +(define (apply-fold fold-fn dots) + (set->list (list->set (make-default-comparator) (map (lambda (l) (apply fold-fn l)) dots)))) + +(define (part1 dots folds) + (length (apply-fold (car folds) dots))) + +(define (part2 dots folds) + (if (null? folds) + dots + (part2 (apply-fold (car folds) dots) (cdr folds)))) + +(define (print-dots dots) + (let ((xmax (+ 1 (apply max (map car dots)))) + (ymax (+ 1 (apply max (map cadr dots))))) + (do-ec (:range y ymax) + (begin + (do-ec (:range x xmax) + (if (member (list x y) dots) + (display "#") + (display "."))) + (display "\n"))))) + +(let-values (((dots folds) (read-input))) + (print (part1 dots folds)) + (print-dots (part2 dots folds))) diff --git a/2021/day13/input b/2021/day13/input new file mode 100644 index 0000000..23f9b23 --- /dev/null +++ b/2021/day13/input @@ -0,0 +1,941 @@ +92,632 +795,9 +1034,368 +1230,233 +969,816 +1218,526 +971,780 +139,417 +892,313 +1196,196 +1091,70 +728,747 +632,10 +1089,247 +70,159 +492,375 +919,581 +304,469 +736,431 +7,630 +457,879 +174,567 +328,773 +207,714 +361,452 +77,151 +907,298 +325,838 +956,644 +272,52 +259,794 +254,847 +517,851 +669,516 +746,275 +1146,801 +1019,297 +679,43 +517,416 +703,814 +90,201 +206,74 +239,794 +1120,114 +197,711 +1247,131 +239,71 +418,805 +129,757 +1195,56 +895,598 +975,712 +57,171 +656,746 +984,177 +1,182 +785,457 +810,107 +703,278 +699,593 +795,477 +67,750 +190,616 +1,712 +162,438 +1079,432 +1010,868 +431,30 +293,9 +957,518 +452,634 +1245,452 +631,87 +395,200 +721,284 +1143,198 +669,378 +1205,827 +974,483 +33,588 +894,7 +1064,245 +1099,616 +1307,248 +63,234 +249,71 +919,182 +589,284 +730,152 +251,298 +644,78 +731,148 +669,638 +663,712 +356,824 +960,873 +1139,602 +902,404 +785,728 +830,434 +691,207 +118,567 +927,742 +436,556 +946,866 +1235,746 +433,647 +1266,103 +267,775 +796,581 +474,219 +686,582 +982,354 +897,263 +398,626 +689,687 +1184,294 +403,374 +303,135 +1168,670 +1275,562 +1000,812 +974,411 +785,309 +1019,108 +189,551 +969,857 +401,549 +574,873 +73,885 +417,406 +1029,584 +345,626 +238,887 +103,847 +1006,21 +919,712 +256,268 +13,773 +1093,644 +1230,890 +858,260 +1010,196 +1002,341 +761,807 +1034,526 +661,318 +381,390 +1111,597 +1161,65 +1258,152 +1031,56 +393,890 +683,752 +22,621 +671,49 +972,31 +581,574 +1163,145 +1051,694 +805,513 +1119,28 +1051,794 +1288,884 +1092,226 +152,270 +174,327 +266,151 +763,863 +733,151 +1292,105 +55,47 +663,630 +190,780 +1170,537 +177,381 +550,390 +251,150 +23,43 +1007,135 +386,726 +431,847 +1079,24 +171,574 +997,212 +1056,89 +1238,257 +74,775 +152,119 +344,107 +833,793 +1146,737 +972,150 +107,600 +505,605 +1124,273 +474,194 +17,380 +492,823 +1309,712 +719,131 +830,460 +1237,574 +1180,28 +808,176 +507,98 +339,114 +155,261 +318,859 +335,824 +919,548 +920,497 +1074,413 +1221,233 +118,103 +1079,14 +673,518 +761,197 +289,96 +602,294 +1064,218 +549,197 +1091,600 +375,80 +691,625 +965,268 +574,469 +890,191 +796,89 +547,415 +3,248 +858,95 +162,71 +748,526 +222,392 +994,526 +803,796 +868,565 +218,42 +293,718 +763,31 +1222,742 +279,56 +966,107 +74,791 +455,177 +507,796 +1071,71 +875,518 +499,875 +177,45 +1258,70 +659,248 +467,750 +1044,151 +244,714 +1260,480 +576,476 +212,26 +181,156 +1071,346 +239,598 +893,406 +666,658 +1086,401 +114,565 +171,633 +103,495 +290,476 +1098,420 +1268,148 +582,257 +408,452 +310,787 +435,376 +991,824 +1130,518 +333,514 +1148,413 +90,649 +649,457 +326,298 +1155,875 +607,814 +868,329 +1302,859 +1048,532 +259,884 +1006,469 +1155,712 +587,122 +868,250 +1155,261 +328,705 +604,414 +271,175 +974,247 +621,687 +1054,211 +298,70 +647,793 +857,432 +293,207 +190,838 +842,173 +238,439 +113,383 +938,530 +11,114 +1074,295 +736,661 +1193,666 +364,642 +525,728 +405,590 +1089,199 +199,877 +1206,726 +835,301 +621,400 +1111,297 +1238,637 +580,551 +969,37 +945,768 +189,343 +164,737 +890,703 +661,514 +820,317 +13,170 +219,175 +551,847 +512,858 +1031,814 +1031,260 +637,376 +1130,667 +105,255 +1097,735 +1305,828 +619,625 +1126,367 +1087,30 +13,121 +47,726 +416,679 +338,31 +647,630 +313,343 +729,320 +82,571 +1139,574 +465,491 +1017,207 +234,847 +137,478 +875,527 +956,26 +591,660 +514,581 +326,189 +1303,152 +483,857 +869,831 +483,37 +739,863 +383,600 +502,723 +919,96 +169,437 +33,157 +7,712 +1250,665 +1098,644 +792,280 +236,413 +813,437 +107,863 +1001,474 +1001,626 +1092,194 +666,638 +202,95 +223,210 +907,596 +380,600 +1087,847 +475,301 +114,196 +977,206 +666,82 +119,266 +716,823 +689,437 +303,9 +10,658 +371,637 +773,241 +1000,586 +935,56 +1202,220 +699,628 +518,280 +1076,210 +273,838 +259,880 +972,66 +798,450 +236,581 +763,600 +816,227 +1250,229 +2,250 +1120,126 +1002,789 +731,772 +222,56 +1057,345 +268,726 +802,425 +335,182 +364,252 +949,885 +464,780 +344,630 +1130,443 +1049,162 +206,820 +1168,858 +982,298 +10,275 +363,786 +1161,605 +42,298 +1158,492 +782,742 +171,709 +350,682 +1240,159 +985,504 +734,418 +364,866 +341,485 +1203,751 +902,732 +80,213 +338,150 +55,847 +726,235 +536,775 +647,661 +621,588 +445,666 +1235,74 +954,824 +610,791 +1000,406 +949,562 +82,91 +1133,45 +436,42 +1285,638 +631,291 +416,663 +1017,114 +874,194 +736,233 +441,831 +902,452 +480,434 +949,780 +272,500 +666,12 +1099,479 +57,311 +130,866 +631,43 +925,499 +868,278 +42,148 +1266,551 +657,630 +300,226 +118,327 +1089,647 +47,504 +1184,742 +966,140 +556,700 +1088,392 +239,548 +146,376 +895,151 +549,697 +897,631 +644,414 +657,182 +641,638 +146,667 +652,644 +811,709 +88,152 +1300,598 +336,411 +1054,716 +105,827 +1309,630 +304,21 +1287,851 +736,540 +883,182 +734,194 +201,462 +1228,120 +783,381 +1230,213 +574,233 +1017,885 +528,742 +905,304 +774,551 +343,621 +836,219 +420,703 +748,859 +500,18 +647,600 +415,548 +300,26 +1196,747 +152,402 +734,866 +965,514 +364,194 +154,787 +7,518 +25,638 +802,441 +972,828 +171,320 +383,495 +457,687 +355,812 +17,868 +212,868 +1181,885 +190,56 +793,739 +263,182 +181,738 +1303,712 +505,513 +565,406 +1205,67 +508,425 +982,637 +75,74 +795,190 +1236,152 +1164,376 +915,78 +293,687 +36,630 +80,354 +1019,597 +537,534 +1202,642 +310,308 +92,526 +437,644 +836,194 +155,409 +413,631 +1193,86 +7,264 +1017,306 +1120,768 +1011,304 +966,586 +728,537 +527,65 +1193,205 +1173,2 +1146,295 +63,682 +1287,535 +1253,311 +551,47 +652,698 +443,479 +63,548 +584,683 +256,211 +798,892 +1268,298 +691,114 +1220,201 +1091,724 +1201,868 +246,666 +1148,800 +78,642 +1043,775 +1161,180 +1091,518 +1027,628 +649,128 +1069,183 +164,157 +417,488 +679,87 +223,864 +1300,236 +1130,70 +492,325 +267,152 +935,814 +766,182 +80,890 +219,70 +436,338 +949,452 +939,705 +664,859 +180,21 +517,43 +947,513 +1146,463 +764,252 +811,427 +1133,849 +303,134 +736,354 +82,452 +1007,759 +164,352 +1017,9 +611,628 +1238,17 +44,103 +892,581 +1143,646 +152,624 +846,838 +1139,320 +890,236 +351,424 +845,674 +1310,11 +551,399 +1228,263 +326,717 +1308,698 +1072,439 +679,291 +754,700 +331,198 +731,820 +982,596 +80,233 +1136,684 +1277,306 +13,704 +1280,582 +103,460 +647,101 +1124,425 +319,824 +733,375 +654,33 +1283,306 +783,65 +201,432 +574,4 +1038,394 +1310,861 +938,364 +95,656 +997,551 +200,376 +313,78 +564,201 +902,325 +164,381 +1201,646 +678,10 +231,813 +361,9 +977,514 +117,86 +646,859 +427,182 +984,637 +52,70 +560,142 +1101,666 +574,764 +1143,696 +246,228 +823,646 +127,269 +164,463 +773,808 +408,442 +1230,354 +151,444 +1148,438 +146,443 +239,738 +256,716 +656,861 +290,264 +303,457 +249,823 +353,518 +540,196 +338,66 +1288,234 +482,413 +331,696 +759,460 +197,191 +114,147 +780,410 +811,633 +1007,155 +313,485 +1120,56 +1087,658 +129,137 +345,268 +846,278 +300,698 +508,3 +847,28 +822,667 +487,646 +244,442 +574,540 +689,530 +211,616 +78,252 +159,646 +894,663 +1098,868 +730,551 +436,700 +1031,437 +946,488 +11,780 +366,858 +452,351 +73,9 +1192,103 +1021,798 +508,586 +1235,148 +1232,642 +5,437 +547,143 +663,569 +1299,114 +10,816 +1300,812 +684,824 +745,406 +503,674 +1247,96 +744,742 +115,838 +621,207 +1183,65 +1299,668 +474,667 +1292,519 +361,754 +545,248 +974,859 +579,820 +117,205 +512,892 +509,518 +808,12 +8,859 +1274,264 +145,152 +836,70 +836,451 +761,639 +1104,820 +610,103 +811,37 +82,442 +793,851 +241,183 +180,451 +1062,700 +212,278 +592,852 +1087,864 +418,357 +743,828 +527,829 +199,597 +483,602 +490,705 +743,598 +80,793 +517,739 +611,593 +1156,787 +765,644 +864,432 +1146,431 +763,415 +581,885 +654,11 +1148,879 +1044,677 +499,467 +746,299 +180,443 +1133,101 +33,400 +381,196 +774,775 +847,476 +162,456 +145,44 +171,516 +442,250 +995,114 +1058,600 +957,70 +43,266 +792,320 +1297,773 +721,452 +246,676 +649,318 +180,667 +582,357 +892,357 +160,219 +304,660 +746,270 +408,121 +719,630 +579,263 +60,677 +720,329 +431,47 +344,219 +231,880 +299,530 +579,122 +293,158 +1287,43 +564,59 +845,491 +820,766 +433,247 +1059,744 +644,236 +949,392 +335,712 +802,675 +734,252 +442,565 +770,565 +171,602 +1048,362 +502,775 +1303,264 +1051,365 +1293,26 +853,879 +333,688 +644,816 +136,574 +719,234 +392,362 +774,119 +1087,684 +699,266 +736,764 +1133,381 +371,257 +793,43 +1191,266 +341,346 +607,373 +147,145 +905,590 +102,849 +505,381 +1113,703 +748,816 +782,152 +197,183 +431,684 +139,29 +746,624 +1247,630 +1300,12 +1155,19 +631,359 +72,877 +1083,467 +382,170 +298,824 +730,600 +946,194 +162,15 +512,450 +1011,28 +423,141 +488,667 +1236,775 +793,70 +2,644 +919,122 +856,518 +728,257 +723,325 +833,773 +211,415 + +fold along x=655 +fold along y=447 +fold along x=327 +fold along y=223 +fold along x=163 +fold along y=111 +fold along x=81 +fold along y=55 +fold along x=40 +fold along y=27 +fold along y=13 +fold along y=6 diff --git a/2021/day13/test b/2021/day13/test new file mode 100644 index 0000000..282114c --- /dev/null +++ b/2021/day13/test @@ -0,0 +1,21 @@ +6,10 +0,14 +9,10 +0,3 +10,4 +4,11 +6,0 +6,12 +4,1 +0,13 +10,12 +3,4 +3,0 +8,4 +1,10 +2,14 +8,10 +9,0 + +fold along y=7 +fold along x=5 diff --git a/2021/day14/day14.scm b/2021/day14/day14.scm new file mode 100644 index 0000000..a518cd9 --- /dev/null +++ b/2021/day14/day14.scm @@ -0,0 +1,58 @@ +(import (chicken io) + srfi-69 + srfi-152 + matchable) + +(define (parse-polymer str) + (let ((str-lst (string->list str))) + (map (lambda (c) (string->symbol (string c))) str-lst))) + +(define (parse-rule str) + (apply cons (apply cons (map parse-polymer (string-split str " -> "))))) + +(define (read-input #!optional (port (current-input-port))) + (let ((lines (read-lines port))) + (values (parse-polymer (car lines)) + (alist->hash-table (map parse-rule (cdr (cdr lines))))))) + +(define (template->pairs template) + (define h (make-hash-table #:initial 0)) + (let lp ((polymer template)) + (match polymer + ((a b . rest) (hash-table-update! h (list a b) add1) (lp (cons b rest))) + ((a) h) + (() h)))) + +(define (template->counts template) + (define h (make-hash-table #:initial 0)) + (for-each (lambda (c) (hash-table-update! h c add1)) template) + h) + +(define (polymer-step pairs counts rules) + (define new-pairs (make-hash-table #:initial 0)) + (define new-counts (hash-table-copy counts)) + (hash-table-for-each + pairs + (lambda (pair v) + (let ((elt (hash-table-ref/default rules pair #f))) + (if elt + (begin (hash-table-update! new-pairs (list (car pair) elt) (lambda (x) (+ x v))) + (hash-table-update! new-pairs (list elt (cadr pair)) (lambda (x) (+ x v))) + (hash-table-update! new-counts elt (lambda (x) (+ x v)))) + (hash-table-update! new-pairs pair add1))))) + (values new-pairs new-counts)) + +(define (update-polymer pairs counts rules steps) + (if (= steps 0) + (values pairs counts) + (let-values (((new-pairs new-counts) (polymer-step pairs counts rules))) + (update-polymer new-pairs new-counts rules (- steps 1))))) + +(define (part12 template rules steps) + (define-values (pairs counts) (update-polymer (template->pairs template) (template->counts template) rules steps)) + (let ((vals (hash-table-values counts))) + (- (apply max vals) (apply min vals)))) + +(let-values (((template rules) (read-input))) + (print (part12 template rules 10)) + (print (part12 template rules 40))) diff --git a/2021/day14/input b/2021/day14/input new file mode 100644 index 0000000..b723789 --- /dev/null +++ b/2021/day14/input @@ -0,0 +1,102 @@ +PFVKOBSHPSPOOOCOOHBP + +FV -> C +CP -> K +FS -> K +VF -> N +HN -> F +FF -> N +SS -> K +VS -> V +BV -> F +HC -> K +BP -> F +OV -> N +BF -> V +VH -> V +PF -> N +FC -> S +CS -> B +FK -> N +VK -> H +FN -> P +SH -> V +CV -> K +HP -> K +HO -> C +NO -> V +CK -> C +VB -> S +OC -> N +NS -> C +NF -> H +SF -> N +NK -> S +NP -> P +OO -> S +NH -> C +BC -> H +KS -> H +PV -> O +KO -> K +OK -> H +OH -> H +BH -> F +NB -> B +FH -> N +HV -> F +BN -> S +ON -> V +CB -> V +CF -> H +FB -> S +KF -> S +PS -> P +OB -> C +NN -> K +KV -> C +BK -> H +SN -> S +NC -> H +PK -> B +PC -> H +KN -> S +VO -> V +FO -> K +CH -> B +PH -> N +SO -> C +KH -> S +HB -> V +HH -> B +BB -> H +SC -> V +HS -> K +SP -> V +KB -> N +VN -> H +HK -> H +KP -> K +OP -> F +CO -> B +VP -> H +OS -> N +OF -> H +KK -> N +CC -> K +BS -> C +VV -> O +CN -> H +PB -> P +BO -> N +SB -> H +FP -> F +SK -> F +PO -> S +KC -> H +VC -> H +NV -> N +HF -> B +PN -> F +SV -> K +PP -> K diff --git a/2021/day14/test b/2021/day14/test new file mode 100644 index 0000000..6c1c3a1 --- /dev/null +++ b/2021/day14/test @@ -0,0 +1,18 @@ +NNCB + +CH -> B +HH -> N +CB -> H +NH -> C +HB -> C +HC -> B +HN -> C +NN -> C +BH -> H +NC -> B +NB -> B +BN -> B +BB -> N +BC -> B +CC -> N +CN -> C \ No newline at end of file diff --git a/2021/day15/day15.scm b/2021/day15/day15.scm new file mode 100644 index 0000000..d2a6952 --- /dev/null +++ b/2021/day15/day15.scm @@ -0,0 +1,72 @@ +(import (chicken io) + srfi-1 + srfi-42 + srfi-113 + srfi-128 + srfi-152 + matchable + generalized-arrays + storage-classes) + +(define (string->list-of-ints s) + (map (lambda (x) (- x 48)) (map char->integer (string->list s)))) + +(define (read-input #!optional (port (current-input-port))) + (nested-list->array + (map string->list-of-ints (read-lines port)) + u8vector-storage-class + 2)) + +(define (neighbours grid p) + (match-let ((#(m n) (array-shape grid)) + (#(x y) p)) + (list-ec (: i '(-1 0 1)) + (: j '(-1 0 1)) + (and (not (= i j 0)) + (or (= i 0) (= j 0)) + (>= (+ x i) 0) + (>= (+ y j) 0) + (< (+ x i) m) + (< (+ y j) n)) + (vector (+ x i) (+ y j))))) + +(define (min-unvisited-index array index-list) + (let ((index-list (set->list index-list))) + (fold (lambda (v acc) (if (< (array-ref array v) (array-ref array acc)) v acc)) + (car index-list) index-list))) + +(define (part1 grid) + (define-values (m n) (match (array-shape grid) + (#(m n) (values m n)))) + (define unvisited (list->set (make-default-comparator) + (list-ec (: i m) (: j n) (vector i j)))) + (define frontier (set (make-default-comparator) #(0 0))) + (define dist (make-array vector-storage-class (array-shape grid) (* 10 m n))) + (array-set! dist #(0 0) 0) + (let lp ((v #(0 0))) + (do-ec (: n (neighbours grid v)) + (if (set-contains? unvisited n)) + (begin + (array-set! dist n (min (array-ref dist n) (+ (array-ref dist v) (array-ref grid n)))) + (set-adjoin! frontier n))) + (set-delete! unvisited v) + (set-delete! frontier v) + (if (set-contains? unvisited (vector (sub1 m) (sub1 n))) + (lp (min-unvisited-index dist frontier)) + (array-ref dist (vector (sub1 m) (sub1 n)))))) + +(define (expand-grid grid) + (match-let ((#(m n) (array-shape grid))) + (define new-grid (make-array vector-storage-class (vector (* 5 m) (* 5 n)))) + (do-ec (: k 5) (: l 5) + (: i m) (: j n) + (:let new-val (add1 (remainder (+ k l (sub1 (array-ref grid (vector i j)))) 9))) + (array-set! new-grid (vector (+ i (* k m)) (+ j (* l n))) new-val)) + new-grid)) + +(define (part2 grid) + (part1 (expand-grid grid))) + +(let ((grid (read-input))) + (print (part1 grid)) + (print (part2 grid))) diff --git a/2021/day15/input b/2021/day15/input new file mode 100644 index 0000000..687ff09 --- /dev/null +++ b/2021/day15/input @@ -0,0 +1,100 @@ +4552285989441124719798465825773318252269422625731628851155123123687151412171224298271625249662328175 +8311826917677295561395716245426184212471311214851351547842124165674922644719934113217134531111711843 +3134155528231296313292951689371671611355199429313261226392991129959293212461289411393263181213122398 +7134159681533331172991932819128718131121428715191238612623891233112534231482681182354129791911339131 +3291622121893821258215111531614233999661649271811871529461211115739821388973611183517651567314846349 +9116197319992223784973749159912918948514855218957329971416177152174169497812373219984133121155319113 +4968439114135996923939621521227438616432262962572553451333141591641121311129913812892293179114231721 +6239219785234675391281641114148225942622192542113712327361223716951191275736388845623994891799592928 +1939273152114165815621898131741625142273757411141673112259897358299222269191191214321758245326199814 +3816295121211713919918129141521748315579413854273125311823434671365133636981112367451294972238794443 +2852174392175217891292769297329734141529288318181221953212137313858911222727424134319782324839616229 +8183411981136718428823127681411246528222138421871778251231423171588642328395114123811125612118626218 +3338418958818229331399513691921921869922413136194421828291197132791812222241633461426938621462118999 +6118582765375541144491519871123121172943678873247541921192915151717957812714841145223161116244141719 +1469257418313218951211511591224281868433285518896571868973996776391916421179863524342144166273783912 +1422118419319515496189391158516462277393622129936871982217562457129964219912124123218312977313682811 +8162546139952136189911177533357821252891975965218152184112132367245486747212214333324221119951528114 +1488239611461491973865185242959577752914191817477523179143671148316542517213281111151119111864959392 +2218917661868133141243819962413216131979913232799988871913939111823317421712824994542992792255223561 +5734326732884792428191241121191811111111473387959653938269214112192296162111121271889621211118195111 +1511935111861121935741768338923128124661819191925137121591321229121111755219811212182121742778172224 +9691562183513388221726493821238419121411141652415724257169175511984419826317912119999434678121339231 +2729237532959444733225435991119461921916882435586112311223124141186312488218129149812515658171863425 +7312559181323743938221212236191514318418548186139317233736171333421416212237192119355192471989892212 +9415747738346141691418825197173192515219266172136455452815162517475883863143239112116141841148451749 +1716263121115631141784252251314588413213814511691451393911924811572861144235991292175255372133811315 +2113414911731164962342223421317921647461491268117386815433911112541511131114761959253123128112819312 +5611912334927221252711276871211624911564162161151291141471494555221624112246614151591111923265776291 +1232313271113554189955413155112699163114821911353171341215485252647889646619236253688482351315735369 +2928123121191267721323822133384328412616119246178131321245693192617151348489271993468574213234923161 +3738152544625516916693642738573193818379635241112299568611511432174519855133859227139712691931163454 +4978932237312615451115123994194181387239461985218454596664714694169812591251542128791112588238428113 +3912899182798916628918131979371112226953512814111311128381119548221199616478868331875333186481121175 +1192927421372584232141915111886499529492278636769145793985139259812374369331982931471421336131151625 +3911185215582434844193161925151121286721292842811119362211484112143921956211724157122539837492394492 +2953216722815212632732453117127324334249682233371211614762722313186947295795983392311121826197161624 +1198382767218312279682278191822374559293793873174499211516436372431371961648282146283935293224883912 +2721884412949147613342941184192811799669771915122149974294638981641377324238731539914369681342394477 +3115118226257112172214531484191979121212629611941829729475142214919216183112798119132131299929929699 +1466138152589912253129981816414331451718321345795981111891281781111972184919821925923141344127119916 +9122134452846226111158128491291121145921222611191948931811123751226221716719166843766823615463271932 +6619413231595241518519791341359886562981116111712917233731162191991239432652386931159591326187113817 +1591845559162771847321152825187221391211122541281244754119292979548984493162991919959714934322337916 +9145672294212142439213811931976372247362114829339211131128281865174113912121498492324131148121412341 +1756381967913432222112226193132111121163731192131143782119299311666751422511193161912311177255311491 +7115421916752266197811918146237953712817131391633913821814582931412513381932142138371125246189914126 +1598759376392514417822195284118133472211872183424131361292781113442751745432173337612973642181819911 +1591927514986431542931331139613924212515831921359261755424117232619116257358732811361551433133715429 +2212111786268518388677923211533188345939141431423322741185388818746937933316139596963917115156513628 +1855546869784857736214551457262769215529832121261231613433399962496153414792119714419153328447319921 +3511415871713341517259565232116433981351421678135321191415221837295414292764788231114826312162341834 +1318126219119423358223393722114232919911513119438148878413538911488323992254252914857272139929315563 +4289226872419291861111383538111219112723121131591971688293116191243172327912122531151228931163825361 +4267158139198923577615628157767215331521989227229273443329721698929373269121122111211118234885216413 +1721281392353248918171111348431632192885983433192911673143212314835824251437392163131172671133214211 +5692434767167216246181911647487628151199631629919256742261113166114149911986911217644914329391511712 +3171778979133384821415911915931112614411161443519188221518117991151822193121471212118516171612194481 +5728892915394116535685132841521314914121155636512129949659431291134139338413127321115791617158219492 +5922861319161211595287232112219437811222352666151929995431111444364119321358256314981447283261239184 +3222922881213813538112221219919839222562138222214373588415721997345273115221926221171788323425398221 +7121892289471757714164192317199889321525289161191684627127231622121813228164928171711883131411171115 +4142133195631891911149439213662211433837321296381465816173997759492225942284821492317392226316171421 +7171767952218516859111921382981412117845155531414929285844619281338151913746922229418521329595329132 +4816434489225615129112978111511319222163357872511891321872136916132598114322114834241711175313191619 +2514669152191264429122527554915621525232982214127922591124617421227986192172464521171554113293241255 +1774416897439364241311525518963326121825461491834135917315678145446394222119252415181557212319979836 +2924418171212166376217332219928524125161151381352283981249219536811189593191191599828153912124771153 +4727284757417238221195571727143816932519912332164191111313562582931769391773963555132631269421642112 +1826176132932591211811281494184124649671144935551536222129675132732112314333131883173928216124343136 +3941791891125279118465128381591141714936412111144872142196359856953125116815582139618126238119115194 +6384117152771514979552471442881941755398722446886791413239114561671931482126123895183722933123653386 +8288171182979883467251168211845926325328548779112522134122556292344839656392433126114296546576969111 +2138989191121173198114315232525383591485375339363419514352517573221121171933413254921418513742631831 +2213937521219111556424717112813918859811613149217542121258771325685446299113436243924329111883434559 +5617411212729914494182219773316932281919155593277131423859448626521722117873728694549823541912312231 +7221118972111421391134729292837321281576312986563112977458467319418639282574649243117271379499867916 +7481381681214113329839118518993911987199743449929119497141229931317315347953958761558423818144714914 +1962828621421912127195245938424121754697118642194232414827848912318131722969611192541614712413124389 +1453414916661118796193123189169627934943195131587127135111441988921215121971461323995311761192254778 +1518323154639911222886514111893851359235192392211115741135984919811553443945191524421112271149351165 +2124619118928812488832412319378222622441927332925587491814133367139228519219159512159781839661391252 +9136123238713391213615338836814173613372192337512891881479195988521936915119119435812284115134985121 +3187261985313118116972571821212913911963714631126731221266314529196541119322571137312995744923631544 +2332196771181422121471611133259321313136947141217624113313181189182899571613229611511529134392846341 +2251119425212277151215291781189314975221719413134967665311869114521729499121116213885163746111535137 +9586226199417317151915282291149995631781731851159711348611212628493271263152555273213316776492793658 +9912626841129251219151217833912973311223772814496593297471731359818991699147989928243894313247532231 +3418241618947516332227613831374921874855584125558114429471121321232177214321598521597161191128216954 +8822616123274861411769128213421232113175792178713153351744856521396128117147182712443411512198547621 +5136333391414812842139999627612251181119116134115993237221194432774327464926135181519819157243157311 +3251712384221229339111197239365114189176819952384125831111975148571184652387121257481133311981238514 +4179221897253196943111444994381452998232779759947119714529137541964411154341851412468966612128546572 +3561511861976915288819136237471569199991221811128611595299121117942329621124911194511484259317211339 +7111129229731261111283415393296113773364287191681115113218825813213487828249222962695115515691873514 +7329411182343148337133461144181931219118279336638688643366271821255171224147641198181918236522367641 +9283273114241197532168149326977442972132134212116845582279681563772677122931571239535226581819843529 +1998826211243465142314171494115638947312397589362193711385179619216332311195192919797766423111769171 +5525112294591818267911389162211123228611241372111487571111114322132741612141213853137289112282145369 +3749112349379788119372851572694972255221141172838213557111196117255932787266739885219667115595878115 +2711353211472121989372124182678117398917811239219156315953193628344552163451161917419183114199897172 diff --git a/2021/day15/test b/2021/day15/test new file mode 100644 index 0000000..7d9d562 --- /dev/null +++ b/2021/day15/test @@ -0,0 +1,10 @@ +1163751742 +1381373672 +2136511328 +3694931569 +7463417111 +1319128137 +1359912421 +3125421639 +1293138521 +2311944581 \ No newline at end of file diff --git a/2021/day16/day16.scm b/2021/day16/day16.scm new file mode 100644 index 0000000..cf68e04 --- /dev/null +++ b/2021/day16/day16.scm @@ -0,0 +1,127 @@ +(import (chicken io) + (chicken format) + srfi-1 + matchable) + +(define (read-input #!optional (port (current-input-port))) + (read-line port)) + +(define (hex-char->bin hex-char) + (match hex-char + (#\0 '(0 0 0 0)) + (#\1 '(0 0 0 1)) + (#\2 '(0 0 1 0)) + (#\3 '(0 0 1 1)) + (#\4 '(0 1 0 0)) + (#\5 '(0 1 0 1)) + (#\6 '(0 1 1 0)) + (#\7 '(0 1 1 1)) + (#\8 '(1 0 0 0)) + (#\9 '(1 0 0 1)) + (#\A '(1 0 1 0)) + (#\B '(1 0 1 1)) + (#\C '(1 1 0 0)) + (#\D '(1 1 0 1)) + (#\E '(1 1 1 0)) + (#\F '(1 1 1 1)))) + +(define (hex->bin hex) + (concatenate (map hex-char->bin (string->list hex)))) + +(define (bin->number bin) + (let lp ((acc 0) + (l bin)) + (if (null? l) + acc + (lp (+ (* acc 2) (car l)) (cdr l))))) + +(define-record val + version num) + +(set! (record-printer val) + (lambda (x out) + (fprintf out "#,(val (ver ~S) ~S)" (val-version x) (val-num x)))) + +(define-record op + version type args) + +(set! (record-printer op) + (lambda (x out) + (fprintf out "#,(op (ver ~S) (type ~S) ~S)" (op-version x) (op-type x) (op-args x)))) + +(define (decode-version raw) + (values (bin->number (take raw 3)) + (drop raw 3))) + +(define (decode-type-id raw) + (values (bin->number (take raw 3)) + (drop raw 3))) + +(define (decode-num raw bits) + (let ((new-bits (take (cdr raw) 4))) + (if (= 1 (car raw)) + (decode-num (drop raw 5) (append bits new-bits)) + (values (bin->number (append bits new-bits)) (drop raw 5))))) + +(define (decode-op version type-id raw) + (if (zero? (car raw)) + (let* ((subpackets-length (bin->number (take (cdr raw) 15))) + (subpackets-raw (take (drop raw 16) subpackets-length))) + (let-values (((subpackets _) (decode-all-packets subpackets-raw))) + (values (make-op version type-id subpackets) (drop raw (+ 16 subpackets-length))))) + (let ((subpackets-count (bin->number (take (cdr raw) 11)))) + (let lp ((i subpackets-count) + (packets '()) + (raw (drop raw 12))) + (if (zero? i) + (values (make-op version type-id (reverse packets)) raw) + (let-values (((packet new-raw) (decode-packet raw))) + (lp (sub1 i) (cons packet packets) new-raw))))))) + +(define (decode-packet raw) + (let*-values (((version raw) (decode-version raw)) + ((type-id raw) (decode-type-id raw))) + (if (= type-id 4) + (let-values (((num raw) (decode-num raw '()))) + (values (make-val version num) raw)) + (let-values (((op new-raw) (decode-op version type-id raw))) + (values op new-raw))))) + +(define (decode-all-packets raw) + (let lp ((packets '()) + (raw raw)) + (if (every zero? raw) + (values (reverse packets) raw) + (let-values (((packet new-raw) (decode-packet raw))) + (lp (cons packet packets) new-raw))))) + +(define (version-sum packets) + (let lp ((versions '()) + (packets packets)) + (match packets + (() (apply + versions)) + ((($ val ver _) . rest) + (lp (cons ver versions) rest)) + ((($ op ver _ args) . rest) + (lp (cons ver versions) (append args rest)))))) + +(define (part1 hex-str) + (version-sum (decode-all-packets (hex->bin hex-str)))) + +(define (eval-packet packet) + (match packet + (($ val _ num) num) + (($ op _ 0 args) (apply + (map eval-packet args))) + (($ op _ 1 args) (apply * (map eval-packet args))) + (($ op _ 2 args) (apply min (map eval-packet args))) + (($ op _ 3 args) (apply max (map eval-packet args))) + (($ op _ 5 args) (if (apply > (map eval-packet args)) 1 0)) + (($ op _ 6 args) (if (apply < (map eval-packet args)) 1 0)) + (($ op _ 7 args) (if (apply = (map eval-packet args)) 1 0)))) + +(define (part2 hex-str) + (eval-packet (decode-packet (hex->bin hex-str)))) + +(let ((hex (read-input))) + (print (part1 hex)) + (print (part2 hex))) diff --git a/2021/day16/input b/2021/day16/input new file mode 100644 index 0000000..d8c9a77 --- /dev/null +++ b/2021/day16/input @@ -0,0 +1 @@ +C20D59802D2B0B6713C6B4D1600ACE7E3C179BFE391E546CC017F004A4F513C9D973A1B2F32C3004E6F9546D005840188C51DA298803F1863C42160068E5E37759BC4908C0109E76B00425E2C530DE40233CA9DE8022200EC618B10DC001098EF0A63910010D3843350C6D9A252805D2D7D7BAE1257FD95A6E928214B66DBE691E0E9005F7C00BC4BD22D733B0399979DA7E34A6850802809A1F9C4A947B91579C063005B001CF95B77504896A884F73D7EBB900641400E7CDFD56573E941E67EABC600B4C014C829802D400BCC9FA3A339B1C9A671005E35477200A0A551E8015591F93C8FC9E4D188018692429B0F930630070401B8A90663100021313E1C47900042A2B46C840600A580213681368726DEA008CEDAD8DD5A6181801460070801CE0068014602005A011ECA0069801C200718010C0302300AA2C02538007E2C01A100052AC00F210026AC0041492F4ADEFEF7337AAF2003AB360B23B3398F009005113B25FD004E5A32369C068C72B0C8AA804F0AE7E36519F6296D76509DE70D8C2801134F84015560034931C8044C7201F02A2A180258010D4D4E347D92AF6B35B93E6B9D7D0013B4C01D8611960E9803F0FA2145320043608C4284C4016CE802F2988D8725311B0D443700AA7A9A399EFD33CD5082484272BC9E67C984CF639A4D600BDE79EA462B5372871166AB33E001682557E5B74A0C49E25AACE76D074E7C5A6FD5CE697DC195C01993DCFC1D2A032BAA5C84C012B004C001098FD1FE2D00021B0821A45397350007F66F021291E8E4B89C118FE40180F802935CC12CD730492D5E2B180250F7401791B18CCFBBCD818007CB08A664C7373CEEF9FD05A73B98D7892402405802E000854788B91BC0010A861092124C2198023C0198880371222FC3E100662B45B8DB236C0F080172DD1C300820BCD1F4C24C8AAB0015F33D280 diff --git a/2021/day17/day17.scm b/2021/day17/day17.scm new file mode 100644 index 0000000..031eebe --- /dev/null +++ b/2021/day17/day17.scm @@ -0,0 +1,59 @@ +(import (chicken io) + (chicken format) + srfi-1 + srfi-42 + srfi-152 + matchable) + +(define (read-input #!optional (port (current-input-port))) + (map (lambda (s) (map string->number (string-split (string-drop s 2) ".."))) + (string-split (string-drop (read-line port) 13) ", "))) + +(define-record state + x y vx vy) + +(set! (record-printer state) + (lambda (st out) + (fprintf out "#,(state ~S ~S ~S ~S)" (state-x st) (state-y st) (state-vx st) (state-vy st)))) + +(define (too-far? target-area st) + (match-let ((((x1 x2) (y1 y2)) target-area) + (($ state x y vx vy) st)) + (< y (min y1 y2)))) + +(define (in-target? target-area st) + (match-let ((((x1 x2) (y1 y2)) target-area) + (($ state x y vx vy) st)) + (and (<= x1 x x2) (<= y1 y y2)))) + +(define (sign x) + (cond + ((zero? x) 0) + ((> x 0) 1) + ((< x 0) -1))) + +(define (step st) + (match-let ((($ state x y vx vy) st)) + (make-state (+ x vx) (+ y vy) + (- vx (sign vx)) (- vy 1)))) + +(define (simulate target-area vx vy) + (let lp ((st (make-state 0 0 vx vy)) + (prev-st (make-state 0 0 vx vy)) + (max-height 0)) + (cond + ((in-target? target-area st) (list st (max max-height (state-y st)))) + ((too-far? target-area st) (list prev-st max-height)) + (else (lp (step st) st (max max-height (state-y st))))))) + +(define (find-max-height target-area) + (list-ec (: vx 0 500) + (: vy -100 1000) + (:let st (simulate target-area vx vy)) + (if (in-target? target-area (car st))) + (cadr st))) + +(let* ((target-area (read-input)) + (max-heights (find-max-height target-area))) + (print (apply max max-heights)) + (print (length max-heights))) diff --git a/2021/day17/input b/2021/day17/input new file mode 100644 index 0000000..e44542d --- /dev/null +++ b/2021/day17/input @@ -0,0 +1 @@ +target area: x=236..262, y=-78..-58 diff --git a/2021/day17/test b/2021/day17/test new file mode 100644 index 0000000..a07e02d --- /dev/null +++ b/2021/day17/test @@ -0,0 +1 @@ +target area: x=20..30, y=-10..-5 diff --git a/2021/day20/day20.scm b/2021/day20/day20.scm new file mode 100644 index 0000000..4be754c --- /dev/null +++ b/2021/day20/day20.scm @@ -0,0 +1,87 @@ +(import (chicken io) + (chicken format) + srfi-1 + srfi-42 + srfi-69 + srfi-152 + matchable) + +(define (parse-line s) + (map (lambda (c) (eq? c #\#)) (string->list s))) + +(define (read-input #!optional (port (current-input-port))) + (let* ((lines (read-lines port)) + (algo (list->vector (parse-line (car lines)))) + (img (map parse-line (cddr lines))) + (h (make-hash-table))) + (do-ec (: line (index i) img) + (: x (index j) line) + (if x) + (hash-table-set! h (list i j) #t)) + (values algo h #f))) + +(define (kernel img bg i j) + (fold-ec 0 (: k (- i 1) (+ i 2)) (: l (- j 1) (+ j 2)) + (hash-table-ref/default img (list k l) bg) + (lambda (n acc) (+ (* 2 acc) (if n 1 0))))) + +(define (enhance algo img bg) + (let* ((indices (hash-table-keys img)) + (min-i (hash-table-fold img (lambda (k v acc) (min (car k) acc)) 0)) + (max-i (hash-table-fold img (lambda (k v acc) (max (car k) acc)) 0)) + (min-j (hash-table-fold img (lambda (k v acc) (min (cadr k) acc)) 0)) + (max-j (hash-table-fold img (lambda (k v acc) (max (cadr k) acc)) 0)) + (new-img (make-hash-table)) + (new-bg (vector-ref algo (if bg 511 0)))) + (do-ec (:range i (- min-i 1) (+ max-i 2)) + (:range j (- min-j 1) (+ max-j 2)) + (:let pixel (vector-ref algo (kernel img bg i j))) + (hash-table-set! new-img (list i j) pixel)) + (values new-img new-bg))) + +(define (count-pixels img) + (hash-table-fold img (lambda (k v acc) (if v (+ 1 acc) acc)) 0)) + +(define (part12 algo img bg times) + (if (zero? times) + (count-pixels img) + (let-values (((img bg) (enhance algo img bg))) + ;; (with-output-to-file (sprintf "imgs/img~a.pbm" times) + ;; (lambda () (img->pbm img bg))) + (part12 algo img bg (sub1 times))))) + +(let-values (((algo img bg) (read-input))) + (print (part12 algo img bg 2)) + (print (part12 algo img bg 50))) + +(define (visualize img bg) + (let* ((indices (hash-table-keys img)) + (min-i (hash-table-fold img (lambda (k v acc) (min (car k) acc)) 0)) + (max-i (hash-table-fold img (lambda (k v acc) (max (car k) acc)) 0)) + (min-j (hash-table-fold img (lambda (k v acc) (min (cadr k) acc)) 0)) + (max-j (hash-table-fold img (lambda (k v acc) (max (cadr k) acc)) 0))) + (do-ec (:range i (index k) (- min-i 1) (+ max-i 2)) + (:range j (index l) (- min-j 1) (+ max-j 2)) + (begin + (when (and (not (= k 0)) (= l 0)) (display "\n")) + (if (hash-table-ref/default img (list i j) bg) + (display "#") + (display ".")))) + (display "\n"))) + +(define (img->pbm img bg) + (let* ((indices (hash-table-keys img)) + (min-i (hash-table-fold img (lambda (k v acc) (min (car k) acc)) 0)) + (max-i (hash-table-fold img (lambda (k v acc) (max (car k) acc)) 0)) + (min-j (hash-table-fold img (lambda (k v acc) (min (cadr k) acc)) 0)) + (max-j (hash-table-fold img (lambda (k v acc) (max (cadr k) acc)) 0))) + (printf "P1 ~a ~a~n" (+ 2 (- max-i min-i)) (+ 2 (- max-j min-j))) + (do-ec (:range i (index k) (- min-i 1) (+ max-i 2)) + (:range j (index l) (- min-j 1) (+ max-j 2)) + (begin + (when (and (not (= k 0)) (= l 0)) (display "\n")) + (if (hash-table-ref/default img (list i j) bg) + (display "1") + (display "0")))) + (display "\n"))) + diff --git a/2021/day20/input b/2021/day20/input new file mode 100644 index 0000000..0b3fda0 --- /dev/null +++ b/2021/day20/input @@ -0,0 +1,102 @@ +#.#.##..#..#..###.#.#....#.########.#.##.#..#.###..###.##.#.##.#.#.....#..##.#.#..###.###.######..#.#..#######.#..#....####..###.####.###.#.#######.#...#...#.##.###..###..##.#.#.###........##.#.....#.##.#.####...#...#.#..###.#.#...#....#...####..#.########.#...#.####.#####..#.#.###......#.##...###..##..#.#..#....#..###.#.##.....##.#####..##.####.#.###....##.###...#.##....##.#..#.#..#..#.##...#.##..#####.####.#.##...##...##...#.##.#.#.####..##...#.....#......#.#......#..###..#..##..##.###..#####..#..##.#..#. + +.....#..#...###..##.#.#..#..#......#.##.###.#...#.#...#####......#...#.......###.##.#.#####.##....#. +....#.###..#...#.#..#..#..#.#.#.##.##..###......####..#.##......###...#....##....#.##.###.##..#...## +#.#..###.#.#####..##...#..####...#####...#.....#..##...######....#......#..#.###.#....##..#.##..##.. +....######.#.#.#.##.#..#.###.#....#..#..##..#.......##...###.##..#####..##.#..#.#..##....####.....#. +#...#..#...######.#.#....#.##...##.##....#.#..##.#.##.#.##.#.##..#..#.#....#..##.#..####.##.##.#.#.# +..##......#.####.#..#...#.#.#..#.#...#..#.####.###.##...##...#.##.###.#.##.###...#...###.#..##...### +#.###...#....##.#..##..#..#.###...#..#.##...#......###..#....#.##.####.....###...#.#..##..#...#.#... +##..##.##.....###.###...#.###...#..#...#######.####.##.#.###.###...###.....##.####.##..##.#.#.###... +.####.#..#..#..#.##...##....##..#.##..#.....##..#......#.#..##..####.#.##..###.###.##....#########.. +#.##.##.#.###.#..#.#.##.##.#..##....##..#..#.#..####..#.#.#.#...#.#....##.###.###.#####.#######...#. +.##.#.#.#.##...##.##..##..#...#..#.#...########......##.###..##.##.##..##.##.....#.#..#..###..###..# +##.#..##..#..#..##....##....#.##.#..##.#.###.##.##.##..#####.##..###.#.#.#.##.#########.##....#.###. +##.#.#####..##.##.####...#.#.##....##.##.#..##.##.##.#..######......#.#.#......##.##.###.#....##.#.. +.#.#...##.###..#...#.######.###.#...#.##.#.....###.#.#..##.#.#..#...###.#.#.#.....##......####..##.# +####..#..#.#...........###.#..###.#...##..##.##.#.#........####....##.##.....#.####..#..##.##.#.#..# +..#.##.###..###.#.#.##.#####.....##.#.....#.####.#......##....#.###.#####...#.##.#.#####.#...###.... +####.#.#..####.#.#.#.###....###.....####.##.......#...###..##.#.#.#.##..#.#.##.#..##...##.....##..## +.#....##.###.#.##.#.#....#.#####..##...#.##....##.#.##.##..#.#...#.##.####.#.#.####.#..##.....###### +#.#..####..#.#.###.#.##...#####..#######..###...##..###.#.###....#.###..#.#...#.#..#.##.##...#....## +#.....##.#.#.##...###........#..##......#.....###...##...##..#.#..#.####.#.##.#.#..#####...#..#.#..# +.##.###...#...###..#.##########.##..#...###..........#.###.####.#.#####....####.#..###.......##.#.#. +#.#....#.####.#..####...#.#.#.###.#..#..##...#.##.##.##.#..#...#..#.#.#...#.###.##.#.#.#.####.##.##. +.##....#..#..###.###..##....##.....####.##.##......#.######.....##..###..#.#..#..##.#.....#.####..## +..#..##.##.######...##..##...#...#..#....#..##.....####..#..#######.#...#...#..#..#...###.#.##.#..## +#..###.##.#.#...##.#.##.#..###..##.###.#..##..#.###....#..#..##..##.#..##..##......#.##....#.###.##. +...##.###..##.....##...##.#....###...#..##.##.#####..#.###.##..#..#.#.##...##.#.####.##..####...#.#. +#####...#.#.##...##.....#......###..#######...###...###...##.##...###....#.....##....####...#...#..# +#.#.#....##.#..#...#.##.###..#.#..#.##..###.#.#.#...##...##..#......#.######..###.........#######.#. +.#.#.#.######..#...#..##.....###.......#..###.##..##..#..#..#.....##.#...#....##.######.#..#.######. +#.#.#.#..##.##.#.##..##.#..#..##.#.....##...#.#.#.#..#...#..#.#..#..#...##.##..#..#.###..#.##.#..#.# +#.#..###..#.....###..#.#..#.####...#.#####..##.##.###.#...#....#####......#.#..#.###..####.#..##.#.. +....###.###.#...#..#...#.###.....####..###.#.............##....#.....##.###.#.#.#.###.###.##.##.###. +...#.#...##.###....#....##.#.#.##.#..#.#...#.##.#.#.#..#.#....##.###.#...#..##.#..#..#..#...#.##.### +.#..#.####.#####..###....#.##.#..#...###..##.#.###.###..##.#####..###...#######.....##.#..##..#..... +.##..##.#.#.#.....#.#...##.###.#.#.##..#.#.#.#.#...##.#.#..####....#....#.######.####.##.#...##..#.. +##.#...###.##...###.##.##....##..##.##...#####..###.#..##.###..#..#....######.###...###.#.####..#... +..####.#.#..####....#..#......#.##.#..##..#.####.#.##.##.##.#####..#.#.#.....#.#######..###.#.#.##.# +#.###.##.#.....####.###.#..##..#.#.##....#.#####.##.#...#..#.##.#..####.##..##........###.####.##..# +....###....#..#.##..##..#.####...#..####.#.##.........##....#.#......#.###.###..#.#.####.##..#.###.. +.##.#........#.##.#..#.#.###.#########...##.##.#..#.#.#.#.##...####..#...###.#.#...#.#.##..##..##### +####.###.##.#.######..##.#.##.....##.##.####....###.#.#..#.....##.#..#....#.#...#...#.##.#..####.#.. +###.....###.###....#..#...#.#..#.#.###.#.#..##.###.###...###.###.#...#.#.##.#..#..##.#..#####.#.#.## +.#...#.########..######.#..##.#...##..#.....#..#....#....######.#..#..#.###.#.#..###.##.#.#.#...##.. +#.##.##.#...#....#.######...##.#.#.###......####.###.######.#.#....####.####..##.#.#..###.##..##.... +##.##..####.#.....#....#..###...##.####..###..#####..#......####...#...#.#.##..###..#..#....#...##.# +#...####.##.#####..##..#.##.#....#######..##.##.#####...###..######..##.###..#.#.#.#..#..#..##..##.# +#####..####..####.##..###.##...####.#.##.######..#..#.##.#.##..#..#.##....##....####..#######.#.#.## +......#.#..##.#.###......#..#.#..#..##.#.#...#.#.....###..##.##.###..#.#...#..##.###...#...###.#.#.# +....##.#..#....###...#.#....##.#...#.###.#######.#....#...#..#####..#.#..#.#.#.##...##.#.#.###.#.### +..###.#.#.#.##...#####.....##..#.###..##.#......#..##.##...##..#....#.####.##.#.##..######..#.#.#..# +#....##.#....####......##...##.##....##..######...##...####..#.##...###.##.##.#..#####..#.##.##.#..# +##.#....##.#...##...#.##..#####.#.#...#.#.#.######.#####...###.....###.####.######..##.#.#..#.#..### +.#.#....##..#.####.#...####...#.##.####.##...###.###.##...###.#..#..##.##....#.#..#.#.##.#.#.###.##. +.##.#..#.#.#..#.#######....#.#....#####...#..######..##......#.#####...###.##.#.....###.#.##.#....#. +.####..##...#.##...#.#.#.....#..##.#....####......#....####.###...##.####.###..#.#..#.#.###.#.###### +.#.#.#.##.....#.###.#..#....##.##..###..###..##.#.#..#.#.#..#.#####.#.#####.##.##.##...##.##.###...# +.#.#.##.....#.###.#.##.....##.#####..##..##.###....#.....##.#..#.#.##.....#.#.####....#####..#####.. +##.#.#.####.#.###..#...#.##.######.#...##.###..###.#.##.#..#.#######.#.##.#.#.###..###.#.#.#..#.###. +#.##.#.#...#...#######...###.#..###.###..#.###.......##..#.##....##.##.#####..##...##.###..##.##.#.. +##...#..#.########.#.#.#####.#...#.##.#####.#.##..#.#.#.##.....#.#..#.###.#.....#..#...###..###..#.# +###..##...#.##....#.#..#.#....#..##.###...##.####.....#..####.#.#.....#.##..##....##...#.##.#.#.##.# +#.##.###..####.##....######..#....#.....####.#.#..###.#.###.#......##......#..####...###..######..#. +#..####.#..#.#####..##.#.#...#######.#.###..#...######.#....#.#.####.##...#.#####..#......##..#.##.. +..####.###....#...##......########..###.#.#.#.#####.#.###.#.##.###.#..##..#.####..##..#.##.#.###...# +######.##.#..#.#..#..##.#####..#.##....#.#..#......##..#..#..#.###.#########.####.#.##.##..######### +###.#.##..#..####..#...###.#.####..#.##.##..#..##.#.#.#####.#...######.....#..#.##.##.##.#.#..###.#. +##.####.#..#.###..#..#.#...##.#...#.#...###.......#..###...#.#####..#####.....##.....###..##.#....## +#####.#.#..###.##.....#.##..#.#..#.##...#.....#....#....###########.###.....#..##.#.####.#.#####.##. +.###.#......#.#.#.####..#.#.#####.#...##..##.##..###...##.##.##.####.#.##.#.##......####...#.####### +#.##.#.##.#.####..#.#.####..#...#.#.#.....#..##...####.#..###...#...#..#..#..#.##.#####..#.###.##..# +.#..###.#...###.#.##...#.##...####.#.#..####.##.#..##.....#.##.#......##..####.##....##....#..#...## +####.#..#.#..###.##.#####.##..##.####.#.##..#..####....##...#..#..#.#.....##.###............#......# +....##.#####...###..#...#...#.#.##...##..###.##.#...#.#...##...##....#..###..##....##.#.#..#.#..#..# +####.#.###...##...#..#...#.#.#..##..##.###..##.##.###.....##.#.###..####.##.#####.#######..##..#.... +##..###..#.....#..#...#.#..#..##...##..##.#.##..#.###########...###..#.##...##...###.#######.##.#... +#..#.#..#.#..#....#.#...#.#..##.#####..#.##..##...####...#.#....#....###.####.####.#..##..#.###....# +..#..#.#.#.#.##.#.##.#.##..#.#.#...#...####.####..#..####...##..#.#..#.###...#..#.#....##....#..#### +#.#.#...#..........#.##..#.#..#...#.#..#.#.#.#####...##.#.#####.######......#.#.#...#...###.#....... +..###.#.#.....##..##.###...#####....###.#..###..#....#.#####..##.##.#..#.....##..####.....##.#..#... +#.#.##...####......#...##..#.#.#...#.....##...#..............#...##.#.#.#...#...#.###.##.#..###.#... +.###...#..#.#....#.....#.##..#.....#.#...###.#...##.#....##.##.#..#..##.#....##.##..####....#.#.##.. +..#.####..##.#..#....###.#.....###.#.#.#...##.#.#....###...#...#.#..###.#.##.##.###.#..####.######## +.#.##...#.#..#.#.##...#.#..##......#.#..#...#.#.###.#..###.#####.#.....####...#..##.#...#.#.#..###.. +.####.#..##.#####.##.###..###.##..##..##..#..###...##.##.....###..#.##..###...###...#...######..##.. +##.##..########.#########.######.#.###..##.#.####...#....#.###.###.#.###.#...#......##..#.#######.## +..#.##.####....####.#####.##.##..#...#####.#.....##........###..#...#..#.###..#...#.#########.###.#. +..#.#..####...##.##...#.##.#...##........###.#......##.####...###..#..#..##.#.#...#.########..#..... +#....##....###..#..#####...#..#..#.##..#######..#...#.##.#...#..#..#...##.##.##.#....###..###...#.## +###..##########.#.##.....##.##..#....#.....##......####...#..#.#.....##.##..#.#.#.######..###....#.. +..#.#.##..#..#.##..#..#.#####.##..#.####...#...####..####.##...##...##.#.....#.##..##.##...#..#.#..# +.##.#....#.#..###.####.#...##.#.....###.#...#..#.###...####.##.....####.#..#..#.#..######.##..##...# +..##.#...##..#.#..##.#.#..###...#.##..#..###..###.#.###...#.......###.##.###..##.#.#..#.#..#.....#.. +###...###.###.#..#...#.##.....#.#..#...#####....#.##.#..##.#..#.#.#..##..##...#..###.###.##.####.### +##.####..##.###.##.##.#...##.##.#.....#.#.###...#....#.#.####....#.##..#....#..#..#..###....##.##### +#..##.#..#..####.#.##.#.##..#..##......##....#####.#.#......##.#.#######.#######.####..#...#.#...#.. +####..........#..##....##.######.#.#.##.#..#.####....##......##..######.###.#..#.##..#.##...#####... +.#####.#.##.####...##.#...########..##.#..##.##.##.####.#...#.#.#.#..#...#......#....#######...##..# +#.##.####..##.........#.#.#...#.###..##...###....########.#.##..#.#....##.##.##...##..#.....#..#.... +.#...#####.#....#.##....#...####..####.#.##...##....#.#.##..#.##...#....##..#..######...#####.###.#. +.#...##.....#.#...#...#.##.##..##.#.##.###.###.##.#..##.#.#.#.#..#.#.....####..#.....###.#.######### diff --git a/2021/day20/test b/2021/day20/test new file mode 100644 index 0000000..8fa4bd4 --- /dev/null +++ b/2021/day20/test @@ -0,0 +1,7 @@ +..#.#..#####.#.#.#.###.##.....###.##.#..###.####..#####..#....#..#..##..###..######.###...####..#..#####..##..#.#####...##.#.#..#.##..#.#......#.###.######.###.####...#.##.##..#..#..#####.....#.#....###..#.##......#.....#..#..#..##..#...##.######.####.####.#.#...#.......#..#.#.#...####.##.#......#..#...##.#.##..#...##.#.##..###.#......#.#.......#.#.#.####.###.##...#.....####.#..#..#.##.#....##..#.####....##...##..#...#......#.#.......#.......##..####..#...#.#.#...##..#.#..###..#####........#..####......#..# + +#..#. +#.... +##..# +..#.. +..### diff --git a/2021/day21/day21.scm b/2021/day21/day21.scm new file mode 100644 index 0000000..9a7d4f9 --- /dev/null +++ b/2021/day21/day21.scm @@ -0,0 +1,46 @@ +(import (chicken io) + (chicken format) + srfi-1 + srfi-42 + srfi-69 + srfi-152) + +(define (read-input #!optional (port (current-input-port))) + (apply values (map (lambda (s) (string->number (string-drop s 28))) (read-lines port)))) + +(define (part1 start1 start2) + (let lp ((k 0) + (pos1 (- start1 1)) + (pos2 (- start2 1)) + (score1 0) + (score2 0)) + (cond + ((>= score1 1000) (* score2 k 3)) + ((>= score2 1000) (* score1 k 3)) + ((even? k) (let* ((dice (+ (* 9 k) 6)) + (new-pos1 (remainder (+ pos1 dice) 10))) + (lp (+ k 1) new-pos1 pos2 (+ score1 new-pos1 1) score2))) + ((odd? k) (let* ((dice (+ (* 9 k) 6)) + (new-pos2 (remainder (+ pos2 dice) 10))) + (lp (+ k 1) pos1 new-pos2 score1 (+ score2 new-pos2 1))))))) + +(define (part2 start1 start2) + (define cache (make-hash-table)) + (define (play pos1 pos2 score1 score2) + (if (>= score2 21) + (list 0 1) + (fold-ec (list 0 0) + (: d1 '(1 2 3)) (: d2 '(1 2 3)) (: d3 '(1 2 3)) + (:let new-pos1 (remainder (+ pos1 d1 d2 d3) 10)) + (:let key (list pos2 new-pos1 score2 (+ score1 new-pos1 1))) + (reverse (if (hash-table-exists? cache key) + (hash-table-ref cache key) + (let ((val (apply play key))) + (hash-table-set! cache key val) + val))) + (lambda (x acc) (list (+ (car x) (car acc)) (+ (cadr x) (cadr acc))))))) + (apply max (play (- start1 1) (- start2 1) 0 0))) + +(let-values (((start1 start2) (read-input))) + (print (part1 start1 start2)) + (print (part2 start1 start2))) diff --git a/2021/day21/input b/2021/day21/input new file mode 100644 index 0000000..043bbf8 --- /dev/null +++ b/2021/day21/input @@ -0,0 +1,2 @@ +Player 1 starting position: 8 +Player 2 starting position: 3 diff --git a/2021/day21/test b/2021/day21/test new file mode 100644 index 0000000..3f69194 --- /dev/null +++ b/2021/day21/test @@ -0,0 +1,2 @@ +Player 1 starting position: 4 +Player 2 starting position: 8 diff --git a/2022/.gitignore b/2022/.gitignore new file mode 100644 index 0000000..3f411f0 --- /dev/null +++ b/2022/.gitignore @@ -0,0 +1 @@ +*\~ diff --git a/2022/README.org b/2022/README.org new file mode 100644 index 0000000..1771d63 --- /dev/null +++ b/2022/README.org @@ -0,0 +1 @@ +* [[https://adventofcode.com/2022][Advent of Code 2022]] diff --git a/2022/day01/day01.bqn b/2022/day01/day01.bqn new file mode 100644 index 0000000..59fabb3 --- /dev/null +++ b/2022/day01/day01.bqn @@ -0,0 +1,7 @@ +P←(10⊸×⊸+˜´∘⌽0∾-⟜'0') # string->number, 0 for empty string +i←P¨¨(+`0=≠¨)⊸⊔•FLines"input" # parse input as list of lists +# Alternative version, with bqn-libs +#str ← •Import"../bqn-libs/strings.bqn" +#i ← str.ToNats¨ (2⥊@+10) str.Split •FChars"input" +•Show ⌈´+´¨i # part 1 +•Show +´3↑∨+´¨i # part 2 diff --git a/2022/day01/day01.jl b/2022/day01/day01.jl new file mode 100644 index 0000000..d1f5d5b --- /dev/null +++ b/2022/day01/day01.jl @@ -0,0 +1,3 @@ +ll = [[parse(Int, x) for x in split(s)] for s in split(read("input", String), "\n\n")] +println(maximum(sum(l) for l in ll)) +println(sum(sort([sum(l) for l in ll])[end-2:end])) diff --git a/2022/day01/day01.py b/2022/day01/day01.py new file mode 100644 index 0000000..2db3282 --- /dev/null +++ b/2022/day01/day01.py @@ -0,0 +1,3 @@ +l = [sum(map(int, x.splitlines())) for x in open("input").read().split("\n\n")] +print(max(l)) +print(sum(sorted(l)[-3:])) diff --git a/2022/day01/day01.rkt b/2022/day01/day01.rkt new file mode 100644 index 0000000..313bae1 --- /dev/null +++ b/2022/day01/day01.rkt @@ -0,0 +1,25 @@ +#lang racket + +(require threading) + +(define (read-input filename) + (for/list ([s (string-split (file->string filename) "\n\n")]) + (for/list ([n (string-split s "\n")]) + (string->number n)))) + +(define (sum l) + (apply + l)) + +(define part1 + (lambda~>> (map sum) + (apply max))) + +(define part2 + (lambda~> (map sum _) + (sort _ >) + (take _ 3) + (apply + _))) + +(define input (read-input "input")) +(displayln (part1 input)) +(displayln (part2 input)) diff --git a/2022/day01/input b/2022/day01/input new file mode 100644 index 0000000..68fdac9 --- /dev/null +++ b/2022/day01/input @@ -0,0 +1,2254 @@ +10130 +9819 +4257 +8400 +10994 +3758 +8326 + +9002 +15602 +1193 +6805 +10797 + +9435 +6559 +11512 +12051 +2687 +2850 +3752 + +6656 +5869 +5033 +7164 +1708 +3689 +2218 +6642 +1913 +1494 +1403 +4269 + +6089 +3985 +4673 +4814 +6628 +6076 +3594 +3143 +5412 +7647 + +22393 +2865 + +2241 +1877 +2289 +1928 +1519 +4750 +5669 +3725 +3706 +4640 +4078 + +11277 +6678 +15419 +18306 + +8709 +6839 +1177 +1731 +12550 +6153 + +7843 +5702 +8917 +3883 +9193 +9098 +8928 +6742 +9387 + +26854 +9607 + +5043 +2064 +7565 +2747 +5389 +10597 +2921 +9208 + +11529 +11452 +3741 +5553 + +13959 +7068 +6045 +3757 +8997 + +12474 +7761 +4219 +6674 +6064 +1518 + +4312 +2690 +5772 +4771 +1013 +5905 +4929 +1428 +3755 +4513 +4394 +4521 +1284 +3384 +4493 + +1051 +3887 +6109 +6877 +7908 +9046 +2055 +10550 + +4710 +16311 +19468 + +3334 +6297 +8004 +8891 +7498 +8396 +9118 +2651 + +9178 +8754 +3183 +4795 +1172 +2775 +3152 +9623 + +8741 +3118 +3487 +6103 +1709 +7780 +9419 + +4211 +3174 +3635 +2500 +5348 +4796 +5804 +2000 +5886 +6508 +1643 +1749 +6334 +5729 + +15750 +11572 +5018 +5569 +6147 + +10944 +11253 +9945 +7722 +4790 +6543 +10256 + +4766 +8150 +15489 +8177 +5162 + +15715 +4110 +2329 +4366 +14885 + +4263 +1071 +6295 +2964 +4861 +1084 +6244 +6243 +3177 +5040 +3934 + +7299 +8607 +9981 +9451 +3932 + +4093 +2953 +5017 +2593 +7345 +7549 +5403 +1717 +2011 +1717 +5148 + +7689 +1804 +3955 +2130 +4847 +6311 +1709 +3207 +4728 +2441 + +16221 +16405 +16736 +3431 + +6886 +1191 +1283 +6308 +1100 +5473 +2290 +1438 +1685 +1832 +6629 +6061 +5556 + +7262 +7934 +5864 +1050 +3072 +5860 +4263 +2940 + +11268 +6888 +12460 +3346 +9438 +13728 + +2427 +5611 +7314 +4481 +6000 +7649 +7036 +1996 +5476 + +4144 +2951 +3075 +1146 +4956 +4090 +4416 +4605 +1684 +3396 +3863 +5911 +5910 +5884 +2391 + +3833 +4216 +2824 +5672 +7345 +6991 +1698 +2745 +5932 +3433 +3415 +1626 + +6343 +1723 +8634 +6735 +3185 +3580 +3976 +5503 + +5902 +6282 +4830 +6680 +1549 +5325 +6533 +3525 +4696 +5120 +6612 + +3263 +6467 +6495 +1157 +2270 +5533 +2986 +6412 +5730 +6308 +3471 +3544 +3844 +4913 + +2731 +2447 +1071 +7298 +3316 +5807 +5240 +1532 +3431 +7179 +1147 +5954 + +5747 +1098 +4844 +2140 +4052 +3516 +3315 +4475 +4508 +4806 +5695 +2780 +5886 +2339 +4953 + +5465 +3399 +2661 +5743 +2124 +1344 +3878 +6085 +3637 +4797 +5691 +4026 +3356 +1596 + +6713 +4867 +5837 +3837 +5532 +8929 +6160 +9598 +3756 + +8256 +1917 +23093 + +1162 +24338 + +8029 +7864 +3231 +4214 +1430 +8589 +9062 +2655 + +7612 +3854 +2976 +8494 +9635 +6821 +2780 +6393 +3586 + +9813 +8505 +7281 +13293 +13132 +10159 + +15355 +13250 + +5976 +1131 +1502 +5742 +4965 +5047 +2123 +4449 +1584 +2250 +4775 +2335 +4475 +1341 + +8554 +4775 +4662 +4601 +8799 +9561 +3080 +9389 +7430 + +13227 +5422 +10123 +14929 +14241 + +9827 +15055 +3548 +2653 + +6014 +1104 +6289 +6112 +5308 +1267 +6196 +5057 +4167 +5778 +1994 +6404 +2447 +3656 + +3016 +5357 +6050 +2230 +3928 +3447 +7969 +7363 +6338 +3996 +3781 + +2292 +1041 +18572 +13149 + +10761 +13752 +15373 +10572 + +4768 +3504 +5616 +1147 +1267 +5779 +3238 +3213 +2017 +6083 +6289 +1858 +3424 + +9295 + +21805 +11516 +8352 + +2212 +4582 +3385 +2985 +1957 +2228 +1750 +3868 +5963 +4646 +5820 +2169 +4298 +2557 + +4471 +1614 +1698 +1789 +4748 +5182 +4807 +5122 +5105 +3295 +3665 +4533 +3809 +4998 +4982 + +26098 +28596 + +10111 +5551 +10077 +4066 +13547 +7371 + +18933 +8329 +7577 +16408 + +6523 +15633 +15999 + +17658 +24788 +11403 + +5890 +3722 +5091 +1161 +5073 +2660 +4707 +4544 +1564 +1885 +5488 +3152 +5054 +6000 + +36680 +1628 + +7616 +6364 +7551 +2658 +4726 +3448 +3183 +5964 +2747 +7994 +3711 + +1667 +6128 +6100 +5799 +3361 +5928 +2935 +2284 +3665 +5305 +1584 +1114 +4480 + +14019 + +13533 +16036 +17506 + +8819 + +1689 +3541 +2586 +3124 +1670 +3158 +2961 +4631 +5262 +4097 +1120 +1252 +2487 +1524 +5029 + +4609 +9146 +11572 +5695 +9042 +2025 + +5442 +6032 +6242 +2064 +3783 +4998 +3501 +3193 +2923 +3768 +3724 +1454 +6198 +1709 + +7098 +1914 +1649 +8743 +8717 +7814 +9496 +3013 +7721 + +7963 +2700 +4762 +10490 +4733 +7668 +2070 +9014 + +21869 +24146 +17568 + +2791 +3206 +9706 +9752 +9313 +10047 +7229 +8457 + +2139 +4268 +3545 +7513 +1530 +11105 +2343 + +9514 +16132 +4113 +3896 +12368 + +3376 +3232 +5230 +1084 +7424 +4773 +1568 +3469 +5223 +1717 +7149 +4479 + +61245 + +33738 +29007 + +2744 +4342 + +5250 +3285 +9082 +8951 +2287 +6693 +5952 +2241 +3382 + +2403 +5553 +1652 +5189 +4120 +4771 +2030 +5463 +1141 +2147 +2400 +2764 +5958 +2595 +2984 + +4615 +5948 +8609 +8342 +4845 +5590 +5717 +7729 +4214 +8715 + +5280 +5238 +6594 +4787 +2268 +3201 +1982 +2653 +2507 +6843 +3996 + +1079 +2327 +2146 +5369 +1149 +7836 +6695 +4774 +4834 +5966 + +4743 +1071 +5553 +5856 +3501 +5256 +1059 +2172 +1766 +5111 +1734 +3741 +6666 + +7208 +8917 +4574 +10178 +6217 +3799 +9124 + +6278 +7284 +3207 +2626 +2815 +1047 +6197 +7928 +5342 +3487 + +2733 +5855 +3916 +6364 +4889 +6248 +3109 +1912 +3936 +3934 +4021 + +8862 +7897 +8001 +1505 +5231 +11377 +4084 + +22344 +10024 + +1935 +5094 +1740 +7991 +9007 +3718 +1466 +6634 +2244 + +3611 +4382 +5099 +1587 +6938 +7285 +4578 +1424 +2085 +7306 +1244 +1891 + +3108 +2917 +3884 +1274 +6387 +2055 +1684 +6353 +5801 +5886 +5649 +2985 +2806 + +26039 +15129 +13699 + +4284 +4026 +5226 +5746 +4828 +3027 +6034 +3648 +7685 +7998 +1975 + +3884 +3450 +2695 +5818 +1069 +2977 +5076 +6920 +5542 +6195 +3476 +3648 +3993 + +49995 + +5330 +4948 +6472 +4324 +5154 +2581 +2762 +4454 +6681 +6553 +1544 +1984 + +5328 +5393 +6886 +6874 +3673 +2691 +1814 +2990 +1793 +7468 +4091 + +4908 +4335 +2656 +7085 +5897 +2578 +1530 +8614 +3702 +3362 + +2673 +1354 +2602 +5656 +3565 +5690 +5332 +4125 +3471 +3011 +2915 +5633 +2723 +5355 +3201 + +10397 +1302 +11090 +3309 + +35932 + +32894 +30094 + +5343 +2920 +1905 +4745 +3031 +6507 +4449 +2217 +1518 +3839 +4880 +5063 +3321 +5467 + +4243 +3226 +3383 +3673 +1749 +3569 +5089 +6581 +3127 +5840 +4686 +3617 +2460 + +7731 +4562 +4990 +5693 +7485 +4390 +4491 +7039 +1440 +3217 + +2082 +6021 +4675 +4771 +2925 +4324 +6847 +5846 +1384 +6905 + +5996 + +8125 +4714 +7960 +4031 +4566 +7388 +4036 +5376 +7248 +8266 + +1863 +6558 +4889 +2261 +5836 +1210 +6762 +8490 +2614 +6802 + +30026 +18586 + +4845 +6999 +8095 +2220 +8731 +3782 +5964 +3762 +7152 +4524 + +28917 + +21103 +18240 + +4716 +1062 +5583 +4631 +6145 +5939 +5499 +5517 +2103 +6339 +3586 +4216 +2466 + +6027 +9439 +2900 +2939 +8164 +8423 +8189 +9443 +3371 + +6741 +7254 +5730 +4541 +2840 +3289 +2176 +4008 +1137 +6422 +4732 +6850 + +6024 +14627 +4098 +3714 +1268 + +13617 + +5203 +2873 +2129 +7116 +5904 +5410 +6750 +6863 +6162 + +4859 +5535 +4891 +8456 +8099 +7583 +5857 + +5647 +6145 +4400 +1401 +3704 +1503 +5662 +5980 +3769 +2206 +5537 +6375 +6146 +1136 + +1832 +4382 +7311 +2901 +6613 +1845 +3313 +3137 +5376 + +1976 +5643 +3090 +2437 +2082 +6379 +2655 +6541 +4795 +3697 +2555 +3717 +2819 + +1046 +4154 +6033 +3120 +3198 +5890 +5008 +4346 +1588 +6469 +4257 +4984 +2249 +4830 + +11119 +10936 +9196 +7164 +11955 +9319 + +25710 +18940 +11190 + +15820 +14632 + +1730 +1113 +3427 +6097 +4165 +1487 +1632 +5267 +2170 +2476 +4911 +2767 +3476 +2532 +2216 + +10511 +3144 +7687 +3624 +1162 +8444 +1812 +1675 + +1772 +5126 +4840 +3465 +8376 +2305 +1122 +2119 +5551 +4986 + +3038 +7556 +3843 +2976 +7807 +13037 + +4578 +5703 +7102 +6776 +3151 +4995 +3053 +5881 +5906 +1003 +7423 + +12965 +13177 +4312 +6862 +7032 +13595 + +5043 +3315 +14242 +12771 + +4113 +7471 +4110 +1956 +4263 +4592 +7107 +1535 +1812 +5169 +2633 +6973 + +1000 +2407 +6526 +6585 +5191 +7978 +7027 +6226 +4347 +8052 + +10115 +5381 +2764 +13539 +5858 + +2365 +1563 +5503 +4584 +1776 +5321 +5116 +1845 +6048 +4447 +2068 +3552 +3658 +4667 +5191 + +6968 +5138 +3505 +3735 +2502 +1692 +2051 +3551 +3393 +5560 +5870 + +9726 +7999 +2153 +12078 +2579 +9831 + +16362 +11512 +1014 +5409 +11437 + +5713 +5921 +1110 +4722 +5086 +3674 +3938 +6726 +2114 +6651 +2570 + +1593 +1892 +2130 +5280 +6833 +5735 +8558 +10535 + +13937 +18143 + +1054 +10528 +9972 +13953 +13815 +8632 + +3812 +11438 +5636 +1639 +13967 + +8887 +5092 +12287 +2867 +3987 +6854 + +6285 +16477 + +3800 +2039 +4443 +5461 +4586 +1477 +5984 +2803 +4321 +6139 +6058 +4305 +4451 + +6031 +1819 +5064 +6241 +2251 +6110 +2526 +1368 +2660 +1604 +4978 +2861 +1786 +2480 + +8200 +7851 +8701 +4740 +3816 +4913 +8713 +8170 +4864 +4144 + +30728 +32625 + +5138 +5610 +2844 +5599 +2064 +4472 +2620 +2461 +4702 +4730 +6714 +3755 + +1259 +5032 +5056 +3705 +4254 +2516 +3573 +6040 +5939 +1091 +3679 +1815 + +7169 +6264 +2928 +3857 +1399 +3983 +5004 +6298 +6495 +3815 +5715 +4531 + +3894 +4083 +4992 +6342 +3949 +5542 +4008 +2679 +1904 +2045 +4936 +5181 +5730 +6243 + +2284 +5962 +4449 +1238 +4355 +3182 +1850 +6293 +1594 +4194 +4158 +2485 +1027 +5645 + +8924 +18654 +4250 + +3370 +4573 +2912 +4475 +3791 +2443 +3230 +1759 +3073 +3459 +4153 +3241 +1123 +4630 + +7451 +10002 +1187 +3001 +8317 +11031 + +8570 +8386 +3284 +4799 +4346 +1232 +2001 +7199 + +5453 +2196 +5968 +6073 +3973 +2030 +3075 +3177 +1074 +3381 +2751 +1524 +5084 +2349 +2134 + +3920 +5475 +4746 +7174 +5530 +1331 +4767 +5566 +7454 +1281 + +62528 + +5428 +5144 +3420 +3359 +5232 +1156 +3431 +2458 +5639 +6299 +6416 +3381 +3199 +2574 + +3103 +5574 +5574 +6452 +3346 +4931 +3470 +1884 +3304 +2498 +4951 +4475 +1342 +3991 + +6678 +3447 +2475 +6514 +5450 +5561 +4939 +4075 +4688 +3228 +3691 +1410 +2518 + +6617 +7399 +1668 +5218 +2615 +4233 +3883 +5109 +4221 +3417 +5259 +3424 + +35141 +20700 + +5415 + +19959 +16356 +6769 +8431 + +4004 +5139 +1314 +5778 +6335 +2418 +2353 +5020 +5701 +4038 +7997 + +3484 +9434 +5114 +7686 +9811 +3027 +6818 +1134 + +22133 +9535 +3540 + +5241 +10210 +1552 +3819 +5903 + +3657 +6124 +10218 +7944 +10202 +2064 +7803 +9270 + +1513 +3991 +8713 +2745 +6459 +7823 +4728 +8610 +5026 +4761 + +1246 +1128 +1814 +6022 +2200 +4128 +5651 +6086 +6452 +6795 +3860 + +44675 + +7236 +4656 +1629 +8693 +7402 +2344 +6600 +5925 +4540 + +32583 +13437 + +7763 +8572 +5475 +2542 +1445 +8385 +6780 +4197 + +8767 +3676 +10354 +8594 +7795 +10394 +1358 +1402 + +3593 +6176 +3574 +5641 +5357 +1077 +4858 +2060 +2559 +3566 +2598 +3133 +1877 +4056 + +17274 +3353 + +26548 + +3352 +3677 +7771 +2007 +4376 +2703 +8446 +9191 + +4542 +7433 +4709 +7063 +3267 +7088 +1952 +4479 +2972 +2480 +6111 + +8493 +3255 +3042 +13612 +8847 + +4995 +4745 +7511 +7895 +4616 +1845 +4306 +3240 +3874 +4607 +4907 + +19216 +13903 + +8563 +1199 +7999 +5067 +8083 +5684 +8510 +4581 +5261 +7329 + +3648 +4762 +1200 +5362 +6143 +5781 +4091 +7554 +8193 + +1715 +1099 +4426 +1151 +1263 +5788 +1507 +4926 +3881 +5506 +3788 +4429 +4823 +3138 +3905 + +5265 +9671 +3085 +5558 +3704 +9011 +4395 +9449 +6064 + +28075 + +28195 +3135 + +14792 +19272 +13436 +3789 + +6763 +2173 +2503 +10888 +10558 +10563 +4711 + +5992 +2189 +5666 +1034 +1893 +2992 +4069 +1199 +6085 +2461 +5216 +4690 +2307 +5691 +5419 + +4029 +2298 +4093 +5486 +3426 +5957 +1640 +6743 +2390 +2621 +3025 +3830 +1353 + +1754 +4361 +8039 +1535 +8034 +1065 +10104 + +16212 +1075 +4391 +13803 + +53395 + +3508 +5369 +9075 +1489 +4569 +6561 +7322 +1526 + +32816 +5936 + +8014 +7548 +6265 +6118 +1175 +7127 +1291 +7133 +4717 +3197 + +8290 +1078 +4130 +7049 +9394 +10135 +10056 +7434 + +1423 +11077 +13375 +4711 +4031 +7284 + +7959 +2528 +3203 +10246 +1515 +6495 +8756 +5632 + +7067 +5860 +3654 +6956 +8085 +10898 +11823 + +3894 +2528 +3276 +5192 +1474 +3444 +4714 +2812 +2141 +3393 +4296 +1737 +2270 +3736 +2003 + +64495 + +7374 +6655 +9252 +1270 +6722 +2267 +9324 +2552 + +5125 +5729 +4215 +1176 +3739 +1570 +5729 +5390 +2232 +5785 +6490 +4467 +3170 +5906 + +5257 +2688 +10408 +1584 +6951 +9783 +3181 +9280 + +1129 +4459 +1794 +5817 +2895 +4598 +2880 +4862 +1895 +6047 +2999 +5138 +3616 +1299 +5836 + +2081 +5990 +5404 +5622 +5346 +3674 +3807 +2676 +4941 +2787 +4933 +2281 +3692 +1605 +2149 + +10528 +8445 +9263 +4626 +1021 +6175 +3036 + +7285 +12907 +11004 +9393 +11066 + +1653 +5500 +7276 +4978 +5143 +6363 +2696 +2026 +2753 +4755 +4366 +3789 + +5625 +1653 +1084 +4251 +2406 +6263 +6020 +6380 +4500 +4975 +5502 +4818 +4297 +2202 + +4203 +6347 +1818 +2069 +4846 +4423 +5383 +4857 +6333 +2066 +5189 +5407 +1875 +3563 + +20111 +23850 +18762 + +5647 +16300 +3389 +13144 + +3410 +2740 +6542 +7471 +4532 +7375 +5905 +7073 +4372 +7066 +5923 +4348 + +31582 +24911 + +11599 +7786 +13121 +10360 +6683 + +7353 +3964 +9305 +9313 +11354 +6791 +9037 + +2850 +1062 +5993 +1721 +4463 +1407 +2893 +5473 +1549 +2631 +2321 +4995 +5428 +4106 +3332 + +8992 +10224 +9418 +8509 +7874 +5208 +6202 + +8824 +12637 +12672 +5257 +6621 +11770 + +16537 + +2825 +5281 +6898 +6437 +6481 +4806 +4208 +6030 +6926 +1392 +7842 + +8051 +1225 +4681 +8361 + +6636 +1919 +3652 +11633 +11321 +13513 + +5849 +1752 +6518 +5546 +2608 +2866 +3356 +2107 +4090 +5238 +3559 + +2455 +4808 +1899 +1753 +1899 +5047 +3362 +5973 +1832 +3395 +2908 +2616 +5720 +2221 +1771 + +1654 +6928 +3317 +4238 +4796 +4168 +6225 +1669 +1109 +4265 +4980 +6660 diff --git a/2022/day01/test b/2022/day01/test new file mode 100644 index 0000000..2094f91 --- /dev/null +++ b/2022/day01/test @@ -0,0 +1,14 @@ +1000 +2000 +3000 + +4000 + +5000 +6000 + +7000 +8000 +9000 + +10000 diff --git a/2022/day02/day02.bqn b/2022/day02/day02.bqn new file mode 100644 index 0000000..2290dee --- /dev/null +++ b/2022/day02/day02.bqn @@ -0,0 +1,6 @@ +in←|>"AX"⊸-¨0‿2⊸⊏¨•FLines⊑•args +ShapeScore←{+´1+1⊏˘𝕩} +WinScore←{+´3×3⊸|1+-˜´˘𝕩} +•Show (ShapeScore+WinScore)in +in2←(3⊸|∘⊏˘in+¯1⊸+)⌾(1⊸⊏˘)in +•Show (ShapeScore+WinScore)in2 diff --git a/2022/day02/day02.rkt b/2022/day02/day02.rkt new file mode 100644 index 0000000..343e39e --- /dev/null +++ b/2022/day02/day02.rkt @@ -0,0 +1,52 @@ +#lang racket + +(require threading) + +(define (read-input filename) + (for/list ([l (in-lines (open-input-file filename))]) + (map string->symbol (string-split l)))) + +(define (win-score round) + (~> (- (cadr round) (car round)) + (+ 1 _) + (modulo _ 3) + (* 3 _))) + +(define (shape-score round) + (+ 1 (cadr round))) + +(define (read-play s) + (match s + ['A 0] + ['B 1] + ['C 2] + ['X 0] + ['Y 1] + ['Z 2] + [_ (error "unrecognized symbol" s)])) + +(define (part1 in) + (for/sum ([round in]) + (let ([round (map read-play round)]) + (+ (shape-score round) (win-score round))))) + +(define (choose-play round) + (define them (read-play (car round))) + (define us + (modulo + (match (cadr round) + ['X (- them 1)] + ['Y them] + ['Z (+ them 1)] + [_ (error "unexpected symbol" (cadr round))]) + 3)) + (list them us)) + +(define (part2 in) + (for/sum ([round in]) + (let ([round (choose-play round)]) + (+ (shape-score round) (win-score round))))) + +(define in (read-input "input")) +(displayln (part1 in)) +(displayln (part2 in)) diff --git a/2022/day02/input b/2022/day02/input new file mode 100644 index 0000000..1930858 --- /dev/null +++ b/2022/day02/input @@ -0,0 +1,2500 @@ +C Z +C Z +A X +A X +B Z +B Z +B Z +A Z +B X +A X +A X +A X +C Z +C Z +C X +A X +A X +A X +C Z +B Z +C Z +A Y +B Z +A X +C Y +A X +A X +C Y +C Z +A Y +B Z +A X +C Y +B Z +B Z +B Z +A X +C X +C X +B Z +A X +C Z +A X +B Z +A Y +C X +A X +C Z +C Z +B Z +C Y +C X +C X +C X +C X +A Y +C Y +C Z +C Y +A X +C Y +A X +B Z +A Y +C X +A X +B Y +A X +C X +C X +C Z +A X +C X +A X +C X +B Z +A Z +B Y +B Z +B Z +A X +C Y +B X +A X +A X +B Z +A X +C X +C Z +C Z +A X +C Z +C Z +C Z +C X +C Z +A X +B Z +B Y +C Z +B Z +B Z +A X +B Z +C Y +C Z +A X +A Y +C Z +A X +B Y +C Y +C Z +A X +C Y +C X +A X +C X +A X +C Z +A X +C Y +A Y +C Z +C X +C Y +C Y +A Y +A Y +C Y +C Y +A Y +A X +C Z +C Z +C X +C X +C Z +A Y +C Z +C Z +A Y +A Y +B Z +A X +B Z +C Y +B Z +C Z +C Y +C Y +B Y +C X +A X +A X +A X +A Y +A X +C Z +C Z +C Z +A X +B Z +A X +B Z +C Y +C Z +A Y +C Y +A X +A X +C Z +B X +C Z +C Z +B Z +B Z +B Z +C Z +C X +C Z +A X +B Z +C Z +C X +A X +A Y +B Y +A X +B Z +A X +C Z +C Z +C X +B Z +C Z +C Z +C X +A X +A X +B Y +C Y +C Z +B Y +A X +B Z +A X +B X +B Z +C X +C X +C Y +C X +B Y +B Z +C X +A Y +C X +C Y +A X +C Z +C Z +C X +B Z +A Y +B Z +A Y +B X +A X +C Z +B Z +C X +C X +C X +A X +C X +B Z +C Z +B Y +B Z +A X +A X +C Z +B Z +A X +A Z +C Y +B Z +C X +C Z +A Y +C X +A X +A X +A Y +B Z +A X +B Z +A Y +B X +C X +C Y +A X +C Z +B X +C Z +C X +C X +C Z +A X +B Z +C Z +C X +C Z +B Y +A X +C X +C Y +A X +C Z +A X +B Z +C X +C X +B Z +C Z +C Z +C Y +A X +C Z +C X +A X +C Y +C Z +C Z +C Y +B Y +B Z +A X +B Y +C X +A X +A X +C Y +C Z +B Z +C X +C X +B Z +C Z +A X +A Y +A X +C Y +A Y +B Y +A X +A X +C X +C X +B Z +A Y +B Z +C Z +A X +A Y +A X +C X +A X +C Z +B Y +C Z +A X +B Z +C Z +C Z +A X +A X +B Z +B Z +B Z +A X +C X +A X +A X +C Y +C Y +C X +C X +A X +A Y +B Y +C Z +C Z +B Y +C X +C Z +A Y +C X +C Z +C X +B Z +C Y +C Z +C X +C Y +C Z +B Z +C Z +B Z +A X +B Y +B Y +C Z +B Z +C X +C Z +C Z +C Z +B Y +B Z +C Z +B Y +A X +A X +C X +A X +C X +A X +B Z +A X +A X +A X +C Z +A Y +A X +C Z +C X +A X +C X +A X +B Z +C Z +C Z +C Z +A X +A X +C Z +A X +B Z +C X +C Z +C Y +B Z +A X +B Z +A X +A Z +B Y +B Z +B Z +B Z +A Y +C Z +A X +B Y +C X +B X +B Z +C X +B Y +C Z +A X +C X +B Z +A X +B Z +A X +A X +B Y +C Y +C X +C X +C Z +A X +C Z +A X +B Y +C X +C Y +B Y +B Y +A Y +C X +A Y +C Z +C Y +A X +C Z +C Z +B Z +A X +A X +A X +A X +B Z +C Z +C X +C X +C Z +A X +B Z +B Y +C Y +A Y +C X +B Z +A Y +B Z +C Z +B Z +C X +A X +B Z +A X +A Y +C Y +B Z +B Z +C X +C Z +C Z +C Z +A X +B Z +A Y +A X +C Y +A Y +B Z +A Y +C Z +A Y +A Y +C X +A X +B Z +A Y +B Z +C X +A X +B Y +B Z +C Z +C Z +B Z +A X +A X +B Y +C Z +C Y +B Z +C Z +A Y +A X +C X +C Z +A X +A X +A Z +C X +C X +B X +B Z +A Y +C X +A Y +C X +C Z +A Y +B Z +A X +B X +A Y +C X +C Y +A Y +C X +B Y +C Y +A X +B Z +A X +C Z +A X +A X +C Z +C Z +B X +C X +A Y +B Z +C Z +A X +A X +C Z +C Y +A X +C X +C Z +C Y +C X +C Y +C X +C Z +C Z +B Z +A X +A Y +B Z +A X +B Z +C X +B Y +A X +A X +A X +A X +B Z +C Z +B Z +B Y +C Z +C X +C Z +C X +B Z +C Z +A X +C Z +C Z +A Y +C X +A X +B Z +A X +B Z +B Y +A X +A X +A X +A Y +C Z +A X +B Y +A Y +B Y +C Y +A X +A X +C Y +A X +C Z +B Z +C X +C Z +A X +B Z +C Z +B Z +B Z +B Z +C X +C Z +A X +A Y +C X +C Z +B Z +B Y +C Z +B Y +B Z +C Z +A Y +B Z +C X +C Y +A X +B Y +A X +C Z +C X +C Z +A X +C X +B Z +B X +C Z +B Z +A Y +A X +A Y +C Z +C Y +A X +B X +A Z +C Y +C X +C Y +C X +C Y +B Z +C X +B Y +C Z +C Y +B Z +A Y +B Y +C Z +C X +B Z +A Y +C Z +C Z +C Z +C Y +C X +C X +B Y +C Z +A Y +C Z +C X +B Y +C X +B Z +B Z +B Z +B Z +C Y +C Z +C X +B X +C Z +C Z +C Z +C X +B Y +B Z +C X +A X +C Y +B X +C X +C X +C Z +A X +A X +B Z +B Z +A X +C Z +A X +A Y +C X +B X +C Y +C Y +A X +A X +C Z +C Z +B Y +B Y +B Z +C X +A X +A Z +C Z +B Y +C Y +C X +C Y +B Z +C X +A X +A X +C Z +C Y +B X +C Z +B Z +A X +C X +A Y +C Y +C Z +B Z +C Z +A X +C Y +B Z +C Y +B X +C Z +C Z +A X +A X +C X +C Z +C X +C Y +C Z +A Y +C X +C Z +B Y +B Y +C Z +A X +C Y +A X +C X +C X +B Y +C Z +C Z +A X +A Y +C Z +B Z +C Y +A X +A X +C Z +C Z +A X +C Z +C Z +B Z +B Z +A X +A Y +A X +C Z +C X +A X +B X +C Z +C Z +B Y +A X +B Z +C X +C Z +C Z +C Z +C X +A Y +A X +A Y +A X +A Y +C Z +C Z +B Z +B Y +A X +B Z +C Z +C X +C Y +C Z +A X +C Y +B Y +B Z +C Z +B Y +C X +C Z +B Y +B Z +B Y +C X +C Z +C X +C Z +B Y +B Z +C X +A X +A Y +B Z +B Y +A X +A X +C Z +A X +A X +C X +A X +C Z +C X +A X +B X +A Y +C X +A X +C Y +A X +C Z +A X +A X +C Z +A X +A X +C Z +A X +B Y +B Z +A X +C X +A X +C X +B Z +C Y +A Y +C Z +B Z +A X +C X +A X +B Y +C X +B Y +B Z +A X +B Z +C X +B Z +A X +A X +C X +A X +C X +A Y +C Z +A X +B Y +B Z +C Z +C Z +A X +C Y +B Z +C X +B Z +B Z +C Z +A X +C X +C X +A Y +A X +C Z +B Z +A X +B X +A X +B Z +B Z +C Z +B Y +C Z +A X +C Z +C Z +C Z +C X +A X +A X +C Y +B Y +C Z +B Y +A X +B Z +A Y +C Y +B Y +C Z +C X +C X +A X +B Y +A X +A X +C Z +C X +C Y +A X +A X +A X +C X +B Z +B Y +A X +B Y +C X +C Z +B Z +A X +C X +C Z +B Y +A X +C Z +B Z +B Z +A X +B Y +A X +B Y +C Z +C Z +B Z +C Z +C Y +A X +B Z +C Z +A Y +C Z +B Z +B Z +C Z +B Y +C Z +C Z +B Z +A Y +C X +C Y +B Z +C X +C Z +A X +A X +C Y +A Z +C Z +C X +B Z +B Z +C Y +A X +A Y +C Z +A X +A X +B Z +A X +C X +C X +B X +B X +A Z +B Y +A X +A Y +C Z +A X +A X +B Z +B Z +C Y +A X +C Y +C Z +A Y +C Y +B X +C X +A X +B Z +A X +A X +A X +A X +A X +B X +A X +C Z +B Z +B Z +B X +A X +C Z +B Z +C Z +C Z +C Y +A X +C Y +C Y +C Z +A Y +C Z +A X +C X +C Z +A X +A Y +C Z +C X +A X +C X +B Y +C Z +B Z +A X +C Y +B Z +B Y +A X +C Z +A X +B Z +C Z +C Y +C Z +A X +A X +B Z +B Y +A X +C X +C Y +B X +C Z +A Y +C X +B Y +B Z +A Y +C Y +C Z +C Z +C X +A X +A X +C X +C X +C Z +C X +C X +B X +B Z +B Z +C X +C Z +C X +A X +A X +A X +C Z +C Y +B Z +C X +C X +A X +C X +C Y +A X +B Y +A X +C Z +C Z +B Z +A X +A X +A X +B Z +C X +A X +B Y +B Z +C X +B Y +C X +B Y +C Z +B X +A X +A X +B Z +A X +A X +A X +B Z +A X +C Z +C X +C Z +A X +C Y +C Y +C Z +C Z +C Z +A X +C Z +C X +C Z +C Z +A X +B Z +C X +C Y +B X +B Z +B Z +A X +C Y +B Y +C Z +B Z +C Z +C X +A Z +C Z +B X +C X +C Z +C Z +C X +C Z +C Z +A X +B Z +C Z +C X +A X +B Z +C Y +C Y +B Y +C X +A X +A X +C Z +B Z +C X +C X +C X +B Y +C Z +B X +C X +C Z +A X +A X +C Z +C Z +C X +C X +C Z +A X +C Z +C X +C Z +C Z +A X +C Z +A X +A X +A X +B Z +A X +B Z +C Z +C Z +A X +C Z +C Z +B Z +C Z +A Y +C X +A X +A X +C X +A X +C X +C X +A Y +B Y +C Z +B Z +C X +B Y +C Y +C X +C Z +A X +C Y +B Z +B Y +A X +B Y +B Y +A X +C X +C X +A X +A Y +C Y +B Z +A X +B Z +A Y +B Y +C Z +C Z +C Z +A Y +B Y +B Y +C Z +B Z +C Z +A X +C Y +A X +B Y +B Z +C X +C Y +A X +B Z +B Z +A X +B Z +C Y +A X +C X +C Z +C Z +A X +C Y +A X +C X +C X +B Z +B Y +A X +C Y +B Z +B Y +A X +C Z +A X +B Y +A X +A X +A X +C X +A X +C Z +B Z +C Z +A X +A X +B Y +C X +C Y +C Z +A X +C Z +B Z +A X +B Z +A X +B Y +B Z +C Z +C Z +C Y +C X +A X +C Z +A Y +A X +B Z +B Y +A X +C X +C Z +B Z +A X +C Z +C X +C Y +A X +A X +C Z +A X +A X +C X +C X +A X +C X +C Z +A X +A X +C Y +A Y +B Z +C X +C X +B Y +B Z +A X +B Z +C Z +C Z +A Y +C Y +C Z +A X +C Z +A X +C Y +C X +B X +B Z +A X +A X +B Z +A X +C X +C X +A Y +A X +A X +C Y +B Z +A X +B Y +C X +B Z +C Y +B Y +A X +C Z +B Y +B Z +A X +B Y +C X +C Z +A X +B Z +A X +C Y +C Z +A X +A X +C Y +C Y +C X +A Y +C Z +B Z +A X +A Y +C Z +C Z +C Z +C Z +B Y +A Y +A X +A X +C X +A X +B Y +C Z +B Z +A Y +C X +C X +A Y +A X +A X +C X +C Z +C X +A X +A Y +C X +C Z +C X +A X +A X +C Z +C X +A X +C X +C Z +A X +A X +C Z +B Y +A X +C Z +C Y +C Z +C Z +B X +B Z +B X +A X +C Z +B X +C Z +A X +C Z +A Y +A Z +B Z +C X +A X +A X +A X +A X +A X +C Z +A X +B X +A Y +A X +C X +A X +A Y +A Y +B Y +C X +A Y +A X +C Z +C Z +C Y +B Z +C X +C Z +A Y +C X +C Y +C X +A X +B Y +C Z +C Z +A X +C Z +B Z +B Z +C X +C X +A X +B Y +C X +C X +A X +C Z +B Y +C Y +C Z +A X +B Z +C Z +B Y +C X +A X +B Y +B Z +A X +C Y +B Z +C Z +C X +A X +C X +A X +B Y +C X +A X +C Y +B Z +B Z +B Z +C Y +A X +A X +A Y +C Z +B X +B Z +A X +A X +C X +A X +C X +A X +C X +A X +A X +A X +A Y +A Y +B Y +A X +B Y +A X +B Y +B Z +B Y +A Y +C Z +C Z +C Z +C Z +A X +C Z +C X +C Y +C Z +B Z +B Z +B Z +C Y +C Z +B Z +C X +A Y +A X +C X +C Y +A Y +B Y +C X +C X +B Y +C Z +A X +C X +C X +C X +C X +C X +C X +B Z +C Y +A X +A X +B Y +B Z +A X +C X +C Z +A X +B X +B Z +C Y +B Z +C Z +C Y +A X +C Z +B Y +C X +A X +A Y +A X +C X +A Y +A Y +C Z +B Z +C Z +C X +C Y +B Y +A X +C X +C Z +B Y +A X +B X +B Z +C Z +B Z +B Z +A X +A Y +A X +A X +B Z +C Z +A X +A Y +C Z +C Z +C Y +A X +B Z +C X +C X +A Y +A X +C X +C Y +C Z +C Y +C X +A X +B Z +C Y +B Z +C X +A X +A X +C X +C Z +C Y +C Y +A X +A Y +C Z +A Y +B Y +C Y +A Y +C Z +B Y +C X +A X +B Z +C Z +A X +A X +B Z +C X +B Z +C Z +C Z +A Y +A X +C X +A X +B Z +C X +A X +A X +B Y +A Z +B Z +C X +C Z +C X +C Z +C X +A X +C Z +B Y +C Y +C Z +A X +C Z +A X +A Z +A X +A X +C Z +A X +B Z +C X +B Z +A X +C X +A X +C X +C Z +B Z +A Y +C Y +C Z +C Z +C X +C Z +A X +A X +B Y +B Z +C Y +B Z +A Y +A X +A X +B Z +B X +A X +B Y +B Z +C X +A X +A X +C Z +B Y +C X +B Y +A Y +A Z +A X +B Y +C X +C Z +C Z +C Y +C Z +A X +B X +C X +A Y +A X +C Z +C Y +C X +B Z +A X +C X +C Z +A X +C Z +A X +C X +C X +A Y +C Z +A X +C X +C Z +C Y +A X +A Y +A Y +C Z +C X +A X +C Z +A Y +A Y +A X +B Z +C Z +B Y +C Z +B Y +C X +C Z +B Y +A X +A X +B Z +A X +C Z +A X +A X +B Y +A X +B Z +A Y +A X +A Y +C Z +B Z +A X +B X +B Y +B Z +A X +A Z +B Y +B Z +C X +B Z +A X +B Z +C Z +B Y +C X +A X +A Y +B Y +A Y +C X +C X +B Y +A Y +B Z +C Z +B Z +A Y +A X +B Z +B Z +A Y +C Z +C Z +B Z +C X +B Z +B Y +B Z +B Z +A X +A X +C X +C Z +B Z +A X +B Z +C Y +C Z +A Z +A X +A X +C Z +A X +C Z +C Z +C Z +B Z +A X +A Y +B X +A X +A X +A X +C Z +B X +B X +A X +C Z +A X +B X +A X +A X +B Z +A X +C Z +C Y +A X +B Z +A X +C Z +B Z +A X +A X +B Y +B Y +C Y +A X +B Z +C Y +A X +C Z +B Z +A X +C Z +B Z +C X +B X +B Z +C Z +A X +B Z +A X +A X +A X +A X +C Z +B Z +B Y +C Z +A X +C Z +A X +C X +C X +A X +B Y +C X +B Z +A Y +C Y +B Z +C Y +C X +A X +B Z +C X +B Y +A X +A Y +B Y +B Y +A X +C X +C Z +B Z +A Y +A X +B Y +C X +B Z +B X +C Y +B X +C X +B Y +C X +A X +C Z +B Z +B Y +B Y +A X +A X +A Z +B Z +B Z +C X +C Y +A Y +C Z +C X +A X +C Z +C X +B Z +A Y +B Z +C Z +B Z +B Z +C X +B Z +C X +C X +B Z +A X +B Y +B Z +A X +C X +A X +C Y +A X +C X +B X +C Z +C Y +C Z +B Z +C X +A X +A X +A Y +C Z +C Y +A Y +C Z +B Z +C Z +C Y +A X +A X +C X +C Z +C Z +A Z +C Z +A X +B Z +C X +C Z +A X +B Z +C X +A X +A Y +B Y +C X +A X +A X +C X +C Y +B Z +C X +A X +C X +B Z +B Y +A Y +C Z +A X +C Z +C Z +A X +C Y +B Z +A Y +B Y +B Y +A X +A X +C X +C X +B Y +C Z +C Z +C Z +C X +C Y +C Z +B Z +C Z +A Y +C Z +A X +B Z +B Y +B Z +A X +A X +A X +A X +C X +C Z +B Z +C X +B Z +C Z +A X +C X +C Z +B Y +A X +C X +A X +B Z +B Z +A X +A X +B Y +C Y +C Y +C X +A X +B Z +C Y +B Z +A Y +B Y +B Y +A X +B Z +A X +C X +C Z +A X +B Z +A Y +C Y +B Z +C Z +C Y +A X +C Y +A X +C X +B Z +C X +A X +C Z +A X +B Y +B Z +C X +C Y +B X +A X +B Z +A X +B Y +C X +C X +C Y +C Y +C X +B Y +C Z +C X +B Z +B Y +C X +A Y +C Z +C Z +C X +B X +B Y +A X +A X +C Z +C X +C Y +A X +C Y +A Y +C Z +C X +A X +C Z +C X +A X +B X +C X +C X +C X +B Y +B Z +C X +C Z +A Y +B Y +C X +C X +A X +B Z +C Z +A X +C Y +C Z +A Y +B Z +C X +C Z +A X +C Z +B Z +B Y +B Z +A X +C X +A Y +C X +C Z +B Y +C Y +C Z +C Z +A X +A X +A X +C Z +B Y +C Z +A X +A X +B Z +B Y +B Z +C Z +B Z +A Y +C Y +C Z +B Y +A X +A X +C Z +B Y +C Z +A X +C X +B Y +A Y +B Z +A X +A X +A X +B Y +A X +C Z +B Y +C Z +B Y +C Z +C X +C Y +C X +A X +A X +A X +C Z +C X +C X +B Y +A Y +B Z +B X +C Z +B Y +A X +C Y +B Z +C X +A X +A X +A X +A X +C X +B Y +A X +A X +B Y +A X +B Z +C Z +A X +A X +A X +A X +B Z +A X +C Z +C X +C Y +B Z +C Z +A X +C Y +C Z +A X +A X +C X +B Z +C X +B Z +C Z +A X +A X +A Y +B Y +C Z +B Y +A X +C X +C Z +C Z +C X +A X +A X +C Z +A X +A Y +A X +A X +C Z +C X +C X +C Z +C X +A X +C Z +C Z +B Z +A Y +A Y +B Y +A X +A X +C X +C X +A X +A X +C X +C X +B Y +C Z +A X +B Y +A X +A X +A X +C X +C Y +B Z +B Y +B Z +C Z +C Z +C X +C Z +A X +B Z +A Y +C Z +B Z +A X +C Y +B Z +C Z +C Y +A X +B Y +C Z +A X +A X +A X +C Z +C Z +C X +A Y +C X +B Z +B Y +A X +C X +C X +A Y +A Y +A X +B X +B Z +B Y +B Y +A X +C Y +A X +C Z +C X +C X +C Z +B Z +B Z +C Y +C X +B Z +C Z +A Y +C Y +A X +B Z +A X +C Y +B Z +B Y +C Z +A X +A X +C Z +B Z +B Z +C Z +C Y +C Z +C Z +C X +A Y +A Y +B Z +C Z +B Y +C X +C X +A Z +C Z +A X +A X +C X +A Y +C X +A X +A X +A X +C Y +A X +B Y +A X +B Y +A X +A X +A Y +C X +C Z +A X +C X +B Y +B Z +B Z +A Y +C Z +C X +C X +B Z +B Z +C X +B Y +A X +B Y +A X +A X +C Y +B X +C X +A Z +A Z +A X +C Z +C Y +C Z +C Y diff --git a/2022/day02/test b/2022/day02/test new file mode 100644 index 0000000..db60e36 --- /dev/null +++ b/2022/day02/test @@ -0,0 +1,3 @@ +A Y +B X +C Z diff --git a/2022/day03/day03.bqn b/2022/day03/day03.bqn new file mode 100644 index 0000000..5368ef3 --- /dev/null +++ b/2022/day03/day03.bqn @@ -0,0 +1,4 @@ +in←•FLines⊑•args +Score←{+´58|'&'-˜𝕩} +•Show Score⊑¨(∊´/⊑)¨ <˘¨2‿∘⊸⥊¨in +•Show Score⊑¨(∊/⊣)´¨3(⌊∘÷˜⟜(↕≠)⊔⊢)in diff --git a/2022/day03/day03.rkt b/2022/day03/day03.rkt new file mode 100644 index 0000000..38a40da --- /dev/null +++ b/2022/day03/day03.rkt @@ -0,0 +1,28 @@ +#lang racket + +(define (read-input filename) + (map string->list (file->lines filename))) + +(define (score items) + (for/sum ([it items]) + (cond + [(char-lower-case? it) (- (char->integer it) 96)] + [(char-upper-case? it) (+ 27 (- (char->integer it) 65))]))) + +(define (part1 in) + (score + (for/list ([l in]) + (define-values (a b) (split-at l (/ (length l) 2))) + (car (set-intersect a b))))) + +(define (part2 in) + (let lp ([l in] + [res '()]) + (match l + ['() (score res)] + [(list-rest a b c rest) + (lp rest (cons (car (set-intersect a b c)) res))]))) + +(define in (read-input "input")) +(displayln (part1 in)) +(displayln (part2 in)) diff --git a/2022/day03/input b/2022/day03/input new file mode 100644 index 0000000..6da1d58 --- /dev/null +++ b/2022/day03/input @@ -0,0 +1,300 @@ +shzsFcPssFhjFssBzdpRcNHNZrpdJdJVJZ +fwvMCntfCCbSbSbtDgDNrDtDtJHZVH +GbCwwbwwnGrLhBzjFFFsWPhL +PpCqRsqqmmtCwMJC +LHFrLLHDSNHlfWNhDzmjzzJlJzPJMvPJjQ +SGSWDNrhZhPDSWDZLgVVRgbRppgpGVnpnn +GRRjbVjmJZlgMRzzrN +FpDptHpfHfnpPTvDFTWpFPnPcMfNCClNrzcVcrMMzVsCZlsZ +TFTQDnvLHPFDtVbLwbjdGjdwwJ +lhljvvhCjjzhjszzBPmnmGVZMGzG +FbTcTwbtSFdtcMPnTBPQVnnBZT +SFMpHDtNDSSbSdwppvgJWjJCJJgWgvlJHH +wzNCWpzCzJnWWpRRNdJrgHLhjfbLrHrchV +lBMStmPmmLQDPQZlshrdhgrfrcrrddgHgs +mvGDGQSvDPBlGMLGCvCWpNvpzRWFwqRw +stBttBThtDZqPWssPWZp +gRggwwggCGFSBBvPRpHZZrHdZLZq +ccFJGCNJmmGQzbTDhnQhBBnB +HJqMqtZbJMmJTqtLtVMqhpfphNdQfhfzzjhhlHll +rWSBrnwFwWCvwWCwBgPgCgzjQccQhhgRzcdQzjfcNfzR +CWBCwCvCvvwssWLMtJJGMdMZJsGV +nFwSFQwsNrrsssSwCrhrCNnfcCRgJRMJTJcMfRzMCMCRvW +DdbGdLZLttllWWvTzgzzgR +ZqGzPdLtDjBjDZGPZVmnhQFwqrFQhVFnss +sNNpCjttjsJjSpgpWjslCTnqqSVffrnhSfDhmhrhfm +dBwcGzbPBHbbwZcwJbcTTFDFFFDVrdVmFdnDqf +HzGcczQPHGwzPzGHRctWlvRgtvJlvNlJvRNj +cFNCFdvcCHvFBCZcwBfRSpttGhDmCghGShmSRt +QjLnTTzQVzTTnLMqhDgPhGDDSjGPrgSh +TTJGnJJlLQdNWZWJNBJZ +WHBpHcMDZHLDbHLtGCnmRmLNGmRqvsCC +PzTFzPPTJzrSbGsvnmqfsqfqRz +dJSQQdVFQgjTrjQPWcWHbBVcZVccZtWp +JDtnRtJzNzTTNlHc +rQPJFrLPGMMwrGPFwjFMVLjSTWHdWBTdSWdWZlcWTHlZ +MGFrCvLLwrwPFVVhvLMGGtnqfsmRJgDnqbRgfbqmfC +jnTtFjcSSvctJjznzvFmpqqPMqQDRVpRqPzqQzVQ +bhHBfrWpfHsfGNllRrRCPqDCqPqq +gsGZZpbWgbwHWGNgfZNjvLSTTjtnTgjSSSSJmL +RLQNdVNnRQdQHVVLGpspNqvtsqptqpTtsp +MlRWwbRBBFMFjCTFTTFDvj +WmlWBmBwwmrndnmLRHRQ +WnftJWlfnWSHGCjWWWSCFqFGBDqBwMcDmmMmGmqD +pTNhpTrPhhhRPzbhrppLhThLgqDmwccwqPBmMMqnFBcwwmBB +ZrhQTpzdjSVVtnvZ +jgtnJtBjtlTdJBZJVQBngQGDCGWpPGCcPWCbWdWMbcpP +wHstNNttSHPDmHcMCp +rrFFSvLLNfsFtNSqrtfrhsNjjVTBVgVvnTBvTQvjTgjVZz +qhZwlqFqFwlJwrDHqHcDvgcNzv +RCCTQmjCbQTBtRTbjJRDpBrgDHPPpPDvHccDPc +VmjVWstQJhlJlGVJ +GggpGwZmgvgJMvbJFQQDbDFbBbFCQDCW +rtrLzNLtNSPnNqDSQDcQCWlqBQ +VtzdRPtztLtVRtZmmMTRwCGZpMwp +vtvqjsCqtshfjcWFHWGjGFJj +zGrnzDDMpPcTHcSTVTJP +DbDwMbZRDrZdBBnMznZMGZDfwtlgQhsqCttClsqvsLfCff +JLzLtLsrzsQdvrWRwMHwcc +qPmCTzlPjljjFTZmWwcwwvHMMRWwHvMm +PFqZnVCqTCNjCzNgQsbGBLzLQQ +CBnppDHllVpPCBshBHpjDTSmZcSrfwvmJcDDTJfw +dFRLdLFQzNSTBTSNmBJv +FzFFzRMBFWtQlPlsjjPVMnhC +CVCfwnfdVvBdBbTNTT +LNzsHPNWsDjTZqDHqT +PtLgQsGQLSzWLstPgGWcgQLSNrpplffrnrNhpVCwlGVlrwMn +jPPVqPsHffzVnHzvSgMcCJGGMSVCll +pdbpDpBLNmNNppJgcvgSllGjDSGQ +hrbBwLpjLhhhNZLhNrhZZLHzfsztFzzsrtHfRFnFfRHf +tdjBdbmSfdHBdHHmZlWjFrnlWQlqvMFvFn +pDNDJhLhPVPLLLJphJLwNcwnQTcWWTqTrqMWTZvqMrlvFM +gpVLhNwpgZJCghCLDNwphgmsBdzHHHmSstmfggzdbR +TfMpfMBVftLMDBSjWDHgzHbgwLgHHvdzggzs +QJnZcFFnZRHdHjJvwgdg +RjjRRnmNmmZNjZqZnQcVffBrWqVTqrtffTSTVV +fZTdTVcVjrjdBzdTnGtgnnGSHHNFGn +thMWPtPMslmGnWnNnS +thvbMvQMRphhLCjrzBjZVdcQfC +MpmgZFgMGdrFrBCVnJ +JsbJlTTlvLQbVffRRvBBRVjd +LWlbhHlJhLTJmmGcMMHNmNgN +bhvmhPrbhqNqQRRGzQjVvvRL +wTwBZDBTwwggfnngcDfdsVVFQCdzCzDVRsFdQs +pngWMcgzMgpZWncnMpWNrbNHrNbmHhltWlbl +nPndBjLPscWSccBVGnScsSzMdhMppMthdMgpMgrzvhhp +CCFTFDwqZqCCJmhvpDzztVzDNztp +qQFJTbRVbmCfwTwfmnnssWBGnLnWlRLSGn +JRlJDSvLRRCdvmDSvdlbZNVBSWZGNgWsZGNgZBVs +QrjPMqMnLzzjLjFnNNgBpsgtgGGGVZ +hrjrFqjqFrQfMHPhQzDvvCLJdwwwmvbJbwDH +HDGrDDDpNsGQNdZQ +jpjgtgjSjpjllfZZtZsvNdtshqqq +cbgMfjclWTJcMwjWJfpfmVPLPBnVBHnmVbnmLBbD +rPrMZNsNrsvrwqvFFFdgQWNzLJJzRW +pStppStHmcmHpgVSllVcbVbWWDdLFhdbzdRRFhJFLLRF +cltCHmCBmtSlgjpllgGvTwPZPMfZvPsCMCwZvC +FRQQMdlFMDWRFQRQMQQDWdFbSSSVJSBbJSlBVVBnPJnzJL +rsftPfhsrgwznSzzHSLgJG +fhNsjrjhvsTTvdjcCRMRMRPcCW +tRtJttHFrjtDQHHBQMMBgMBSghhZQb +vqWPLpLvqrmPdmqwvqfmPhNBBBlSnbwbgnlnlhNSZZ +pGpdfzLLspddmqsqPvfvvPpGTVcJJCDRjHrccRtDjcRDFD +GJMHCdTMWJRhSTlhhSPllt +fVvqpfBFrqvqNzzgVDFrpDPmSVtQSlSmhjwltlRtmVhn +pzpBNDBzfDrsNsDRJJRdCssMLdLZWZ +hFfvWWvdpCwwcwFhphpcZCMmllHLfmbQlbrQLBJmGgQrQm +nVSNGjGzzSVNTsjzSJrbSrHBSHlrrmQHJB +PttTNsTRVnNjNqRnzRzRWCCCcpMCWGPMwwFZvFwW +DvZbFnDDsqDBwwRQgNBm +HhWpWWRMWChlChdHLlGlGtQtggSNPSSpgPmNgPJQtw +CMlWGMhhCVHlLCdHTHdrGHdbzjVqnzcvqqjRjFbbzbFFqR +ZZgCNqqBmjZsNgZCqJgNBdrLFHbBrWlPdHWFbPnHPW +TVwTDfzDwSDzmcSTcrzdbllnHPHdFlLzbF +tvDQwVtVvDVmtRsNMgRpJg +BBpDCpNJnmnpnDDmDGGmtTzqHcGTvTTjTbGjHLVcLb +swNNhPwwHzTVwwHw +rPRlPRhSQmmBDpnNfl +pbRhffPzcPDmfcNTpVBLpBjMGBGjZLLg +ssrCsqrszgJjZMqZLQ +SzCwnsllCrssvdrvwzPmDmPPbFRbSThPTPDD +QWLfcfczQQpcDTpLPfdZRRvRRVqbFWvZbvtqvv +NsGGJBhCmNdZVqsbdssZ +rMwwwBBJMrdzPfQMpzMnLQ +rdtCQhrCtQQprtTWQCHFjPgGBPdFPgvBqRRPqB +lsVsSnVSbLmmgBcgTLTFGgvq +wTTDTszsbzMDppJrJhDQ +ZlmsGLBVCBBZFCFFHqcHVvQhqVQSSHpH +dbbTRMrRwwzDfrTbFtMvcptvHFQQpqtc +gdJTDWgfwDwTwmgmNPnNsgFBlZ +PWhWhGFzzzrLdHCPccbJQJcHPD +NRpVTpTgRWVlHJNHMcHQMb +pSRSpVSZWRSTZjgTRTWnFLdZLrrndhdzZvtvzn +LgctLgVBVLhlPjqRhBLVcVlhbDDcGnNGfwCrbNDnrGbGCJNw +HmppHMWWmQmMqZZHWQrDDfDCffJrDGJrCb +qpWZsZZZMZWTLPhTRgTtThRP +hfhQfFQWzBfhfTQdmzdLDtDjtvHLjt +qsgpcqMNRmgpqsCwpCmZDvjwvdddHZHvZDtrrd +SgmNmqScbTSJbhJQ +dvMTQvTnZJsrQdbbSvMVZMblDwlflfDGgwwHcfGjPfjjrG +FqBLpBpFpFzRzqNFmgjGlDRHcwPPGwgcgs +tLNtWshsLLqWMJhTQVVbhvJd +bgZLMZgzbbLCcPCbMZbcNMgBqSTqSWVtSzvvTTBTqBvRBW +FhQpJQnGrlhGlrnTqRtTRJqSwDwtVR +FqlnnFnqFHnGHHdNZdbZbCNMdPLMPb +HHFnbftcfnfbbTbTnHTNVZZzJlPQlFrFzVJFZsdr +mvpGCBgwqCvLCqvMQWWzsQQWlPzwzsrV +hpGSGgqSvqbHcnhfVfct +lGVrnHsGcnVHzscrlGjHcrHqqWPlJCPJClTLLqCSPLPdqS +fRbwbtMQZtMMRFMSqfJTTWCTJPJCmd +ggdvtvdbVVGnpDGg +BnBjTcbnvhjjlMnNJJfnDnQDGdNDfP +qwFqVSWwqLpWFmFVCSqFpDDCJNJRQTRfRDGPfdfDQN +zwHwWVVWWFSqqwWTLqzzztHMvBhlcghblMlcttMllh +PFFNPNPmlFllbctNLmcjBstrsVrQHJSSHHSnnB +fddfDhdwGhTWWTDMwMggssjsjndsBsjsnSrVqSVV +MCvvTWvRMwCvGPpzCcmbplpCVC +thTqlPPTNbGNhGdqRRhRrNtFWnDnvvFZDpnFvfQDZtvWvv +HcMzVcVVcHrgHzcMcmmgfQvFQnMjnWDjfnvjQFfQ +VSmHJLHBJrTrJTlT +NjnsHjLLjNRddNdBFBSR +ftsbqfDcDqsrDtqsfSVBhJVFJgdBRVFS +wvDqwtDlsDDczjzjHvLzLQQM +qDwstwDtRfpJfVhBVZBMvnlRvv +zSFzQHFWdgZBVTZhTzrp +NHdggjGjWHQFPWHNPPbpJfPDtCwCtqDqJfbt +pvnbqHvnTvlCCpjsBsMGBGWWPp +RJSJhJCRVJmJwScrhSJdfwFsBGhZBjhGFFFFGgFPGhZW +cdRrdmwtfcdSmLtcSCQlvQNqQTlqqvtTlv +rnSlSrgWjVGpTTRhSffpRd +HtgHPsNNgNHszPcTBphMdhHhBcTc +JNNbZPZZsszNmtDbPgsmJlwFvWVnCwrlmWlnjnGvCC +WrVBVgVGGQCrSTTqvVjDqDjv +FmwRRwwRQhhLFMjFMzdqSSzS +RcJtbnnLtQWrGHcfrP +vpzssjmVjVZWNZzzQwtQwccpQhgtQCct +qDdfLMnMrrTbBLqTqltlTfbGQnghgRwggGgRnhhccCJJcG +MtdLfSSSddMftlrjjzsSWVSjFvjNvs +qTRPpRPzJglzGJzpGRHWHljwDtbwffjtbhjfwNfHmwwf +SZLVdsvrrdFdBcdZvsBdDCNtbmftNwfNbNhCNvtz +MLzzddLsQRppRlQGPq +PDDpdJgtpppGgttgdGdgJFzLjVcvVnnCTrVrRPTLvwnTTC +ZSbHBsSNlZcsfNnnvRrnVjrHwvCC +NmSmsfsfhmzcDmctJW +NbrLfrrLqpqWQHtBzbFttJgcgB +CmwjPPjjjShPvljwvwwjPBFttBtcHzFJcHTRHJRRmT +CCljjDGhvPCVdVSCdPvrrNfnnQsGqMpqqMqnFW +bdPdbcDZlddsZbHjrrgrmZmCZhCGjv +BffLfLVFVMMBRfwMpfzhFGFhGWvWvrhNvvNj +RMBpRSnffBJjSbJqdPHsDcbqtl +BgwGwDDZttDDTNND +WzNNnFRWFtTFlFsh +WJjPpPqqzWRbrqnNqvVvgvvdcBwgdrVBZG +FFbMVMFPvJppgvcvrZMjHlCJWHmHHBlqhCmqChCl +RGQVdVVLnLsQnQnnqWBlBmDRBDWWlhBD +SftLzQndGfVgFfjvvM +npvLlFLTWWqdLnJCmBmmpjQjjmjB +tfgDwzwVVVVtgtrsJtrbjSPQjQmjNBCNBNhPHDHC +ggVzVtMRgzMrvJLqFnnRnnRT +gZFZssWgNZTDwHDWzsFwWDQMMpqqpBPMjFtMPSQFqqqM +vrmvhdnVvQpftStnMN +JCdLddhhdJdcCdrrmCGhlgNsWDWDwWsgwHgHLZHW +vSsSGjSPvjvRSGpFprFbqFpppRfp +ZdmlndtBZbwrwfpWFn +JmdHdBBHtgllZldBhJZldLLBjPVQTfvGPNzQQSjjzPgTGNTs +TjTjBjVrTsLRRrMBsMMgzLqGGqgQHQdCQGgpgd +nbZcmNnPNcbNftvhlhZpgQgCqdSpgCHCqPFzSH +WfcNvtmmNmQlvNcbsWWjMwMVMRDVMDJM +hHHnfZSwHDgHcfclSGSnvrnvBCvWWntvzvzbWWVq +dTJTmspFTsFdRRLvtvLzvvVqtPVtrb +VFMNFpRJNTppTpsJVRcMGgfGfgZwghgGfcGh +lLGvwsMJLCMVnTrCrVdHRd +tbzqtDNNBpNWBtqzfRrFFnrVTTdrQVSVGp +tztfzmfzzPDzgWNNBbhGMlJLsvhJJjGJhGmM +rHrVJQVQVJLggDQQLbTvdCCSTdWLLLbCbS +pNtnwPthmZGRpmPFtqbMSzqffFSdTvbSzW +GpvvshwtmwsZDljjssHjVBVj +SmhJdtJhhzQSrzVhtQbtBRNfnFNSnDNGRfFGGMgR +lHwqPjqwTjLHCWLvPpvNrNMvnNGNfNGNBffGRN +lCrPTrwpPZWlqPlqpWWqZjsmJzbzVtVhhdsJcQdddZVJ +QqpCWHdQdVQlWcQCqcfRjnZZZPDnSPqPhhqZ +tmmzgWGgwJwwStSZZDRnZssR +GbFbLLvgmMMwGgmLCrppQrWVlWrFTHHd +qdqCgSVdVSVqfwsdZhpJspZsph +RjZBbmRlrlmmJwLNNNhLpwhB +vZlRrtTZCzCMfSPT +JBjhCNwjrlJlHJJRsscZrTcvLLgTsLPP +dDztmntCSgbLgqTzgc +fGVWnSMFtVGMNNNQllBjWHJC +dSDhVVdVZtnSgHQGThQvFNQQqF +LcfLRpMpcBpbrJfsbsscBNWRNPRGHvqPdTGPGqPWFH +spmrCcrdJJpLLmcmLLLDlzSzCCjVwZVtgnSZzn +ZJtgPTHtZPZQGbtNzzprVWWVrbrpCD +BRlfcRmBhSMVBqSVfBvNWrDrjWCjjzprCDCl +LfMRSmfqfSLcnnMqVSfccnhZwJFHZFTGZQGFLggwZTZGPJ +BChWddRRRcfmDbfhDP +MgpMFFsvMfGwvLgPjQPzPPmDcztDtw +NFgJpqvpLgqFnWWVNSfnNSCR +zMMMRmMfJpfhpzQJLMVtjtjPntgBtlZlVgJP +SdNbZvZbvbHTNbZbSWTdrTVBglBDlWBjDPDgntPqBDPt +rrNcrFwNdSrfzwMzZMLQQs +JPmCSfHTGJdTCbHgpgqLgRhghhffhg +ZWSSFVSVFQghQvwpphgh +lsDtZjVMMSdCNdbGCbjb +PBQPvDvVVRvQDqLDzJTlzwjz +tGcZTcdgGcncdrFrsTjzJSJqJqqwHSzzSZwq +CgtgdFgcFCMnMgsGFGGQWPQpQTCBvbNpNVVWVT +FHVFWMHMgVhnLWWMpnppfcdZNcPplnfn +RSvSCBSqGgDRjqCpPlPpppTpPjlcNP +zRzsGgJDqJwLVWVFwM +ThhWhNthVWTWqbWbFWbTdBtWSdMlHSlGlCGCdsCMClmnSlMn +DPPpvvfDHfLgDHvzpvPDsssMsmmzsMcClScMMcGG +rgPLHHJJHgZfvvZQQZfrpfFqBBwFBTNTBNBwtthQwVqt +JJgSWDSmSDQCFrhbRLSwLS +VznqzVNsMsZLdqslbRChtbHdHRrwHb +LVfNLMsLTmWDpBpf +cbTsnNpcnnchllFQlMRgJhRP +WddmdMVSBMWSBWjwCJVCPRwPFCQRRC +DWSSfjdSrTpDnHHMbZ +fgsVqqwQQtHhCrDfJH +pvbnBZWBbvWbTdthrJbDmqrmHq +TvZSNSNNSvFMBpqpnLnTBZBFGQwlQFggcFzcVGRlswsRll +zfMcQHzPtRNvlllc +BLnMhbZMLJLNNVtCdNgZgt +BJGFpqMBhBLLMqnwBhbrbhLssjFzssjfDzsmFmjmQFQPjT +JPBJPnpBFrqBJHtjlCjHJcCthM +wQZggQWQGfZFVmmGfDRjlvvNcvlNDhcNttlctt +SfmWfwVFwVGZWQVGSTdTbBpTPSqBbLnnrn +RJqBRJbqpqqJGvqHMmcfczfcjvHQfm +llgVnSWSlsssTnlWjhTcsZMcZcZMZMcccMNmcH +TnFhhllnWCnVCTllLnhhVSrbDDPrdpjRRqjBPRBBpbFJ +mRwRRNDjNTqwDNjNnNRTsQLcQWpQWZJLlLpQWs +PMFGCSzzgbBVzCGShVQZcgWsQLLftttQtlZZ +SlGVldCGGbBPMhPCVSBrNNdjRqjDrNmDnmrRwN +mqGGqGHnqGBCMrnGCbbbLgTTFFNNghHNTj +SdRfcsDPPcDdRzWPWltSlscwTSbShhgpQhgbFLbTQFjwhN +DPWWZzzztsDDtfzlscsPdcWZnVMNVqqGJnBrVqCrMrVvZnBJ +ZgglFCrrrlrWCJswHmwRVmFSwSsP +zhzqBLcjjnpzMzjhTtcqnVGbwssVRmqbHNPbwPsVNH +ftBjzLtptRWdvZlQQZQf +nGpsMncVRMGSnfsBllZdppwrTljZrQ +gcgHmtbCthHWhwBFBWZBlWlWrd +bCDDqHhcqbbtqcqtvJMzsGRsvVfPsfnzJV +TclPvSGZsPZRjhjWDgjp +JtnwHFtJqtwfQfgWgRWhdhjtgdRM +JBwnHwgFFqVJrsGmPvNTPsVvSN +ZJnfZNnDNZJLzNntDtDNNzNWTVBPrrvRRGdBcVRfPPcvfdMr +CFgjFmggQSQQmSggVMMvRdTvBVRjrdrc +mbsqQFqFgwwmgmSbwQWWLDWzpLcLnzZzLbLL +PnwSFSLSTwbbHdtstW +RrDZVVfJNZCmDCfVDVlblZHbddtHScbWbMjt +NmzqhzCCqmzffhCCqrhhLLnPvpnTPPgpGTTBSL +ShhfLSDDFMPQddpMrDgNbjzffqqqzgcjbqZR +sCstmwJwVBtmTltVmTVbRbcbcRvqvrZvBRvZbR +VwCnwnVrrrWShWPHHDdQFL +pbpDpWjZMmFCmmmb +jTjtJLJgJncCFmnJFC +LvhvhTQhBSdRNtLNsSszlGrHSGjZDlGf +JrhvTNJJhhCrtVtcrNLwDBSBwqzDwQVbBLQS +RnCgHmHHGMdPsGMfDlDqlSQbQnQQDbzD +RdPMPsmWHmjfMffPcCWrptcprpFTFrFp diff --git a/2022/day03/test b/2022/day03/test new file mode 100644 index 0000000..f17e726 --- /dev/null +++ b/2022/day03/test @@ -0,0 +1,6 @@ +vJrwpWtwJgWrhcsFMMfFFhFp +jqHRNqRjqzjGDLGLrsFMfFZSrLrFZsSL +PmmdzqPrVvPwwTWBwg +wMqvLMZHhHMvwLHjbvcjnnSBnvTQFn +ttgJtRGJQctTZtZT +CrZsJsPPZsGzwwsLwLmpwMDw diff --git a/2022/day04/day04.bqn b/2022/day04/day04.bqn new file mode 100644 index 0000000..bf4e529 --- /dev/null +++ b/2022/day04/day04.bqn @@ -0,0 +1,4 @@ +str←•Import"../bqn-libs/strings.bqn" +in←∘‿2‿2⥊>str.ToNats¨•FLines⊑•args +•Show +´2≠|+´˘(×∘-)˝˘in +•Show +´(∧´(≤´0‿0⊸⍉)¨∘(⊢⋈⌽))˘in diff --git a/2022/day04/input b/2022/day04/input new file mode 100644 index 0000000..c7fb3fc --- /dev/null +++ b/2022/day04/input @@ -0,0 +1,1000 @@ +48-50,48-49 +5-89,5-5 +17-57,55-96 +24-67,23-25 +89-99,11-89 +34-71,35-71 +13-17,16-95 +13-93,5-12 +11-91,1-11 +4-81,2-11 +53-82,52-53 +5-98,4-97 +4-78,3-3 +20-81,21-80 +79-83,77-82 +76-87,43-87 +14-93,12-62 +13-94,15-95 +22-75,14-53 +67-90,67-79 +1-82,1-82 +5-80,83-96 +28-57,56-56 +53-91,52-54 +21-97,2-36 +8-18,10-98 +7-91,12-91 +11-88,19-95 +22-88,21-88 +31-69,9-48 +2-3,3-43 +5-95,2-6 +5-85,5-79 +51-91,51-69 +41-91,41-64 +23-37,24-95 +1-28,3-94 +6-93,6-98 +8-65,34-66 +2-8,9-38 +3-75,2-4 +40-77,37-76 +51-51,11-51 +95-95,3-94 +90-90,81-90 +26-61,26-61 +1-96,97-98 +41-84,90-91 +94-94,1-94 +52-89,74-90 +9-11,10-74 +57-67,56-62 +29-98,30-78 +20-88,18-54 +11-81,10-82 +85-87,26-86 +8-45,46-78 +16-33,20-49 +73-93,16-93 +35-36,29-36 +4-98,98-98 +24-30,30-80 +64-99,72-97 +8-33,8-47 +88-96,93-99 +23-46,35-49 +41-60,40-41 +5-83,4-6 +76-76,15-76 +37-70,69-71 +11-77,11-12 +57-65,65-97 +20-46,46-62 +76-84,8-77 +10-29,29-53 +16-50,6-17 +20-99,19-19 +11-12,12-72 +24-91,77-92 +37-73,72-73 +50-52,73-89 +37-99,25-76 +1-88,1-2 +18-64,17-63 +19-52,17-52 +5-86,6-87 +13-87,14-87 +23-82,19-92 +56-79,57-79 +25-68,26-67 +5-95,94-96 +38-50,38-39 +32-75,32-75 +23-69,23-69 +25-54,18-25 +33-79,34-67 +38-62,38-65 +62-75,69-78 +2-17,3-17 +12-20,19-96 +7-7,4-8 +1-92,2-93 +29-70,69-77 +7-54,2-54 +9-34,16-34 +4-20,7-31 +4-89,4-47 +12-91,9-96 +8-79,9-80 +32-91,31-91 +1-4,5-55 +85-94,84-95 +73-74,6-74 +51-70,52-70 +21-75,7-27 +13-38,37-39 +42-97,42-98 +33-45,28-45 +12-14,13-98 +91-92,90-91 +66-83,57-83 +8-79,9-67 +59-72,71-72 +33-71,3-33 +13-38,12-38 +18-93,18-52 +28-80,12-26 +87-88,2-88 +7-89,7-85 +26-27,27-27 +12-97,12-97 +36-95,32-91 +25-33,25-32 +4-39,5-75 +40-58,41-58 +8-60,8-93 +9-69,70-70 +19-34,35-68 +47-47,38-47 +1-70,1-70 +39-82,38-83 +17-98,17-99 +56-86,37-56 +2-2,4-96 +5-97,97-97 +52-93,52-77 +39-66,38-66 +9-99,4-99 +25-37,24-37 +2-99,1-98 +13-15,15-15 +10-51,5-9 +38-99,19-96 +6-38,37-78 +94-98,95-99 +8-89,29-89 +2-98,1-98 +13-99,99-99 +1-76,1-25 +8-97,8-97 +9-90,89-93 +24-52,7-49 +30-97,45-99 +26-62,26-59 +15-27,21-30 +80-81,64-80 +65-76,2-76 +9-9,10-99 +3-6,4-82 +78-79,20-79 +11-50,49-49 +10-12,11-68 +1-5,4-85 +8-10,9-95 +16-86,16-87 +11-81,10-11 +36-87,75-87 +55-92,54-99 +3-18,18-84 +4-73,1-2 +16-66,5-76 +29-73,29-79 +60-91,67-91 +82-82,47-82 +31-38,31-37 +44-44,21-44 +93-94,65-94 +13-79,2-12 +4-97,5-97 +40-78,40-41 +69-99,1-69 +8-97,8-96 +27-27,26-79 +60-96,71-88 +24-57,18-25 +1-26,2-27 +53-81,69-81 +3-96,2-96 +9-99,9-97 +45-48,46-56 +6-36,5-30 +45-73,46-73 +28-41,27-42 +4-91,90-94 +6-39,20-44 +3-3,5-65 +17-98,18-65 +15-98,15-96 +29-88,65-90 +10-61,60-62 +26-91,27-91 +78-96,95-95 +6-22,6-17 +40-56,40-57 +4-5,6-98 +78-83,51-83 +8-78,8-78 +26-87,26-86 +4-94,3-4 +5-55,2-6 +40-50,19-56 +55-68,2-94 +39-41,9-40 +68-76,68-69 +51-60,50-59 +9-48,2-10 +13-96,13-63 +1-90,4-91 +1-7,6-99 +25-67,25-66 +13-94,14-93 +27-28,28-70 +39-41,25-40 +8-53,9-53 +56-89,57-88 +4-56,50-56 +22-76,15-17 +7-98,69-76 +12-46,11-46 +1-41,3-72 +43-55,44-76 +9-81,9-81 +45-95,45-94 +12-68,12-69 +90-96,74-85 +67-68,68-68 +50-73,2-73 +6-17,6-97 +70-76,71-99 +9-43,9-43 +9-76,8-75 +66-90,65-66 +13-99,12-14 +1-2,3-91 +53-86,52-53 +3-57,3-96 +81-92,80-92 +6-18,17-88 +70-94,69-69 +17-17,18-88 +4-92,4-93 +41-61,47-61 +25-52,25-73 +78-97,12-97 +39-54,38-46 +39-52,39-58 +8-99,8-51 +52-58,51-52 +5-45,6-46 +3-99,98-98 +84-87,84-98 +58-87,86-88 +6-72,71-73 +41-42,41-86 +27-42,27-77 +14-15,14-74 +43-43,40-43 +17-95,17-93 +44-66,65-70 +4-99,5-99 +43-43,44-86 +64-75,63-71 +4-99,5-99 +6-29,6-99 +19-84,18-83 +72-72,10-72 +9-14,13-88 +3-98,98-98 +9-81,10-81 +13-69,13-70 +3-87,1-87 +22-61,10-62 +75-90,75-90 +69-99,68-87 +94-94,91-95 +2-3,3-96 +5-93,48-93 +43-45,33-49 +85-87,2-86 +51-52,52-62 +50-91,40-49 +1-81,21-81 +51-56,51-56 +22-23,23-37 +25-27,26-67 +58-59,23-58 +37-85,84-85 +12-97,12-96 +14-38,2-13 +33-81,32-44 +34-65,46-60 +3-28,27-28 +11-54,11-55 +2-93,1-93 +28-28,28-50 +10-82,81-83 +77-82,77-82 +33-63,49-63 +2-84,89-91 +37-90,36-91 +46-85,45-85 +97-97,14-97 +5-18,6-19 +7-94,6-95 +17-87,12-86 +11-85,39-85 +7-94,7-93 +9-98,9-96 +18-18,19-96 +62-62,34-62 +24-36,24-91 +72-91,4-91 +7-84,7-83 +9-93,9-87 +22-99,21-99 +32-46,31-32 +32-70,69-97 +13-89,12-88 +10-10,11-89 +46-46,47-64 +51-51,24-52 +5-51,3-3 +46-90,99-99 +6-96,5-95 +50-96,50-97 +96-96,4-70 +13-36,12-35 +19-90,13-20 +12-43,42-95 +1-83,1-84 +3-5,4-70 +24-97,25-98 +27-40,1-50 +37-82,36-83 +47-95,47-94 +2-80,2-58 +64-83,63-87 +42-52,41-44 +26-97,1-97 +35-45,35-78 +6-45,28-82 +11-17,11-16 +67-67,44-67 +2-95,2-94 +22-95,22-94 +20-43,21-92 +33-60,59-76 +6-75,7-75 +3-90,96-99 +38-76,41-76 +18-98,6-19 +2-65,64-77 +3-88,2-88 +14-94,13-93 +40-89,71-99 +44-93,44-72 +48-62,48-61 +6-27,6-26 +43-53,43-54 +4-97,36-98 +8-13,12-83 +15-96,7-96 +18-91,17-18 +11-13,12-55 +31-92,19-94 +44-87,14-45 +18-51,17-18 +23-24,27-27 +23-46,24-88 +12-90,13-90 +37-70,34-70 +1-98,88-98 +2-93,6-95 +73-99,74-98 +4-46,2-46 +50-52,51-75 +45-91,46-90 +11-85,58-94 +26-43,26-44 +56-95,55-94 +10-93,11-92 +1-99,1-99 +8-95,7-7 +19-69,9-18 +18-90,9-60 +74-93,13-73 +62-90,61-72 +7-53,52-95 +44-82,4-44 +17-88,17-88 +26-27,26-89 +1-9,1-62 +13-40,39-62 +2-93,1-92 +91-91,17-91 +57-58,58-85 +23-98,97-99 +16-48,16-48 +25-61,61-87 +14-47,13-84 +46-96,47-94 +8-98,7-99 +3-5,4-97 +38-83,28-82 +7-99,6-34 +23-91,38-84 +33-35,34-63 +14-55,55-55 +34-50,11-35 +3-69,4-69 +67-99,99-99 +38-94,2-59 +2-98,2-97 +77-79,42-78 +6-45,44-45 +39-79,61-93 +5-92,5-97 +4-61,3-64 +47-48,48-67 +11-23,10-23 +2-99,9-99 +31-99,30-81 +28-87,29-88 +8-31,2-13 +3-17,16-83 +29-58,57-59 +4-75,15-35 +49-94,48-93 +23-85,84-84 +7-92,7-97 +53-91,91-97 +26-95,1-95 +9-22,7-9 +13-63,62-95 +54-55,54-97 +80-88,79-88 +1-44,2-44 +3-83,1-4 +95-95,26-95 +23-26,23-26 +19-35,19-34 +17-34,34-34 +39-89,75-97 +42-84,84-84 +60-95,61-94 +6-88,5-88 +2-68,1-68 +16-76,15-16 +30-93,9-96 +10-91,11-91 +36-88,35-36 +24-67,45-66 +41-58,16-96 +84-85,83-85 +10-59,18-59 +33-70,69-69 +58-69,57-58 +4-6,68-85 +3-91,91-91 +99-99,2-98 +33-94,93-95 +68-69,27-68 +4-4,5-14 +98-98,2-97 +5-91,90-92 +2-91,2-90 +37-81,80-80 +9-51,54-69 +45-59,46-59 +8-69,7-69 +20-21,21-29 +45-83,88-91 +22-87,20-21 +4-77,3-76 +50-81,49-49 +47-59,58-78 +22-85,21-84 +3-86,7-91 +63-83,62-63 +10-58,7-57 +14-88,14-88 +18-67,16-28 +39-50,39-42 +9-85,8-85 +7-28,7-8 +72-72,19-73 +25-27,25-56 +40-43,40-43 +10-26,25-25 +29-99,30-99 +9-14,13-92 +9-17,10-56 +93-94,1-94 +31-67,30-68 +15-84,84-84 +45-46,8-46 +10-93,10-94 +31-48,5-94 +49-93,92-92 +45-80,40-67 +63-94,7-93 +2-94,1-66 +26-44,41-53 +51-94,1-94 +5-93,4-92 +14-86,85-86 +9-52,8-10 +24-61,23-62 +1-78,77-79 +6-97,17-96 +43-65,19-43 +45-99,35-99 +58-58,20-57 +22-89,64-85 +12-22,21-80 +6-36,36-36 +1-92,87-92 +26-99,26-97 +7-85,1-85 +20-98,20-98 +2-51,2-54 +73-95,74-95 +16-54,15-17 +4-95,4-96 +11-98,11-98 +67-79,66-80 +61-61,62-63 +50-62,12-50 +9-80,9-81 +1-1,3-87 +16-61,15-23 +31-35,34-40 +13-89,12-90 +89-91,90-95 +20-60,12-81 +2-65,1-66 +38-96,56-96 +23-23,12-22 +96-96,11-95 +8-37,36-97 +2-26,1-26 +30-71,37-73 +71-87,70-70 +31-99,31-82 +6-39,2-7 +1-99,3-99 +29-73,32-81 +33-37,33-36 +15-41,14-40 +32-33,33-90 +23-85,22-24 +26-93,26-86 +3-97,2-98 +10-92,92-94 +29-55,30-55 +9-75,29-96 +6-94,93-97 +63-63,52-63 +24-78,5-5 +38-67,37-67 +14-32,13-32 +35-94,36-94 +23-92,24-92 +9-36,8-36 +63-95,62-62 +37-78,3-78 +34-51,17-37 +84-85,13-84 +1-95,1-98 +18-56,18-19 +17-78,13-16 +6-52,15-44 +13-33,14-33 +10-88,11-89 +61-80,61-79 +6-98,98-98 +1-91,1-85 +60-86,10-87 +3-96,95-98 +34-99,33-98 +19-21,20-91 +7-96,8-96 +2-90,2-90 +36-96,36-96 +76-96,60-75 +8-44,7-44 +9-28,10-28 +10-95,7-95 +56-68,29-82 +10-97,18-99 +68-97,45-97 +19-92,2-92 +6-97,5-97 +74-74,73-73 +20-70,20-70 +18-66,19-67 +91-94,7-92 +4-47,4-47 +11-93,12-93 +33-54,32-53 +54-64,55-63 +20-99,20-21 +39-82,56-68 +4-36,36-47 +30-41,25-31 +65-69,69-69 +20-71,71-74 +16-36,24-54 +2-96,95-98 +11-70,10-12 +5-36,35-95 +36-92,36-37 +37-78,32-87 +28-89,15-88 +9-63,62-62 +2-94,4-94 +85-85,72-85 +30-73,7-31 +10-36,10-36 +75-97,47-95 +23-23,4-24 +49-88,36-87 +25-25,26-42 +33-86,26-86 +13-76,76-76 +60-60,60-60 +3-23,24-24 +4-85,10-85 +7-38,8-37 +40-85,41-84 +46-86,47-87 +8-38,7-38 +76-78,9-77 +80-94,57-94 +86-96,86-97 +35-89,10-67 +45-94,35-81 +8-93,7-8 +22-48,23-47 +21-94,20-94 +63-72,60-73 +89-89,57-90 +34-41,41-78 +5-5,2-6 +1-79,1-80 +79-82,80-83 +37-37,38-53 +65-93,64-96 +33-85,33-33 +7-98,44-57 +2-5,4-69 +19-69,18-68 +80-81,7-81 +19-99,20-99 +5-34,4-14 +4-88,88-89 +51-91,59-93 +33-60,33-58 +32-67,27-94 +8-98,7-8 +34-43,44-69 +10-80,10-11 +7-73,11-73 +23-69,24-69 +68-83,6-68 +2-35,5-35 +1-4,3-90 +88-89,30-89 +57-99,14-63 +16-29,17-28 +67-82,62-77 +20-65,19-66 +37-69,61-63 +58-94,94-94 +1-72,72-72 +7-11,10-47 +18-59,59-59 +57-57,37-58 +60-81,54-72 +2-86,1-87 +7-78,7-77 +59-69,59-65 +15-16,15-73 +15-82,16-92 +8-88,57-88 +36-92,36-88 +59-60,24-59 +4-22,1-3 +44-60,45-60 +90-95,35-89 +21-30,20-30 +4-83,83-83 +16-99,7-17 +11-18,19-95 +45-94,44-94 +3-11,3-12 +9-70,8-10 +1-8,8-78 +1-5,4-97 +30-55,29-31 +7-89,8-89 +47-47,46-48 +66-96,38-84 +33-34,33-73 +2-23,1-22 +52-64,53-91 +9-34,19-61 +25-57,25-57 +1-98,97-98 +79-89,76-80 +28-80,28-80 +13-77,76-78 +3-88,2-88 +69-72,70-72 +91-91,22-91 +77-95,76-94 +84-92,84-91 +55-99,56-99 +1-91,2-91 +33-36,27-36 +79-84,62-74 +52-54,18-53 +26-37,25-27 +55-85,40-85 +58-74,10-59 +6-53,6-53 +42-49,42-47 +47-79,80-97 +11-24,25-91 +83-87,86-87 +1-88,1-96 +55-63,54-62 +76-76,8-76 +3-78,78-99 +1-86,8-96 +44-70,43-70 +25-27,26-91 +65-98,97-97 +14-64,15-65 +9-36,8-35 +78-84,77-85 +42-58,41-59 +60-92,59-60 +95-97,14-86 +8-82,7-83 +5-58,5-59 +5-99,6-99 +4-13,1-4 +57-86,43-58 +11-82,11-11 +4-87,1-5 +6-7,7-11 +6-22,2-7 +15-49,14-49 +39-97,99-99 +12-49,13-90 +70-80,71-80 +46-95,66-94 +94-98,13-94 +3-11,11-11 +13-23,12-23 +11-98,11-98 +20-99,8-20 +28-87,27-87 +16-21,21-61 +2-91,7-56 +7-7,8-71 +74-74,67-74 +23-88,1-74 +1-99,2-98 +34-85,40-86 +6-85,6-68 +28-31,31-49 +13-40,13-40 +55-56,56-56 +70-72,26-71 +93-94,34-93 +45-75,44-75 +4-10,10-50 +65-74,65-77 +39-87,6-59 +11-85,3-85 +8-46,12-46 +9-9,10-95 +30-41,27-92 +13-97,9-96 +21-62,22-63 +54-69,52-53 +17-99,18-99 +75-92,7-76 +38-39,38-90 +50-69,49-50 +65-87,65-99 +6-98,6-96 +34-62,40-90 +33-47,34-48 +33-95,34-95 +42-99,43-98 +70-85,1-71 +37-63,38-63 +12-17,17-72 +28-31,29-92 +18-69,8-17 +41-96,40-95 +7-86,7-86 +68-78,67-73 +4-6,7-99 +8-86,86-87 +5-6,6-37 +88-94,89-95 +33-74,33-74 +86-87,86-87 +29-55,62-78 +23-38,13-38 +9-44,10-89 +18-67,19-97 +3-83,1-66 +55-81,55-81 +6-72,7-71 +5-55,6-55 +14-99,14-97 +39-83,16-40 +11-73,55-73 +4-68,5-67 +66-73,26-73 +3-92,3-91 +36-59,33-35 +72-73,4-73 +1-83,2-83 +25-88,25-43 +45-71,45-73 +9-96,95-95 +4-5,7-23 +48-50,4-49 +45-96,44-96 +50-87,49-50 +98-99,27-96 +4-40,40-78 +3-94,94-94 +7-34,25-26 +72-79,23-72 +2-84,3-83 +78-96,25-78 +77-94,73-94 +63-66,62-65 +25-80,24-80 +10-33,78-90 +25-55,24-54 +58-62,23-64 +61-62,62-84 +83-83,46-84 +23-30,31-92 +8-95,94-99 +35-65,34-64 +12-19,12-18 +21-25,24-43 +54-79,54-84 +37-56,37-57 +77-77,15-77 +57-88,55-88 +7-93,8-93 +5-89,3-66 +33-63,32-33 +9-52,51-96 +7-97,6-66 +3-58,1-3 +26-85,25-84 +11-63,10-12 +52-54,53-54 +23-68,22-22 +14-96,14-95 +4-41,3-21 +4-6,5-83 +97-98,1-97 +13-90,73-88 +11-15,7-10 +65-80,24-81 +48-82,48-83 +81-87,4-81 +40-47,40-47 +15-87,14-75 +30-50,29-30 +26-65,64-64 +37-37,7-37 +51-51,49-51 +5-71,7-70 +18-54,53-54 +47-48,48-60 +26-98,25-97 +5-6,5-81 +3-98,3-99 +9-22,21-22 +4-97,1-1 +36-36,37-77 +22-35,4-23 +18-95,19-96 +14-94,14-96 +43-46,47-50 +80-91,81-91 +20-67,5-81 +8-87,9-86 +30-69,23-30 +96-99,2-96 +59-75,74-76 +20-66,19-66 +10-85,10-65 +9-82,8-38 +32-66,54-66 +23-64,63-65 +1-89,1-90 +1-95,1-94 +12-82,7-64 +55-66,60-66 +3-93,3-42 +45-87,15-88 +3-50,3-76 +7-86,8-79 +39-39,40-85 +57-86,52-52 +17-84,16-18 +63-99,64-99 +83-94,83-94 +12-85,11-86 +18-89,17-17 +12-25,13-87 +9-12,10-15 +62-92,85-88 +26-97,26-94 +16-94,94-94 +47-83,47-83 +25-86,85-88 +1-99,1-98 +47-87,87-99 +9-99,9-97 +8-73,2-73 +45-47,46-85 +18-95,18-96 +41-41,40-41 +1-4,4-61 +4-95,5-96 +8-79,78-80 +6-81,9-81 +7-90,1-7 +6-22,6-22 +32-82,15-59 +19-93,13-93 +43-48,12-99 +45-45,46-59 +27-69,1-28 +78-78,59-79 +12-57,57-57 +4-39,4-77 +55-91,91-91 +27-87,92-95 +83-87,87-98 +22-84,22-31 +3-91,3-22 +45-86,57-62 +68-82,55-82 +96-98,3-97 +12-32,1-32 +37-71,37-71 +31-59,31-59 +86-88,79-88 +4-92,3-3 +40-91,17-91 +51-52,52-74 +2-97,1-98 +50-83,82-83 +34-34,35-41 +6-47,5-5 +5-65,5-47 +32-77,33-85 +21-68,22-67 +12-45,46-95 +45-48,38-46 +39-84,35-40 +4-60,3-4 +67-83,68-84 +24-92,25-93 diff --git a/2022/day04/test b/2022/day04/test new file mode 100644 index 0000000..9f9e9cf --- /dev/null +++ b/2022/day04/test @@ -0,0 +1,6 @@ +2-4,6-8 +2-3,4-5 +5-7,7-9 +2-8,3-7 +6-6,4-6 +2-6,4-8 diff --git a/2022/day05/day05.bqn b/2022/day05/day05.bqn new file mode 100644 index 0000000..c97ce88 --- /dev/null +++ b/2022/day05/day05.bqn @@ -0,0 +1,22 @@ +str←•Import"../bqn-libs/strings.bqn" + +stacks‿proc←(@+2⥊10)str.Split•FChars⊑•args +stacks↩⍉¯1↓>(@+10)str.Split stacks +stacks↩' '⊸≠⊸/¨<˘((≠stacks)⥊0‿1‿0‿0)/stacks +proc↩>str.ToNats¨¯1↓(@+10)str.Split proc +# •Show stacks + +Move←{ +stacks𝕊⟨n,x,y⟩: + x‿y ¯1⊸+↩ + crates←n↑x⊑stacks + stacks↩(n⊸↓)⌾(x⊸⊑)stacks + stacks↩(crates⊸∾)⌾(y⊸⊑)stacks; +𝕨𝕊⟨x,y⟩: 𝕨𝕊⟨1,x,y⟩ +} + +stacks1 ← (lines filename))]) + (unless (null? lines) + (match (string-split (car lines)) + [(list "$" "ls") + (lp current-dir (cdr lines))] + [(list "$" "cd" "..") + (lp (tree-parent current-dir) (cdr lines))] + [(list "$" "cd" name) + (let ([child (findf (lambda (x) (equal? name (tree-name x))) + (tree-children current-dir))]) + (if child + (lp child (cdr lines)) + (let ([child (tree name current-dir 'dir #f '())]) + (set-tree-children! current-dir (cons child (tree-children current-dir))) + (lp child (cdr lines)))))] + [(list "dir" _) + (lp current-dir (cdr lines))] + [(list size name) + (let ([child (tree name current-dir 'file (string->number size) '())]) + (set-tree-children! current-dir (cons child (tree-children current-dir))) + (lp current-dir (cdr lines)))]))) + (compute-sizes! t) + t) + +(define (compute-sizes! t) + (if (tree-size t) + (tree-size t) + (begin + (set-tree-size! t (apply + (map compute-sizes! (tree-children t)))) + (tree-size t)))) + +(define (display-tree t (level 0) (out (current-output-port))) + (fprintf out "~a- ~a (~a, size=~a)~n" + (make-string (* 2 level) #\ ) + (tree-name t) + (tree-type t) + (tree-size t)) + (for ([child (sort (tree-children t) string<=? #:key tree-name)]) + (display-tree child (+ 1 level) out))) + +(define (file? t) + (eq? 'file (tree-type t))) + +(define (directory? t) + (eq? 'dir (tree-type t))) + +(define (all-directories t) + (define child-dirs (filter directory? (tree-children t))) + (append* child-dirs (map all-directories child-dirs))) + +(define (part1 t) + (apply + (map tree-size + (filter (lambda (d) (< (tree-size d) 100000)) + (all-directories t))))) + +(define (part2 t) + (define unused-space (- 70000000 (tree-size t))) + (define required-space (- 30000000 unused-space)) + (define dir-to-remove + (car (sort (filter (lambda (d) (>= (tree-size d) required-space)) + (all-directories t)) + <= + #:key (lambda (d) (tree-size d))))) + (tree-size dir-to-remove)) + +(module+ main + (define t (read-input "input")) + (displayln (part1 t)) + (displayln (part2 t))) diff --git a/2022/day07/input b/2022/day07/input new file mode 100644 index 0000000..bb6e5f3 --- /dev/null +++ b/2022/day07/input @@ -0,0 +1,988 @@ +$ cd / +$ ls +dir bqc +dir mwmlf +dir ngn +143562 nrwjb +78449 qqvdcclf +dir qrnm +dir smfzmmhc +116085 tvrms +dir vrdrsj +$ cd bqc +$ ls +5693 qqvdcclf +$ cd .. +$ cd mwmlf +$ ls +dir cmfphpc +dir lqqshq +dir mwmlf +dir rlf +dir smfzmmhc +$ cd cmfphpc +$ ls +235620 tprth.gjn +82743 vrdrsj.fbl +$ cd .. +$ cd lqqshq +$ ls +94188 crswqlvd.nsj +dir dttthls +60078 lbsfsspm +dir lqp +74624 nrwjb +247709 tjhcqw.wrq +267693 tvrms +dir zshrcgfn +$ cd dttthls +$ ls +109072 nrwjb +31512 qqvdcclf +$ cd .. +$ cd lqp +$ ls +237917 nrwjb +45489 vrdrsj.ntw +$ cd .. +$ cd zshrcgfn +$ ls +185533 smfzmmhc.zzd +$ cd .. +$ cd .. +$ cd mwmlf +$ ls +dir bbvhpmsj +dir mwmlf +83589 qqvdcclf +$ cd bbvhpmsj +$ ls +232123 hrvlgmjb.wrv +137190 rlf +21785 tghvbj.mfr +25344 vrdrsj.swp +$ cd .. +$ cd mwmlf +$ ls +dir wnn +$ cd wnn +$ ls +dir thd +$ cd thd +$ ls +36125 lgt +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd rlf +$ ls +dir fps +128272 lggpfj.gnr +146745 lrdq.zgm +dir mwmlf +266383 mwmlf.wnp +dir ncrlvggp +dir qpgmrj +$ cd fps +$ ls +dir rqjt +dir wpqvmn +$ cd rqjt +$ ls +175784 pcdtdblc.znj +185424 wmstvdt.lhn +$ cd .. +$ cd wpqvmn +$ ls +141743 ljslzhjl +$ cd .. +$ cd .. +$ cd mwmlf +$ ls +169015 rlf +$ cd .. +$ cd ncrlvggp +$ ls +81450 fqtrpm.mqr +146399 jtbr +dir nnqgqqj +288302 qqvdcclf +$ cd nnqgqqj +$ ls +dir fvbhh +$ cd fvbhh +$ ls +121112 zmn.fjz +$ cd .. +$ cd .. +$ cd .. +$ cd qpgmrj +$ ls +dir hrvlgmjb +dir pbc +$ cd hrvlgmjb +$ ls +7858 czvpvwz +$ cd .. +$ cd pbc +$ ls +150816 tprth.gjn +$ cd .. +$ cd .. +$ cd .. +$ cd smfzmmhc +$ ls +dir jwvw +184385 spbjrlv.spt +dir trpdgl +201578 zzhz +$ cd jwvw +$ ls +47747 nrwjb +$ cd .. +$ cd trpdgl +$ ls +136682 mwmlf +$ cd .. +$ cd .. +$ cd .. +$ cd ngn +$ ls +dir fqbph +282363 lscdth.lbj +dir mwmlf +273281 qbpmcqs +7547 qdffbp +223960 tprth.gjn +$ cd fqbph +$ ls +dir bgtbmzj +dir lzjf +12361 nrwjb +dir pdsdttz +150218 pfvtwr.pbf +dir rlf +158227 sfhsszcq.tzv +183244 smfzmmhc.drh +$ cd bgtbmzj +$ ls +dir gvqhtfg +dir jmvzv +194008 ldpfs.qhr +dir mtztr +11099 nfqmvqcm.ftd +dir szp +153379 zrtsd.jwg +$ cd gvqhtfg +$ ls +dir ntq +dir rlf +62076 rlf.nlc +$ cd ntq +$ ls +dir wdtzhz +$ cd wdtzhz +$ ls +dir tlqcbp +$ cd tlqcbp +$ ls +102930 smfzmmhc +$ cd .. +$ cd .. +$ cd .. +$ cd rlf +$ ls +185079 tjhcqw.wrq +$ cd .. +$ cd .. +$ cd jmvzv +$ ls +dir hfmtzbhf +61556 jzbvmc +dir scjpjp +237487 sgh +dir smfzmmhc +$ cd hfmtzbhf +$ ls +dir ldt +136126 tvrms +$ cd ldt +$ ls +dir smfzmmhc +dir wrhpzrfm +dir zbcfv +$ cd smfzmmhc +$ ls +86537 tjhcqw.wrq +$ cd .. +$ cd wrhpzrfm +$ ls +263122 smfzmmhc.shv +73772 tvrms +$ cd .. +$ cd zbcfv +$ ls +dir vrdrsj +$ cd vrdrsj +$ ls +220800 zwdbh +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd scjpjp +$ ls +38282 rlf +93306 rlf.blz +$ cd .. +$ cd smfzmmhc +$ ls +dir gqms +dir mwmlf +21587 nrwjb +184621 zvq.lvr +$ cd gqms +$ ls +dir frbs +dir rlf +$ cd frbs +$ ls +dir mpdll +82901 zdmnm.wlc +$ cd mpdll +$ ls +dir mgqd +dir mrljj +$ cd mgqd +$ ls +75558 vrdrsj.zwc +$ cd .. +$ cd mrljj +$ ls +dir qmsgj +128171 qqvdcclf +245942 rlf.hgt +dir zzvbt +$ cd qmsgj +$ ls +7382 mwmlf +$ cd .. +$ cd zzvbt +$ ls +285714 zltjmn +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd rlf +$ ls +43731 gttgwfgf.cpd +dir hvtn +112018 jdhb.ssj +195239 rlf.gvd +200476 spsstb +$ cd hvtn +$ ls +dir zzsfgzc +$ cd zzsfgzc +$ ls +116544 vrdrsj +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd mwmlf +$ ls +dir hmpvn +dir shlnfcpz +$ cd hmpvn +$ ls +55892 qqvdcclf +$ cd .. +$ cd shlnfcpz +$ ls +144766 fnrhmbbm.rnp +2622 tjhcqw.wrq +219884 tprth.gjn +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd mtztr +$ ls +dir plngmzl +dir qbwzhr +$ cd plngmzl +$ ls +153434 dhjv.pfn +$ cd .. +$ cd qbwzhr +$ ls +26553 mcb.djg +$ cd .. +$ cd .. +$ cd szp +$ ls +37741 qqvdcclf +dir vrdrsj +$ cd vrdrsj +$ ls +dir hznmsclb +13218 mwmlf.vhs +102602 rggt +228549 rlnf.qrt +$ cd hznmsclb +$ ls +17957 mwmlf.lsv +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd lzjf +$ ls +40821 lfgh.jwg +dir rplfgb +$ cd rplfgb +$ ls +301639 zmrpm.pqn +$ cd .. +$ cd .. +$ cd pdsdttz +$ ls +294779 tprth.gjn +$ cd .. +$ cd rlf +$ ls +37853 qst.zgc +$ cd .. +$ cd .. +$ cd mwmlf +$ ls +dir dqvhgnj +dir fvjtnl +dir jfsgp +230725 tjhcqw.wrq +2872 tvrms +dir zszcsbl +$ cd dqvhgnj +$ ls +214328 bph +138045 tjhcqw.wrq +$ cd .. +$ cd fvjtnl +$ ls +62568 sllvfsf +286839 tjhcqw.wrq +241004 zvqrg.bsg +$ cd .. +$ cd jfsgp +$ ls +116677 tprth.gjn +151347 vtbt +$ cd .. +$ cd zszcsbl +$ ls +97786 hrvlgmjb.wzz +$ cd .. +$ cd .. +$ cd .. +$ cd qrnm +$ ls +70534 nrwjb +292701 qqvdcclf +153174 sjqvgh.nvt +$ cd .. +$ cd smfzmmhc +$ ls +dir gjrqmcjl +63451 hrvlgmjb +dir mwmlf +dir ncgjsjj +246754 nrwjb +dir pvnbj +dir sjqwr +dir vrdrsj +dir vwfnglr +$ cd gjrqmcjl +$ ls +283020 gwcrpgc +36180 ltmzzz +dir tpsr +$ cd tpsr +$ ls +51208 nscwcztf.wlh +121548 smfzmmhc +$ cd .. +$ cd .. +$ cd mwmlf +$ ls +263186 mwmlf.fqd +$ cd .. +$ cd ncgjsjj +$ ls +204801 nrwjb +116293 rdrmctwg.nqc +36548 tjhcqw.wrq +$ cd .. +$ cd pvnbj +$ ls +dir cfmn +dir cnhmcjp +231615 ctllrm +dir czmw +dir drfzgwtz +135330 jsm +dir jtjzwjh +dir nfg +279734 qqvdcclf +220762 tvrms +35964 vrdrsj.jqj +$ cd cfmn +$ ls +300636 frn.ccd +dir qmtc +dir sfvd +$ cd qmtc +$ ls +267669 jwvjslwp.vsp +180586 tvrms +$ cd .. +$ cd sfvd +$ ls +169064 cgzmwg.rgr +dir hsz +270729 qgmmc.sqq +dir qpzbffd +92811 shcpdlm.nwz +dir sstdzdf +dir thrzw +dir wscsr +$ cd hsz +$ ls +301584 qqvdcclf +$ cd .. +$ cd qpzbffd +$ ls +264911 mwmlf.rvg +dir rlf +32109 svhwhw.fdp +155713 tjhcqw.wrq +dir vrdrsj +$ cd rlf +$ ls +32357 tvrms +$ cd .. +$ cd vrdrsj +$ ls +93501 nrwjb +$ cd .. +$ cd .. +$ cd sstdzdf +$ ls +241812 mgrvcbjc.rqb +dir mwmlf +273819 nvrssljz +156873 tvrms +$ cd mwmlf +$ ls +133649 wdfvctwp +$ cd .. +$ cd .. +$ cd thrzw +$ ls +67552 smfzmmhc +$ cd .. +$ cd wscsr +$ ls +132663 dnbvw.zwd +dir ffthd +293463 hrvlgmjb.fwh +dir lhjvfdh +194357 nrwjb +dir smj +56668 tprth.gjn +303099 tvrms +dir vrdrsj +$ cd ffthd +$ ls +84952 nrwjb +192566 rlf +dir slbg +78478 srzz +250044 tprth.gjn +97100 tvrms +$ cd slbg +$ ls +203375 nrwjb +39137 qqvdcclf +$ cd .. +$ cd .. +$ cd lhjvfdh +$ ls +1747 rtphln.pgc +163505 tjhcqw.wrq +76891 tprth.gjn +$ cd .. +$ cd smj +$ ls +6853 hhtdhzgn +158303 pmsflvrn.hnh +$ cd .. +$ cd vrdrsj +$ ls +dir jdlc +263568 vrdrsj +dir vvtl +$ cd jdlc +$ ls +12435 hqggp.lrq +292141 ntbcht.zbw +$ cd .. +$ cd vvtl +$ ls +118913 qqvdcclf +291087 tjhcqw.wrq +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd cnhmcjp +$ ls +263233 tjhcqw.wrq +$ cd .. +$ cd czmw +$ ls +dir gdsgw +dir gfd +3390 mwmlf.zss +$ cd gdsgw +$ ls +298839 dbwsmwnb.svt +170672 tprth.gjn +$ cd .. +$ cd gfd +$ ls +193212 tld +$ cd .. +$ cd .. +$ cd drfzgwtz +$ ls +257122 tprth.gjn +$ cd .. +$ cd jtjzwjh +$ ls +dir jhpp +274740 lnrwrpjj +35217 ptzmfsmr.pwc +67549 qpdj.pfc +$ cd jhpp +$ ls +40279 jgstzhw.cbq +$ cd .. +$ cd .. +$ cd nfg +$ ls +126237 mqfl.flt +$ cd .. +$ cd .. +$ cd sjqwr +$ ls +53423 bngqncqn +dir lblv +178935 nrwjb +188826 tprth.gjn +dir vrdrsj +286449 vrdrsj.svn +$ cd lblv +$ ls +dir bptgd +215281 jjvcgb.nwc +dir rlf +300004 tvrms +$ cd bptgd +$ ls +19667 mwmlf +$ cd .. +$ cd rlf +$ ls +dir mwmlf +263985 rbhz.plr +$ cd mwmlf +$ ls +254206 smfzmmhc +$ cd .. +$ cd .. +$ cd .. +$ cd vrdrsj +$ ls +dir vrdrsj +$ cd vrdrsj +$ ls +250310 hrvlgmjb.bbf +130543 mwmlf.lbq +$ cd .. +$ cd .. +$ cd .. +$ cd vrdrsj +$ ls +dir mwwr +dir rlf +$ cd mwwr +$ ls +dir lhz +$ cd lhz +$ ls +dir ssz +dir vrdrsj +$ cd ssz +$ ls +107472 hcnsgjhj +$ cd .. +$ cd vrdrsj +$ ls +303694 rlf +$ cd .. +$ cd .. +$ cd .. +$ cd rlf +$ ls +299875 nrwjb +$ cd .. +$ cd .. +$ cd vwfnglr +$ ls +dir mtvgvvcr +114118 mzhgbj.zvv +273343 tprth.gjn +28259 wgrp +$ cd mtvgvvcr +$ ls +218927 bvlv.npm +64283 hrf.czg +dir mnmqqqgh +103691 qtb.fnb +dir smfzmmhc +252712 zjlgc.sfg +$ cd mnmqqqgh +$ ls +231583 hrvlgmjb.mtq +$ cd .. +$ cd smfzmmhc +$ ls +dir dzjfd +dir jjslqwn +264128 nrwjb +257359 tvrms +$ cd dzjfd +$ ls +dir smfzmmhc +237116 zzgr +$ cd smfzmmhc +$ ls +230613 qqvdcclf +91615 smfzmmhc +$ cd .. +$ cd .. +$ cd jjslqwn +$ ls +98708 mwmlf.qtq +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd vrdrsj +$ ls +dir bfgbvlcd +131293 fgh.djg +125876 lcwjtdf.sbl +dir pnds +263022 tvrms +$ cd bfgbvlcd +$ ls +276134 vrdrsj +$ cd .. +$ cd pnds +$ ls +dir bffz +dir jwcjpt +dir pvnbz +$ cd bffz +$ ls +194315 dndbj.gww +115061 lspnmhml.fdb +239758 tjhcqw.wrq +124732 wjcbcvfd +$ cd .. +$ cd jwcjpt +$ ls +dir dcmcgc +dir llt +dir rfh +dir scljqqq +127542 tvrms +$ cd dcmcgc +$ ls +dir fhdvgvtz +dir hrvlgmjb +dir rlf +dir smfzmmhc +$ cd fhdvgvtz +$ ls +33684 lcl +dir lrsjg +203352 npvgs.qdw +6985 tvrms +102991 wmnrjw.chn +162852 wrcjmll.rlb +$ cd lrsjg +$ ls +dir jgfpvdc +84338 mwmlf.vdw +147349 nrwjb +dir sblp +dir vrdrsj +$ cd jgfpvdc +$ ls +265563 chlgpdsp.hrv +dir dsc +dir gvrg +dir mwmlf +dir qrqvl +100762 rlf +300872 sjvgwmdg.qhg +164004 tzqmh +300736 zhgmdcl.bfq +$ cd dsc +$ ls +284520 rtt.qps +263890 smfzmmhc +$ cd .. +$ cd gvrg +$ ls +dir hzclphlb +dir vcnlmdp +$ cd hzclphlb +$ ls +295429 mcdjsms.zss +$ cd .. +$ cd vcnlmdp +$ ls +dir wrlhqh +$ cd wrlhqh +$ ls +41526 tmf.ctw +$ cd .. +$ cd .. +$ cd .. +$ cd mwmlf +$ ls +dir cwsrt +dir grqng +$ cd cwsrt +$ ls +dir ztmtjwj +$ cd ztmtjwj +$ ls +17063 svdm +$ cd .. +$ cd .. +$ cd grqng +$ ls +216391 tvrms +$ cd .. +$ cd .. +$ cd qrqvl +$ ls +1835 hrvlgmjb +43155 mwmlf.sng +238089 ngjg.zmc +$ cd .. +$ cd .. +$ cd sblp +$ ls +178768 bgfnqf +$ cd .. +$ cd vrdrsj +$ ls +255854 qrrc.bbc +178991 smfzmmhc +$ cd .. +$ cd .. +$ cd .. +$ cd hrvlgmjb +$ ls +dir fjnp +70585 hrvlgmjb +dir qsrgzrdf +43606 rmjzzgrs +dir vds +dir vrdrsj +35098 wthtcg.wgd +$ cd fjnp +$ ls +19740 qqvdcclf +dir smfzmmhc +$ cd smfzmmhc +$ ls +dir nnbc +$ cd nnbc +$ ls +100360 mwmlf +$ cd .. +$ cd .. +$ cd .. +$ cd qsrgzrdf +$ ls +279143 fgthp.qmg +$ cd .. +$ cd vds +$ ls +247595 gnclhrw.mwt +303125 pcdnbq.zbs +38092 tprth.gjn +dir vrdrsj +$ cd vrdrsj +$ ls +dir tnjg +$ cd tnjg +$ ls +37395 brcbr +$ cd .. +$ cd .. +$ cd .. +$ cd vrdrsj +$ ls +94639 tjhcqw.wrq +$ cd .. +$ cd .. +$ cd rlf +$ ls +dir btqjc +108141 dnplntn.mwr +31100 lmfsgd +263849 lpbdq.vdp +109813 smfzmmhc.wsr +dir vrdrsj +$ cd btqjc +$ ls +31933 nwszgpm.qqr +106249 rjqvhccg +16766 vgzqz +$ cd .. +$ cd vrdrsj +$ ls +dir bfv +dir jtnqr +19593 mwmlf +220657 rggqjp.pnt +$ cd bfv +$ ls +48210 tdgd.ppw +232603 tjhcqw.wrq +$ cd .. +$ cd jtnqr +$ ls +dir bct +202702 grstm.ltj +dir mwmlf +258253 tvrms +$ cd bct +$ ls +131860 fwfzsc.pls +42452 thp +$ cd .. +$ cd mwmlf +$ ls +284648 vdjh.dct +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd smfzmmhc +$ ls +dir fvtlvtlq +108335 jdbdb +dir vrdrsj +$ cd fvtlvtlq +$ ls +237419 ctwllbmc +36570 qqvdcclf +dir rlf +92173 smfzmmhc +$ cd rlf +$ ls +89469 dtg.bvl +88361 mqrr +$ cd .. +$ cd .. +$ cd vrdrsj +$ ls +47472 fftpd +53118 qqvdcclf +$ cd .. +$ cd .. +$ cd .. +$ cd llt +$ ls +98255 hnvqtbcn +$ cd .. +$ cd rfh +$ ls +29828 hgwh.tnl +dir rchll +dir smfzmmhc +$ cd rchll +$ ls +240042 rdj.wrv +$ cd .. +$ cd smfzmmhc +$ ls +45192 clnbddrh.lbq +105827 ndzjnttr +140925 nmnr.lct +dir rlf +238998 tprth.gjn +dir vrdrsj +$ cd rlf +$ ls +115973 mnnr.smj +75630 zld.hzv +$ cd .. +$ cd vrdrsj +$ ls +302512 phmvhpvb.fwh +dir tjrpwhc +$ cd tjrpwhc +$ ls +13802 hrvlgmjb +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd scljqqq +$ ls +228515 hrvlgmjb.nhn +246019 mwmlf +9535 mwmlf.nvm +$ cd .. +$ cd .. +$ cd pvnbz +$ ls +dir hrvlgmjb +279877 mwmlf +dir zdqprndl +278221 zwwtflb +$ cd hrvlgmjb +$ ls +dir vggpr +$ cd vggpr +$ ls +270197 cpzj +$ cd .. +$ cd .. +$ cd zdqprndl +$ ls +197398 tprth.gjn diff --git a/2022/day07/test b/2022/day07/test new file mode 100644 index 0000000..09a921e --- /dev/null +++ b/2022/day07/test @@ -0,0 +1,23 @@ +$ cd / +$ ls +dir a +14848514 b.txt +8504156 c.dat +dir d +$ cd a +$ ls +dir e +29116 f +2557 g +62596 h.lst +$ cd e +$ ls +584 i +$ cd .. +$ cd .. +$ cd d +$ ls +4060174 j +8033020 d.log +5626152 d.ext +7214296 k diff --git a/2022/day08/day08.bqn b/2022/day08/day08.bqn new file mode 100644 index 0000000..6a6ba3a --- /dev/null +++ b/2022/day08/day08.bqn @@ -0,0 +1,12 @@ +inp←>'0'-˜•FLines⊑•args +Vis←{>∊¨⌈`¨<˘𝕩} +•Show +´⥊∨´⟨⊢,⌽˘,⍉,(⌽˘⍉)⁼⟩{𝕎𝕩}¨Vis¨⟨⊢,⌽˘,⍉,⌽˘⍉⟩{𝕎𝕩}¨4⥊𝕩}¨up‿left‿right‿down +} +•Show ⌈´⥊inp⊸Score¨↕≢inp diff --git a/2022/day08/input b/2022/day08/input new file mode 100644 index 0000000..fb28721 --- /dev/null +++ b/2022/day08/input @@ -0,0 +1,99 @@ +020111211022103023211142403044034010412103202221251542233334311102303044440313120021223120332211221 +121001110111201102213124201444431204213221413222211111444444412110041144131210002230130121313101010 +112010221202200121420032021412024323255214355122345552225213252324112400440302313420323102103100221 +211022232121222123201224234031435144114512425232345144523531533222344004011342234110131312300332202 +202103101023303021233104321411251553151424242531344221312225231225524421412434024103021300123300121 +202122200002211022342141123051132352344252152315525324551424132421225143201002114204223302333232221 +011310312223223421431113235421121321152124551441143435255214322514544552225412313011414423301132102 +121331322013001133311000223433443341113554412556562564315233144532455221433431002003332002203013201 +003201332004241133340023541532333131413153266664363423353232622124454254554345422200200433100333102 +230030131344203011040552414515334144165664524445366334422626244444323115333252423443232113432003211 +020300112334333142144323414353551436334563654426436625356343222253643212532215422020214344013310331 +220002231221003314452445344223355655546325233543653632544634656464243551334233433413423044300230210 +111022100242320043435324555421362243363346366346456252353246655455262455415331454531201000441410231 +101232013434204241242451442362524554225656254252456532663634445256345634451144555513214431300213021 +021113211441142541244515256653533353262654644343347336234522332254544443346322422154143020040021110 +002032342223245141521455555365463263562446777664546776637635443223664266645633333231151132112140113 +002033421301452414544444345232465536465366346553375665564756366435442422632435555111445311104203133 +332303032232445231354236322622423634433537753546335477544636344436526324435436522445155410213401230 +214021124335354212514535634245552337436663757533364556376776733565333462254562365531354214423412431 +231123230423124441525624265443647673566756453545563655373357453547537663433453433212213223101140424 +100211320333154123522263362425466444634667564437776546465446345667366445453365366551352122420231230 +024400401554531424535342424657437377754456437376767656436366374765557746355562226364213315421212320 +214442223135544515264335435467756354735433346664764464468465443746334373746425422542525455354340110 +141333001441254326655252563743544735555378755475567457777687677357576573543344653346551442221242312 +022033123224325536562464253467675635635678458757477754757874576653435356676234462564555551451230022 +444402313413432333426636637636453646648557685556587678886878777785454364533433543362622525453201222 +031024134513414333456224636475357556855564445765756678575486648885765563445546566235352311454320030 +341331341415512452344636337436467675565575756658588888477584775646657736366434365523664142235144413 +333344214132152543325563654447567486457556845676545687457688885466457333476777342344625323533242333 +203124152315365546566375565336778768544768846599686578655665448478657834657533335544343231212251101 +200144235323636235437557635373578555545475587655886585897998654658858755534374677344254563233421200 +433243323452635426237436445738684446475489658878699879887988684656474746764334543334452565153341241 +340411231113223465344733555465744685569658998876796578688888887678657675875533766464362432543531231 +132155112416452662274535754677457567869597559977756878779755568868854644586734466764422245333151550 +321153454153653654743477667888756477986578656976558879999589975695487876766664653466625262642234421 +414524133155254243564664555445778475666688565697596679558768656758547564888437343772346336642515514 +321251321324554554436434474754674597576658986766997798688766897876884764444653674674326233445555243 +031553412663524646375654566887688857698655696699699989968699659665774657875735457664452362352111522 +121541141642244257534355645887786995858959886778688769889987779898696567777567344373632655621545545 +334343242432423553675774445756455759676757789677879778999988695976997447856786357655446656351514552 +125145532643224566754564678556569669557567799868776897666898866898879866784847777744353546366314141 +045114213352452647446647465888875868689699789677897977779999699895556776458746737674746244442322442 +132343555663565436365447746478789879798676878686777999789966769777759954677478745673552645533545344 +045253354653642556466557766588567888887978866878777776986676768968695857655674556463732652626443441 +324411423536354677366485874488885578788769789998797978797888777868996895476778847746764226464355343 +355421453642352476436787475855785669696986976979989787787998669696679989555875747556435562425323311 +225422326356526465747344444546866698678986799879779799999876866969999686664477767757535635652555421 +215234242322226376376776764668889755898766677787987779877967696689565966757675463574434246652622343 +214252444222333767567367778585695867987669688798987987789888698888858597545545475573737453632634414 +435144324646623745547785547465689576878976877888878988989877866686976879488454664357347554642541254 +424224446333664566656688545685586987987699788897978888788999878967887869445474863534753362524653532 +234521532264544735666677658457578679997886798878788998987976677895559685784445835563745433436535545 +541253562333326733576345574569866788667878789897999998887996866685657897848485475437744246636412312 +531515163362265375476387485646556857878999799999999989879989886696789765664474863474462523344554532 +134323536435565375644658845476675857999867789999988888799986676978987577885467643356656525623333421 +432434326635433776557758756889896978587689688777989999797796888999765958586488873373565325435254453 +352344243543664654777655867556767767686778796989888798998697976755779565488844544677343523234525134 +023522455223435563774634466685769765877876776996699877886876668865856964846675357575675235445525211 +452211123455454466574537744568597875596879779869788776669767986968956557448486336534544244456115451 +154255352645344566574476875484685575595898898697799799688669879869766768688476473673634645556554324 +153224532366353377543578485765465665577767776999977978876879865565957587758448456773452265664315213 +212223354662352476456344644856876756566976677698968768897897866997679566845464663374352444344522513 +333134124655526377555445475778655559695856687767878889687866969787796886748547665457422543622531314 +114114243655626456537464558857564557866777897897898988696885586978887448448543375665233363532515252 +022123225426235336675765546686448888566865666569876966556979869667956845877753374733454555422452344 +105112231544246463366336777688875488697685796985999888976956985978664485756743456372244565641412542 +243421525526425322655767646868764584599579555769857975877669799998745668566534743565233224245452434 +310412235133463356343754335447454467578555798898788997569756589585876868467475435524433556255213522 +122253434533466554567356664688567676567976599967878669868967997845484546736534545734455626245154423 +313334534424352263526466637778587787868565658999559897596678677574858776343543534432632333531241224 +001031252124265545567437743765668445564487997555965858678954577555545545743366457636433553523254344 +044305452425444342246365565576568644874888888677955886697487686854588744354437555336664241413533111 +110113123534526242542645447354547688467557884774478677887477777586654656653436654455626314334324023 +403311355254242426345425533745657486754657454674877454647844866774463676664344325662334351444144012 +114043453225323265365363357353773386544675474785655464585675566555543364665665355442555535443420344 +234021355512324262426566274773756436677647664566764646854655875476556464746532226425352124354233001 +104234323224222234534254555373773666356744475886877868685764755374634533664662562645321154355101301 +413312132345313224565423553463467666456365585778746647466885776356666677636556254365513311121044324 +010140223145323354554344523347476477547564757555585887484666633663433654743326266555221322431333120 +023311233225342421354662654347733666374666336373663635367447753577353743232632663243333251551031321 +143043334422453221246324462653756444767736544367544755375437335646557334655533644454121143303220002 +101212344011254432246625336226267546745356655577456676377355677475746633565634244145133154032123242 +233244204414154431434433222525444454344635736634774576466473546373725623264634363324244114303014300 +010103422332213512154554324533443662535535356636747655647737636354525554536436123454141421414030443 +203123300244432323224135253642444433566335637575443374634433336553444225543564152215332533001133230 +213003230312403552352142145445635666323653353353657647435752235322633623453542112525124011312421020 +120004434213011143254452233425222536464236356544634635324242345464353322232141135221424123200431123 +331000214011314431233211121223425334456246345226324246526344536556636556453143153253323114441131132 +303123142412333143322451153243464566344362342525524265432552566442626262524431454151443133021301210 +220100102032004440315125323552226234566265233246334556355333643662354455122325544112124232340231031 +112122312031202424345533512342151435534325334444254264542526645645533111234131131223411304322200110 +213031212133401330114433121533455425225634422363334633454623522242353342455454511303033230433202120 +223232022333401311421344332255311133421254642562465526534445512134533413153142410113101444330132130 +020133013100324344342244215442123125243314222446342424421353134352515124333133430431401122202211032 +102300310001014311443112031115242425132234255215315523551534154524134344433432201022200432133000302 +001233311232134334100401400151532231322435145412132433235254313414243334103312232304403111313321210 +110213022233310011220103432114343112114222424442543155552411511144115122143322304023012132213011210 +000220123220323122321103444304134551331233141552114422121151224211122042434324042030120133230110110 +020120232301110331441234422110132302233413123211331413433254521355004032312110222131010330301222211 diff --git a/2022/day08/test b/2022/day08/test new file mode 100644 index 0000000..16d6fbd --- /dev/null +++ b/2022/day08/test @@ -0,0 +1,5 @@ +30373 +25512 +65332 +33549 +35390 diff --git a/2022/day09/day09.bqn b/2022/day09/day09.bqn new file mode 100644 index 0000000..f71a973 --- /dev/null +++ b/2022/day09/day09.bqn @@ -0,0 +1,17 @@ +⟨ToNats,Split⟩←•Import"../bqn-libs/strings.bqn" +Dirs←{𝕩≡'R' ? 1‿0; 𝕩≡'U' ? 0‿1; 𝕩≡'L' ? ¯1‿0; 𝕩≡'D' ? 0‿¯1} +d‿n←<˘⍉>' '⊸Split¨•FLines⊑•args +inp←(⊑¨ToNats¨n)/Dirs¨∾´d + +Dist←⌈´∘|- +Follow←{𝕩+(2≤𝕩 Dist 𝕨)×(××⌈∘|)2÷˜𝕨-𝕩} +Move←{Follow`𝕩⊸+⌾⊑𝕨} + +F←{ + pos←(<𝕨⥊<⟨0,0⟩)Move`𝕩 + inds←⍷>¯1⊸⊏¨pos + # Disp←{⊑⟜".#"¨(⍉⌽˘(1⊸+⌾(𝕩⊸⊑))𝕨⥊0)} + # •Show (1+(⌈´-⌊´)inds) Disp inds + ≠inds +} +•Show 2‿10 F¨ {𝕊⟨i,n⟩: ⟨2, ⊑ToNums n⟩; ⟨1, 0⟩}¨" "⊸Split¨•FLines⊑•args +pos←(1∾lengths∾1)/1∾1∾1+`vals +•Show (20+40×↕6)(+´⊣×⊏)pos +•Out 1↓∾˝(@+10)⊸∾˘⊑⟜" █"¨1≥|∘‿40⥊(1↓¯1↓pos)-40|↕240 diff --git a/2022/day10/day10.py b/2022/day10/day10.py new file mode 100644 index 0000000..49ac966 --- /dev/null +++ b/2022/day10/day10.py @@ -0,0 +1,6 @@ +import sys, itertools as it +f = lambda s: (1, 0) if s.startswith("noop") else (2, int(s.split()[1])) +lengths, vals = map(list, zip(*[f(x) for x in open(sys.argv[1]).readlines()])) +pos = list(it.chain.from_iterable(it.repeat(x, n) for n, x in zip([1]+lengths+[1], [1]+list(it.accumulate(vals, initial=1))))) +print(sum(i * pos[i] for i in range(20, 6*40, 40))) +print("\n".join("".join(" █"[-1 <= pos[40*j+i+1] - i <= 1] for i in range(40)) for j in range(6))) diff --git a/2022/day10/input b/2022/day10/input new file mode 100644 index 0000000..e56e4bd --- /dev/null +++ b/2022/day10/input @@ -0,0 +1,140 @@ +noop +noop +noop +addx 4 +addx 3 +addx 3 +addx 3 +noop +addx 2 +addx 1 +addx -7 +addx 10 +addx 1 +addx 5 +addx -3 +addx -7 +addx 13 +addx 5 +addx 2 +addx 1 +addx -30 +addx -8 +noop +addx 3 +addx 2 +addx 7 +noop +addx -2 +addx 5 +addx 2 +addx -7 +addx 8 +addx 2 +addx 5 +addx 2 +addx -12 +noop +addx 17 +addx 3 +addx -2 +addx 2 +noop +addx 3 +addx -38 +noop +addx 3 +addx 4 +noop +addx 5 +noop +noop +noop +addx 1 +addx 2 +addx 5 +addx 2 +addx -3 +addx 4 +addx 2 +noop +noop +addx 7 +addx -30 +addx 31 +addx 4 +noop +addx -24 +addx -12 +addx 1 +addx 5 +addx 5 +noop +noop +noop +addx -12 +addx 13 +addx 4 +noop +addx 23 +addx -19 +addx 1 +addx 5 +addx 12 +addx -28 +addx 19 +noop +addx 3 +addx 2 +addx 5 +addx -40 +addx 4 +addx 32 +addx -31 +noop +addx 13 +addx -8 +addx 5 +addx 2 +addx 5 +noop +noop +noop +addx 2 +addx -7 +addx 8 +addx -7 +addx 14 +addx 3 +addx -2 +addx 2 +addx 5 +addx -40 +noop +noop +addx 3 +addx 4 +addx 1 +noop +addx 2 +addx 5 +addx 2 +addx 21 +noop +addx -16 +addx 3 +noop +addx 2 +noop +addx 1 +noop +noop +addx 4 +addx 5 +noop +noop +noop +noop +noop +noop +noop diff --git a/2022/day10/test1 b/2022/day10/test1 new file mode 100644 index 0000000..f428b7b --- /dev/null +++ b/2022/day10/test1 @@ -0,0 +1,3 @@ +noop +addx 3 +addx -5 diff --git a/2022/day10/test2 b/2022/day10/test2 new file mode 100644 index 0000000..37ee8ee --- /dev/null +++ b/2022/day10/test2 @@ -0,0 +1,146 @@ +addx 15 +addx -11 +addx 6 +addx -3 +addx 5 +addx -1 +addx -8 +addx 13 +addx 4 +noop +addx -1 +addx 5 +addx -1 +addx 5 +addx -1 +addx 5 +addx -1 +addx 5 +addx -1 +addx -35 +addx 1 +addx 24 +addx -19 +addx 1 +addx 16 +addx -11 +noop +noop +addx 21 +addx -15 +noop +noop +addx -3 +addx 9 +addx 1 +addx -3 +addx 8 +addx 1 +addx 5 +noop +noop +noop +noop +noop +addx -36 +noop +addx 1 +addx 7 +noop +noop +noop +addx 2 +addx 6 +noop +noop +noop +noop +noop +addx 1 +noop +noop +addx 7 +addx 1 +noop +addx -13 +addx 13 +addx 7 +noop +addx 1 +addx -33 +noop +noop +noop +addx 2 +noop +noop +noop +addx 8 +noop +addx -1 +addx 2 +addx 1 +noop +addx 17 +addx -9 +addx 1 +addx 1 +addx -3 +addx 11 +noop +noop +addx 1 +noop +addx 1 +noop +noop +addx -13 +addx -19 +addx 1 +addx 3 +addx 26 +addx -30 +addx 12 +addx -1 +addx 3 +addx 1 +noop +noop +noop +addx -9 +addx 18 +addx 1 +addx 2 +noop +noop +addx 9 +noop +noop +noop +addx -1 +addx 2 +addx -37 +addx 1 +addx 3 +noop +addx 15 +addx -21 +addx 22 +addx -6 +addx 1 +noop +addx 2 +addx 1 +noop +addx -10 +noop +noop +addx 20 +addx 1 +addx 2 +addx 2 +addx -6 +addx -11 +noop +noop +noop diff --git a/2022/day11/day11.bqn b/2022/day11/day11.bqn new file mode 100644 index 0000000..a01e748 --- /dev/null +++ b/2022/day11/day11.bqn @@ -0,0 +1,28 @@ +⟨lf,Split,ToNats⟩←•Import"../bqn-libs/strings.bqn" +ms←>lf⊸Split¨(2⥊lf)Split ¯1⊸↓•FChars⊑•args +items←ToNats¨1⊑¨<˘ms +tests←{𝕊⟨d,t,f⟩: {(0=d|𝕩)⊑f‿t}}˘⊑¨ToNats¨3↓˘ms +op←{𝕩≡"* old" ? ט; 𝕩≡"+ old" ? +˜; '*'≡⊑𝕩 ? (⊑ToNats𝕩)⊸×; '+'≡⊑𝕩 ? (⊑ToNats𝕩)⊸+}¨23↓¨2⊏˘ms +mod←×´⊑¨ToNats¨3⊑¨<˘ms + +MonkeyBusiness←{part𝕊items: + inspected←(≠items)⥊0 + Inspect←{part𝕊i: + op←i⊑op + test←i⊑tests + Throw←{ + it←(part-1)⊑⟨⌊÷⟜3 Op 𝕩,mod|Op 𝕩⟩ + items↩∾⟜it⌾((Test it)⊸⊑)items + } + Throw¨ i⊑items + inspected↩(≠i⊑items)⊸+⌾(i⊸⊑)inspected + items↩⟨⟩˙⌾(i⊸⊑)items + } + Round←{part⊸Inspect¨↕≠𝕩} + Round⍟((part-1)⊑20‿10000) items + # •Show inspected + ×´2↑∨inspected +} + +•Show 1 MonkeyBusiness items +•Show 2 MonkeyBusiness items diff --git a/2022/day11/day11.rkt b/2022/day11/day11.rkt new file mode 100644 index 0000000..965d0c3 --- /dev/null +++ b/2022/day11/day11.rkt @@ -0,0 +1,75 @@ +#lang racket + +(require data/queue + threading) + +(struct monkey + (items op test divisor (inspections #:mutable)) + #:transparent) + +(define (read-input filename worry-reduction) + (for/vector ([mstr (string-split (file->string filename) "\n\n")]) + (define infos (string-split mstr "\n")) + (define items (make-queue)) + (for ([item (map string->number (string-split (substring (cadr infos) 18) ", "))]) + (enqueue! items item)) + (define op + (compose1 + (lambda (n) (quotient n worry-reduction)) + (match (string-split (substring (caddr infos) 23)) + [(list "+" "old") (lambda (x) (+ x x))] + [(list "*" "old") (lambda (x) (* x x))] + [(list "+" n) (lambda (x) (+ x (string->number n)))] + [(list "*" n) (lambda (x) (* x (string->number n)))]))) + (match-define (list d a b) (map (compose1 string->number last string-split) (cdddr infos))) + (define (test n) + (if (zero? (remainder n d)) a b)) + (monkey items op test d 0))) + +(define (throw! item to) + (enqueue! (monkey-items to) item)) + +(define (process-item! ms m (mod #f)) + (set-monkey-inspections! m (+ 1 (monkey-inspections m))) + (define item ((monkey-op m) (dequeue! (monkey-items m)))) + (when mod + (set! item (remainder item mod))) + (throw! item (vector-ref ms ((monkey-test m) item)))) + +(define (run-round! ms (mod #f)) + (let loop ([i 0]) + (cond + [(= i (vector-length ms)) ms] + [(queue-empty? (monkey-items (vector-ref ms i))) (loop (+ 1 i))] + [#t (begin (process-item! ms (vector-ref ms i) mod) + (loop i))]))) + +(define (run-rounds! ms n (mod #f) (display? #f)) + (for ([i (in-range n)]) + (run-round! ms mod) + (when display? (display-items ms)))) + +(define (display-items ms) + (for ([m ms] + [i (in-naturals)]) + (printf "Monkey ~a: ~a~n" + i + (string-join (map number->string (queue->list (monkey-items m))) ", ")))) + +(define (inspection-levels ms) + (vector->list (vector-map monkey-inspections ms))) + +(define (monkey-business inspections) + (~> inspections + (sort >=) + (take 2) + (apply * _))) + +(module+ main + (let* ([ms (read-input "input" 3)]) + (run-rounds! ms 20) + (displayln (monkey-business (inspection-levels ms)))) + (let* ([ms (read-input "input" 1)] + [mod (apply * (vector->list (vector-map monkey-divisor ms)))]) + (run-rounds! ms 10000 mod) + (displayln (monkey-business (inspection-levels ms))))) diff --git a/2022/day11/input b/2022/day11/input new file mode 100644 index 0000000..f5dc4b6 --- /dev/null +++ b/2022/day11/input @@ -0,0 +1,55 @@ +Monkey 0: + Starting items: 92, 73, 86, 83, 65, 51, 55, 93 + Operation: new = old * 5 + Test: divisible by 11 + If true: throw to monkey 3 + If false: throw to monkey 4 + +Monkey 1: + Starting items: 99, 67, 62, 61, 59, 98 + Operation: new = old * old + Test: divisible by 2 + If true: throw to monkey 6 + If false: throw to monkey 7 + +Monkey 2: + Starting items: 81, 89, 56, 61, 99 + Operation: new = old * 7 + Test: divisible by 5 + If true: throw to monkey 1 + If false: throw to monkey 5 + +Monkey 3: + Starting items: 97, 74, 68 + Operation: new = old + 1 + Test: divisible by 17 + If true: throw to monkey 2 + If false: throw to monkey 5 + +Monkey 4: + Starting items: 78, 73 + Operation: new = old + 3 + Test: divisible by 19 + If true: throw to monkey 2 + If false: throw to monkey 3 + +Monkey 5: + Starting items: 50 + Operation: new = old + 5 + Test: divisible by 7 + If true: throw to monkey 1 + If false: throw to monkey 6 + +Monkey 6: + Starting items: 95, 88, 53, 75 + Operation: new = old + 8 + Test: divisible by 3 + If true: throw to monkey 0 + If false: throw to monkey 7 + +Monkey 7: + Starting items: 50, 77, 98, 85, 94, 56, 89 + Operation: new = old + 2 + Test: divisible by 13 + If true: throw to monkey 4 + If false: throw to monkey 0 diff --git a/2022/day11/test b/2022/day11/test new file mode 100644 index 0000000..30e09e5 --- /dev/null +++ b/2022/day11/test @@ -0,0 +1,27 @@ +Monkey 0: + Starting items: 79, 98 + Operation: new = old * 19 + Test: divisible by 23 + If true: throw to monkey 2 + If false: throw to monkey 3 + +Monkey 1: + Starting items: 54, 65, 75, 74 + Operation: new = old + 6 + Test: divisible by 19 + If true: throw to monkey 2 + If false: throw to monkey 0 + +Monkey 2: + Starting items: 79, 60, 97 + Operation: new = old * old + Test: divisible by 13 + If true: throw to monkey 1 + If false: throw to monkey 3 + +Monkey 3: + Starting items: 74 + Operation: new = old + 3 + Test: divisible by 17 + If true: throw to monkey 0 + If false: throw to monkey 1 diff --git a/2022/day12/day12.bqn b/2022/day12/day12.bqn new file mode 100644 index 0000000..56f1c0b --- /dev/null +++ b/2022/day12/day12.bqn @@ -0,0 +1,33 @@ +map←>•FLines⊑•args +IndexOf←{<˘⍉>⌊(≠⊏𝕨)(÷˜⋈|)/⥊𝕨=𝕩} +s‿e←⊑¨map⊸IndexOf¨"SE" +h←-⟜'a'¨'z'⌾(e⊸⊑)'a'⌾(s⊸⊑)map + +_fixedpoint←{𝔽∘⊢⍟≢⟜𝔽_𝕣∘⊢⍟≢⟜𝔽𝕩} + +Dijkstra←{h𝕊s: + vis←(≢h)⥊0 + dist←0⌾(s⊸⊑)(≢h)⥊∞ + Neighbors←{𝕊n: + ns←n⊸+¨∾(-⋈⊢)¨(⌽⋈⊢)0‿1 + ns ((∧´¨(≢vis)⊸>¨)/⊢)↩ # inside the grid + ns ((∧´¨0⊸≤¨)/⊢)↩ # inside the grid + ns↩({¬𝕩⊑vis}¨ns)/ns # unvisited + (1≥({𝕩⊑h}¨ns)-n⊑h)/ns # reachable height + } + Visit←{ + ∧´⥊𝕩 ? 𝕩; + nexts←((≢dist)⥊(¬⥊𝕩)) IndexOf 1 + nexts↩(⍋{𝕩⊑dist}¨nexts)⊏nexts + n←⊑nexts + {dist (1+n⊑dist)⊸⌊⌾(𝕩⊸⊑)↩}¨Neighbors n # update distances + ¬⌾(n⊸⊑)𝕩 # mark node as visited + } + Visit _fixedpoint vis + dist +} + +•Show e⊑h Dijkstra s + +ss←map IndexOf'a' +•Show ⌊´ss⊑(-h)Dijkstra e diff --git a/2022/day12/input b/2022/day12/input new file mode 100644 index 0000000..face2dd --- /dev/null +++ b/2022/day12/input @@ -0,0 +1,41 @@ +abccccccaaccaaccccaaaaacccccaaaaccccccccccccccccccccccccccccccccaaaaaaaaaaaaaaaaaaaccccccccccccccccaaaccccccccccccaacccccccccccccccccccccccccccccccccccccccccaaaa +abaaaaccaaaaaccccaaaaaccccccaaaaccccccccccccccccccccaaacccccccccccaaaaaaaaaaaaaaaaaaccccccccccccccccaaaaccccccaaacaaccccccccccccccccccccccccccccccccccccccccaaaaa +abaaacccaaaaaaaacaaaaaacccccaaaaccccccccccccccccccccaaaaacccccccccaaaaaaaaaaaaaaaaacccccccccaaccccaaaaaacccccccaaaaaccccaaccccccccccccccacccccccccccccccccccaaaaa +abaaacccccaaaaaccccaaaaccccccaaacccccccccccccccccccaaaaaccccccccccaaaaaacacaaaaaacccccccccccaaccccaaaaacccccccccaaaaaaccaaaaaaccccccccccaaaccccacccccccccccaaaaaa +abaacccccaaaaaccccaacccccccccccccccaaaaacccccccccccaaaaacccccccccaaaaaaaaccaaaaaaacccccccaaaaaaaaccaaaaacccccccaaaaaaaccaaaaacccccccccccaaacccaaaccccccccccccccaa +abaaacccaaacaacccccccccccccccccccccaaaaaccccccccccccaaaaacccccccaaaaaaaaaccaaccaaacccccccaaaaaaaaccaacccccccccaaaaaaccaaaaaaccccccccccccaaaacaaaaccccccccccccccaa +abaaacccccccaaccccccccccccccccccccaaaaaaccccccccccccaaccccccaacccaaaccaaaaccccccaacccccccccaaaacccccccccccccccaacaaaccaaaaaaaccccccccccccajjjjjjjcccccccccccccccc +abcaacccccccccccccccccccccccccccccaaaaaaccccccccccccccccccccaaaaccccccaaaaccccccccccccccaacaaaaaccccccccccccccccccaaccccaaaaaacccccccccccjjjjjjjjjcccccaaaccccccc +abccccccccccccccccccccccccccccccccaaaaaaccaaccccccccccccccaaaaaacccccccaaacccccccccccaacaaaaaaaaccccccccccccccccccccccccaaccaaccccccccaiijjjjojjjjcccccaaacaccccc +abcccccccccccccccccccccccaaacccccccaaacacaaacccccccccccccccaaaaccccaaccccccccccccccccaaaaaaacccaccccccccccccccccccccccccaacccccccccccaiiijjooooojjkccaaaaaaaacccc +abccccccccccccccccccccccaaaaccccccccccaaaaaccccccccccccccccaaaaacccaaaaaccccccccccccccaaaaaacccccccccccccccccccccccccccccccccccccciiiiiiiioooooookkkcaaaaaaaacccc +abccccccccccccccccccccccaaaaccccccccccaaaaaaaacccccccccccccaacaaccaaaaacccccccaaacccaaaaaaaaccccccccccccccccccccccccccccccccccchiiiiiiiiooooouoookkkccaaaaaaccccc +abcccccccccaaccccccccccccaaaccccccccccccaaaaacccccccccccccccccccccaaaaaccccccaaaacccaaaaacaacccccccccccccaacaacccccccccccccccchhhiiiinnnooouuuuoookkkccaaaaaccccc +abcccccccccaaacccccccccccccccccccccccccaaaaacccccccccccccccccccccccaaaaacccccaaaaccccccaaccccccccccccccccaaaaacccccccccccccccchhhnnnnnnnnouuuuuuppkkkkaaaaaaccccc +abccccccaaaaaaaacccaaccccccccccccccccccaacaaccaacaaccccccccccccccccaacccccccccaaaccccccaacccccccccccccccaaaaacccccccccccccccchhhnnnnnnnnntuuxuuupppkkkkkacccccccc +abccccccaaaaaaaacacaaaacccccccccccccccccccaaccaaaaacccccccccccccccccccccccccccccccccccccccccccccccccccccaaaaaacccccccaacccccchhhnnnnttttttuxxxuuppppkkkkkcccccccc +abcccccccaaaaaaccaaaaaaccccccccccaaccccccccccaaaaaccccccccccccccccccccccccaaacccccccccccccccccccccccccccccaaaaccaaccaaacccaaahhhnnntttttttuxxxxuupppppllllccccccc +abcccccccaaaaaacccaaaacccccccccaaaaaaccccccccaaaaaacccccccccccccccccccccccaaacccccccccccccccccccccccccccccacccccaaaaaaacaaaaahhhppntttxxxxxxxxuuuuvpppplllccccccc +abcccccccaaaaaacccaaaacccccccccaaaaaacccccaaaaaaaaaccccccccccccccccccccaaaaaaaacccccccccccccccccccccaaaccccccaacaaaaaaccaaaaahhhpppttxxxxxxxxyuuvvvvvppplllcccccc +abcccccccaaccaacccaacaccaaaaccccaaaaacccccaaaaaaaaaccccccccccccccccccccaaaaaaaacccccccccccccccccccccaaacaaaaaaaccaaaaaaaaaaaaahhppptttxxxxxxyyyyyyvvvppplllcccccc +SbccccccccccccccccccccccaaaacccaaaaacccccccaaaaaaaaacaaaccccccccaacccccccaaaaaccccccccaaaaacccccccccaaaaaaaaaaaaaaaaaaaaaaaaacgggpppttxxxxEzzyyyyyvvvqqqlllcccccc +abccccccccccccccccccccccaaaacccaaaaacccccccaaaaaaaaccaaaccccccccaaacaaccaaaaaaccccccccaaaaacccccccaaaaaaaaaaaaaaaaaaaaaaaaaaacgggpppsssxxxyyyyyyvvvvvqqlllccccccc +abcccaaaccccccccccccccccaaaccccccccccccccccaaaaaaaaaaaaaccccccccaaaaaaccaaaaaacccccccaaaaaacccaaaccaaaaaccaaaaaaaaaaaacccccccccgggppssswwyyyyyyvvvvqqqqlllccccccc +abcaaaaaccccccccccccccccccccccccccccccccccaaaaaaaaaaaaacccccccaaaaaaacccaccaaacccccccaaaaaacccaaacccaaaaaaaaaaaccccaaacccaaaaacgggppsswwwyyyyyyvvqqqqqlllcccccccc +abcaaaaaaccccccccccccccccccccccccccccccccccaaccaaaaaaaaaaaccccaaaaaaacccccccccccccccccaaaaacccaaacaaaacaaaaaaaaccccaaacccaaaaacggpppsswwwywwyyyvvqqqmmmlccccccccc +abcaaaaaacccccccaacaaccccccccccccccccccccccccccaaaaaaaaaaaccccccaaaaacccccccccccccccccaaaccaaaaaaaaaaacccccccaacccccccccaaaaaacggpppsswwwwwwwwyvvqqqmmmcccccccccc +abcaaaaaccccccccaaaaaccccccccccccccccccccccccccccaaaaaaaacccccccaacaaacccccccccccccccccccccaaaaaaaaaccccccccccccccccccccaaaaaagggoossswwwwrrwwwvvqqmmmccccccccccc +abcaaaaacccccccaaaaaccccccccccccccccccccccccccccaaaaaaacccccccccaaccccccccccccccccccccccccccaaaaaaacccccccccccaaaccccccccaaaaagggooosssssrrrrwwwvqqmmmcccaacccccc +abcccccccccccccaaaaaaccccccccccccccccccccaacccccccccaaaccccccccccccccccccccccccccccccccccccccaaaaaaccccccccccccaaaaccccccaaaccgggooosssssrrrrrwwrrqmmmcccaacccccc +abcccccccccccccccaaaacccccccccccccccccccaaaacccccccacaaacccccccccccccccccccccccccccccccccccccaaaaaaacccccccccaaaaaacccccccccccgffoooooosoonrrrrrrrrmmmccaaaaacccc +abcccccccccccccccaccccccccccccccccccccccaaaacccccccaaaaacccccccccccccccccccccccccccccccccccccaaacaaacccccccccaaaaacccccccccccccfffoooooooonnnrrrrrmmmddcaaaaacccc +abccccccccccccccccccccccccccccccccccccccaaaaccccccccaaaaacccccccccccccccccccccccccaaaccccccccaacccccccccccccccaaaaaccccccccccccffffoooooonnnnnnrnnmmmdddaaaaacccc +abcccccccccccccccccccccccccccccccccccccccccccccccccaaaaaacccccccccccccccccaaaaaccaaaacccccccccccccccccccccccccaacccccccccccccccfffffffffeeeennnnnnmmdddaaaacccccc +abcccccccaaaccccccccaccccccccccccccccccccccccccccccaaaaccccccccccccaaaccccaaaaaccaaaaccccccccccccccccccccccccccccccccccccccccccccfffffffeeeeennnnnmddddaaaaaccccc +abcccaaccaaacccccaaaacccccaacccccccccccccccccccccccccaaacccccccccccaaacccaaaaaacccaaaccccccccccccccccccccccccccccccccccccccccccccccffffeeeeeeeedddddddcccaacccccc +abcccaaaaaaacccccaaaaaaccaaacccccccccccccccccccccccccccacccccccccccaaaaccaaaaaaccccccccccccccccccccccccccaacccccccccaaaccccccccccccccaaaaaaeeeeedddddcccccccccccc +abcccaaaaaacccccccaaaacccaaacaaaccccaaaacccccccccaaacaaaccccccaacccaaaacaaaaaaacccccccccccccccccccccccccaaaccccccccaaaacccccccccccccccccccaaaaeeddddccccccccccccc +abccccaaaaaaaacccaaaaaaaaaaaaaaaccccaaaacccccccccaaaaaaacccccaaacccaaaaaaaaaacccccccccccccccccccccccaaacaaaccccccccaaaaccccccccccccccccccccaaaccccccccccccccaaaca +abcccaaaaaaaaacccaacaaaaaaaaaaacccccaaaaccccccccccaaaaaacaaacaaacaaaaaaaaaacccccccccccccccaaacccccccaaaaaaaaaaccccccaaaccccccccccccccccccccaacccccccccccccccaaaaa +abcccaaaaaaaacccccccccccaaaaaacccccccaacccccccccccaaaaaaaaaaaaaaaaaaaaaaaaccccccccccccccccaaaacccccccaaaaaaaaacccccccccccccccccccccccccccccaaacccccccccccccccaaaa +abccaaaaaaacccccccccccccaaaaaaacccccccccccccccccaaaaaaaaaaaaaaaaaaaaaaaaaaacccccccccccccccaaaacccccccaaaaaaaacccccccccccccccccccccccccccccccccccccccccccccccaaaaa diff --git a/2022/day12/test b/2022/day12/test new file mode 100644 index 0000000..86e9cac --- /dev/null +++ b/2022/day12/test @@ -0,0 +1,5 @@ +Sabqponm +abcryxxl +accszExk +acctuvwj +abdefghi diff --git a/2022/day13/day13.bqn b/2022/day13/day13.bqn new file mode 100644 index 0000000..d14d7ab --- /dev/null +++ b/2022/day13/day13.bqn @@ -0,0 +1,27 @@ +⟨Split,lf⟩←•Import"../bqn-libs/strings.bqn" +Parse←•BQN∘{'⟩'¨⌾((']'=𝕩)⊸/)'⟨'¨⌾(('['=𝕩)⊸/)𝕩} +in←Parse¨>lf⊸Split¨(2⥊lf)Split ¯1↓•FChars⊑•args + +Cmp←{ + 𝕨(∧○(0==))𝕩 ? 𝕨(>-<)𝕩; + 𝕨(∧○(0=≠))𝕩 ? 0; + 0=≠𝕨 ? ¯1; + 0=≠𝕩 ? 1; + 0=𝕨(Cmp○⊑)𝕩 ? 𝕨(Cmp○(1⊸↓))𝕩; + 0=≠≢𝕨 ? (≍𝕨)𝕊𝕩; + 0=≠≢𝕩 ? 𝕨𝕊≍𝕩; + 𝕨(Cmp○⊑)𝕩 +} + +•Show +´(⊢×(1+↕∘≠))¯1=Cmp´˘in + +_BubbleSort←{Cmp _𝕣 in: + Bubble←{ + 1≥≠𝕩 ? 𝕩; + 1=((⊑𝕩)⊑in) Cmp (1⊑𝕩)⊑in ? (1⊑𝕩)∾𝕊(⊑𝕩)∾2↓𝕩; + (⊑𝕩)∾𝕊1↓𝕩 + } + Bubble⍟(≠𝕩)↕≠𝕩 +} + +•Show ×´1+(Cmp _BubbleSort ⟨⟨2⟩⟩‿⟨⟨6⟩⟩∾⥊in)⊐0‿1 diff --git a/2022/day13/day13.rkt b/2022/day13/day13.rkt new file mode 100644 index 0000000..3e25d57 --- /dev/null +++ b/2022/day13/day13.rkt @@ -0,0 +1,65 @@ +#lang racket + +(require threading + rebellion/base/comparator + rebellion/collection/list + rebellion/streaming/transducer + rebellion/streaming/reducer) + +(define read-pairs + (lambda~> file->string + (string-split _ "\n\n") + (map (lambda (s) (string-split s "\n")) _) + (map (lambda (l) (map parse-packet l)) _))) + +(define read-all + (lambda~> file->string + string-split + (map parse-packet _))) + +(define parse-packet + (lambda~> (string-replace _ "," " ") + (with-input-from-string _ read))) + +(define (packet-compare a b) + (match (list a b) + [(list x y) #:when (and (integer? x) (integer? y)) + (cond + [(< x y) lesser] + [(> x y) greater] + [else equivalent])] + [(list '() '()) equivalent] + [(list '() _) lesser] + [(list _ '()) greater] + [(list (list* x xs) (list* y ys)) + (let ([compxy (packet-compare x y)]) + (if (eq? compxy equivalent) + (packet-compare xs ys) + compxy))] + [(list x y) #:when (and (integer? x) (list? y)) + (packet-compare (list x) y)] + [(list x y) #:when (and (list? x) (integer? y)) + (packet-compare x (list y))])) + +(define packet<=> + (make-comparator packet-compare #:name 'packet<=>)) + +(define (part1 in) + (for/sum ([pair in] + [i (in-naturals)] + #:when (eq? lesser (apply packet-compare pair))) + (+ 1 i))) + +(define (part2 in) + (for/product ([el (transduce (list* '((2)) '((6)) in) + (sorting packet<=>) + #:into into-list)] + [i (in-naturals)] + #:when (or (equal? el '((2))) + (equal? el '((6))))) + (+ 1 i))) + +(module+ main + (displayln (part1 (read-pairs "input"))) + (displayln (part2 (read-all "input")))) + diff --git a/2022/day13/input b/2022/day13/input new file mode 100644 index 0000000..61bb5bb --- /dev/null +++ b/2022/day13/input @@ -0,0 +1,449 @@ +[[9,1],[[[8],2,5],10,5],[[],[[0,10,2,10,2],[6]],5],[[10,[]],[],[[5,1,3,10],5],[[],[],[10,0]]],[[4,3],[[],[],[2,8,0,6]],4,[[8,1,7,1],1,[2,9,0],4,4]]] +[[5],[10,[[4,9,6,5,0],1,5,[],[]],[9],7,[]],[0,[[4,3,7,8],[0,1,2,5]]],[[[],[8,7,8,4,1],4,9,1],[[0,8,1],6,[0,7,1,1]],6,7,9]] + +[[1,[[],3,[2,7,7,5]],[10,[7,7,7,1]],[[9],4,4,7],[[7],1]],[],[5,10,7],[[0,[],[]]],[]] +[[2,2],[[0,[9,5,0,6],10,[],[8,1,6,6,0]],0,[[],[],[7,3,1,8,1]],10,1]] + +[[[2,7,7,[9,0,0]]],[[[1,6,0,1]],[[9,0,3,9,9],10],1,10,9],[[[3],2,[0,3,4],[],[7,4]],10,[8],9,6],[[5,2,6,4,[10,8]],[[0,5,9,10],[9,5],[10,3,4,0],0]],[]] +[[[],10,3,1,[[]]],[9,10],[],[[],3,10,5],[[[],4,3,0],[[],8,9,5,3],[],6]] + +[[[8,[],8,3,8],7,[]],[8,0],[7,3]] +[[],[[0,10],[[5],[10,2,2]]],[[6,[6,5,0,7],[],[]],10,5],[[1,[10,4,4]],5,7,5,7]] + +[9,9,7,10] +[9,9,7,10,0] + +[[0,[3,0]],[0,7,4,10]] +[[[[],[],3,[2]]],[]] + +[[],[10,1,[7,8,[10,7,0,8]],[],[0,[1,5,7,6],8,[5]]],[10]] +[[],[],[[[],9,[],9,[2]],[[10,8,1,6],[7,8],[8,2,5,6,9],[]],[],[9,6,2],[[0,4,7],[],3,8,[10,1,0,6,4]]]] + +[[6,1],[[],[3,[8,7,5,4,1]],[[9,10,6],[2,1],[4,10,5]],[[2],[8,1,4],3]],[5],[1,[1,7]]] +[[2],[[4],5,9,10],[3,7,9],[]] + +[[2,8,[4,[10],3],[],[2]],[0,[[3,0],[5,10,10]],[[10,1],[10,6,5,9,3]]],[],[],[[]]] +[[[10],[[],6,1,7]],[],[[[7],[3,10,8,7]]]] + +[[[1,[],[0]],0,[[6,1,10],[4,4,6],3,[0,5,2],5],6]] +[[],[],[[[],4,[],0,[8,7]],7,5],[[8,[],1,1]],[3,7,[],[[6,2,0],9,[0,3],10,4]]] + +[[[[9,5,5,1,2],1],9],[[[],3,4],[6,8,[4,3,3,10],[]],4],[[],1],[4]] +[[[[8,10,9,1,9],[],8],[[4,9,10],3],4],[0,9,6,[[9]]],[[[],[3],[],4],9]] + +[[7,[[9,8,7,6,10]]],[[[7],[4,9,6,1],[7,2,1],3],8],[[9,[4,4,10,3,1]],[6,0,8,2]],[[[9,7,7,9,6],10,[1,4,0,4,9],[7,3,4],[9,9,8,3]]],[10,[[2],[4,2],[3],6,3]]] +[[[[0,6,6,9],[1],[8,3,5,3,7],[1,4,2,0]],[],[[10],[1],[7,5,5,10],[5,2,8],[0]],[6],[1,5,[],[5,2,7,6]]],[[[4,7,9,9,3],[7,4,5]],3,5],[[9,4,1,[5,1]]],[[4]],[10,[]]] + +[[],[[5,[4,7,9,5]],[6,4]]] +[[[[7,1,7,3,2]],2,0,[[6,10]],[3]],[[],[8,[],[3]],[6,[],0,8,[10,5]]],[],[6,9,[[8,3,2,1],6]],[[3],[5,[]],[[0,4,7,0],0],[[1,2,7],[0,3],[10,6,0,5,5],[],4]]] + +[[[],[0,[10,1,0]],[0,[5,5,3,5,4],8,[],[2,9,10,0]],[3,4,3],[[10,3],[7,6,5,3],[2]]],[10]] +[[4,[0,6,1,[],[7,8,7,5]],[9]]] + +[[3,8,10,7],[[6,7],[[2,7,9,4,9]],0,[],4],[[],[[2],0,4]]] +[[0,[[5,6,9,8],2],2,10,[2]]] + +[[3,9,[[],[3]],[[]],5],[],[[[3,5,1]],9,3]] +[[6,1,[]],[[9,9],8,6,[6]],[[],3,4,[2]],[],[3,[],[3,[5,9,8,5,9],5,[]]]] + +[[3,[10,[8,3],8,2],[10],[5,4,[5,2,0,6,5],[],[8,10]]],[5,6,6,[]],[]] +[[],[],[[10,1,7,6,3],[[7,1,10,10],7,5,[]],[[],10,[5,2,7],6,[0,0,1]],4,9],[[[6,10,8,4],8,[3,0,5],10,3]],[]] + +[[0,[],9,[3]]] +[[],[1,[],3],[[8,5],[1,[5,2,4],[4,9,4]],7,[9,[10,7,6,4,6],6,[9,2,1,3],3],5],[[8,[1,7]],6,8,[[4,3],8]]] + +[[],[7],[6,10,[]],[],[[[1,4,7,2],6]]] +[[[],4],[[6,[4,5,4,5,8]],[[3,4],9,7],6,6],[7]] + +[[[]],[[5,[]],2,[8,6],[3,[3,0,1,9,5]],[[9,9]]],[[8,[]],[5],[1],[[],[0,1,1],9,[8,2,7,6]]],[[[],9],[4,[7,5],[7,5]]]] +[[[[8,7,4,0],5,[]],[10,10],5,9]] + +[[[[10,1,5,7,10],10,[],[1,7]],8,10],[[10,[9,6,10,9]],8,4,[[2,1,0],0],[6,7,8,[6,8],10]],[[],[[],[1,2,1],8],7,[[3,0,2,7,9],9],[5]],[5,[1,1,[]]]] +[[[[8],0,8,[]]],[[7],[[6],6,[9,0,6],[1,2,1,0],2]],[[],2,5,4,[1,[3,8],[5],7]],[[[0,1]],[5,[9,9,7,2,8],4],9],[0,3]] + +[[[[0,9],8,[]],2],[],[[[1,2,5,1,4]]],[[[1,7,5,2],4]],[[],9,3]] +[[[],8,[]],[9,8],[3,6,[]],[10,0,4,5]] + +[[],[9],[4],[[1,7,2]]] +[[2,1],[[]]] + +[[],[],[[8,5,[1,7,2,5],[1,5,9,2],[2,6]],0,[],9,0],[5,[],[9,[0,2,6,0],[8,3,9,0],[2,4,7],[7,2,10]],6],[3,[[7,1,0,5,0],9,[9],[0,10,8]],[]]] +[[[0],[[4,9,5,2],[10,8],8],10,[[3,1],3,[8,10,3,2]],[4]],[]] + +[[[[],4,10,5]],[],[[[5,10],6],3,10],[7,0,8,9,[[2,9,6],9]],[10,7,[2,6,10,3]]] +[[[3,3,[2,7,0,10],[9,10,2,7,10],[5,2,7,7,0]],1,5,[[0,5,3,2,7],5,[3,3],[2],10]],[10,[[9,3,0],[1,9,7,4,3],[8,4],[]],8],[[7,8,8,[],2],10,[[0,9],9,5,[7,7,5,4]],1,6]] + +[[10,[4]]] +[[1,10],[[[5,5],[],2],2,[],1]] + +[[],[[]],[],[5],[0,[],[6,[9,10,2,8,7],[4,7,1]],7]] +[[8],[6,[[4],[7,0],0,10],5],[[[4,10,9],9]],[10,3,[[6,1,5,8,2]]],[[10,2,0],[[5,2,10,6],[],[8,9,6,6],[],[9]]]] + +[[9],[[10,[8,4,4,8,10],5],[6],[[5],8,6],4,[[0,6,4]]],[10,2,0],[[[2,5],[1,9,1,1,7],0,[3,4,0,7,7]],5,[],[],0]] +[[[[],[3,8,7,8]],10,9,3],[[],0,[[7,10,10],1,[0,2],2,[1,7,0]],[[2,0,7,4,8],10,[9,4,2,0],[]],8],[[7,[2,2,8]],[[10,4,7,3]],[[8],3,[3]]],[],[[10,[9,6],6,[8,0,10,5]],[[9,10],10]]] + +[[[[2]],6,[[2,4],[]],4],[[1,10],[[1,1,7,8],4,[1,4,4],[7,6,8,6],[9,10,7,2]],[2,6,[0,9,2]],[]],[[[1,9,9,3,5]],[],[[2,4],3],[[0,10],8,[9,6],[0,3,4]]],[[[8],[9,1,5,9],3,1,7],[2,[2,0,8],[3,4,9,5,5],[],7]]] +[[[0,[0],3,[8,8,7]],2,9,8,5],[],[[5,4],[3,[4,4,6,4,2],1],0],[[10,5,[2,9]],2]] + +[[5,1,5,8],[[5,9,4,0]]] +[[9,8,[5,2,6,[2,4,8,10,1]],10],[6],[[[7,8,2,2,9],9,7],[10,0,0,[],6],[[],3,8,[],[8]],[[3,6],4,3,[]]],[8,10,8,7],[[5],9]] + +[] +[[9,5],[5,5,[[3,7,1,6,10]]],[[2,9,[],10]],[3,[4,[3],[0,8]],2],[[1,[7,6,5]],10,[1,[8,0,2,6,7],[4,3],[9,7,10,3],7]]] + +[[[[4]]],[9,7],[]] +[[4,1,3,8,[5,[2,5,9,7,9]]],[[1,[0,7,4],[],[6,3,8,1,3]],[8,[8,3,5],9,[7,0,6,10]],7,[[8],10,[5,4,10]]]] + +[[[1,[]],9,8,0],[1,[[5,9,10]]],[[[4,6,2,2],[],2],10,4,[6,[],10]]] +[[[5,[9,4,3,0,3]],6],[[3,10,10,[0,5,6,6,9],7],[4,[],10,[1,9,6,7],[9,6,4,2,0]],[3],10,9],[[],[2,[6,7,8,5]]]] + +[[[],[[7,4,2],[10],[2,10,6],5],9],[],[[[1,10,2,9]],[],8,[[6,0,8],[10,0,2,9],0,9]],[[6,0,1,[0],8],[1,[10,3],[2,3,5,10],[5,4,4,6,8],[]],[[9,1,10,10],10,[8,3,9],2,5]],[]] +[[8,9,7,[[10,3,2],[8,0,7],9,3],5]] + +[[],[],[1,9,0,9,8]] +[[10]] + +[[[7,[9,9],8,10],[[],[9,9,7,8]]],[[4,[5,10,4,7]]],[]] +[[],[[3,4,[3,7,5],2,[0,8,5,8]],[6,[6,6]],[3,2,[],[1,7]]]] + +[[5,2],[2],[[[7,8],[],[3,5,8],[10]],5],[8,[9,9,3],7,3,[4]],[[],[5,[9],[5,10,10,4],[4,6,3],8],[[9,9,10,3],4,10,[0]]]] +[[0,3,5,[[7,5,3,6,10],3,2]],[],[[10,[5,8,4],8,8,1],[9,5],2,[],[[8,9,0,7],[3,6]]],[3,2,4],[4,5,[[4,0,2],[1],[3],[6,0]]]] + +[[6,9,0,3],[],[],[4,[[0,3,8,6,9]]],[2,7,[],[[4,6,9,4],[4,10,8,7,0],[3,5],[6,10,5]],[3,1,[]]]] +[[],[],[[[7,6,8],[6,8,1],[9],[3],8]]] + +[[8,[1,4,[5,1,4,8],3,6],[10,[8,2,5,1],10],[0,6,[9,10,6,3,4],[8,6]],7],[1],[]] +[[6,6],[0],[],[1,3,[[7,9],1,6],10,[[8,3,5],[10,7,5,8,10],[10],10,[]]],[5,[[]],6,0]] + +[[[10,8],[[2,9,4]]],[[4,2,[7,4,6,7,7],[0,6,7,7],10]],[[2,[7,9],[2,2,0]]]] +[[1]] + +[[[7,2],8,[[2],4,5,[0],8]],[]] +[[3,6],[[[2],[6,10,1,5,3],[3,3],9],1,9,0,5],[[8,[4,8,6,9],[9,7],[7,8],[3,7]],10,6],[],[[[5,0],[7,1],[5,4]],5,6,6,[5,3,[2],[10,8,5]]]] + +[[[[8,2,4,4]],[],[[8,10,9,3],6,8,[3,9,4,5]],[[],8],[7,[]]],[9,8]] +[[[],[[9,0]],6],[9,[[0,5],8,[6,7,3,6]],[],[[9,4,5,8,10],10,4,[10],5],8]] + +[[],[[[],4,[3,9,8],[4,10,7,1]],[],7,3,[2,[8,3],8,7,[6,4,0,6,2]]],[[9,[0,10,0,5,0]],[],[2]]] +[[10,[10,10,0,[0,8,7]],5,5,[[7,4,1,5],[4,2,8,1]]]] + +[[],[[[2,2,5],9,1],[2,[4,4],[],5],5,10,[]],[0],[[6,[5],[3],3]],[7,5,5,3]] +[[[9,[0,9,3],[7,1,9,8],7],[6,0,[1]],10],[3,1],[],[[],[],[],3,[[6,6,9,3,7],[6,4]]]] + +[[[[6,2],10,8]],[[[0,7,8,4],[],7,4],0,3,3,[2,1]],[[6,[5,2],[8,1,7,3]],2,[[9,4,8],[7,0],[],10],8]] +[[],[1,[],[[4,8],1,7,[0,1,3,4,8],4]]] + +[[[[5,7,9],0,[9,7,5]],6,7,[4,9],5],[[0,[7,7,4,0,0],1,5,9]]] +[[4,[7,[10,6],7,10,[]]],[],[[[8],7,[0],7],9,[[1,1,4],[2,10,7]]],[[[9,10,7,2],1,4,6,9],[8]]] + +[[3,5]] +[[],[[7],4,9],[[7,[2,10,9],6,8],3,9,[]]] + +[[[8,5],[[3,7,7,0],10]],[[],[[],[2,9,0,4]],[[8,3,10,7,1],[]],3]] +[[],[10,6,0,[],6],[[],[5,6,[1,2]],[9],10,[[9,7,6,4],6,6]],[]] + +[[10,[9,10,[],[3,5,4,9,5]],7,9,[4,[0,10]]],[[0,[6,2,4,4,2],9,[7,9,4]],[10,[],[8],8]]] +[[4,0,6,6],[1,6,[[2,5,7]],[]],[]] + +[[[[0,5,0,9,4]],6,[0],5,4],[[10,[3,10,4,8]],[0,7,1,10,[3,10,8,5]],7,10,4]] +[[9,[9],4,[5]],[],[9,[0],9,[[1,3,0,7,10],[3,0,6,2]]]] + +[[[2,[7,6,7,6,0]],[1,[7,2,1,4,9],[7,2],3,[5,6,2]]]] +[[],[[6,[0,8,1,6,0],[4]],0,2,[[0,1],10,[1],2]]] + +[[[[2,5,4]],[],4,0],[6,[9,[8,4,9,3],9,4,[2]],[4,[10]],[[5,2,2,1],9,7],[5,[8],[10,8,6,2]]],[8,4,[],[10,0,2],0],[10,5]] +[[],[3],[],[8,4,[[1,10],2,2,[7,4,9]],7]] + +[[[],10,10,5,[[7],6]],[[3,[4,6,9,3,2],[10]]],[9,7,[5,10,[2,3,7,3,0],[]],9,[2,2,[6,9,7,0]]],[[0],5,3,[[8,3,10,1]],[[9],[8,10,8,1,6],[9,5,1,10,2]]]] +[[9,[],9]] + +[[3],[[[0]]],[],[]] +[[],[],[3,[]],[[2],[8,[6,5],10],[[0,5,4],1],5]] + +[[[5,1,8],1,0],[[]],[[8,[2,5,9,3,5],[8,9,5,9,9]],8,[[4,6,5,9]],0]] +[[8,[5,6]],[5,10,1,[10,3,8,10,[0,2]],[1,0]]] + +[[[3,1,7,[3,2,2,9,1],4],0,3,[[],[],10,[],9]],[[[6,5,3,6,8],1],[[]],3],[6,4],[[9,7,[6,3],6],9],[[[4,2,2],8,[8,1,7],[6,6]],[10],[[4,10,9,10,1],0,[],[9]],4]] +[[4,7,6],[[[9,9,5],[2,4],10,2],[6,[0,9,0]],8,4,2]] + +[[[7],[[9,5],0,1],7],[[3,3,4,[],[3,2,10]]],[],[4,6,4,[],[[4,6,1],[4,7],[0,9,10,10],8,0]],[[],3,1,3,[6,[3],0,[5,1,5,3,0],5]]] +[[1,[[],[9,4,6,1]],[[],[10]]],[8,[1],[[7],6,[9,10,6,0,5],[1]],3]] + +[[0,[],10,[],[]],[[[4,4,1,8]],7,8],[5]] +[[1,[]]] + +[[[[10,8,8],9,8],[0,6],9,[[4,6,1,7],[4,3],[10],4],3]] +[[[2,[10,7,10,10,8]],5,3],[9,4],[[[2,1],2],[3,0,[7],0,[5]]]] + +[[[],[6,[]],[[4,2],[0,4]],5],[]] +[[[7,[0,2,0],6,5,[]],[[10],0,[5,4]],[9,5,[9,2,4],3]]] + +[[[8],7,4,2],[],[10],[4,[[6,7,4],2,3,[6,1,0]],4,[1]]] +[[[[7,4,5,5,1],[9,1],[0]],[6,[8,2,3,0]],[2]],[7,[5],[8],[]],[9,[6,[8,4,2,2],1],4],[8,[[],[0]]],[[],3,8,9]] + +[[8,0,[[0,7,9]],0,[7]]] +[[[[]],[]]] + +[[4]] +[[6,[1,0,10],1,[[10,3,1,2],[4,6,5,7],5],[1,1,[3,1,8],6]],[2,1],[5,10,[1,[3,0,8],6]],[[0,9,[9]],4,[[]],7,[1,[7,4]]],[]] + +[[[[8,6],[6,2],[8],1]],[10,10,[[2,5],6,[4],[1,7,2,9],10],1,7],[],[[[10,7,5],5],[2,8,9],[[1,4,9]]],[[[9,10,6,2,4],1,8,[9,7,2,0],[]],10,5,5]] +[[]] + +[[1,[[1],[],[8]],[[6,1,6,7,5],1,4],10],[[7],[],3,[10,7],0]] +[[[]],[[[9]],[0],10,6],[[7]]] + +[[1,[[1,6,10,1,4],3,2,[8,7,9],[6,5,0,4]],[[],2,[10,1]],[[],[9,2,7],[],0,5]],[[6,[9],[],6,[9,10,2]]],[4,3,[[2,1,3,7],4,3,[3],4],9,[3,9,[2,8],1]]] +[[0,[[6,2]],[2,2],[[]]],[],[],[[[3,4],5,7,10]],[5,3]] + +[[[[8,2,0,1],[10],6],2,7,10],[[[]],10,1],[8,7,1,0],[[[2,9,2,8],[3,3,0,6],[2,0,2],[],0],1,[9,[4],5,[1,6,1]]],[[7],[[8],[7,4],[2],4],3,[[10,6,5,3],9]]] +[[9,8,[[],[9,0]],1],[9,8,8,10,7],[10,[8,0,[10,6,3],[6,3,0,4,8]],10,0]] + +[[[],1,[],[[9,9],0,[0,2]],4],[5,0],[4,[],7,7,0],[],[[4]]] +[[[[]],4,8,6,8],[9,[[10]],[[2,8,6],[9,0,2,8,4]],10,[1,[3,10,8]]],[[[]]]] + +[[5,6,5,4,6]] +[[[9,8,5,3,7],2,[[0,4],[10,2,5,10,1]],0],[[]],[6,[7,[1,5,10],[3],[6,1],[3,10]]]] + +[[[[3,3]],[],[6,5,[0]],[[8,7,9],[2],[1,5,2,5],[6,7,4,4],9],[9,[5,7,4,7,1],7,[10],4]]] +[[[7,[5]],6,[[7,9]]],[[[8,2],[1,7,4,2],[8,8,8],[1,9,3,5,8]],7,3,9,[2,2,6]]] + +[[],[[],2,[[1],[3,9,0],2,8],[[8,9],[1,2,3,1],[]]],[[9,[],[],[9],[5,1,3,6]],3,[1,[],[],[4,7,9,10],[10,5,5,8]],[0,[]]],[[0,5,4,7,[10,4,10,6,4]],[[4,8],0,7,10]]] +[[[[],7,[],8],2,7],[10,2,[[10,8,0,7,3],8],0],[8,8],[8]] + +[[5,10]] +[[10,[[9,1,1],0],[[3,1],1],[2,4,[4,0]],4],[9,[[0],4,3],10],[[[6,3,7],4,[],9]],[6,[[]],[]]] + +[[[[10,9,7,10,4],6,0],5,[[5,3,5,1,9],0,[3,7,10,7,5]]],[],[],[1,10],[]] +[[[[7,8],5,[8]],[[0,0],[9,7,6,6],[6,9],2],0],[7,[4,9,[0,2,2],[10]],[],9,10],[[],[[]],[2,8,6,8,1],[4,9,[0],10,7],[4]]] + +[[[[]],[[0,0,2,5]],[],5],[],[10]] +[[[[7,7,6,6,3],3,4,6,[3,8,10]],4,[[9,1,9,4],9,[2,6,4,1,0],9,1]]] + +[[[],[8,6,8]],[9,[9,[4,8,3,4,7],9,10,10],[[3,10,5],[10,1]],[]],[],[[1,[1,3,0,6,10],[2,0,10,4,3]]]] +[[10,[3],10,[[2,3,6,7,6],2,4],5],[6,[]]] + +[[[]]] +[[9],[1,[[6,9,7,6,5],[6],[2,3,3,3],10]]] + +[[[2,2],2],[4],[9,1,4,[[3,9],10],0]] +[[],[[4]],[[5,[7,3,2],0,[5,5,1,8,1]],3],[4,[3,[6,3],[],[9,0],[0,4,2,10,6]]],[[9,0,[3,3,9,6]],[[2,3,3,1],[10],5,4],[2,[],1,5,3]]] + +[[[[7,1,3],[0],3,[5,6,6,8],6],4,2,7,[[],[3,3,4],[9,2],[7]]],[],[7,9,[9,[6,8,7]],[[7,2],[1],8,6,[7,9]]],[],[[1],7,4]] +[[],[[9,3,8],4,0,10],[[[3,3,5],[5,3,3,6],[5,3,7]],9,8,[9,4,[],2,[0,3,8,0]],[[6,9],[1,8],4,[2,3,9,2]]],[],[[10,[7,6,6,1],[],6],[1],[10,[4,8,3,1,2]],[[7,9],8],0]] + +[[9,[[2,10]],[[4,8],[],4,8,[0]]],[],[[[1,3,9],[7],[9,4,9]],7,5,8],[[[1,2,3],7],5]] +[[1],[[],[[8,8]]],[2,3,10,[[1,3,5,8],[0,5,5,7],4],4],[2,5,6]] + +[[3,0],[10,8,[10],[[4,7,3,2],[2]],7],[[[8],3],3],[2,[7,[10],6],[],8,[2]],[[8,8,6,9,[8,2]],3,[[6,2,7,4,1],[1,7],[4,0,1],[5,4]],6]] +[[5,3],[[],2,[2,[5,9],[3,4,5,0,10],[0,2,6,0,5],[5,1,5]],5]] + +[[3,1,[7,8,[7,3],6],[],[[10,0,6],3,[6,0,8,4,5]]],[],[[[],6,[6,5,4,8,2],[]],[],[6,[3],9,2]],[0,10,7,[[],5,[10,2,0,7,2],[]]],[4,[1,8,[2],[1]],8,1]] +[[],[[],[[3,7]],6,[[9,10]]],[[6,[0,2,9],8,[7,7,2,4],[]],10,6,0,[1,[],3,6,[6,1,2]]],[[[],[10,8,6,2,6]],[4,[],[5,5,5,9],7]]] + +[[[],6],[[[3,4,5,8],[9,3,3],8,[],[8,5,10,0]]],[[4,9,[7,2,0]],[1,[9]],[]]] +[[7,[[3,0,0,1],8,9,7,[3,9,8,5,1]]],[[[4],4,4,7,7],0]] + +[[8,[]],[4,[[1,5,6,10,10]]]] +[[2,4,[[],9],[[9],8,[9]],[6,[6,2,9,10,6],4,3]]] + +[[9,0,8],[[5,9],6,[[2,2,4,4],1,[0,3,1,10,5],[4,8,7,0,6],5],[],9],[5,[10],0,4],[[],1,8,9,[[],[0,8,2],[0,10,7],0,[4,3]]]] +[[8,[3,1],[],[[2],[10],8,8,[8,3,1,8,5]],[10,[3,3,6]]],[],[[8,[6],[3,3],4],9],[4,2,8,4],[[5,[9,4],[6,7,6,7,4]],0,[0,[],[9],10,[5,4,10,9]],[[],9,5]]] + +[[[[4,8],10,[8],[2,1]],[[8,3,0,6],[5,6,6,0],6,[1,1,2,6],[0]],10,8,6],[5,[7,[],[4,1]],4,[4]],[9,[3,[5,4,1],[0,1,9,10]],2,[[2,0,2],[]]]] +[[],[10,[10,[10,7,8,2,1],7,[9,6],6],8],[[6,0,1],[8,[0,4,0],[],[2],[9,9]]],[],[3]] + +[[],[[[]],8,7,[[10,3,2],2]],[1,[0,6,[1,4,1,4]],5,[6,[8,0],[4,4,2,5,5]],1],[2,[[8,7],3],0,3,[6,[],[]]],[6,[3,2,0,10,[7,1,8,3,10]],[],9,[4,9,[5,3],5]]] +[[2,5,9],[],[]] + +[[],[6]] +[[],[[4,8]],[1,6],[10,1,[[3,10,0]]],[]] + +[[5,3,[5],[9,[8,7,2]],[[10],[9,3,0,4,6]]],[[],9,9,9],[[[],8,1],7,[[],[1,7,1,3],10,8,[9,5,9,5,0]],3,4],[2],[[[6,4,10],4,7],4,9,[[3,9,1,1],[],[8,3,9],[3,9,1,10],[8,0,6,4]]]] +[[[[7,7,9,6],2,4]],[[[4,10,2,8],10,9,3],0],[1,[],3]] + +[[],[],[],[[[5,5],[],[]],[[9,6,10,4],7]]] +[[0,4,8,7,[5,[4,3,7],[7,1,9,5],10]],[],[[9]],[[1,[7],[10,1],[2,10,5,3],[6,6,7,8,3]],[7],[8,0,8,3],6],[2,[[7,6,4,10,2],[2],5],[9,[1,2,3,5],4,[]]]] + +[[],[[3],[6,6,[6,2,3,5],4],[6,0],1]] +[[[1],0],[],[[],[10,0],5],[2,3],[[6],4]] + +[[6,2,[9,4,1,[0,4,2]]],[8],[[6]],[6,[[2,3,7,0],[10],[]],[2,7],1,8]] +[[],[6,[[5,8,4,0,3],1,[9,1,4,3],0,[3,5,9,8]],[[],5,[10,0,4,7],[3,10,2,6],[7,4]],9,[]],[[[1]],10,[[4],[5,2,3,5]],[10,9]]] + +[[9,6,[]],[5,[[5,4],[10,2,2,6,10]],[10,[7,10,8,2],[2,6,0,2],7,[9,1,7]],[[5,9],7,[0,4,2,2],0]],[[0,[10,5,4,5,6],[6],[9]],[[5,1,8,8],[9,2,5,4,0],[]]],[[],[[8,8,8,9],7,[3,6,8,3,1],[8],7]]] +[[[[3,7],[9],7],6],[[6,[6],[9,1,0,3],[8,5,3,6],4],[8,0,7,2]],[[4,[]],7],[],[9,6]] + +[[[[7],[],4,[1,0,3,9]],[[1,9,3,8,5],[1,4,6],0]],[[],0],[[6,[10,1,4,10],3,0,0],10]] +[[1,3,9,[10,[10,10,1,3,7]],6],[[[7,4],8,8]],[[8,[10],[7,0,0,9],[0,3],3],[0,5,[2],1],[[3,8,1],10]],[[[3,1,2],6,5,[0,9,7,1,7],10],[[6,6,8,2,2],[10]],[],9,3]] + +[[4,4]] +[[9,[0,8]],[[0,[],0],[0,7],10],[]] + +[[2,[3,[9,8,10,7,3],6,[],[4,0,5]],0,5,9],[],[0,2],[[[10,5,7,7,10]],3],[4]] +[[5,4,9,1],[[[8,0,2,8,0],10,4,8,[3,6]],[],[[4,0,6]]],[1,[0,[6],[5,2,2,2,8],4,2]],[[6,[2,8,10,0],7,9,10],[[5,0],[]]]] + +[[],[],[6,4,[[6],7,[6],[9,1]],[[3,6,7,1],4,[],[8],8]],[[[5,8,6,7,9],10,[7,10,10]],3]] +[[],[10,3,[2,[8,0,7],3,[6,3,2,6,7],9]],[1,[[1,10],[],[],6]],[],[[8,[6],9,[]],[[3,10,4,2,4],3,[4,4,4,10,10],4,[]],[4,4,[0,10,6,3],1],9,[6]]] + +[[[],8],[[5,10,[10,1,9],9]]] +[[9,[[0,8,2]],[9,9,2,[],[8,3,5,9]]]] + +[[[1,[8]]]] +[[],[4]] + +[[8,5,6,[3],3],[8,0,[]],[[[2,9,4,3]],[[10,2,3,9,0],[3,2,1],4],10],[[10,[5,5,1],[3],0],0,[3,8]],[[3,6]]] +[[2,[[6,3,7,10,7],[4]],[[6,0],[5],3],8],[6,7,[[4,0,7],5,[10,2,8,8],[10,6,9,8]],[3,[5,7,9,1]],6],[3,[[4,6,10],1,[]],[10,[3,10,6,9,6]],[8,10,9],[4,[5,10,9]]],[[7]]] + +[3,2,1,2,7] +[3,2,1,2] + +[[[3,[],[],3],5,1,6]] +[[[0,4,0,[7,8,0],10],[[2],8],[[9],2,1]],[[[],[1,3,5,10],5,[6]],[1],[9,10],[[4,3,8],[0,4,5,8],[4],7],4],[7,[[5,2],[1,4,8]],5,[2]],[[[10,7,8],[],[]],0,4,[2,[1,5,10],9,[4,1],7]]] + +[[[10,[],9],[[]],[0,7,5,0,[]],3,1]] +[[[[9,7,3,7,8]],6,3,[]],[[[],6,[8,9,6,0,7],[],[2,4]],2,[5,3,[2],[8,9,8],5],4],[],[]] + +[[5,[]],[[[9]],5,4],[8,6,[5,[0],6,7]],[[[8,3,5],[3],9],0,[4,[3,7]],9],[[7,0],[[9,7,8],[2,8,6],2,[],[9,3,1]]]] +[[1,3,[3,4,[1,7,3,6],5],[8]],[[9,0],[]],[4,4,[3,[2,2,5],[5]],[10],[[3]]],[],[[[],[5],2,6,7],[[2,2],[8,4]],8,8]] + +[[],[2],[[[0,6,4,1],0],7],[5,[[2,8]]]] +[[5,3,[]],[6,9,[5],1,0],[0,0],[2],[9,0,[],0,3]] + +[[],[],[[[4,4,2,3,1],[7,1],[5,2,2,4,0]],5,[3],10],[[10,[9,6,5,2,7],10,[],[1,8,1]],8],[[[9,2,10],[4,5,7,8,10],[5,9,4,4],[3,2,8,4,7]],1,6,9,[[0,4,9,10],[9,3,3,8,10],10,[],5]]] +[[[[7],[6],4,5],[4],[[9,1,2],5,10,[9,9]],[1,9]]] + +[[[2,[],[],[9,3]],[3,3,0,0],[[2,10,2,4,1],[9,4,2,7,9]]],[[[7],10],[9,5],6,5],[[4],4],[],[4]] +[[9,[9],4,9,[2]],[[[3,5,8,5],[],[6,3,1,9]]],[[],7,[],7]] + +[[[7],7],[],[4,[[],5,4,3,9],6,[[5,0,8],1],[3,[4,6,0,1,10],7]],[]] +[[[7]]] + +[[[],7,[[8,9],5,[6,1,7,7,4],0,2]],[[3,8],[[5,9,2,0],[6,0,8,8,4],9],10,6,[[5,10]]]] +[[[],[],2,5,[]],[0,[[8]],[4,3,10,[6,0]],[],10],[[1,1,9,3,[7,6,4,2,8]]],[10,[[8,2]],[],3,[9,[]]]] + +[[],[],[[[10,7],6,[5,3,6,5]],4,[6,9,10],5]] +[[[[9,4,7],2,7,3]],[[[4,6,10,6,5]],0],[5],[6,[],0,1],[4]] + +[[9,6],[[[9,6,6,2],6],5,4,7],[2,[],[]],[[],7,7,[[3],[0,3,8]],0],[[[0,0,9],5],[6,[2,1],[],7,9],[[6,4,4,4],5,9],0]] +[[[10],5,7,1],[7],[7,7,9,4]] + +[[7,1,[8,2,[4],[]]],[[[10,3,8,4,2],0,[6,10,0,3],[9,8],[4,4,6,3]],[[],5,3,2]],[[[5,5]],2],[]] +[[[[8,2,1,6,5],7,6,0,2],[7],[[3,3,6,3,3],[7,10,5],5,[3,0,2,8],2],[[],1,9,[7,3],[2,1]]],[],[[5],[10,5,0,[]],[5,[6],[],1]],[]] + +[[[[4,1,1]],[0,1,4],5,[[3,1,10],[7,4,8,8],[]]],[],[]] +[[[[6,4,1,5,1],[2],3,7],5],[[6,3,2],[]]] + +[[7,2],[],[9,[[0,0],2,7],[3]],[3,[[8],9,4],[10,[],[9,3,8]],[]],[[]]] +[[[]],[0],[]] + +[[[]],[3],[],[[[7,5,3,0],[7,1,8],0,[3]],[10,[6,7],[5,9,8,1,1],6],[2,0,[10,7,10]]]] +[[10,8,[4,[3,1,9,9],1,[1]]]] + +[[[[]],7,3,[]]] +[[5,[6,1,0,0],[[1,4]],3,[[5],0]],[1],[[[7,10,1,10,1],1,10],4,3,5],[[[1],8,[5,1,9,0,4]],[[],[9],[0,1,2],[8,5,8,0,1]]]] + +[[[[5],[],[0,3,8,10]],[3],[],[[8,3,1],7,0],[]],[[3,2,6],[],8,[[3,4,4,5],[],[7],[],8]],[[1,5,[1]],7]] +[[1,[[0,7,4,7,5]],[],2,4],[[9,0,[0,9,6,6,10],[0,7,7]],5]] + +[[[7,10,1,2],[3,[5,1,8,10],[0],0]],[5,[0,6],[[2,5,5,1,1],[5,1,5,5,2],8],[4,[]],[[4,4,8,6,6],[8,9,0],[2]]],[3,[9,[10],[4,2],[10,1,2,6]]],[[7,[5,3],[10],2],[[5,9,10],[8,2],0,[7]],5,6,2]] +[[7,[7,2,1,[6,5],[10,0,3]],[[3,10,0,3]],0,[9]],[[]],[],[2,[[3,5,6,0]],0,3,[9,[9,0,5,1],[1,3,5,5],6,[5,9,1,6,1]]],[8,[[2,2],[2,4,8,0],[2],3],[7,2,2],[2,1,10,[3,0,9,8,3],2]]] + +[[3,1],[5,7,[4,[],8,9]]] +[[[[],4,5,3,[5,5,0,7,4]],[[5],1,[],1]],[2,2]] + +[[10,[[4,2,7,9],1,[0,4,9,7]],3,[[8,5]],2]] +[[1,0]] + +[[[[7]],7,6,6,9]] +[[[1,0,[8,5,6],9],4,10,8,[4,9]],[9,[[7,1,6,1,6],9,[9,2],[],10]],[[[9],0],7,4,[[4,1,3],[8],2,[6,0,5,8,0],[2,4]],[2,3,[]]]] + +[[[[3],[10,10,9,6,2]]],[[5,[5,4,8,8],[8,9],[4,3,6]],[],4,9,[[],[7,10],[6,9,1,4,9],[],[5,2,2]]],[5,[],[2,9,3,[9],10],7,[5,[2,2,1,8]]],[7,9,2],[[3,8,[],[9,0,1,7],7],[7],[],5]] +[[[],[],0,[[],3,[],4],[8,[6,10,7],1,5]],[[[8],10],5,[10]],[]] + +[[1,7,[4,[6,3,0,3],[3],[]]],[[[8,7,6,7,0],[2],0,[7,7,6,3,0]]],[10],[4,7,[10,[6,9]],2,3]] +[[[8,4,[0,4,1,9],7,8]],[],[[]]] + +[[[[9,8,3,0],4,9],1,[5,6],2],[8,[5]],[[[8,8,4,10],[0,8,3,4,5],[10],7,2],1],[9,[3,[2,8]],[[],[1,8,6,6,0],10,[8,10,3],8],1]] +[[[]],[[[6,1,0],9,[3]],0,0],[9,3,1,[2],[1,[0,3]]],[1,[[3,2,5,2]],5,[[],10,[6,6,7],0,[]]]] + +[[1,10,4],[5,4,8],[[[5,7,1,2,4],4,[8,4,10,2,10],[0,7,4,9,6]],[[3,5,4,0],[2,5],10,[4,8,9,9,1]],[2,[3]]]] +[[1,[[3,1,3],6,[2,8,10,8,2]],[6,[1,5,2,1,3],[],[0,4],4],[[0,7,4],[2,1,5,5,4]]]] + +[[[3,4],3,0,1],[2,[[4,1,5],2,[1,2,4],5,9],9,5,[[],3,[3,9,10],[],[5]]],[[8,[1,4,1,10,10],4,[1,9,1]],7,9],[8,1,8,[4,6],[[6,10,7,1,5],[8,9,4,5],[],[]]],[8,10,1]] +[[8,6,[2,[10,2,7,1,0]],[6,[7]],9]] + +[[3,[[8,7,2,5,6],1,7,4,[0,4,10]],[8],[[2,7,5,5,1],[6],0,8,8]],[[[],[1,0,3,10],7,[0,2,8,8,0],4],[1],5,[[7],[3,6,5]]]] +[[[6,[10,9,3,4],[6,10],9]],[[[6,6,2,2,3],7,4,7,[]],7,3],[[6],0],[[6,0],[[10,1,0],5,7,[5,8,2,1],4],[],[7]]] + +[[],[[10,10,6,6,10]],[9,[[5,2,9,2],2,8,[]],1,[10,0,10,4],[[3],2,4]],[[1,[3,10,8,4,7],[1,7,2,2,4],[2,4,6,5,5]],1,[[2,8,1,8,4]],[2,[10,3,7],[0,1,0],[6,10,2,10],0],[[],[4,10,0,10],2]],[]] +[[[[1,0],10,[],[1,2,10],[8,2,4,1]],8,2,[5,3,[10,0],[9,7,7,10],[]]],[0,10],[[6,9],[[5,8],0,[5,3,8],0],1]] + +[[9,[4,8,4,7],8,9,7],[[],1,9],[2,9],[],[[9]]] +[[[[10,7,5,0,2],8,[8,2],10],10,[6,0,[],8]],[]] + +[[[],0,3,8,[0,[7,2,6,7,8],2]],[2,2,5,[7,5],[]]] +[[[0,3]],[7],[4],[6,1,[9,[8,5,7,1]]],[[],[[1,8,3,0],[10,10,5,3],3,[3,7],[10,4,3]],8,[6]]] + +[[[3,5,[0,2],10],1,[[],6,[0,7],8],[10]],[[7,8,[6,6,6]],[0,[8,1],[],9],4],[[[7,9]],1,6,3],[[8,5,[10]],0,[[0],7,[6]],7]] +[[1,[[9,3,3]]]] + +[[],[],[[[7]],8,1,4],[[[6,0],4],1,2,[6],[[9,4,6,10,10],8,6,[6,4,4,3],4]]] +[[],[],[[[],[10,1,7],8,[]],4],[8,[[0,6],[]],1,[[0,10]]],[4,3,[],6]] + +[[[[5,0,7,8],[8,5,7],[1],5,[1,6,9,0,2]],10,3,1],[[],[5],5,5],[[],5,[[],3,[10,9],4],[[10]],[]]] +[[[[2,2,0,10,10],2,5,10,0],[],[[4,5,1,10],1,8,7,[1,6,10,8]]]] + +[[[7,[6,0,6],2],4,[[1,10,3],[3,5],[2,8,5,4,3],5,3],[],0],[2,3,6,4],[4,8,9,[0,8,[0,9,0,1]],[7]],[7,6,[8,[],3],[[5,6,0,6],[],[6,10,2,1]]],[8,5,10,7,8]] +[[2,[[9],[3],[10,5],8],9,3,[9,[7,6,7],[0,10,7]]],[[[3,0,9,0],[0,8],9,10],4,[[],8,[5,9,1,10,3],9,[8,5]]]] + +[[0],[[]],[[7,2,6],[[],[0,7,8,2,1]],[9,9],[[6,1,4,8],10,6],10],[8,2,[],4],[]] +[[[[1,10,10,8],[9,1],[]],[2,[7,10,2],[0,8,9,8,6],[],3],[[]]],[[],[1,0,[],[2,7,7,6,8]],[[0,0,4],[0,2],4]],[[[4],[1,9,6,9,3],1],[[5],2,5],1],[6],[[[],0],10,7]] + +[[[],[4,[],1],9,8],[[[10,3]]],[0],[7,[5,[4,10,1,5],4,[0]]]] +[[9,[],8,[]],[8,[],[4,2,[6],[],1],[6,[5,10]],0],[8,10,[[4,2],[10,7,9,3],6,[10,7,3,10,3]],[6,7,[6,3,2,6],[4,3,8,0,7],7]],[[],0,[7,[4,8,1,6],10,4],2,[10]]] + +[[],[[[0,2,6,5,9],4,[6,2]],[5,5,[4,6]],9],[3],[10,[[],[10,7,7,10],[5,0],4,[3,3,2]],0,9]] +[[[6,[],10,[4,4,1]],0,7,[4,[6,2,4],[8,8]],1],[[5,[],1],[[1,6,5],[7,5,6,2,3],5],7]] + +[[[9,[8,1,8,7,9]],9,3]] +[[],[[4,[9,10,2]],[4],10]] + +[[[],10,[]],[6,9],[7,2]] +[[],[[[5,5,1],7,10,8,2]],[],[1,[7,1,10,2,7],[[8,3,2,6,2],5],[[]],[5,0,7]],[[],[7,1,4,7],3,9]] + +[[[],0,7,[9,5,[9,9,5,10],5,4]],[[],[[9,4,3,2],8,6,[8],0]],[9]] +[[1,10,[],6,5],[8,2,0,3],[],[4,[2,6,[],[0,5]],[0],9]] + +[[],[[[5],[],[6,1],[4],[8,7]],[[6,2,7,1,8]]],[10,[0,[7,5,3,4],[],5,[6,3]]],[]] +[[1,4,[[6,4,0,1,9]],[1,[],6,[2,5,6,10],[0]]],[[],3,[],[],[[8,10,5],10]],[[1]]] + +[[6,[4,6],8,[9],[2,8,2,[5,6,10,8]]],[2,6,5,[8,10]],[]] +[[],[1,[],2,0],[7,9,[[0],[10,9],[3],0],4,[[3,7,2,8],[],[6,5,10],[2,3,4,4],7]],[4,2,[[2,6,10,7],8,6,9,3],1]] + +[[[7],9,[[2,1,9,10],4]],[],[[]],[[10,[2,2,8,5],0],[[4,10,2,10,7],0,[0,0,7],[3,3],[9,1]]],[1,[4,[8,4],[]]]] +[[1,[],10,2,0]] + +[[[4,10,[8,1],10],[[],[10,8],[6,7,2],6,3],3,[[],7,5]],[[[5,6],0,6,9,5],[[9,6,9],4,[8,2],0,7]]] +[[],[6,7],[8,[10,[0,6,4,0,9],[],[]],6,[[2,1,2,6],[10,10,7,3,4],6,[],[8]]]] + +[[[[5,3,7,3],7,[3],4,[5]],10,9,[1,2,6]],[9],[[2,10,[9,2],[10,1,7]],[9,0,[4,3,6,0,4],2,[4,4,9]]]] +[[[[],[3,4]],[]]] + +[[[[6,1,9],6,3],0,10,9,5],[]] +[[[[0,7,6,5],8,[],[2,6,6,1,10],[10,9]],5,5,4],[4,[[8],[7]],8,10],[]] + +[[1,3,2],[]] +[[[[10,3],9,[10,1]],[4,4,[0,1,6,1,4]]]] + +[[[],[3],[[7],5,7],[[4,2],6,[]]],[[[1,3,3,6],[1]]],[1,0,6,[[10,5,0,7]]],[]] +[[8,0],[3,3,[[9,10,6],[0,2,8],5],[4,9,[],1],[10,[8],8]],[4,5]] + +[[3,[[9,5,7,7],1,10,5],[[8,10,2,5,5],5,[2,7,6],[8,2,3,10]],[[],[10],2]],[8,1]] +[[[[9,5,8],[7]]],[7,[10,6,[1,9,3]],[[0,8,7,1],7,[0,6,8,1,8]],4],[[2,7],[[8,7,10]]]] + +[[[],[],[[4]],[[9,9,0,8]],4],[[[8,0,10,10,9],2,5],[[8,3,4,1,3],[9,7],2,3],[[7,4,1],[7,5,9]]],[],[10,6],[]] +[[2],[[8],[]],[]] + +[[2,[2,4]],[]] +[[[8,[1,0]],2,7],[3,[7,[6,8,10,8],3,[3,7,6,4],[5,4,6]],[5]],[1,[]],[],[[0,[1,3,6,8,8]],2,[[5,2,2,0],[9,5],0],[],[4]]] diff --git a/2022/day13/test b/2022/day13/test new file mode 100644 index 0000000..af73fbb --- /dev/null +++ b/2022/day13/test @@ -0,0 +1,23 @@ +[1,1,3,1,1] +[1,1,5,1,1] + +[[1],[2,3,4]] +[[1],4] + +[9] +[[8,7,6]] + +[[4,4],4,4] +[[4,4],4,4,4] + +[7,7,7,7] +[7,7,7] + +[] +[3] + +[[[]]] +[[]] + +[1,[2,[3,[4,[5,6,7]]]],8,9] +[1,[2,[3,[4,[5,6,0]]]],8,9] diff --git a/2023/README.md b/2023/README.md new file mode 100644 index 0000000..5c9e9e2 --- /dev/null +++ b/2023/README.md @@ -0,0 +1 @@ +# [Advent of Code 2023](https://adventofcode.com/2023) diff --git a/2023/day01/day01.bqn b/2023/day01/day01.bqn new file mode 100644 index 0000000..7ff0887 --- /dev/null +++ b/2023/day01/day01.bqn @@ -0,0 +1,17 @@ +≢i←•FLines"input" +# Part 1 +•Show +´+´¨10‿1⊸ר'0'-˜(⊑∾⊑∘⌽)¨(∊⟜('0'+↕10)⊸/)¨i + +# Part 2 +ExtractNums←{ + n𝕊"": n; + n𝕊s: + digit←+´⟨ + {"one": 1; "two": 2; "six": 6; 0}3↑s, + {"four": 4; "five": 5; "nine": 9; 0}4↑s, + {"three": 3; "seven": 7; "eight": 8; 0}5↑s, + {"1": 1; "2": 2; "3": 3; "4": 4; "5": 5; "6": 6; "7": 7; "8": 8; "9": 9; 0}1↑s, + ⟩ + ((digit=0)⊑⟨n∾digit,n⟩) 𝕊 1↓s +} +•Show +´+´¨10‿1⊸ר(⊑∾⊑∘⌽)¨⟨⟩⊸ExtractNums¨i diff --git a/2023/day01/input b/2023/day01/input new file mode 100644 index 0000000..cc647fb --- /dev/null +++ b/2023/day01/input @@ -0,0 +1,1000 @@ +dqfournine5four2jmlqcgv +7ggzdnjxndfive +twofive4threenine +dttwonezbgmcseven5seven +5vsrcnine +95zzbjck +gkoneight4fivekvktltnine +fiverckdmgbfthjdqpmpgdkmcklqtqc365mqtwo +44sevenhvstcbgkhm5foureight11 +dprrtrngrfccz4eight4two8sthmfive +6twofive4seven7nine +four1sevenbfbnqvkbfoursix7 +12xpdghpeightqvztrsslgsix5smlgfjhcpst +8dhzdtbeightfour3 +pttdtmhg4 +6eightsevendbtbxnqzxds6 +twothree5nxglqlc9 +nine6lqhnvbpxoneseveneightsxjfkz4vr +three28jxdmlqfmc619eightwol +26jtdpgqjzshncxvlljfour +qxvpsctgx1 +28286qdjjlgtdtnsm3hk +9hcj6nine +nineseven9sqtrpfour +one1eight4sixzltzrkthree +threevlgfxhnf6seven6nine68 +sixonesxxbxvfnkt8 +8fivefivefour7sxsrvdrz +oneone7 +ndtkjbsix6three9gdsjlljtj6six +cfmrfgjqgrzcmsix5 +3threefour62three3vrmnmgx +kckdghseventwo1758 +mdbqqjmpvonetwo1six31fourntbfb +lkjhjdthree3 +qthseven61mpfnnhm6fivecnhz2 +twojrfgzjstjvlngnpqcj8grtnvxmzbxkfrvqmvnmvmbdr +sloneightkqbgcpnv8kqcmzfouronesevenmrfjeight +xdxdxg9seventwo8xcq1 +dpdgxzk7 +18six3twoone +1twoseven3five +46tkbclbkleight64 +tjprpjbshr2seven1pgfqmbmjlvsv +3mbjccssjgtdttvbdhdfxvldpmhcpc +lgfrkpsfvz5ppgqphtwoznjtgxdjpm3 +mjmlsevenggsbjbtsix9nineone +jqfqjqhthreenine7eightklkttdkbtmpp1 +trptrkbone52eight6 +onetmvsrjlbqlninesix8 +rone9ktvdqkdgl1 +twosix5sixgrfdft54klf4 +thrmone3eightsixfive +three4one +ppthg2three1one +7vt426 +22foureight6 +fourxbhmone56seven8eightnine +vhmsd171rgkhpgfhffnhkvt +xgbzxszsgtthree4 +rclzfsn5twoeight +989nine2seven +eighteight5fivensix8 +dfxzz5qcqzsjsg +d3eight54 +5knflhntzthreeseventwo +threeonefour9oneninebsfpq +hjhgtjgtwotrsffive8hfntm +sixpmhzqrlkrthreefour1pcgvz96 +5three31xqcsshkkqtfblffcmcntfour +zghcfvjsfz29nine +3vvvrlrjdztlhqqm88 +39nine3seven93 +1fqsgnjzrl6lrzsczc +threepldztlnvnzdntqllpr19 +ninekgqqrgttfntrhjzlvninelr3 +94eighteighteight +two13txmtlqxskhltkrvbjrzm97five +dbmjvszjtb17 +twogpfttmhp8two13 +four4bqzqscdbctssgxfzjjntwonfcktjrtnxskjpkhvlfjt +ctxxvdsvsvjzchmxvxceightthreembnlg5ninevmcbgsvbh +fpbrpfourqmrfcnpvxg8onehkbbgbsnnt +4zrrgsevenfour +6eight9foureightxlgdn +693rzcnvlfrv +bcftntcfl4jxbccpcmjeightcrxsjscmxdeightmhqbnpdvcfour +six83 +xl4 +njslckcbdfvkmkdk9eight +ninenineeight4nine +jkzvq3fourzzvdzdft +bfqpb9 +eight6nlzdskjfourbmdvcrcgrshbjcxfour2 +7zhlxtqtbjxqbszdtwonineeightjcl9 +fvcjzxd5sevenfivefqnvkjthreeseven +3cxmpzkng3 +8x2 +nineeightsevenfourpfzzflnp97 +2lkjpfhnpn7gbtztgxtnmclzdtdh33eightstbfrvxqz +nv8 +3one7eight +ninetwortwoeightfive8ls +shncxrjqnjttvvzvnl6 +ninethree963 +mjcfrzjhr33csjxrtmm +five17 +84bdfnptmffourfbqslsqeight +onegrzpdj8three2one6fsk +eight33gxpcqvpmeightk +6fbsfclhninetqj5twobxcz +119sixnjmxmvv +825bhceightone4jjdbvrzt2 +xjchvkxxhg3sevensixseven3kmgqfmbgmbjnrq +l2 +36hcmfnbmsevenfivetxhhgjdlq1khkk +eightj47five4sqtwo +6nineeight9 +g2drvxqvpnbjfqxhl +vglkfour9rlmhsnine +onefivezr6rrtddnrg +3threellcbhjhjzqfive5 +ggbmhzkcone2 +23nclcqvjdzqcrpvsmnpzsfg3five +two5eightddxqgpm8twoseven +nrvtvlhrlr3tvpck1ghbvzxhjkneightgzxgtcddk +7lsxfjhqz +28four +mninetwo3 +1fourfxqjpggbpb9threelj +seven3pzkfbqdstdgkrskqrlbg7fzfour4n +btctmct9three6threegkqqkcskfs8chvmcl +threefourskdp6twob +7three6five6eight3 +5spkb6 +34msnt +5bkqbzpgmjzeight +7g2onefour29fourfour +9fgsixzkbscvbxdsfive6spjfhzxbzvgbvrthreeoneightn +rpbd255fournine +277five +eightseven7sevenllninefive +rpjcmzkthbvdflbhxxkpv3oneplglgmv +xqktwone5jkpxvnptjeight +67one +cgxfhzsnrsjp3kjgzrlbhzh +fiveqqjljzfcmbfqvkscpzscpseven4nine1xvjlgk +tflkxnml5vptclnhkgdg11c2seven +sixeighttdbczshg82threepmjnxrvcnine6 +nineone81mkltdkfgxtsevenfive +8zgx +cvb4kv22gp +61bjllhkblllqx8bmr5threesix +9cjfgb1bxncrgfhtmg973 +eightninefour5twosixbsvnsndhtghtmfive +seven1bbfrvdcsthree2 +cfzd8hvqscjxqf9 +sixvfkcgmvqn9vmbzccdmqqgxmfxmnqc95 +qqrqnd8twofive7czxtjnmxx +threebdmrlnxnlmdbzbv4 +nm91vblgfourtsjp6 +six96 +sevenrjvbxptl9onecrlz +dvdbrmchgpninenine4onedjcfoneninetwo +hcrrgnlxftwo6four +threehcrfknsnqmg49 +2tqbrkxgtdztjkdcnsix6three +mktnzjn58qspzpqdr7 +dphvck5fourbmfnskkh72five78 +one7seven7 +bmpnljsxhfmtwozrhvdv8sjsrmnzlcjvjqcfgffhkjcbx +7one6874 +three9tfx4 +eight9pqhseightndgbv6 +39jgmbzrzkctsix +1676 +8xtpdhzfd8three44four8two +sixkvlppxqktkdqjsgjgz5 +twoonehbgsdhpxkdvnpr3ncrgbqzfvsbcdsix4 +39kpdxsp368seven2 +xfljqfbz5tzpldspxvgc +fourqb6twocfljflzqqd +5889cxvxkstlld75rnlgzpgmhcmnx +84zxqsqvb +fiveksvtbqz9934 +onefour96four78fourkbkhdhg +h61three2v +nine9jlbrfmgjv2kkfive +bjhktrjmfninexxnjhrvq7 +fbcxlvgkkjcmpdcz7 +mnleight3oneqqttlp +eighttwolffour1 +onetqfghfourbmf5 +four1qfive4 +9fvp +cxxn5qzcm +one7hzjpnvhtdq +pxmht4fprcftwofive7gsixcqbmrd +three9fivesixrdqrhcqrqbl +6fggvr +ninesixmxvdcqgxcmskl115lskkp +sevenqkmqxltfive191lfbtfvzsixseven +ninemjnjgrlmnlseven5eight9 +fhjjtxzksseven7fourthree +rfjksvfour26vqbdrbxc +6zgkfive8mhgxbsm +1njpjv696 +4lrthsevendnsmseven +l4hxvjvlfpjmdbvdjzrhkhpmklnine7fourfour +2qtkhnineeightone +fivexhrxrzxht1foursix +sixlzcgllrqlhghzn1hdhgltcntfivefourfive1 +dpkzdbzsgq9threecst7znsjgdmmhx1 +three497lp388 +llnklrkfr3 +ltkkv481pzhqzkmhskxlznineninekcbrphlp +fivetwoseven71nineljsbc49 +bvqsxnkpmzsevenhdpvfvlb2eight2bdxp3 +onefour64 +8xfdtfnqvhzkhvszeight5 +threethree4two +z5two2fp +fourvjmcghrcfoureight3 +lhztwo9dzhpdgn675 +jnine4two49sixskv +9phbnnsoneqtpvvzbx5xzc +mtjfxzzhzdjvfmrc1 +4ccszl3fiveseven55lfmktz +five27three9mgrnjcsbpd +6eight115five4c +two63fjlkgninepthmone +22ddxpbbpdseven +zg7 +five3gvbthree6hjseven +x6six58nine +seveneighteight75three9two9 +onevlpdgsnl3 +sevenmbvqmjhfnzmgsqp8qnskjzptpppbcfhck2 +7bpldrqr6fourpsntqbcqhfive +twothvddvmlbqknrj9pgpsjndbrmrgkgf +sixthree38onefoureightmvdtnn +vkqcnfkkc6 +sixeight9 +65fouronemklfgqbpgnvlvcvhjcdkq +three5five +981gxpsgqxjktwogninezgnf +cfnnzfnlmfqtwofour8fourxg5 +45mpgbgzctwoqlsxmgs8 +5nhzlcb6four6pzjjlr4ninej +gnkoneightprhlrseven7 +1rzsq1seven3eight +sixnine9eight8eight +lcszz858 +pdgbgjxthreethree3threeonengk +8zpzpttrqtwoninek895 +634jgvbvr +nine8mvr +5seven2psmtnmzdfivesix +56ninerqrlzqvszrght6zkgtvrphpnvthree +5fiveone +43three +9mdtghvfjdqqbrmeightfour92tlstxvrhthree +b8 +ninehpnmdhjqjl5ppptrd +41fournineeightvxxjdthreeeight +ntwonefnsdpnine8sevenbjzxpfive +6oneclxflmxvtwo1 +9jbpfnvfsjblmxrprml5 +68five7sfgxjqxrcjmninerzgxnhjpzkdhxzbg +1vztdlnone2lhrhx +6lrmdrxqlsttwovsr9eightpbmqcxn +2zjchhdbzhc +tsgntwomdtsjtdrthree9 +7threethreedprbrvngxpfour +fivestvv3six +6one9sjlzjtxxnkbckdmc +zxqzmcz3eight +lndh86xphvbnine +fivesix3sixf93hbbptwo +3cxpbl +gsnqeight8kthxzrdkskjkmcmsknine5 +67twoxdqninefour +fivefivehtczfmrhvlsevensevennbjkvhz84 +cmbgm3eightpbmgjhsp2 +fivepdhtcpvg3ninenlhpgdlnnine6fblsmlz +kcnsfsfhjbcffctznvp1 +qzrkvhcds4gklftv +xslgkktct7snbxnplbk3five +zspb1sevennine76one +twonxtngxlrftltqggpftj3eight1gsrkbbclll +474jxtncx +bxsqsb8 +svsvvtzddklkrxmpd2 +xbvjfmcnine2znbqn5eight2smvkgpclvs6 +tnlpfivem7 +7seveneight2dfiveonesix6 +fspcrlcthreej1seven4 +7nineeight3hzfour +9fivethree +four5ggbseven +5hsv +1ppkkkhfzn +pkfzkpv9mtktjvrssdftslonebpmhf +8fhfqmzseven +six89htmnpmqsixzvxl +9mbkcbnmptpkhqvvzxftss7 +48five +eight8118four7qsjb +cpghtgncpkkxtrvrsgl81eightcfzsjfq6 +ninecsthl8onefgpmc +3threehnrone5dzcfdtpf2hdlnrxnmnhjqqqn +5ninesix54 +lnzhtwo9446onefivefour +8two427bvcdkckdgz8 +6six35seven +six2fcpzhbn6fivekm34 +httmgldjfqnnhktmnhj4dsmffzknbq674 +9nxrtsmqbcrgghqtx6kdnrfjq +thhmbpjldslpthkfxcfive1zrjqtpvjs8 +cjtbcn7five9nlpgsoneone8 +seven6eightx176ffrvml8 +eight9jntmr4sevenmzjb +mxk51gt +three21foursevendbvm +zqtdz1ninemmhkjfiveeight +98xlpkzb +34two5four2cvtcjfdh +jvndgrtjonethree6 +ninefivefive1lfqjqmptxvthree +kkxfqqkf49 +3sixseven3dzpvnvt51rnzljdprb +hpzpdrnkthreekct1mqdvljhrls3 +six6sjsljgvgzhrzqpsznh3fivejpxsvqccrc +cpvlr7 +tdgthree8twofivexxrvct +62sixmt9ninefour +ninesevenfourzfzl43qssqrkktpnzjv +8mfztzthreeldnjgsfseven +356 +6vrlthreer9sone6 +sixs8six5sevenvnkgbmxj2two +8eightpglsknpxmsixjgqcftmvprjlcdsfks +3dlkbc1 +five5eight1 +7seven49 +ggoneeightgcfnfkgbmlfourdls23 +seven6jdpxxkfone +lfive715 +2ninefivej2sixeight +ttwonethreethreesixzbqz7 +zmbqqcd8ztp46567 +nineeight11 +zhgsixthreejffqhzdfvfxjpfmjqqkm36one +5vgftjvqkxj6pnctdcrktwoneq +9ptmkf8six +lbjxvnfiverjppbtrhf6xbdnsltlnrqsgmx8q +365pxj63gshpg +vlq5zhgj4 +98hc13nnrzfzschg64 +2twopq76kpmjdjflkqzxlvjhr +rnvmblqhq1 +8j273qfpfkz +dsevenvvdmxhhcd1dkz +lkqhrxkmp96fppvsdtwombkfour +3one7dzpbhsrdf5 +159ckggpfzlgntfrddvfiveeightthree9eightwodnp +eightseventhreeseven1 +mrzpk8 +fmvxth2eight8hjmfkdxjh +3threeone +nine5sixsixnzlqhsc +xtxbgtntwosixfour85 +3eighthz4twoqmlhrzsevenkcqhgrghrd +12ldchpqzm +zcfjz5sixmqqmfsv9six6 +sixlzcdtd3qlcjqzrtthnine +1one6nine +11xqblttcrdvgb7mdqkphrbdx +xbcc4mtgf5 +sevenfourmthree1hgpnmvcvgshzvcsjdbqqgmt +v5xmghdgbkvnine +29mkpfz7 +jptwo4lqlrh2onefive7jhcngr +four6twosixsthjqpgh2 +pctrvkmc82four2958 +12eight3 +7jbqeightlbbnpsvvdfrqccb +peightwo6sevenfoursixdmchsd1 +53dhphzvhnknt65ninefive +86fivegpnhl +tpcspvvncglcsqjzlqrfivejgfl8zspdltrd7 +mhpskcvhn3bkjlmqd +onetwo4lxmsnddzfbxcdcscjxxrzsvvzg3nvtrpncvpmc +fprqq1bpqxvjmblc17 +four7ninenineksjcktcbtzsmrfr +3nineccrnhtgg2knczqnnineoneqsgm +4xnkljmg7lmfvrhxm96 +five458eighteightxcgrnine +klrzfbrpkmtptdscktmcsqg5xonesix +vtmh1glhzlkmrlgfourpsbhtbrvdz57one +9eight53threethreepgnc +fourseven3fivefq57 +5sixsixthreegdsrhkhdlk3six +v9xqhpzkfivebnjslbzh548 +jssdslcxxv3sdhbqnine5sixeight2 +vr1 +eightsoneqrrqfoursixzngsths9three +ltwoltrplmlkzz5sssjmzgcjsixfivejhms +49one +2sevenfivethlgxmxssnvlsfst4 +8slfnfsfk +fourszbtpvvlvppsqbsprthreexgrlp3zt4 +seveneight8rhonectrmxrjvnnthreetxmfbvxtlt9 +twofive6eight9 +zqxpxlzjm3hmzjzgoneeight1seventwo +9xbmqqtkstflg6onem2tdfsfjnxdmmzlrcnpm +pgcxbqvvj6 +xfsix893 +7four1 +63five +tr9chvmlhhv6 +jxc2six452 +11zvz +oneqkhstmkhb11fourninezs37 +3mxf3slhhs +sixgdnljsfkfnffp67789nvgc +sxptjdmqfv1eightsevenfpxpdnrtnqkdxhnzdm +grdgt9ninedxnqhrts +8sevenxcsl1 +fiveeighttwo5 +bgroneight2pgzdpnzgchkq1 +5twozc62foursixeight +six61 +cbxzoneeight1 +hntwonebmslklfkfgpngvffour5 +1262ninemdjsrdk +roneightqnjseven2 +rmnpjzflcmqdrdseven3 +ltwollzgvr1fiveeightjvv7 +kkc5fourfive89 +cqnnhjxp4dtt +jeightwo1fgtlfpsixtwo9pptcpmjjsixone +832 +9eightkhlprvq7seven +ninegeightbfvnvvnpslspcmscvqcqb6 +jgksh2lkss6onexznvfhq +flqhlpkzjvq3qvvgvjscr6v9eight +hrgeightwo8 +3fvpkbrhqchlbsxhlqfone3eightmhtxbrninerbkrsnxbjg +871eightnineq5f2 +6jnonergcjfvkhfive +one47fxgvgmoneoneoneg +5xktmbkqftrlvztctxnqprpnine +eight4tfvsbtmhtwol +rbjdrmbcrs9chvcj7s +eight12bdzqtvnqeight27rpt +fq713oneone6rgrnd +cdt96 +dbfrd4rczmbgnmfrltdlpbseven7lqhfive +fourdxxkqjfpjxbcthzhbl67eightzks19 +2four5ntghsdcsdrjpbrtrt3bzgbtfnknine +tvmnjgcsixnine8zrc39five +5kcbfkj61three9tsqpvzdd +qsmseventhreeone4twosix +twosix2 +jzsmxs9plpsixpqxffive +sixthreeseven4flbct +mpplmsrjvz9 +8ttgt9ninesevensevengnprjnvxpjz +8gmpgvbfjcdsnkcth9bbnqsqhqqzeight42 +nk5b +four98six83five +415rqgdfsix +mqrkmbvtm668 +6453twoone +9fiveeightseven4gsshznxbkb5 +seven3ninedgthree +jckgvtvrs3six3trrzfrxfnm8 +98fivexxdqpmv74fbthtqqfourvttxnck +fivenineonefour46tccfkrsrpqnxhtm +twobdsqhnscrkbzt19 +llmccgn8 +6eightoneonen57 +meightwo1cjqsm3sixlrr +98842 +twofnsvbsxkxrzghhrz29 +tzfjthreebkkljhninetwoone6zgpgsgxq +fournkcgf85seventwo +642 +four1oneninejbstfcdgjkjtppskglj1 +4four9eight2tnphxvfour +sixjhcnxkksxthreeseven1four1 +rb34pqtnnfive2sevenone +33sevennlnhrkkbshonefnrqq72 +3sevenfourlmqzfdjrq +tmttpfb4mghtcpnine +nhlqlcxff8 +fiveone5gxg +fivecrjmsgljxb1mqmffour8mgtdxsjsix +1jdkvzfmbq +ndzqgk6 +threeg7twofour2twossldnmthree +5rsltvdtworrglclfpctml3 +nine6fourmcqbhbvlmzgnfqtbcs +5eight92 +ninefivefour3kbnmrdmxjg2 +73vprclhthzz8 +ninettjnnkrsix9kvxjknzkmsxtvdn +bgzfv59fhsvcjvlgmhhzph58 +threeonefivecgjstcmp57 +9onefoursix +sjqjvd4three91 +9ccdjqfivefourfive6mrnkjqf +7lzdrzjheightthree6 +43 +nineb8sixqqsxrpn +fgkj15eight6gggndbjxvthree +one3sevenlfjqmbmssgbzs8pzjptxgvq +77fiveqpjpfdqteighttpfh +2333twonezrr +8p4cxnjvbjlh9ninesix6 +ninefour95 +67twosevencktwopjcmcxr +9four1threejbrdmtkzn +ninenjhstmmmj3four +4lnqjqtwo3zxfznvp +sixfivesrxnttwochrkdrr7 +4three1 +tfeightwo9two69five +oneseven3sixfournnpkhhx9 +mdl8kfpvthree +fxcxgmq5three3ninehdc8 +one9eightfiveonernhbcxjninethree +9three3fcpgxksix +nine346946one +hzkpbmdzdmsfkrbxvs6pnmqsevenlnr +kzsgmsix5 +kdjdvvdl2 +8lcpfkhdltwo +xjzfbgrmvxprqpflpbk9cnpxdkgmvvjz8vbrjhxvthfsjkk +onefive7 +tjqmxncdbmsjznine1zlr +648bhzlqnlvrshdgzonefive +eight2sixtdzznchf1seventwo4 +sevenzcmpbfbzdvjlztpx62 +5961 +97192fivethree +seven1mcxnqqzvpp5 +8qn1eightseven +hcrrthreesevenlkvhfbj96twonine9 +two8four +hpkttfdpgb16 +19oneseven2onerl +347seventwo +eight4threempfbxbssrrkscnc4eight +555qrppcplpgtworxgbgdjdhltwothree +v9627 +twoninenine72tkcbk +one5jhczrlqmhr +qnhr4xlckprn9x3bzrdbfrdql9 +lgtdv99kmgjjkzfive +lrclbljqqpninerrjptvpfour2 +fiveltkcgdvgkeight7seven +twongdsevenfivefive3foureightwonn +8svdmkflj +rlbf4sevennc4jxsskjgktwodsxgtlkthree +seven4nine4fivezjfsjghbcninefk +drghcjthreevstpdfth6sgqtx +zkfthreefptvnvb9five +gjcqspnkztlqdnzl6 +6nineqzgvhcnhjxbmtkcfm8one5five5 +threesevenseventwoqrcvpvvrdljfone3 +v44nlcdx8eight +eightseven3bmfzeightzccxqk6ftlsmfp +seventhreeseven3 +7eightgvxcdxzplrthreelqgbhvpqffivefour5 +8coneckchx5pfive +xhbbmsvjnonethree4 +lnktfknbqfive4seven +8prvncdq97hjjltzreight +2dfktgjgdrvfour +9onesixone +873lsmllvsvp +61dcjgpjvqxj +xtwosixfiveseven2two +p4 +threescgqlmkt43one +plffdq4pcqfoureight9one +357qzoneztwo6 +6ztllqsixgtfgcr +4nineoneighthch +fivesevenninesevenvpnfkjpeightjsvtqxgrx35 +8nsbjtjrhnv36 +4eightseven +5rksnms6fgcnrttgl27four9l +3gknvvffflfgdg +8ts98n32one +4vmvthreefourmttwo +sevenskfmmmsjone95 +seven4fmnxskg2516four +seveneightzjdnjthreethreefourpj3three +two8one44three3 +bffeightwo3twosxljzljbllrtttzsevenxfonetwofive +5eight5sevenfour +4fkxqm +7nine4seven +6eight3sevenfive6pxjlschvhm +5nine7spbqddhrqcbzrvhkrt88 +cnpbkmbfour88 +41twoeightlgcjfvms +hktvctnine6mzccvthreefournine +1dr66mg5one +five74 +bsrrldft858six2oneightm +mmsvhxsm68seven +lnjcnn4fiveninerlsqkcn3 +fgzjrlmfjktwofournine5782three +1two8fiveninegndtnzndf41one +kstskp4one9ponejlcqdvgkkdfive +four7two +mzcbhhxgkfourfour34 +qvhnpbmvdbgxbnhcgthreesq7dvmdnhl9 +1jhmkdmmmjg +6xzpvzvqbrnine8gg1771 +sixone9qvfft +6eight152two6sdbl +sevenjlpmzv7 +jntrfc5 +ztspfjhk4 +9fournlslrmlr3 +2kqsxx5 +3nineshlmjsevenfiveonellrtr +7hcxxjkbsvknbmtwotninesrpsszktzjlntwo +fv1six81 +onetwo4eightsixjkgmtvxptnxltqtptncfsix +eightzvmmone3eight9dglsqq5 +jvqs4sevendl +551six3oneseveneight +5jtcbrmtbjmrb4sevensmmrctntvz7five +9lrnfive4 +twoxfltgdg5six +one4threeeight3eight4stlp +2rpxk95sixslsc895 +seven15 +1sixsix9sevenkhlnhqtzptwovzrmbr +two55six +twofour3 +eight6fiveeightbmrr1sevenk3 +4flbntjtfivepzkjplzxn7 +ljnpmnskjsixthreehpqdkccffg4sixfszddbz +9gfsqhmonelgvxpkmnhldmthree7 +5vthvsrcbxbcrgqnine +six6nine2v +htnvsfmz7dtvthree6sevenfourfourrmsdfhkd +pb24 +sbmmdnfvmlfourfivenvcnb3jrctctmrhm +2fourone52hkjvd4 +1bhpbmxhtr4eightwolkd +5qrqbxtgppvvcms +mgcgxpmj4dl3zfckcskbqnsknlctwonxsddvhl +6zfv66onetwosixtwoxdx +676jmzcdbcjnfrlrgqzfkmdxz +oneqhgcqjmjq4 +three6qvlkksf98 +fivesix614s83 +threeone9kplvzq28threegcmtrzzlsix +5lxcjrvbthreednttcxfnfiveseven +threeeight5seven5jlhhfour2 +xcppxkxqffc6six +fouroneseven1xrdtbvdsix +vfqzhvzclbpj2 +5seven8xlhfivetwofivedvlbtvzvs +7bjlrvnncgsseven7six +3qsnhs +2fivefour5 +gjgzjs1s +vxhlxvgj39 +three1lvnrfrbzj6nine +oneftpcjskxzhv21one2twomshxlh +nine36 +ninetwojfqbjkbtrfseven4nkszvtjnffeightwoxdd +eight1eightfiveonerzr4 +sevengtwokzcxvvg4 +qxkmfdznfive98eightfourprmsixthree +1two743six +274sixqqq62j +sixfour4fourstxrskpxc1eight7 +2fourrzngcnlm112twoone8 +nnqfmonerrpxeightfive9 +klzrfbxjnznzkt24pjngplcdlftjz +66gbsllhhgxn38 +threelzzrxspvq8four +qtvtpqspqflonetfrzvkthreeone8gsjqzgnv +9vhlxrqtdmzrpfqh74zsgnmsdlqgcp2 +qkkkhxbrk35eightjpnmb761one +4vp4four49two +five6nrmvcfzlt665 +skkqlzl1mrkgncmqnine68xvhfcsc +two17kbjcdsstlxst6 +foureight3twonglgrv +6nine5 +pgcmqzcfninepbgcrbzseven5zplhhbrjbpxj +sevensix6fourtwonpninebt +eight7951one +glvndtgdfkzzcbsmt36sevenfour3eight5 +dtvgrkkzvhflhcsknhsccmxzgfivetcpz4zrcl9one +jpg3onenineqzjseven8phltdpjrsr8 +68one +gctzfjksevenszfblxone2seven6pd +93nine42 +two19four97crzhqndbqpmpvj +3six4mrntvlzntmqgcmms +1gmpdqpfkkz +xmsv3eightmdnqkdtzn814 +395zqfqrgzs +9eight81cpnvrkkl +7rddzbqfm5fouronekxkhlgf1 +fkclxddmxrpqzhqeight697 +2mtvxtgq5six +3one9qvnpnmhzj6 +rvvf3six9fourrq +r2eight55gvgpfs +dtztwofivefive12 +three6zfqhnjzvr2twosevenoneightqp +sgleightwo2974c24 +pplpgxnvzfpv4xlfive11four +58one +61four29 +eightgxcgbrzd8five8 +jxdzbxcc1one6pfivesixfiveg +two542cvjxvmhhthreexkl +three8nhzz4 +sevenseven1seven14pxtwothree +mpdcbdjkp8ninethree +fourthreeg9pnine +onesixfourtckbkjdkqbfjkgpk54 +qxh1twoclvzvsvgk2dvpkncltdt +fivefourhjckmndtdp98jzgqvrhbhxeighttdxkjltrdq +296dvxdxhdb4qbnmkzxh +djsrgct28vjkvsttnlf4 +7rhdkfvqbxninegnkbgcqv1four42 +seveneightdcb7sevenpdvqlmkvfive +39lr83hhhrfivexbhr +zx32sixeight +7hsxxzjjdh4rc55threeseven +5oneseven2sevenfourtwothree +9oneqc3seventwofive5 +five2hnfkvsxmhjfivefivesix +3sixnine59three6mncxxxhkgxzlxscdzplm +eight9three62sixfour +26hfc4four1 +jrnxgrvrctbg3nine +four73dqfiveeighttwosevenknq +94nine8fivevnvlnf +twopg79nine6kkpfgmpdlqhfc5 +511twogghonefour +bvdneightsevenfcjnhccrlb7nine +lpfoneightfrnsrpgkzsixv8 +1sevenseven981 +53kvftth53fourc +zcmkkshveighteight1 +9sixcrfzhfxzzrrdtkscp +8fhslkqzsc5jlpthreeninemjftx +rsfourfkglt1hfvhgeightfourvbmsnine +sixninefive5 +2jqdfddkzzqxnkv8two +sevensevenmxhpqvmngfivecnhvg18 +threesxrninenine31sixnmnssk +kzvvsvbjrfoursix6four +ckvmxptpxrvpsfvt9nine +66ninezgxttq1nineninexggjrtzgg7 +two2eighthsrnine5pmptccfkfcpcmkn +seventqsqhbftscfonekdhrctnlcfdgzhvshsjgsbq7 +nine1mdpxvlxkdx +pm4eighttwo +81ggljdxsthreeninefive +twofivenine39three +six152sixp +threemztwotwo5fiveseven +31twoninefsxmpsjx6eight +seven2deightone5threethree +hxmthvjphjdgctfpt4dfhxseven +4twoeightzx8 +9dzbjqnnmbseven7 +crdtprqs455onedmzvkzmmm +jqcxsxblgml1 +9sbqzndbsx3twoseven7 +eight8threezvvqbrsix34 +ztzlrsg4qghxkvspvcsix2jndhxzfrm +6twovjkjgptwo43lg +1psnbrkbhb8seven +xfxqjrggpmtf4fivenine79 +6pdv1xpsgr +zb4rqrqxsevenvklzmslqls +fourlstone7 +53joneeight8ninef +1315 +1qj4 +djeightwocxrnf5fourone4eightbqj +jrgxvsmnzg5 +twonsjbzvtqhgfivejdhxstbzrbtpndnjlvb7hhxfmrxtfxrcmjs +67xbctwo +7nbsrhcvrqj +fqnl9foursixtdgbcncr85three9 +gmg4mr3rvdt +19qhmhvpzfour +pkptr6lssnqxncztpbt8 +sjqtxbxp5twoseven1onerrsqghcfpncgkfour +7four8spgzfoureightthreedqp +two9bxlqs +deightwoninethree8 +3plpprmmhvvsnvdzjzr9sqgbddpghthreejjmldhdqqm +sevenfiveseven4bkvxkzqbtxjvdsltfkn +sevenssfkdmvmntpxjpqlj8px +4hk9 +fivenxcmhf78pmdd6mmqfvdxqbh7 +five9hvfive7 +eightfourrpflnfourtwo61 +threenine2 +ncdpjqcnine1twoonehglvzpzf +jmtpbhbshrvmhvqt38brsqpxn4one6 +onesixvmmhsevenfoureight2six +ttwosix5nineb3eightthree +cmkdmhkdf3zdhjfmb +three5fiveqrrxrdtsixtwogntmvxsggqfive +oneeight5eightfive38twonegv +cqlfhlch924mpmqfvtwo +jrnzg5four3fivetwokxphktf +seveneightmzmzftx9gsmxjkj1stjbvxlvmlcdgnine +twonineeightninethree6blhm +3kskponetfgjgzphqtr +ntwo2 +5six1vksjzrlgjnxtwovbkrdlhjsmzdxcf +twosixkfmcfndlj453two +six5twotzbzqtwo +fivenpcqfour5twonej +nineninefouroneztvqspscnk4twoklbht +bqcbm19hckcgtcfkb44eighttwo +52jcrbqbkhjx5nine8 +5threethree +3twotrnnlstrndthree9 +15zsnrfshn7twoeightsmvsfztx +789ckpxflvkr +skxlnpxxdgbhqnineninejsltrx8three +1sixone724 +2seven4 +7knspxrzszdbgc3seven +vsqmpf5sixsix9eightdtgmpxrksb +three6btwo11fived +bckqdndnine7bpzvkxkdqtwoseventxpzqg2 +one6ntmlmfkfmjfourmgddpzfr5scjhhmgsix +four12mlhdscsxfiveonesevenlone +9rdlctlkc +11vjvjsllfivenv +2four6fourfive +5czmqmdkkthree3 +sevenfive9 +sevenfivemqjhqh9mvdkgtr +glvpdbbhxs9 +four2three +six6gtdbttnhvkvh +5fcsbnpsixeightonetwo3 +5psvznthreethreefive5qrkftfkqsix +36lmm +seven33onefournlr2 +13seven +onejdxgxjpcsix1sevenpzbzthree +sevenqcjsxz6twokkpzllzqninetwo +1367mtsldgrdeightp +five111hbp9tlqp +threebbnine7onesix2twoneg +mxmpnxmpqponeeightktxvgkcdr7 +411fourdhrdvrz +zxkmcr5eightkzqsixsix7 +six972zleighttwonvgvth +vnmmbzfpttwofnjd76 +twopnthreeqzlvkptmph9vnkbxghnone66 +nine1fiveninethree4 +mdrdpbsfcjsixpnxfour2four2 +sgjrdtmzcj2mbnlbtqsdboneeight +9jbmhchfrnfqvxcjtwokrbjvzmcxrj +4jhjksqvnqsevennfrtslcgjbrhfour +6eightlzrrxfbcjeight5six1kzhtpbz +jqsmqbzpntxdfvdthreezrqzdhthreefmvslxk6 +eight82two82zqghmbd +qtwone4d +6three16 +9eightdmtkznh6 +znc1185 +eighteight665bxbngx5dvht2 +9seven83three +mqdnhqfdgzfshjttvfour3hq92qtpdblnvdsxcskz +twofourfivedfffknb6ljxjlsq48 +6pbdfrqpfour +vmtkqpjftc9twonej +rhcstmvxdnjgldpmlmsnineglmkntfiveeight3lgnlqmjkzl +rxzbjxjhkvhtxps2twohlcdgkrbdbmxvpf4five +1three9two +bp234jszvspdq +rcmhnmb3lpxneightfivetn7 +srdh461fourcrhhkbxftghxqrptn +rlhlrm894 +jtmmljgmmppknktqrbjtwod9 +75kvnbm +psbcdponesix218 +ndx5zthreetwokjjvzkjk +onerhnmsxmseven7two2snn34 +nvmfj6hqdspmndlzqhrrznrpcgn +lqqgdmn5fivesfbqhveight1 +one5pjpskd25four3 +91dxxjkrthreethreefourfiverrdhqtwo +3sevenhbrznfcqmfivepqnmzxvlldhfdrvkqfmxzx8 +lrfflx9pvrfctxkxk432 +ninerhjlqfzg3fourbvfkbmxbntz1 +6dkgtthreebjfgjqnv6lveight +seven527rgztslznxdkgrgf6one +npchxbnb5zpzrllhx777 +rfour4qkvcxsbjnveightwogm +foursixsevenppnrdgpnrkbr5 +3three4lm +1dmxvfour7 +fiveh1eight +643 +fivelsffmhsldlfkqkb2threek6three +23dpbpjcsqslnine4799 +shvkdvntpmvt52dvclb5bjdj +eight5sevenfbjrpbdsdzhnc +dv2vqtqghlkprxx6three +four1six4fnznbcdghfzpd +eightfiveone4fourone +two75four85 +3331 +9eight1seven +9threexbsevenfour +22meight1 +75two +five6onetwordjsgltj +oneseven9one +djljfzv7cnpnvhmqkjgn5eightsix97 +three8xpskzk +nzgpp7fdcl6twotwochsgztwo +1tfvvmzfd4threekgqdthreesfxjggmszz +7krlgg8864gfp94 +3xxpkqxfxcn +eighthl4cctb26bppqpsc +eight5rq +hncmdrmfive4 +qml6mmx +qpckxnrjbdlprhmrqeight3bcjtghrrfvczqxeight +nine6five +fourmnzrtwocvdkmlc6 +3sixseven1mnbdqfgcqqcpsix +ninekvxrhk2jjjrdlqf49 +7seven743 +xnrz1m5 +cseven8pg2 +hxbfzndh6nltvbv +7zxdkghnzrzljlqftwo7hfmptrgd +5jltxrmxn +9eightqskgfndxsgmsrprhsvnninellts +dz88 +99nine +rphppqzzxk2four +2nzeight +four44two +qtwonetwodgbhqmtzf82onefive48 +6fivedhmv +xsvpdrtvr28ltsjseven +foursixfour61nrseven +qrhtwone3tmtsixf +sqjvg2pzbzpgthreenine6cpsq +jlvnsbshjmxnxfouronesix2zlff5 +rzxkpczkn1bkcfbpbcb +9nmkljlqmd9fivenine7fivexndtdghpc +6twovgpsevenmzcbjtnd3threegmsltfhrgq +fourmktnjsk4839ljqvqf +47hcbcnhjgxhdfn7rrbonehvlmddbone +26fchgtdnbtwo8jpqxkb +7dxtslxqkbqfivefive +sixnineqnjmseventwo5gh2c +three1eightvxeightwogrd +twotwoninesixxdvrxv5 +sixonetqddfmone1seven7 +fourseven9ninefoursxnnnfcbtb88 +twonpbnblrh3qckkxckflprdnr4 +6eighttwo2sevenqml +three1twotwon1cjfnnnlptc +tlqtgktgjtgfour24four91 +ghseven56sevensixhfstvk +qd8fourvmvgmssixsix8oneightps +jjvhthplcgzdndmrnxmctrtnndmzztnggr9rspflsix +jqk39fivetwo +nine2sixrtwothree +gccjpxtcxfone6six6nine5 +7twoeight8flzqk77 +mjljctdbg8 +sixthree8 +bbdlvtsjhjst88 +dklhhhlpqqxlgdzzheightjntbmlfour4 +ggrbl5cthnzlsbjssixpt diff --git a/2023/day01/test b/2023/day01/test new file mode 100644 index 0000000..41aa89c --- /dev/null +++ b/2023/day01/test @@ -0,0 +1,7 @@ +two1nine +eightwothree +abcone2threexyz +xtwone3four +4nineeightseven2 +zoneight234 +7pqrstsixteen diff --git a/2023/day02/day02.bqn b/2023/day02/day02.bqn new file mode 100644 index 0000000..6f83759 --- /dev/null +++ b/2023/day02/day02.bqn @@ -0,0 +1,19 @@ +⟨Split⟩←•Import"../bqn-libs/strings.bqn" + +≢i←•FLines"input" +ParseGame←{ + g‿rs←":"Split 𝕩 + gid←•ParseFloat 1⊑" "Split g + rs↩" "⊸Split¨¨1↓¨¨","⊸Split¨";"Split rs + rs↩(+´{ + 𝕊n‿"red": ⟨•ParseFloat n,0,0⟩; + 𝕊n‿"green": ⟨0,•ParseFloat n,0⟩; + 𝕊n‿"blue": ⟨0,0,•ParseFloat n⟩ + }¨)¨rs + gid‿rs +} +≢gs←ParseGame¨i + +•Show +´(∧´¨∧´¨12‿13‿14⊸≥¨¨1⊸⊑¨gs)/⊑¨gs + +•Show +´×´¨⌈´¨1⊸⊑¨gs diff --git a/2023/day02/day02.py b/2023/day02/day02.py new file mode 100644 index 0000000..d1b5de7 --- /dev/null +++ b/2023/day02/day02.py @@ -0,0 +1,43 @@ +with open("input") as fd: + lines = fd.readlines() + +games = {} +for line in lines: + line.split(":") + game, reveals = line.split(":") + game_id = int(game.split()[1]) + r = [] + for reveal in reveals.split(";"): + d = {} + for color in reveal.split(","): + n, col = color.split() + d[col] = int(n) + r.append(d) + games[game_id] = r + + +def check_game(reveals, thresh): + for reveal in reveals: + for color in ("red", "green", "blue"): + if reveal.get(color, 0) > thresh[color]: + return False + return True + +thresh = {"red": 12, "green": 13, "blue": 14} +r = 0 +for game_id, reveals in games.items(): + if check_game(reveals, thresh): + r += game_id +print(r) + +def min_games(reveals): + return { + color: max(r.get(color, 0) for r in reveals) + for color in ("red", "green", "blue") + } + +r = 0 +for _, reveals in games.items(): + x, y, z = min_games(reveals).values() + r += x * y * z +print(r) diff --git a/2023/day02/day02.ts b/2023/day02/day02.ts new file mode 100644 index 0000000..2b18080 --- /dev/null +++ b/2023/day02/day02.ts @@ -0,0 +1,57 @@ +// const input: string = await Bun.file("input").text(); +import { readFileSync } from "node:fs"; +const input: string = readFileSync("input", "utf8"); + +type Reveal = { + red: number; + green: number; + blue: number; +}; + +type Game = { id: number; reveals: Reveal[] }; + +function parse_reveal(reveal_str: string): Reveal { + let r = { red: 0, green: 0, blue: 0 }; + reveal_str + .split(", ") + .map((s) => (r[s.split(" ")[1]] = Number(s.split(" ")[0]))); + return r; +} + +function parse_game(game_str: string): Game { + let [game, reveals] = game_str.split(": "); + let game_id = Number(game.split(" ")[1]); + let r = reveals.split("; ").map(parse_reveal); + return { id: game_id, reveals: r }; +} + +let games = input + .split("\n") + .filter((s) => s.length > 0) + .map(parse_game); + +let part1 = (games: Game[]): number => + games + .filter((g) => + g.reveals.every((r) => r.red <= 12 && r.green <= 13 && r.blue <= 14), + ) + .map((g) => g.id) + .reduce((a, b) => a + b); + +let part2 = (games: Game[]): number => + games + .map((g) => + g.reveals.reduce( + (o, r) => ({ + red: Math.max(o.red, r.red), + green: Math.max(o.green, r.green), + blue: Math.max(o.blue, r.blue), + }), + { red: 0, green: 0, blue: 0 }, + ), + ) + .map((r) => r.red * r.green * r.blue) + .reduce((a, b) => a + b); + +console.log(part1(games)); +console.log(part2(games)); diff --git a/2023/day02/input b/2023/day02/input new file mode 100644 index 0000000..f8f4a28 --- /dev/null +++ b/2023/day02/input @@ -0,0 +1,100 @@ +Game 1: 7 red, 8 blue; 6 blue, 6 red, 2 green; 2 red, 6 green, 8 blue; 9 green, 2 red, 4 blue; 6 blue, 4 green +Game 2: 2 green, 8 blue, 9 red; 5 blue, 11 red; 5 blue, 3 green, 4 red; 7 blue, 8 red; 5 red, 3 green, 3 blue; 1 red, 5 blue, 2 green +Game 3: 4 red, 8 green, 2 blue; 6 green, 2 red, 2 blue; 12 red, 12 green, 2 blue; 10 green, 6 red +Game 4: 12 red, 3 green; 1 green, 2 blue, 2 red; 16 red, 4 green; 14 red, 3 green; 2 blue, 5 red; 11 red, 4 green +Game 5: 19 red, 1 green; 7 red, 1 green, 1 blue; 7 red; 13 red, 2 green +Game 6: 8 green, 2 blue, 2 red; 1 red, 7 green; 6 green, 8 blue, 3 red; 14 green, 2 red, 9 blue; 13 green; 10 blue, 2 red, 4 green +Game 7: 2 red, 7 green; 9 red, 5 blue, 18 green; 16 blue, 10 green, 6 red; 13 blue, 12 green, 6 red; 19 blue, 12 red, 11 green +Game 8: 5 blue, 3 red, 1 green; 8 red, 1 blue, 3 green; 8 green, 9 blue, 8 red; 5 blue, 11 green, 3 red; 2 red, 3 blue, 1 green; 3 green, 7 red +Game 9: 3 red, 3 blue; 7 green, 9 blue, 14 red; 12 blue, 9 green, 3 red +Game 10: 6 blue, 1 green, 1 red; 17 red, 8 blue, 1 green; 4 blue, 10 red +Game 11: 2 green, 1 blue, 8 red; 14 red, 5 blue, 10 green; 14 blue, 6 red, 9 green; 7 red, 1 blue, 1 green +Game 12: 16 green, 1 blue; 1 green, 4 blue; 1 red, 2 blue, 16 green; 17 green, 3 blue; 14 green, 4 blue, 3 red; 7 green, 8 blue +Game 13: 13 red, 10 blue, 19 green; 2 blue, 12 red, 8 green; 8 blue, 11 red, 13 green +Game 14: 16 red, 7 blue, 7 green; 8 green, 10 red, 6 blue; 6 blue, 11 red, 4 green +Game 15: 6 red, 10 blue, 2 green; 10 red, 1 blue, 1 green; 5 blue, 3 red, 2 green; 16 blue, 10 red, 2 green; 13 blue +Game 16: 8 green, 10 red, 1 blue; 6 red, 9 green, 12 blue; 7 blue, 3 green, 1 red; 5 red, 6 blue, 3 green; 1 blue, 6 green, 8 red; 6 green, 8 red +Game 17: 4 green, 4 blue; 2 green, 2 red; 1 red, 8 green, 7 blue +Game 18: 6 blue, 8 green, 9 red; 4 green, 3 blue, 8 red; 8 blue, 12 red, 2 green; 4 blue, 8 red, 2 green +Game 19: 12 blue, 3 green; 2 blue, 2 green, 4 red; 3 green, 6 red, 14 blue; 3 green, 1 red, 17 blue; 10 green, 10 red, 1 blue; 8 green, 8 blue, 4 red +Game 20: 4 green, 3 blue, 1 red; 9 red, 14 blue, 9 green; 1 blue, 17 red, 2 green; 8 red, 13 blue, 8 green; 7 red, 2 green, 20 blue; 6 green, 13 red, 5 blue +Game 21: 7 red, 1 blue; 1 blue, 5 red, 4 green; 5 green, 5 red; 7 red, 2 green; 4 green, 2 red, 1 blue +Game 22: 6 red, 8 green, 18 blue; 2 green, 7 blue, 2 red; 18 blue, 8 green, 1 red; 10 red, 7 green, 20 blue; 5 blue, 10 green, 4 red +Game 23: 2 green, 2 red, 15 blue; 2 red, 6 green, 4 blue; 8 red, 5 green +Game 24: 9 blue, 7 green; 3 green, 9 blue, 1 red; 2 red, 6 blue; 3 green, 11 blue, 4 red +Game 25: 2 green, 3 red, 5 blue; 2 red, 5 green; 3 red, 2 blue, 5 green; 1 blue, 4 green, 3 red +Game 26: 1 green, 7 red; 6 green, 2 blue, 7 red; 11 green, 3 blue, 1 red; 6 red, 5 blue; 1 blue, 5 green; 8 green +Game 27: 2 green, 10 red, 3 blue; 5 red, 5 green; 2 green, 4 blue, 10 red; 4 red, 1 blue; 3 green, 3 blue, 2 red; 8 blue, 2 green +Game 28: 9 red, 7 blue; 6 blue, 11 red; 10 red, 10 blue, 3 green +Game 29: 15 blue, 10 green, 1 red; 1 blue, 10 green; 2 red, 19 green, 14 blue; 4 blue, 18 green, 7 red; 8 blue, 10 green, 5 red +Game 30: 7 blue, 3 green, 2 red; 12 blue, 5 green; 1 red, 5 green, 5 blue +Game 31: 6 green, 5 red; 7 red, 7 green, 5 blue; 2 red, 7 blue, 7 green; 2 red, 8 blue, 7 green +Game 32: 9 red, 2 green, 2 blue; 3 blue, 7 green, 3 red; 2 blue, 1 red +Game 33: 13 blue, 7 red, 1 green; 5 red, 17 blue, 1 green; 2 green, 14 red, 19 blue; 2 blue, 1 red; 13 blue, 8 red; 3 blue, 15 red +Game 34: 3 blue, 4 red, 1 green; 7 green, 2 blue; 17 green, 1 red; 7 green, 3 blue; 2 red, 1 green; 2 blue, 1 green, 2 red +Game 35: 5 red, 2 green, 4 blue; 5 blue; 2 blue, 4 green, 4 red; 8 green, 1 blue, 5 red; 3 green, 3 blue, 5 red +Game 36: 4 blue, 4 red, 4 green; 8 red, 8 blue, 4 green; 3 green, 9 red, 5 blue; 1 red, 4 green, 13 blue; 7 blue, 9 green, 9 red; 13 blue, 8 red +Game 37: 6 green, 10 red, 5 blue; 5 red, 9 green, 2 blue; 4 red, 4 blue, 1 green; 12 green, 3 red, 2 blue; 4 red, 11 green, 1 blue +Game 38: 3 red; 1 blue, 3 red; 2 red, 2 green; 2 blue, 3 green; 4 green, 2 blue, 2 red; 3 red, 2 blue +Game 39: 6 red, 4 blue, 9 green; 17 blue, 2 green, 3 red; 5 red, 15 green, 12 blue; 3 red, 5 green, 8 blue +Game 40: 20 red, 10 blue, 8 green; 7 red, 3 green, 10 blue; 14 green, 8 blue, 14 red; 4 red, 9 blue, 8 green; 11 red, 4 blue, 8 green +Game 41: 2 blue; 4 red, 2 blue, 2 green; 5 green, 9 red, 3 blue; 8 red, 4 green +Game 42: 3 red, 13 blue; 2 blue, 1 green; 6 green, 16 blue, 10 red +Game 43: 9 red, 1 green; 1 green, 7 blue, 8 red; 8 blue, 2 green, 5 red +Game 44: 15 blue, 5 green; 5 green, 1 red, 6 blue; 1 red, 4 blue +Game 45: 3 green; 2 blue, 1 green; 4 green, 4 blue; 1 red, 5 blue, 11 green +Game 46: 20 green, 10 blue, 10 red; 4 red, 13 green, 1 blue; 2 red, 2 green, 10 blue +Game 47: 5 blue, 2 red, 3 green; 5 blue, 2 red, 1 green; 2 green, 3 red, 5 blue; 1 red, 4 green, 4 blue; 2 blue +Game 48: 2 red, 10 blue, 1 green; 6 blue, 6 green, 6 red; 11 blue, 7 red, 5 green; 1 red, 6 green, 14 blue; 1 green, 9 blue, 3 red +Game 49: 3 blue, 16 green, 6 red; 14 red, 3 green, 5 blue; 12 green, 6 red, 4 blue; 4 red, 6 blue, 15 green; 6 green, 11 blue, 9 red +Game 50: 1 green, 7 red, 2 blue; 3 green, 2 blue, 5 red; 4 red, 2 blue, 4 green +Game 51: 3 green, 7 red; 2 red, 4 green, 2 blue; 10 green, 3 blue, 6 red; 1 blue, 11 green; 1 green, 3 blue; 2 blue, 7 green +Game 52: 2 green, 1 blue, 2 red; 7 red, 3 green; 2 blue, 8 green; 1 blue, 13 green, 6 red +Game 53: 7 red, 2 green; 1 blue, 16 red, 7 green; 12 red, 7 green; 1 blue, 11 red, 5 green +Game 54: 1 green, 1 blue, 16 red; 4 blue, 1 green, 6 red; 4 red, 1 blue, 3 green; 1 green, 4 red, 4 blue; 1 red, 2 green +Game 55: 2 blue, 2 green, 5 red; 1 blue, 4 red, 5 green; 2 blue, 2 green, 6 red; 2 blue, 5 red, 6 green; 6 green, 1 red +Game 56: 3 red, 14 green, 14 blue; 7 green, 14 red, 13 blue; 12 red, 13 blue, 6 green +Game 57: 6 red, 11 green, 5 blue; 6 blue, 2 green, 4 red; 4 red, 6 green; 4 green, 1 red, 2 blue; 1 green, 5 blue +Game 58: 8 red, 6 green, 10 blue; 8 blue, 9 red; 1 red, 12 blue, 1 green; 5 green, 3 blue, 8 red; 9 blue, 2 green, 4 red +Game 59: 11 green, 1 red; 5 red, 10 blue, 12 green; 6 red, 6 blue, 2 green; 1 blue, 10 green, 4 red; 8 green, 11 blue; 6 blue, 1 red, 11 green +Game 60: 16 green, 14 red, 1 blue; 2 blue, 8 green; 14 green; 1 green, 11 red, 2 blue; 1 blue, 11 green +Game 61: 11 blue, 3 green, 1 red; 9 red, 18 green; 7 red, 15 green, 5 blue; 19 blue, 2 green +Game 62: 2 green, 2 blue; 1 green, 3 red; 1 blue, 4 red, 8 green; 2 blue, 11 green; 5 red, 9 green; 7 green, 1 blue, 8 red +Game 63: 14 blue, 6 red, 5 green; 3 blue, 10 red; 8 blue, 1 green, 8 red; 9 blue, 14 red, 4 green +Game 64: 8 blue, 3 green, 1 red; 1 green, 13 blue; 4 green, 15 blue, 1 red; 9 blue, 3 green +Game 65: 5 red, 5 green, 3 blue; 7 red, 2 blue, 1 green; 2 blue, 7 red, 2 green; 6 green, 12 red, 2 blue +Game 66: 9 blue, 1 green, 1 red; 8 blue, 2 red, 2 green; 1 red, 1 green; 2 green, 1 red, 5 blue; 14 blue, 2 red; 2 red, 13 blue, 2 green +Game 67: 7 green, 2 blue, 3 red; 16 red, 15 blue, 4 green; 6 green, 3 blue, 1 red; 1 red, 5 green, 9 blue +Game 68: 11 blue, 4 red; 6 red, 1 blue; 1 green, 8 red, 11 blue; 10 blue, 7 red; 7 blue, 2 red; 9 blue, 1 green, 11 red +Game 69: 9 red, 8 green, 6 blue; 2 blue, 3 red; 4 green, 9 blue, 9 red; 3 blue, 5 green, 5 red; 1 green, 7 red, 5 blue; 1 blue, 3 green, 9 red +Game 70: 5 blue, 1 green, 3 red; 1 red, 5 green, 3 blue; 4 green, 3 blue; 2 green, 8 blue; 10 blue, 12 green +Game 71: 1 green, 5 blue, 14 red; 6 red, 2 green, 5 blue; 7 blue, 5 green, 2 red; 2 green, 2 red, 1 blue; 6 red, 5 green; 6 red +Game 72: 12 red, 6 green; 11 red, 2 green; 3 green, 1 red; 14 red, 5 green, 1 blue +Game 73: 3 green, 3 red; 4 green, 4 red, 5 blue; 2 red, 5 blue, 2 green; 4 green, 8 red, 6 blue +Game 74: 12 red, 1 blue; 3 blue, 17 red, 1 green; 5 red, 1 blue +Game 75: 14 green, 1 red; 3 green, 5 red, 16 blue; 10 blue, 20 green, 5 red +Game 76: 4 green, 9 blue, 12 red; 4 blue, 6 red, 3 green; 10 red, 8 green, 1 blue; 9 red, 6 green, 1 blue; 8 blue, 1 green, 6 red; 8 blue, 3 red +Game 77: 7 red, 12 blue, 10 green; 12 green; 8 red, 8 blue, 4 green; 11 green, 9 red, 9 blue +Game 78: 9 green, 14 blue, 16 red; 7 blue, 8 green, 1 red; 5 green, 13 red, 7 blue; 9 green, 6 red +Game 79: 2 red, 3 blue, 8 green; 1 green; 1 blue, 2 green, 1 red; 1 green; 4 blue, 2 green, 1 red +Game 80: 8 red, 3 blue, 10 green; 12 red; 13 red, 4 green, 6 blue; 2 red, 14 blue, 9 green; 13 blue, 1 red, 5 green; 13 blue, 9 red, 2 green +Game 81: 2 green, 4 blue, 9 red; 1 red, 6 blue, 14 green; 4 green, 1 blue, 5 red; 3 blue, 8 red, 9 green; 6 blue, 5 green, 11 red +Game 82: 6 blue, 6 red, 13 green; 5 blue, 4 green, 7 red; 1 green, 1 blue, 2 red +Game 83: 2 red, 8 green; 7 red, 7 green; 11 red, 6 green; 14 red, 2 green, 2 blue; 2 green, 1 blue; 8 green, 11 red, 2 blue +Game 84: 3 blue, 4 green, 9 red; 7 blue, 13 green, 17 red; 14 blue, 16 green, 14 red; 7 blue, 16 green, 3 red; 9 red, 2 blue, 14 green; 13 blue, 3 green, 7 red +Game 85: 1 green, 6 red, 2 blue; 1 blue, 8 green, 5 red; 11 green, 1 red +Game 86: 2 green, 6 blue, 2 red; 4 green, 3 blue, 3 red; 3 blue, 5 green, 8 red; 1 red; 9 red, 4 blue, 2 green; 4 green, 8 blue, 9 red +Game 87: 1 red, 3 blue, 2 green; 14 red, 8 blue, 2 green; 9 blue, 13 red, 5 green; 5 green, 2 blue; 1 green, 10 blue, 14 red; 6 blue, 12 red, 15 green +Game 88: 3 red, 7 green, 1 blue; 2 blue, 4 red, 4 green; 13 green, 3 red, 4 blue +Game 89: 2 red, 14 green, 1 blue; 6 green, 2 red; 8 red, 8 green; 1 blue; 4 red, 1 blue, 15 green; 1 blue, 1 green, 8 red +Game 90: 4 red, 4 blue; 9 red, 7 blue, 2 green; 9 blue, 8 red; 3 red, 1 blue; 15 blue, 9 red; 4 red, 4 blue, 2 green +Game 91: 14 green, 4 red; 10 red, 13 green, 5 blue; 1 green, 7 red, 20 blue +Game 92: 10 green, 7 blue; 12 green, 4 blue; 12 green, 4 red +Game 93: 1 blue, 6 red; 2 blue, 10 red, 2 green; 2 green, 2 blue; 4 red, 2 blue; 4 red, 3 green +Game 94: 2 red, 1 blue; 7 red, 1 green, 1 blue; 1 blue, 5 red; 1 green, 10 red +Game 95: 1 red, 10 blue; 6 red, 4 blue; 2 blue, 4 red; 1 red, 2 green, 7 blue; 1 red, 6 blue +Game 96: 1 green, 16 blue, 1 red; 7 red, 10 blue, 1 green; 18 blue, 12 red +Game 97: 5 blue, 3 red, 8 green; 7 red, 14 green, 1 blue; 11 green +Game 98: 1 green, 12 blue, 7 red; 6 red, 7 blue, 1 green; 5 red, 11 blue, 1 green; 2 green, 8 red, 8 blue +Game 99: 11 red, 7 blue, 15 green; 3 red, 11 green, 5 blue; 19 green, 5 red, 1 blue; 7 green, 4 red +Game 100: 10 red; 11 blue, 12 red; 1 green, 7 blue, 6 red diff --git a/2023/day02/test b/2023/day02/test new file mode 100644 index 0000000..295c36d --- /dev/null +++ b/2023/day02/test @@ -0,0 +1,5 @@ +Game 1: 3 blue, 4 red; 1 red, 2 green, 6 blue; 2 green +Game 2: 1 blue, 2 green; 3 green, 4 blue, 1 red; 1 green, 1 blue +Game 3: 8 green, 6 blue, 20 red; 5 blue, 4 red, 13 green; 5 green, 1 red +Game 4: 1 green, 3 red, 6 blue; 3 green, 6 red; 3 green, 15 blue, 14 red +Game 5: 6 red, 1 blue, 3 green; 2 blue, 1 red, 2 green diff --git a/2023/day03/day03.bqn b/2023/day03/day03.bqn new file mode 100644 index 0000000..3318440 --- /dev/null +++ b/2023/day03/day03.bqn @@ -0,0 +1,12 @@ +digits←'0'+↕10 +n‿m←≢input←>•FLines"input" + +sympos←⍉>m(⌊∘÷˜⋈|)/⥊¬input∊digits∾'.' +digpos←(0≠≠)¨⊸/ <˘¨{+`1⊸<|+´˘+`⁼𝕩}⊸⊔ ⍉>m(⌊∘÷˜⋈|)/⥊input∊digits +near←{∨´⥊1⊸=⌈´¨|¨(<˘sympos)-⌜𝕩}¨digpos +nums←•ParseFloat¨⊑⟜input¨digpos +•Show +´near/nums + +gearpos←<˘⍉>m(⌊∘÷˜⋈|)/⥊input='*' +nearnums←{(1=⌈´¨⌊´¨|¨¨𝕩⊸-¨¨digpos)/nums}¨gearpos +•Show +´×´¨(2=≠)¨⊸/nearnums diff --git a/2023/day03/input b/2023/day03/input new file mode 100644 index 0000000..f16d6e0 --- /dev/null +++ b/2023/day03/input @@ -0,0 +1,140 @@ +.....180.........230..........................218.....189......415.......................322....507..................206..............111... +........*.602.........571-.......................*...*.............199.....$.........181.......*......980....292............................ +..509.923.=....................+......835*......608.984..............-.801..922.156...*.........533.....$.......*678.......&................ +...*............273..........307..........393................@..........*.......*...231..................................106.339............ +.906..............*.350..........................322...938..582.372....160...................411........197.........42.................$81.. +...............944.....*......473........80*..............#.....*............340.......107....*...........&..................893............ +...........937........32........./..12......199.......440......32.785..........*......*.....50......198......37.....710.......$..740.691+... +....304....*...870.......*787.........@..$......462.............................264....420........#..........*........*...........*......... +...&......395...*.....545...............539..............................491.......................318.=410...10.....16.....364..188.=891... +......../.....423.337......42....430........554................614.90.......*702....*587......$................................*............ +...269.267..........*......*.....*............*........%.930.....*......864......675........133...-.......707...318.908...629.776........... +.....*......884......345...979..780..917.....942.....875........826......................*......28...254..&.......*...=..................... +...270...95*...........................*....................289...................307..431..............*.....%.........................611. +.....................+.............890.970..+...........235......*...........@...............405.........817...242./991...........*......... +..............137...63....../......*.......478.255.739.....*.....584......399..367..........#....51........................403.908.175...... +761....582...=.............740..143.....*.........*.........722......151......*.........-.....................23......476....*.............. +....49...*............444.............537......*......791....................37...212...60.444....-728.+......*...778..*...31.....895.@534.. +......*...108....942....*......463...........39.616.........40.........*...........*........*...........446...........268........*.......... +..50#.625...........+..838........*.....................105*....250..409......+......425....101.914.............................876.+386.... +..............116..............848..111.......14..................&..........816.......*........*..........548...........*....@............. +................./........#........*.........@...58......................181..........792....565..750...........767....%..81..525......770.. +716......439.498...........942....719..................697@...............*.....&688...............*..421........&..847................&.... +...*261.....*.......*.................=..........................5.....800................-......471..%......753...............880.../...... +.................289.715............832........120...=............&...........*126.........258..............*.........300.......*...909..... +.676.........432................757.................309..............311...903..................422.......335..38......*.....521............ +..../..742...*..............#....*.......574..198.*......852..............................751...-.....531.......&.......849.........449..... +........*....116......../.839..712............*...402......*.....865.894.........964.................../..*........288...................... +......568........295.547....................471.........................*.......*........640*......457...193..599*....*.......137.......888. +..................@..........345.189...849.........181...........879.....339.730...32........734...*..............793.289....*....&....#.... +........%854....*.....*976......*........*.872....*.................%.............*......167.......2......................747......814...... +.454............322.........*.........930........696..28........9.....................-..................890...17*.......................... +...........912.......133&...87.....*.................+.........*............412........473.....781.778.......................*801..676#.867. +.605......*.....................685.345.......545.+.............636.....665*......................*...................19..933............... +....*..678.......844.881*.................667...*.940..52...................................336/..................51...@...........927.455.. +.779..............*......221................/.657.......*..@1....220*....100.....=.................320..............=.................*..... +..........991......198........419.283..................414..................@..833...........334.....&...................567..235&.......... +.............=................*...=..............944........188........61.......................%.........508..130...*.....*........*205.... +.............................357.........$619......*....674*.....*262..&..479...912.421%..74.........261....#..*...68.708.795....695........ +....594....432........521.......................794...........636............*............*...................315........................568 +...%..........*..909.....#..........................*...720........419..603*..256.........386..........150............149.-.........=....... +............492..*...172.........701...109-.176..641......&....235.$...........................915.......=..+636......*....643......515..... +484...695........857.$..../.......*...........+......2..........*.................@..383.........*.254................103......665.......... +.........%..543..........20..@....113....102..........*884.............12.......685...-.........40..*......231............@.........*...219. +.918.......@................633..........*...+901.......................%.................&.........145.................109...538...653.$... +......................668...............845..............=..................611...........30.............20.....166.............$........... +............627.........&........617..................179.............776.....-................&.....823*...98&....*.................203#... +.575..........*.............338..............216.229...........-..304*...........*960..........876.................539...................... +......-284.655.....188......*....=.787..../....*....$.56.+....892.............792..........................-...........37.......546.993..... +...............134..=.....945..392....*...663..639........567.......298...277........665...........702......706.........*..........*.....328 +...#..502..598..-..................611................................*......*...172*........607......#..................................... +425......*....*.....%677...260*214.............#....@759...............260.935...........247*...............779......430............=...84.. +......159...156.......................99.642...42.........825..+720..................&..........+27....@...@.........*........611...240..... +.............................402..798*.../..............-...*.......218..........371..491...........314.......*372....601......*............ +..310.........+263.266...............................721...431.....*.........342....-.............+........211.................397......253. +......................*........60...................................83..........*..................435..........=........................... +............458@.......424........909....241......611..................109..934..476..356...571..............900..495.....57................ +...125...86........356..............=........................653=..402*........*......*....&........540..........*..............126......... +......*.%.......#...*..................82.227..713*868.36...............248...698.....399..............*.......276.564.820...69............. +....458.......294..58......890*1...44...@..................-.83....783....&.................*326..246.981............#...=.....*.........549 +....................................*...............*...677...@..............538*463.....493........*......63.................63..930....... +.......253.................$...916..549...974.......319.............................................451.....*.48..206..996...........*370... +...#..*...............655..15.*..............*616........................................................934....%.@.......+.../827.......... +.292.699....*.....94...........782......492...............21*........+....182....................818........................................ +...........789................................812...759......394......870../....50*351...................690..........*..................... +...............361...141*467......923............*.$.......................................349......*....*.....780...621...619.............. +....11....920..*....................*..........34..............................987.....$....*......143..448.....+........................... +..............777.83....../.616....706...115............503...........................267.....229.................645.....488..839......%... +..........411...........801.#...........*.........298.......20*.......@587...930.................*770.....................@...-........989.. +.....672+.............*...........887.307.....922*.............315..............$.........878*.........261.......317.............624........ +..........640......411.25...$981...................37...357..........#984..684@...............310......*...&.....*..................#....... +...........*............................/.%............%.......541.........................=.........812....67.902....956.....-.........824. +285*118.606....274.......272*956..498.825.244...754./.............*..717......./............798..........................*....841..999..=... +................../................*..............*.5............566...*....830..................286.........683/......967.........+........ +...........................=....761.............458.....125&............88..........217.411/.879*................................/...418.... +982......47..............167............*100..%...................%818...............*......................805&..%.....934...896.......*... +.....987.....525...................@.911.......802............120...........808.......164................./........212.*...............720.. +.....*.........%..730.5*330......47....................752....*......520/..../...............964.......166.............392.................. +....260...........*......................473....163.....*..875..........................760..................532.............*.....&827..... +...............211.......*........&..299..&..%....%.80.30........560.............326...........834*148..411......572......304.716........... +628........+.......119..7.854....936..*......128...........38.=....*.....281......&...............................*...................753... +....109..116......*..................98................269.=...327..910.....*823............773.....+..%237........411.....*803...175*...... +.....*............727.............................................................109....*.....$.897....................................779. +...406.................#3.......%......454....109.........823.........................877.774.........298....+..........@..678.............. +............962............*.428........*....................*.........752..............................$.380.........687../.........963*649 +......323...*.....+286..914........834....893..124...494......785.......*.....806.................179.............85........................ +.......&...778./...................*.......*......*..%....866............500..&...327....970..........821.................+.863.......-663.. +..829..........626............569...164....197.401.......*..................................*.....784.../..224......117.22..*.....24........ +.....*.994..............................................609.&467............870..............811...............$....*.......386............. +..207..*........816....................#..141......587...........*......218...+......536=......................337..927..85......194....802. +......846......%.....+...............336......................846.398.....*..........................144.................*.........*....+... +.160..............258......517...943...........128......33..............151..272.......124../...427....*............648.451....242..498..... +......779.879................*.....*...%.........*........@...................*.........../.969....*..143............*............*......... +.........*....354.417.......112.......409.........681........=....117.......241.$....#..........240........698.508.32....958*339.356........ +..915...........*........$...................194........48....600..*.............326.590.....................*.............................. +.....*250..781.503.....94........+877........*......88.....69.......693....757........................61..362......@...871.@................ +..........................................349..405....*539.#....855.......*............+902.......898.*...........121...=..541......959..... +......541....712...927&.*370...339...............&..............*.......297........................+..571.881.......................*...260. +.....*....#...........................392...........884.935..710............=......%./........................332.944.............575..*.... +..246....99............316..970...71..$.......606.......@........339...#..#..181.343.693.........542...729=........*..................357... +...............781....&.......#.....*.........../.................#..172.761......................*................360...93&................ +251.............*..................980....368-...............977@.................489............729....537..........................41..... +.................235.....631........................+....=...................818.........755............/..................$855.....*....... +.............*...................250....708.623..380...890...........51..........598........*..............557..........*.......1.656....360 +..749.........368.............@....+......*......................660....862.866$...@./634.757..745........*.......209....652............*... +.......379..#...............577........835.............312*913.....*......*.......................*......872..747........................168 +........#....346.329.........................852.=9..............%.....972...-...............604..198.67...........711.............247@..... +..................*....&.........@5.....*....../........*467......839......159........&..941............-..........*........................ +....195.......711...509.....298@.......633.......936..=........*......990......903..833.*.....................&...72....=.....614........... +613....*.....*......................................*..236..594.......&..................851.............760.850.........980........*980.... +......9.....130......549...549...................895.......................=....................840.....@........................989........ +....................*..................750...842.....27.804..@............950.....682.....586../.............166..481.......461............. +.......881.....189..954.....513...45..@......*...........*...279...438.............*.........+...........740....&...+........*.............. +.568......@.............153...=...............690.......174.........../.............122..............867.=............451.906........324.... +...............&........*...&..........730........987.......................%.......................@.........*190...*...........672....%... +................109...183..493.841@.......*...984*.......................857....39....635*653..519.........144.......896.$.......*...$...... +.........990...........................340..............+134...741...*...........%................=.....74................498....145..485... +.../227....*.-.............990.............963.891..............=..553.....348.............965*.....$..*................#................... +........641...100..*.............866.........$..*.......451*531.........-...*...185............762...4..178..690%........481.$....589..@216. +....................65.164*697......*977.......96.......................184.514....*591......................................506....*....... +...........334..................773.................226..253.511............................761..........607.....*532....909.....415........ +..548..668....*843.....23.824%..*....71.....411......../..*....#......656....................@.......=...*....452.......*..............+.... +.........@.=....................719.....804.*............653......................698....296.........613.29............749...........197.... +..705-......214....428#....633@...........*...................642....%986............*....*................................779...484........ +...................................228..........605...%237......*..................666..906.................296........736..%.....*......... +.............593%.38...........129.*...............*...........474.....487.269@....................681.862....*.......@........517.......... +........539.......&..781.......*............895.876..336*794...........*............................*....*....621....................145.... +...815...*............$....484.54............*..........................953....564.......246.513...601...488......................&......... +...*......776................&............840.....................974.............*471......*...................250....*....106#.548........ +437..............@.............#979............752%.798......97....#......*726.....................990*155.778.....*.78..................... +................358.+706.....................*......*..................621..................&................-...757...................456.. +.....132....................44.....368....637.......209..............................464.242.......376..................492....=439.....#... +......%...592........48*....-.....+......................897.799..108*...........432...&..............*472.261............@................. +.........*.....$487.....471............236...944=..407......*.........337.........-...........................................270.....265... +....$.....988...........................*...........*.....................713..................910..680..297*549......518.....&...727*...... +.....267.......634......202....../.....726.285..76...408..864.....377.....&................*..*........*.........289.*.....-................ +..............*..........*......782..........................@......*................460.172..768.......934......=....119.921..........$.... +........315.850......850.3..........322..439.....................784...........612.....*............................+.........310.813...819. +.........*.............+.............*....*....457.......371.829.....215.......*......117...757...727$.....538......561.730..*.............. +......231......%....................604.725......*.=710.=.............*....974.329..............*.........*....747..........600............. +..............688...869.........15............222.....................366....................120.10....539........................934.97.... diff --git a/2023/day03/test b/2023/day03/test new file mode 100644 index 0000000..b20187f --- /dev/null +++ b/2023/day03/test @@ -0,0 +1,10 @@ +467..114.. +...*...... +..35..633. +......#... +617*...... +.....+.58. +..592..... +......755. +...$.*.... +.664.598.. diff --git a/2023/day04/day04.bqn b/2023/day04/day04.bqn new file mode 100644 index 0000000..5afcb9e --- /dev/null +++ b/2023/day04/day04.bqn @@ -0,0 +1,11 @@ +⟨Split⟩←•Import"../bqn-libs/strings.bqn" + +ParseCard←{⌽•ParseFloat¨¨ (0<≠)¨⊸/¨ " "⊸Split¨ " | "Split ⊑⌽": "Split 𝕩} +n←≢cards←ParseCard¨•FLines"input" + +MatchingNums←≠(∊/⊣)´ +Score←⌊2⋆¯1+MatchingNums +•Show +´Score¨cards + +copies←n∾MatchingNums¨cards +•Show +´⌈´ (⥊⟜0¨↕1+n)∾¨ {(1↓𝕨)+𝕩×⊑𝕨}` (⌽↕1+n)↑¨ ⥊⟜1¨copies diff --git a/2023/day04/input b/2023/day04/input new file mode 100644 index 0000000..5096f27 --- /dev/null +++ b/2023/day04/input @@ -0,0 +1,201 @@ +Card 1: 30 48 49 69 1 86 94 68 12 85 | 86 57 89 8 81 85 82 68 1 22 90 2 74 12 30 45 69 92 62 4 94 48 47 64 49 +Card 2: 57 32 92 73 76 62 11 19 61 90 | 19 82 53 87 57 80 69 76 90 56 11 61 30 92 73 99 4 32 33 64 34 62 27 78 65 +Card 3: 6 56 40 1 47 26 25 87 4 2 | 12 26 32 25 8 4 41 54 69 99 2 45 70 6 59 23 47 7 49 17 1 56 92 87 40 +Card 4: 26 49 44 82 25 43 47 74 97 13 | 76 62 13 82 55 26 93 84 83 19 47 22 49 44 25 43 7 18 9 45 97 15 90 85 74 +Card 5: 88 58 96 80 56 16 55 13 3 40 | 20 57 23 71 76 43 36 72 52 18 60 28 80 84 64 75 93 46 19 69 25 31 58 45 47 +Card 6: 89 88 34 62 60 41 15 42 57 58 | 58 49 82 42 70 78 72 57 77 47 62 89 30 60 96 98 54 66 25 14 6 34 15 41 88 +Card 7: 97 73 29 26 91 16 66 64 70 23 | 3 12 61 11 70 59 71 1 26 44 14 64 63 93 20 17 89 16 43 96 52 92 46 97 85 +Card 8: 9 33 46 87 34 97 71 30 5 43 | 21 64 8 43 77 9 20 46 10 19 53 33 71 56 39 87 34 50 72 91 30 89 13 5 97 +Card 9: 72 41 12 58 8 56 11 82 22 66 | 27 97 48 14 77 37 33 91 85 39 75 42 58 2 52 9 70 45 72 62 5 21 23 60 99 +Card 10: 3 46 56 2 58 4 92 80 86 52 | 15 56 91 57 61 8 87 34 51 3 23 41 96 45 48 49 43 25 26 9 58 50 52 38 12 +Card 11: 76 94 4 55 97 8 22 99 80 70 | 64 75 23 49 42 1 66 54 85 29 28 94 22 93 4 69 72 62 41 2 86 83 97 34 82 +Card 12: 65 91 7 24 80 20 46 29 58 57 | 51 59 52 63 28 44 62 35 46 49 24 14 58 91 65 78 84 20 43 32 23 15 29 13 22 +Card 13: 98 94 55 43 83 72 19 46 45 22 | 55 67 59 91 46 37 24 52 98 4 72 22 44 94 88 43 27 7 75 13 45 82 15 65 19 +Card 14: 92 51 81 6 5 91 73 9 80 94 | 56 72 71 32 92 98 15 2 10 91 62 1 51 74 69 89 33 96 39 97 21 86 65 52 83 +Card 15: 84 40 87 91 3 61 20 73 2 37 | 77 3 37 81 20 9 51 2 87 73 53 66 26 36 69 99 83 96 88 5 91 18 40 57 80 +Card 16: 97 63 52 67 86 87 91 25 69 43 | 68 67 75 3 85 10 88 99 52 43 95 92 80 87 11 13 96 58 1 17 74 20 36 93 77 +Card 17: 28 90 77 78 52 7 94 13 6 88 | 11 69 49 56 59 14 7 24 53 21 67 2 17 8 47 66 48 30 79 43 86 64 46 28 23 +Card 18: 50 22 25 69 54 4 37 14 49 75 | 82 84 78 88 87 15 80 1 11 91 89 93 25 98 74 42 6 59 23 58 13 46 49 32 95 +Card 19: 96 56 86 38 29 43 69 66 26 46 | 80 13 90 30 41 86 44 95 71 23 40 75 33 14 56 59 89 18 92 79 15 4 84 68 82 +Card 20: 95 26 31 69 63 25 56 87 74 48 | 88 16 42 22 30 14 71 62 35 87 99 3 96 54 41 83 40 29 79 20 50 24 53 10 66 +Card 21: 75 76 94 26 24 56 34 35 93 87 | 42 23 71 55 44 79 12 4 78 32 82 53 40 35 43 50 9 65 29 57 93 86 7 67 19 +Card 22: 53 58 25 33 42 98 94 95 97 22 | 44 91 40 1 88 31 61 6 54 52 47 93 3 99 27 59 15 53 56 39 66 43 51 41 48 +Card 23: 34 95 33 45 56 37 30 94 76 67 | 9 1 72 68 51 66 36 24 21 92 35 50 62 86 90 49 82 46 15 4 70 40 75 64 73 +Card 24: 73 93 49 22 86 18 31 87 3 2 | 27 42 46 97 49 31 47 25 93 74 9 60 44 87 15 63 18 2 73 89 3 62 86 65 22 +Card 25: 36 24 95 21 31 7 56 93 82 17 | 82 36 23 54 66 83 95 31 65 16 17 86 7 21 61 24 55 56 13 53 59 64 96 39 32 +Card 26: 16 89 92 12 40 17 3 80 20 21 | 37 72 26 9 79 55 74 2 92 59 17 35 71 94 98 31 58 3 32 51 21 88 40 96 57 +Card 27: 70 19 81 48 62 26 45 86 65 41 | 63 38 71 43 50 42 25 14 18 54 66 96 29 36 95 73 20 76 16 6 58 78 56 87 91 +Card 28: 61 66 57 75 52 20 41 21 24 14 | 83 51 77 14 66 91 75 3 47 20 18 65 76 52 5 11 72 57 10 36 30 92 73 28 19 +Card 29: 94 39 68 79 28 70 81 97 59 48 | 46 4 41 39 38 75 18 76 45 31 79 97 91 64 71 85 63 55 8 94 67 59 36 74 49 +Card 30: 90 45 15 47 1 24 99 62 69 55 | 42 5 1 37 77 71 66 57 94 18 26 47 46 27 48 80 24 95 30 15 53 90 38 99 69 +Card 31: 53 16 59 23 78 95 38 17 40 7 | 86 20 7 98 44 19 73 36 40 4 58 16 94 2 83 32 6 78 57 13 35 30 87 51 5 +Card 32: 64 79 78 6 24 15 44 45 82 33 | 34 18 80 94 54 59 14 23 77 25 73 81 26 62 17 45 37 82 67 24 98 78 85 43 13 +Card 33: 91 97 83 95 89 32 86 94 96 19 | 93 39 57 58 41 62 1 80 33 2 24 51 27 25 6 10 78 76 63 65 38 79 61 98 90 +Card 34: 41 84 69 81 95 71 7 80 65 55 | 88 17 73 3 54 66 68 8 76 84 36 79 55 47 58 91 37 53 57 46 93 71 83 42 12 +Card 35: 51 67 16 48 34 86 59 74 98 65 | 14 75 23 98 48 83 11 35 18 93 68 50 85 31 40 82 27 92 55 63 64 37 76 2 33 +Card 36: 26 80 18 67 87 93 79 1 59 61 | 83 51 97 34 70 90 49 44 39 95 92 38 55 9 65 96 94 82 61 1 20 46 50 63 6 +Card 37: 71 13 91 66 24 3 1 41 27 75 | 12 38 45 5 80 11 8 59 90 64 85 49 52 56 35 96 7 20 53 39 44 22 76 57 66 +Card 38: 21 56 2 42 51 28 37 38 95 12 | 3 84 55 81 91 6 90 14 68 93 64 33 78 7 4 60 18 54 11 29 26 19 75 72 52 +Card 39: 1 40 97 60 90 47 74 41 7 58 | 43 8 47 72 7 78 41 96 5 37 98 97 58 89 23 65 74 1 92 90 28 16 60 40 67 +Card 40: 75 99 14 36 64 42 30 8 52 97 | 64 89 36 80 99 30 57 40 35 75 53 97 52 38 68 1 74 42 14 60 49 79 8 72 20 +Card 41: 26 38 87 47 39 62 56 2 49 51 | 25 45 87 63 24 2 39 51 54 56 70 62 77 57 68 49 31 34 26 72 42 38 47 94 29 +Card 42: 26 69 10 47 89 27 43 62 97 50 | 62 79 50 69 2 97 68 87 27 5 67 18 64 26 10 25 91 4 7 43 70 14 1 54 89 +Card 43: 92 16 95 21 15 77 27 88 76 63 | 92 77 78 1 58 96 8 31 63 16 14 2 54 88 15 52 73 76 21 27 84 71 25 95 72 +Card 44: 27 31 64 16 96 95 74 57 59 53 | 75 20 48 11 18 44 3 45 79 98 12 54 30 60 32 15 13 72 21 87 85 52 70 33 35 +Card 45: 62 31 89 91 85 83 93 11 26 23 | 53 55 71 62 14 65 8 21 96 57 17 91 51 82 86 47 64 80 3 69 56 90 85 32 70 +Card 46: 52 67 93 77 39 13 55 63 68 78 | 19 96 76 50 11 61 72 81 64 10 84 22 83 37 3 58 80 48 57 18 59 62 92 4 9 +Card 47: 31 14 25 56 83 48 53 64 39 77 | 48 34 27 16 5 55 77 42 17 6 24 49 37 92 51 8 97 52 41 11 31 80 47 87 38 +Card 48: 69 65 89 40 1 31 64 50 48 38 | 44 75 74 58 13 56 50 80 22 89 47 95 8 53 31 38 48 64 72 39 1 52 43 17 65 +Card 49: 30 49 86 87 78 96 73 44 21 90 | 14 39 75 49 96 63 56 73 64 81 93 98 99 1 13 65 54 88 61 83 44 30 45 15 67 +Card 50: 61 79 65 67 77 58 21 37 90 48 | 81 79 62 51 21 85 61 90 92 47 29 23 80 7 98 40 59 87 18 77 48 6 99 88 1 +Card 51: 9 45 35 38 92 47 27 61 91 67 | 75 86 50 74 41 92 59 71 52 91 97 73 96 4 19 87 69 76 98 21 90 37 32 14 77 +Card 52: 82 80 79 33 18 70 52 73 38 39 | 21 82 95 25 66 89 75 85 84 39 47 28 49 45 79 17 56 10 29 52 44 77 70 32 65 +Card 53: 2 47 76 33 17 62 13 70 9 31 | 84 2 31 47 13 97 4 3 33 21 17 8 62 10 19 78 41 70 43 98 79 59 95 29 99 +Card 54: 50 10 89 77 41 82 43 84 30 7 | 28 49 35 76 9 23 65 71 60 36 32 15 3 61 95 10 24 77 17 97 48 62 88 51 68 +Card 55: 98 86 8 43 54 59 11 7 63 42 | 24 98 1 58 51 68 2 56 8 54 29 25 66 17 59 86 30 48 43 60 5 55 18 44 28 +Card 56: 88 38 8 43 91 12 69 45 71 20 | 11 34 1 95 77 19 39 40 33 5 80 51 75 94 84 23 82 8 86 62 74 89 96 22 66 +Card 57: 95 38 81 99 57 68 60 55 39 18 | 34 38 45 7 63 12 97 35 44 17 57 58 92 41 89 30 39 47 66 10 82 52 68 55 98 +Card 58: 34 72 18 15 20 1 28 89 7 35 | 14 22 61 36 84 26 55 62 32 53 44 51 46 17 6 54 85 35 95 40 10 92 42 19 83 +Card 59: 58 43 86 3 73 17 24 49 29 5 | 87 93 56 60 35 48 86 8 7 16 67 89 73 43 69 31 88 23 50 59 45 84 61 26 65 +Card 60: 4 74 59 28 17 23 67 48 82 20 | 76 91 88 47 84 2 14 61 56 11 58 34 24 99 75 66 33 96 92 94 64 73 72 45 7 +Card 61: 24 40 2 95 58 17 28 43 4 8 | 97 77 49 15 51 41 70 80 6 74 11 68 38 5 8 64 81 30 89 72 63 52 39 7 82 +Card 62: 79 22 90 64 37 95 4 87 30 38 | 73 25 91 13 83 45 77 53 88 63 43 92 78 34 32 58 24 40 50 61 55 41 2 67 14 +Card 63: 70 13 43 35 58 84 44 51 65 73 | 43 3 48 51 69 70 31 98 19 15 91 61 55 39 41 58 44 65 35 13 25 73 9 50 56 +Card 64: 85 64 44 45 31 95 3 16 19 74 | 53 13 9 89 83 58 47 90 77 59 98 99 74 91 52 15 61 80 75 88 54 23 24 8 29 +Card 65: 70 33 34 72 80 56 7 95 71 32 | 16 32 56 34 73 31 45 29 71 33 98 72 97 19 39 94 91 90 70 75 40 7 95 80 96 +Card 66: 29 30 35 39 52 17 25 1 62 79 | 83 2 69 13 36 76 59 50 90 64 30 37 48 75 95 25 26 60 7 29 86 42 8 22 11 +Card 67: 51 59 72 52 60 74 20 68 90 40 | 51 34 8 2 67 46 47 10 9 43 61 56 28 74 73 60 81 25 87 4 17 84 65 42 32 +Card 68: 36 3 98 39 7 74 66 85 81 14 | 7 78 14 74 85 97 55 62 66 98 28 94 39 81 42 6 24 36 60 50 75 87 3 9 18 +Card 69: 72 99 53 87 83 54 58 32 79 26 | 54 70 5 34 1 79 26 99 90 11 77 13 98 83 15 58 40 96 91 12 32 53 87 72 43 +Card 70: 72 26 89 44 9 7 14 95 46 51 | 45 44 91 3 71 77 82 56 2 6 24 20 49 75 60 22 58 80 42 68 32 54 76 29 79 +Card 71: 56 75 58 97 4 95 16 23 7 71 | 63 96 40 64 42 38 65 48 78 35 5 24 20 41 70 89 45 17 49 21 10 44 92 60 51 +Card 72: 82 3 37 72 19 78 84 69 43 62 | 95 43 97 82 72 14 70 47 45 26 92 77 67 62 49 22 19 3 37 7 69 78 94 84 6 +Card 73: 63 77 50 12 46 80 13 54 64 24 | 60 50 17 87 1 46 42 13 80 63 82 48 45 35 55 29 30 31 9 24 64 27 77 40 69 +Card 74: 66 73 38 5 89 1 11 10 91 92 | 89 23 28 50 82 63 33 91 72 74 73 66 24 17 42 11 36 94 79 92 4 85 29 57 10 +Card 75: 66 51 34 46 78 27 89 42 52 4 | 87 79 28 18 1 35 81 60 65 76 56 78 42 43 47 45 89 70 4 68 19 63 33 94 86 +Card 76: 35 43 54 87 15 71 30 92 29 24 | 6 76 36 34 50 47 88 29 44 73 68 97 87 24 81 20 94 86 70 90 71 2 15 98 54 +Card 77: 27 77 81 31 53 47 45 71 73 41 | 85 40 63 68 22 10 75 55 62 67 54 49 51 79 17 92 93 21 73 38 37 74 90 23 98 +Card 78: 79 1 93 23 31 48 32 53 64 57 | 52 76 35 68 3 75 22 81 79 51 80 46 88 65 83 44 67 89 31 86 8 98 97 16 30 +Card 79: 72 80 7 74 10 22 12 34 89 97 | 47 62 5 23 17 27 9 21 78 68 66 98 29 39 51 83 24 90 64 10 48 22 97 2 35 +Card 80: 80 94 30 12 28 54 78 34 58 63 | 46 33 86 44 50 94 96 66 57 58 87 65 92 71 32 56 73 90 11 85 21 76 45 27 64 +Card 81: 94 60 72 30 14 3 40 86 69 82 | 74 99 11 55 27 54 70 46 89 24 44 85 6 53 58 15 26 10 20 38 56 63 1 4 12 +Card 82: 88 30 84 71 61 63 20 56 49 89 | 10 87 14 2 9 57 46 27 12 41 78 59 5 55 19 94 7 24 1 25 13 28 42 33 68 +Card 83: 6 35 37 64 9 44 21 42 56 30 | 57 69 83 89 47 74 95 71 81 84 41 45 40 2 1 77 32 75 90 60 62 82 79 22 55 +Card 84: 34 13 4 21 88 26 18 96 38 3 | 16 66 63 9 7 95 28 72 74 41 10 85 30 70 91 69 47 44 33 49 60 46 57 62 36 +Card 85: 94 58 24 74 61 5 49 99 30 54 | 99 11 61 58 25 4 2 55 30 75 62 51 94 22 3 36 54 84 71 9 8 24 70 90 5 +Card 86: 33 82 19 66 52 24 76 34 5 84 | 82 37 63 83 36 22 13 76 84 19 38 6 65 33 66 40 95 52 24 45 5 88 34 89 49 +Card 87: 86 24 92 7 72 28 63 23 12 82 | 9 59 36 56 40 1 76 4 88 10 85 14 17 15 61 29 57 50 98 49 3 41 42 93 22 +Card 88: 23 32 78 34 12 8 89 20 50 29 | 59 24 13 72 14 7 83 37 32 39 90 46 96 49 94 82 43 33 85 92 69 62 57 48 9 +Card 89: 98 48 90 71 56 21 61 86 29 63 | 50 62 2 23 70 44 36 35 57 48 13 64 21 90 93 1 53 5 33 7 29 67 38 61 54 +Card 90: 27 66 35 40 54 68 1 80 42 49 | 97 94 2 1 66 55 15 49 5 75 26 30 20 25 73 79 10 40 57 85 23 43 68 38 14 +Card 91: 52 74 25 22 84 68 76 27 89 13 | 52 75 90 22 73 94 64 72 84 70 74 67 30 2 1 29 54 86 25 58 41 6 43 91 34 +Card 92: 35 83 75 46 37 28 82 54 13 77 | 96 77 46 33 37 59 62 13 28 54 75 86 74 35 47 85 6 80 55 20 36 83 38 82 65 +Card 93: 8 19 27 84 17 42 23 22 78 16 | 76 16 63 78 89 1 27 57 83 34 36 69 42 95 41 44 74 28 79 39 4 92 19 23 7 +Card 94: 90 53 59 26 63 91 50 81 69 85 | 20 78 12 23 31 91 42 36 75 95 19 76 96 49 94 47 63 53 27 88 67 69 85 60 7 +Card 95: 87 25 89 31 63 32 13 80 60 14 | 95 82 78 34 87 13 3 60 88 28 96 59 36 77 14 79 55 35 83 25 73 58 48 63 86 +Card 96: 32 27 21 77 35 9 8 28 97 82 | 53 97 29 81 66 3 17 85 8 35 56 38 26 60 49 9 39 86 28 71 89 88 54 44 27 +Card 97: 2 42 48 43 96 55 51 60 33 89 | 85 3 31 88 98 25 41 81 44 68 4 80 63 17 45 57 89 7 38 76 95 53 49 67 13 +Card 98: 63 57 83 58 23 27 92 21 2 76 | 58 76 95 80 62 56 98 33 59 46 51 23 93 69 96 48 36 53 19 8 45 32 42 2 89 +Card 99: 28 85 31 55 69 73 70 66 11 79 | 22 4 83 55 26 20 29 72 54 12 30 99 66 14 10 17 15 8 88 45 76 69 58 89 75 +Card 100: 99 91 55 84 81 61 94 95 8 25 | 30 15 52 88 27 6 53 41 45 95 66 19 98 86 26 31 54 43 51 9 82 97 57 60 16 +Card 101: 86 47 76 89 85 1 34 35 53 51 | 81 13 69 14 79 68 37 39 63 59 50 15 56 99 92 80 36 43 18 77 65 19 45 91 8 +Card 102: 98 27 49 51 14 77 6 41 97 64 | 60 76 3 79 48 42 29 37 10 24 74 62 11 17 95 73 56 85 28 38 90 63 84 30 94 +Card 103: 75 45 64 88 40 69 96 66 52 28 | 28 12 88 45 60 64 16 96 41 17 82 97 24 75 54 67 92 14 40 85 93 52 31 37 66 +Card 104: 36 69 82 51 81 42 92 95 62 73 | 13 5 65 87 70 36 95 99 9 62 24 55 31 42 51 82 7 34 69 92 14 18 79 81 73 +Card 105: 87 81 71 62 3 41 17 86 88 5 | 98 31 80 39 25 35 47 42 95 14 91 83 65 12 87 96 88 58 5 19 56 1 97 62 48 +Card 106: 31 55 80 86 7 20 37 2 89 4 | 70 20 92 62 38 86 7 93 79 6 48 37 19 21 89 47 25 78 43 46 54 69 63 8 80 +Card 107: 99 85 5 37 34 95 11 12 51 96 | 69 64 67 53 15 81 89 3 2 54 49 98 71 72 1 76 91 8 17 51 23 83 21 86 92 +Card 108: 95 57 98 30 3 83 6 64 52 18 | 59 88 91 78 61 30 52 98 65 68 25 17 13 3 64 89 57 37 83 6 95 36 97 20 18 +Card 109: 97 99 89 96 69 84 62 66 61 83 | 9 31 22 49 96 84 17 61 15 99 39 89 26 4 92 32 97 21 62 56 66 82 69 83 13 +Card 110: 61 93 64 41 91 76 74 21 56 5 | 51 65 17 29 19 45 70 87 40 10 62 20 89 85 53 36 42 37 50 2 74 56 64 46 48 +Card 111: 8 85 35 16 52 31 94 10 29 82 | 70 60 11 6 31 58 10 52 43 35 16 30 94 62 1 29 74 9 4 90 7 59 40 20 85 +Card 112: 96 15 95 19 76 41 77 62 46 89 | 61 35 99 56 60 82 17 16 47 4 67 20 91 79 78 97 40 7 13 43 87 74 34 31 84 +Card 113: 28 83 44 97 18 22 96 49 17 98 | 86 88 11 92 5 54 90 51 38 52 36 13 64 81 45 63 85 15 47 40 18 50 67 39 73 +Card 114: 89 28 69 44 47 58 20 60 25 92 | 97 61 98 4 37 30 68 96 86 6 50 34 71 53 78 57 10 36 35 40 67 33 93 17 75 +Card 115: 20 49 40 31 8 55 28 79 99 22 | 95 87 21 14 62 17 70 81 83 54 96 39 18 35 44 61 23 30 80 89 42 50 7 58 47 +Card 116: 3 75 52 97 60 24 50 13 54 71 | 17 21 1 98 8 79 59 88 97 53 82 28 34 45 93 69 13 85 38 26 7 37 43 5 22 +Card 117: 44 70 59 87 64 20 17 19 68 71 | 6 46 47 79 35 74 78 26 19 99 20 80 31 1 68 3 12 39 59 62 94 25 91 92 88 +Card 118: 65 74 73 48 97 21 1 43 57 29 | 73 25 58 67 56 41 19 20 1 12 99 48 47 96 68 50 88 49 80 10 39 75 11 82 79 +Card 119: 68 40 2 54 25 75 77 14 50 86 | 27 69 39 90 81 15 17 54 63 51 87 52 37 22 7 38 11 8 24 96 42 60 6 99 4 +Card 120: 43 63 34 38 57 39 23 29 16 41 | 90 93 1 72 9 80 94 73 28 65 87 25 78 33 98 66 52 2 36 30 92 54 47 24 12 +Card 121: 92 44 29 97 22 41 73 16 31 65 | 20 51 50 43 30 27 39 40 88 14 57 77 62 90 18 87 26 54 95 48 34 10 93 47 9 +Card 122: 61 12 44 52 4 69 42 1 77 54 | 24 23 11 39 78 52 12 69 73 42 47 43 4 29 37 1 36 77 19 61 95 54 94 44 28 +Card 123: 17 44 12 66 30 19 96 54 34 75 | 24 17 42 90 14 92 84 35 71 12 34 32 99 19 30 98 66 70 54 44 56 96 77 36 75 +Card 124: 99 74 53 87 15 93 58 96 24 44 | 15 58 96 29 49 50 87 93 86 53 12 51 24 44 60 74 19 8 67 99 76 72 45 80 81 +Card 125: 28 95 5 13 21 49 70 33 48 7 | 61 57 3 65 89 13 7 70 1 95 84 33 46 21 28 79 5 9 19 48 4 76 82 86 49 +Card 126: 1 83 21 50 35 3 55 84 38 81 | 61 80 30 26 83 84 38 92 73 21 42 14 1 6 81 15 50 57 55 56 35 63 67 3 93 +Card 127: 37 8 99 82 24 6 62 63 94 29 | 62 8 83 82 24 87 46 55 78 91 31 23 29 16 99 63 54 9 68 48 94 5 37 6 40 +Card 128: 18 47 91 78 74 63 49 42 85 10 | 4 10 82 20 97 3 71 74 62 95 60 9 28 73 47 32 14 18 49 7 83 92 85 53 78 +Card 129: 19 9 11 30 91 83 99 93 46 22 | 38 33 91 85 57 31 15 99 97 54 17 50 71 8 6 29 59 36 75 81 82 67 44 65 25 +Card 130: 62 13 98 39 78 28 63 38 41 6 | 51 99 1 98 81 40 39 63 62 52 25 47 55 13 34 41 38 18 14 73 97 28 6 48 78 +Card 131: 9 69 43 61 65 35 4 59 71 96 | 17 4 65 29 19 48 7 32 69 61 23 15 1 37 9 80 59 47 64 41 35 79 71 43 96 +Card 132: 40 62 73 49 19 51 30 95 92 55 | 77 79 31 51 92 41 49 27 13 40 99 52 68 98 32 26 29 20 60 25 65 72 11 70 19 +Card 133: 7 73 1 68 16 40 10 37 78 91 | 39 9 33 97 98 13 35 38 72 75 82 37 27 32 93 48 87 50 94 5 95 67 46 24 54 +Card 134: 43 78 49 90 73 7 38 95 12 4 | 10 79 30 12 25 39 32 68 95 78 45 40 73 37 70 49 41 46 91 42 23 18 76 15 90 +Card 135: 83 66 13 30 47 75 52 69 17 48 | 76 6 7 1 12 64 89 62 52 59 83 97 33 28 66 20 72 13 84 65 56 73 53 92 30 +Card 136: 63 90 52 1 43 85 83 22 47 57 | 17 44 77 36 79 20 1 65 29 50 6 81 78 76 70 97 90 68 67 34 31 82 88 2 25 +Card 137: 77 25 91 14 87 80 8 90 27 57 | 91 63 29 60 71 57 98 14 52 77 39 96 85 50 76 10 8 27 32 4 23 3 17 62 24 +Card 138: 33 17 89 10 85 90 79 72 13 53 | 30 45 81 89 47 57 32 80 1 82 84 97 16 90 66 4 75 94 29 54 9 78 3 8 93 +Card 139: 57 99 35 94 5 11 86 67 34 96 | 1 79 54 17 20 82 26 32 7 77 44 51 18 3 76 64 9 72 35 83 37 5 60 66 22 +Card 140: 6 9 44 98 64 92 30 14 62 4 | 43 49 9 79 42 27 20 69 36 24 47 19 14 38 98 54 77 73 41 56 4 15 86 10 44 +Card 141: 28 99 14 96 19 92 12 23 17 22 | 64 19 85 70 80 16 63 96 2 3 61 67 41 9 74 12 37 30 86 36 26 92 94 66 71 +Card 142: 28 2 68 35 71 10 98 57 79 14 | 44 78 23 24 59 49 21 47 75 6 60 40 22 15 46 41 71 53 87 90 32 52 35 72 37 +Card 143: 8 10 60 94 66 51 36 29 56 69 | 71 69 2 9 12 55 1 53 91 84 22 83 77 6 18 57 10 24 44 72 79 73 95 62 99 +Card 144: 21 12 42 22 50 10 88 18 19 9 | 25 72 96 47 60 85 23 10 7 3 26 81 59 80 38 91 5 70 95 97 53 33 67 74 92 +Card 145: 53 5 14 26 75 35 21 39 30 43 | 13 18 6 46 69 76 78 67 81 68 36 83 91 97 32 40 23 92 29 28 42 51 71 20 37 +Card 146: 18 66 74 11 31 91 15 55 95 87 | 54 74 55 18 89 28 95 72 62 38 15 92 91 31 44 9 81 87 88 66 24 23 71 16 11 +Card 147: 7 21 81 38 56 2 55 50 60 83 | 15 9 91 69 44 92 54 99 72 43 59 78 25 79 32 51 64 20 62 24 75 38 29 16 97 +Card 148: 46 52 47 60 29 9 67 22 10 23 | 92 82 54 91 74 55 1 73 26 61 64 90 28 2 72 40 27 32 51 20 89 31 75 97 99 +Card 149: 27 58 78 77 96 68 54 89 31 86 | 48 42 86 8 21 20 60 76 72 37 2 75 33 67 57 28 41 78 1 49 95 87 38 94 62 +Card 150: 38 19 90 28 21 59 10 7 66 80 | 68 60 40 3 50 55 6 65 64 59 47 20 56 70 14 29 26 4 22 74 17 69 46 75 87 +Card 151: 93 89 25 22 91 70 10 78 84 50 | 21 35 78 58 30 71 11 70 99 84 97 87 57 67 15 9 20 91 79 50 26 74 47 56 12 +Card 152: 68 34 95 27 26 87 56 85 92 78 | 58 33 87 81 64 95 27 48 85 72 6 62 65 50 39 96 37 92 28 80 60 1 83 31 74 +Card 153: 34 11 38 50 57 78 52 73 7 4 | 56 78 9 11 32 92 26 86 40 27 24 91 18 13 4 77 37 61 25 58 60 8 30 16 80 +Card 154: 40 88 81 92 6 33 60 25 98 37 | 77 28 68 92 73 41 81 24 40 67 11 44 17 91 82 39 69 8 57 62 29 76 99 47 79 +Card 155: 15 95 17 21 76 78 69 54 1 40 | 68 17 89 96 23 49 20 53 47 93 37 55 10 69 21 4 3 6 75 65 95 79 67 30 91 +Card 156: 82 50 7 62 47 55 85 26 41 17 | 71 94 8 43 83 90 76 20 66 21 35 85 61 53 18 37 16 14 99 46 62 47 64 57 33 +Card 157: 24 85 5 76 32 43 58 27 28 78 | 50 36 66 65 1 2 87 75 96 18 53 39 3 48 23 97 63 90 4 62 42 93 47 54 60 +Card 158: 92 31 19 15 16 21 50 20 17 59 | 56 32 60 65 42 46 3 82 89 96 28 41 45 51 23 17 40 95 62 93 61 70 35 2 67 +Card 159: 72 26 19 38 65 12 97 76 7 34 | 4 1 45 39 60 32 22 5 28 98 43 66 2 9 21 10 15 67 78 27 90 17 68 31 35 +Card 160: 60 24 21 33 74 59 10 82 22 87 | 26 96 29 12 55 38 71 76 25 68 78 6 50 13 51 99 65 17 98 42 73 54 44 37 9 +Card 161: 82 9 94 58 56 85 45 17 21 32 | 91 1 55 63 21 94 32 22 15 17 34 85 26 9 46 7 8 5 48 82 93 60 28 56 45 +Card 162: 28 45 14 62 60 73 92 49 11 95 | 73 44 28 42 22 98 80 86 74 51 14 18 62 8 92 96 45 13 65 49 95 39 60 11 85 +Card 163: 67 45 89 16 36 9 92 91 78 43 | 75 34 52 90 85 77 27 1 83 93 32 99 69 2 79 94 80 11 35 64 39 72 17 70 13 +Card 164: 95 30 90 87 96 81 16 91 66 13 | 97 12 72 54 67 3 61 27 62 68 19 7 65 50 35 39 73 53 18 94 59 4 71 64 83 +Card 165: 56 77 8 11 88 80 65 9 78 48 | 10 26 24 21 39 5 32 80 79 48 58 9 16 69 8 30 97 53 20 78 6 56 2 88 43 +Card 166: 21 57 49 50 24 79 44 7 84 40 | 50 16 11 93 36 66 46 24 59 35 99 21 5 56 89 57 92 41 82 37 40 12 79 20 44 +Card 167: 23 2 68 93 19 28 11 22 7 27 | 11 85 94 28 22 68 2 65 21 78 92 27 93 74 38 57 83 80 7 23 19 77 90 59 84 +Card 168: 93 39 75 95 97 10 83 35 66 62 | 7 79 76 91 39 83 75 93 56 89 37 10 15 72 35 84 14 26 97 71 57 95 62 66 44 +Card 169: 95 68 15 39 27 24 62 86 71 78 | 24 27 81 70 7 48 43 86 52 88 62 58 19 68 31 8 71 80 39 78 64 95 35 15 6 +Card 170: 63 4 96 68 10 3 37 44 70 78 | 13 58 97 36 57 68 78 8 79 96 70 1 64 14 63 51 99 37 41 49 7 3 72 4 71 +Card 171: 67 36 24 10 7 11 65 28 3 83 | 87 66 58 53 21 39 40 12 1 94 61 89 22 50 84 78 72 64 92 34 71 90 11 16 15 +Card 172: 30 72 95 64 5 51 61 6 39 94 | 31 37 30 71 91 75 10 74 81 36 14 19 73 42 82 97 6 47 51 64 72 45 53 80 60 +Card 173: 64 71 93 39 91 57 82 95 60 67 | 34 97 89 36 71 78 76 7 8 33 50 68 19 73 60 91 39 82 46 67 57 35 27 10 63 +Card 174: 70 68 35 62 73 42 26 3 86 51 | 3 10 69 84 60 58 27 44 41 9 22 49 89 54 86 70 1 50 83 42 37 74 85 78 71 +Card 175: 5 82 68 57 10 32 70 72 23 45 | 10 73 36 50 23 83 29 57 34 30 61 70 59 69 45 53 12 75 86 63 6 84 64 14 97 +Card 176: 35 27 24 75 70 12 29 78 17 91 | 64 57 75 5 81 79 98 99 65 18 87 66 68 12 19 74 55 80 50 10 78 56 36 61 41 +Card 177: 82 4 32 70 79 1 29 38 87 67 | 63 15 49 46 19 8 38 69 83 75 66 87 68 95 81 54 34 82 4 64 41 73 88 11 47 +Card 178: 27 6 50 58 37 87 96 56 25 85 | 96 27 64 60 15 54 12 47 30 5 78 61 90 37 40 93 87 23 53 85 70 34 16 50 63 +Card 179: 16 29 86 94 32 82 80 71 20 38 | 52 7 9 73 14 51 27 55 99 23 80 20 49 15 6 91 47 58 26 98 63 18 77 85 94 +Card 180: 87 33 35 88 32 23 13 4 52 92 | 45 78 30 19 54 17 56 31 88 86 18 69 16 12 96 82 60 13 62 81 67 46 72 80 4 +Card 181: 7 76 43 75 70 83 39 17 92 64 | 44 91 51 57 26 90 31 63 12 70 45 38 6 35 23 17 27 79 20 59 9 66 96 62 37 +Card 182: 42 10 44 12 46 55 60 83 94 18 | 21 78 38 96 64 92 11 48 98 30 63 1 75 58 31 29 67 79 43 91 34 25 39 99 6 +Card 183: 47 21 74 24 75 48 38 33 61 39 | 15 2 21 20 95 93 54 32 77 89 81 8 16 23 30 14 58 94 35 37 50 11 83 86 4 +Card 184: 68 41 47 24 74 25 38 12 6 58 | 46 48 20 31 37 40 59 5 73 52 21 7 57 55 86 17 49 80 10 22 81 4 13 91 26 +Card 185: 76 26 24 14 90 54 75 51 13 42 | 14 30 57 20 73 56 86 42 89 74 97 37 64 51 47 24 60 83 22 87 76 90 13 61 40 +Card 186: 2 63 80 91 41 12 85 88 34 30 | 81 29 19 64 52 36 41 18 42 54 44 43 40 63 76 23 98 4 65 38 24 30 62 99 87 +Card 187: 49 77 68 73 76 60 15 92 34 39 | 32 23 47 26 40 41 43 92 84 73 94 60 24 30 45 7 14 80 76 10 5 9 34 11 50 +Card 188: 11 96 50 5 37 58 42 81 79 3 | 29 78 77 30 92 89 18 88 15 95 91 40 60 14 8 62 28 90 33 32 98 63 21 36 46 +Card 189: 78 8 49 19 1 67 44 52 54 46 | 29 64 10 55 8 78 36 67 32 91 97 80 49 1 44 83 58 46 69 34 35 94 2 14 86 +Card 190: 4 86 43 89 60 80 18 67 11 87 | 19 13 60 4 6 18 11 56 89 26 43 65 85 41 22 86 87 91 71 28 67 80 2 74 47 +Card 191: 93 9 61 81 20 51 42 14 74 83 | 68 82 91 74 80 61 44 96 18 11 9 14 39 84 20 47 17 93 42 52 99 21 51 77 76 +Card 192: 41 83 44 12 68 56 79 70 55 34 | 90 4 34 20 51 83 74 32 49 41 86 36 66 42 29 85 37 33 1 24 10 97 40 27 12 +Card 193: 63 32 91 93 31 2 42 29 30 5 | 46 56 12 16 61 41 81 20 31 89 62 93 5 58 6 73 66 55 74 29 83 88 52 47 27 +Card 194: 34 54 16 3 62 6 67 40 57 53 | 91 63 31 59 52 56 6 33 84 55 3 72 40 14 54 35 43 67 97 64 53 44 28 37 81 +Card 195: 1 18 74 57 38 11 64 30 9 54 | 82 35 66 40 29 45 14 37 19 85 54 63 99 89 5 22 71 94 11 70 39 16 42 51 8 +Card 196: 95 44 35 80 30 64 82 60 75 47 | 88 45 15 26 90 34 93 85 43 66 77 11 17 65 39 33 56 23 3 20 35 5 44 47 36 +Card 197: 53 10 14 12 65 83 18 28 79 25 | 7 37 96 80 85 51 47 39 89 13 99 72 1 21 71 25 83 61 35 59 3 73 84 50 15 +Card 198: 29 97 30 81 41 34 9 47 21 39 | 8 88 94 67 16 68 37 82 85 3 36 32 41 90 89 40 46 74 29 81 4 93 76 55 87 +Card 199: 47 48 39 87 83 25 72 74 40 29 | 1 45 19 77 47 24 20 70 85 34 62 76 91 60 16 30 35 46 21 44 3 97 65 7 6 +Card 200: 43 45 85 27 99 88 52 35 28 3 | 18 54 53 96 80 62 49 15 90 14 44 48 36 33 60 79 63 17 5 13 82 24 10 20 64 +Card 201: 71 92 68 45 33 17 99 32 96 93 | 90 82 79 26 20 85 94 61 31 84 73 30 4 87 29 28 81 27 75 39 36 58 97 98 21 diff --git a/2023/day04/test b/2023/day04/test new file mode 100644 index 0000000..9bdb874 --- /dev/null +++ b/2023/day04/test @@ -0,0 +1,6 @@ +Card 1: 41 48 83 86 17 | 83 86 6 31 17 9 48 53 +Card 2: 13 32 20 16 61 | 61 30 68 82 17 32 24 19 +Card 3: 1 21 53 59 44 | 69 82 63 72 16 21 14 1 +Card 4: 41 92 73 84 69 | 59 84 76 51 58 5 54 83 +Card 5: 87 83 26 28 32 | 88 30 70 12 93 22 82 36 +Card 6: 31 18 13 56 72 | 74 77 10 23 35 67 36 11 diff --git a/2023/day05/day05.bqn b/2023/day05/day05.bqn new file mode 100644 index 0000000..a3d21a5 --- /dev/null +++ b/2023/day05/day05.bqn @@ -0,0 +1,14 @@ +⟨Split⟩←•Import"../bqn-libs/strings.bqn" + +≢input←(@+10‿10)Split•FChars"input" +≢seeds←•ParseFloat¨" "Split 1⊑": "Split⊑input +≢ms←•ParseFloat¨¨¨" "⊸Split¨¨(0<≠)¨⊸/¨1⊸↓¨(@+10)⊸Split¨ 1↓input + +Map←{𝕊rs: + F←{𝕊x: {𝕊d‿s‿l: (s≤x)∧x•ParseFloat¨¨input +•Show ×´1+|-´˘Times˘input1 + +input2←•ParseFloat¨∾¨input +•Show 1+|-´Times input2 diff --git a/2023/day06/input b/2023/day06/input new file mode 100644 index 0000000..88bf516 --- /dev/null +++ b/2023/day06/input @@ -0,0 +1,2 @@ +Time: 56 97 78 75 +Distance: 546 1927 1131 1139 diff --git a/2023/day06/test b/2023/day06/test new file mode 100644 index 0000000..28f5ae9 --- /dev/null +++ b/2023/day06/test @@ -0,0 +1,2 @@ +Time: 7 15 30 +Distance: 9 40 200 diff --git a/2023/day07/day07.bqn b/2023/day07/day07.bqn new file mode 100644 index 0000000..8ce5252 --- /dev/null +++ b/2023/day07/day07.bqn @@ -0,0 +1,17 @@ +input←(5⊸↑⋈6⊸↓)¨•FLines"input" +hands←(('0'+↕10)∾"TJQKA")⊸⊐¨⊑¨input +bids←•ParseFloat¨1⊸⊑¨input + +types←⟨1‿1‿1‿1‿1,2‿1‿1‿1,2‿2‿1,3‿1‿1,3‿2,4‿1,⟨5⟩⟩ +Ranks←{(⍋types⊐{∨/⁼⊐𝕩}¨∧𝕩)⊏⍋𝕩} +Winnings←{+´(1+↕≠𝕨)ר𝕩⊏𝕨} +•Show bids Winnings Ranks hands + +>hands2←("J"∾('1'+↕9)∾"TQKA")⊸⊐¨⊑¨input +HandType←{ + 𝕊(0‿0‿0‿0‿0): ⟨5⟩; + js←0=𝕩 + (+´js)⊸+⌾⊑ ∨/⁼⊐(¬js)/𝕩 +} +Ranks2←{(⍋types⊐HandType¨∧𝕩)⊏⍋𝕩} +•Show bids Winnings Ranks2 hands2 diff --git a/2023/day07/input b/2023/day07/input new file mode 100644 index 0000000..1a6f13c --- /dev/null +++ b/2023/day07/input @@ -0,0 +1,1000 @@ +8444T 864 +6TK4Q 440 +A5555 197 +53353 712 +6K68A 216 +J6A33 975 +J753Q 772 +22776 977 +J4494 215 +A25JJ 101 +AAA3A 637 +TT3KK 1000 +T7T67 895 +8A88J 928 +TTKKT 29 +TJJQ4 719 +333JT 489 +Q9AQQ 492 +TK384 543 +55J33 897 +Q26QQ 549 +TTKK5 254 +T99T9 530 +87888 851 +27828 896 +J9J99 680 +K7KA2 843 +J3749 432 +7TA49 839 +T4466 266 +77QQ7 534 +44AAA 540 +Q4Q44 330 +7TK88 736 +T7479 705 +22JQ2 522 +77227 597 +5555T 296 +33348 203 +A2624 767 +8TK88 41 +4TK7A 869 +6J76K 581 +7T47T 629 +9QA49 302 +KK7K7 588 +8Q93J 872 +A97Q4 235 +A4A45 343 +J3347 755 +4T444 909 +9A999 125 +K88QJ 707 +74474 953 +ATQQT 155 +32242 569 +44888 634 +22429 882 +2QA84 602 +TQTQ4 974 +J9996 392 +5852Q 601 +K5444 833 +85J35 763 +T8282 504 +4KAKK 539 +2233T 68 +AA8AQ 223 +326A3 208 +T955T 319 +A3Q3A 776 +56QKA 230 +T63T6 566 +QA36Q 923 +8J88J 686 +9K5T7 93 +J344J 321 +AA8AA 559 +88777 448 +7667K 487 +T4T7J 476 +8Q4Q5 542 +KK555 699 +7J777 888 +335A3 284 +KQJA9 764 +5684J 956 +288K8 866 +TAJ49 697 +T57T7 727 +47477 980 +78T33 682 +688J9 344 +QKKKK 418 +93KA3 55 +9T58Q 493 +2J22J 39 +J7234 917 +JJ225 100 +4TTTK 854 +93965 676 +A97K3 891 +66TK6 423 +42KTT 457 +79957 983 +3Q3K3 904 +KKK7J 382 +8T8JT 290 +29292 596 +J77JT 219 +27292 25 +3TT36 533 +TTTTA 962 +3QQQ4 38 +T962K 210 +5TK28 571 +555K5 303 +8QKKQ 426 +TJ3TT 865 +5579A 373 +35AA5 954 +444J4 908 +39939 437 +722J2 582 +4442Q 969 +89888 470 +KKTTK 70 +K38AJ 659 +47AA9 314 +A3A3A 307 +TTT72 605 +29JQ7 366 +558J8 580 +684T6 523 +6JTTT 951 +8Q4JT 44 +KKQKJ 903 +K96QQ 374 +4TT5T 165 +AT4J2 300 +93A54 621 +JJ6QQ 214 +79797 349 +QQA88 23 +KKJ8J 679 +AK8K3 479 +6K7Q6 384 +K6KK9 644 +K64J6 297 +36J95 502 +8AJTA 498 +5Q54T 9 +77T37 436 +222KK 363 +KTAT5 989 +2AAJJ 496 +55TT4 170 +2T9JQ 113 +37333 972 +5A8J3 40 +89T98 428 +6KA2J 748 +23733 445 +27QAJ 616 +4TT44 280 +54K4K 814 +59335 472 +86888 354 +558T4 407 +35683 347 +AA4A5 431 +943Q5 671 +JTTJ2 808 +6J6J6 76 +AKKKK 557 +JQJ3Q 610 +TK392 435 +5455Q 973 +4JKKK 714 +2T284 561 +A6A24 332 +4332J 514 +69873 859 +45488 441 +39285 648 +AQ333 753 +AA3Q5 433 +2AJT2 355 +84K4J 890 +A8T26 312 +55955 704 +33233 813 +9J959 984 +52KK5 998 +J88KK 906 +9TAK5 352 +T8TTA 464 +A47AJ 880 +2Q22Q 205 +J228J 817 +AA77A 790 +QQ99Q 701 +44244 477 +J6T2K 841 +K492J 408 +82288 873 +97623 996 +6633A 613 +6AAAA 668 +535K3 110 +6KK8T 279 +54KKA 721 +66268 528 +8J3J5 829 +88983 239 +J5775 78 +KKK3K 402 +8Q656 74 +66T68 612 +8J572 121 +23T85 83 +76877 757 +JT88J 661 +83383 722 +4J4T4 116 +598K5 791 +33J56 249 +333Q9 603 +5KK2K 177 +66667 565 +88Q88 225 +79T99 1 +592Q4 823 +TQT9T 131 +24874 628 +22732 99 +7T847 328 +A4T96 128 +J6954 2 +6JT66 642 +7JJ44 840 +2379T 372 +88QJQ 509 +39K9J 406 +33363 212 +8A86A 473 +J9QQQ 109 +64K6K 684 +K2Q45 510 +826JT 172 +98968 560 +QQ97Q 905 +K93JK 669 +J5AA4 844 +24258 780 +64796 45 +22TK5 647 +23223 825 +7Q77J 822 +4A4AJ 229 +A9699 845 +QTKQ6 796 +5K47T 591 +TKJQ7 48 +49499 282 +T5JTK 17 +4JQ22 54 +8QT88 221 +TAAAT 273 +26Q97 527 +44J84 313 +T38A6 988 +7272Q 734 +AJ22A 512 +T8AJT 959 +KTKKJ 315 +7A787 461 +AA55Q 189 +QAT4A 625 +QJ55T 122 +8K696 463 +T6966 422 +KKK9K 262 +828KT 778 +2KK73 608 +9KK9K 333 +242K4 242 +QJ7AQ 47 +TT7AA 690 +8688J 94 +QJQQA 305 +35T35 795 +344A5 186 +Q8444 385 +34K24 270 +QK888 227 +2J757 286 +TA28Q 218 +2TTQQ 104 +64J4A 209 +39933 877 +265Q5 449 +9K939 142 +KKJKJ 86 +A77A9 304 +JKAAK 876 +8989Q 857 +T5556 234 +7K7JK 886 +J8828 507 +436Q3 192 +9J4KK 72 +32954 563 +22AAA 12 +9TT96 703 +62928 233 +J4A4J 98 +4244A 164 +88J88 84 +JQQJ5 511 +4556J 169 +QQQJQ 781 +422J2 696 +76K74 815 +AAJ7A 276 +56666 213 +QA22J 585 +JAJAA 746 +TJ562 245 +T556Q 999 +566J5 853 +26KK6 801 +2735J 167 +5QJ55 782 +77473 646 +2T37T 694 +Q4Q45 641 +K66KK 615 +3AQ2K 151 +KKKKT 154 +98788 90 +44669 708 +88A8A 188 +76864 345 +J7767 379 +JJJJJ 739 +75J7A 377 +TJ72J 939 +72KKK 471 +7Q7Q2 394 +9665J 194 +77977 526 +75AA2 92 +535K5 459 +Q8KKT 430 +9TK39 981 +26555 350 +AKK97 417 +44J47 46 +89777 593 +J525T 657 +KKJ23 847 +44492 96 +88A86 922 +T989A 462 +7KKKK 298 +9J9Q9 89 +K7JA7 486 +Q5384 322 +74TQ2 335 +KQQQK 670 +5Q8A6 396 +QQ4QQ 263 +336J3 340 +QQ2QQ 190 +2TT22 285 +5T5QT 294 +9979J 805 +7227T 255 +J49AA 132 +454J4 201 +K29J5 752 +58555 553 +666J6 447 +Q9999 176 +3377J 152 +229A7 334 +2K322 698 +37764 460 +T73JA 633 +2Q9J6 568 +TQJQQ 737 +44555 809 +K42K2 232 +42A47 420 +3A8T9 124 +56556 301 +JQQQJ 243 +6KKKK 537 +98243 832 +6266J 769 +K5J74 339 +7JQJ7 362 +KAK46 666 +K23TK 144 +2T2KQ 645 +69QT4 811 +A9J55 994 +78QT8 424 +QJQQ8 860 +9QTJT 619 +2TTKJ 105 +JAQ2A 91 +4Q334 22 +34444 631 +77477 685 +67777 383 +Q6QQ6 914 +8J699 184 +44484 965 +67667 623 +448T9 598 +35T98 453 +22246 389 +9KA57 723 +5Q2A3 20 +JAA35 740 +56384 728 +3Q4KA 398 +3KK33 756 +8TTJ7 849 +T4J34 59 +22Q27 111 +J7J7J 709 +7772J 742 +J3666 43 +QQ367 28 +653K6 797 +55J65 158 +AA43A 88 +J4QA2 49 +99TK9 554 +4J244 367 +3Q4J8 518 +J5495 624 +6AK88 819 +5T999 609 +85585 415 +57K5K 874 +33Q37 870 +6A6JA 541 +685J6 913 +JKK25 195 +AKAKK 693 +54525 516 +4464K 231 +726K8 244 +J3393 544 +88638 35 +55553 380 +K5K37 875 +5558T 688 +9A975 821 +AAA6T 586 +25AAA 689 +44744 863 +6AKJ9 178 +78868 848 +748J8 816 +A79QQ 900 +K4927 968 +6KKT6 336 +QQ555 525 +24J42 546 +4T982 58 +J367J 114 +62K39 341 +TQ382 120 +K3Q3Q 491 +K33JQ 485 +8323Q 627 +J3353 838 +2K8TA 283 +JQTQ3 198 +3AAJJ 425 +5AJ3J 159 +TQ3JJ 361 +84TA3 444 +88KJ8 108 +772T5 480 +532A2 11 +55T59 331 +8JA4T 481 +TTAAT 427 +6J57Q 157 +JAAA5 21 +58355 730 +8AA67 145 +2TJT2 548 +5522A 238 +A5AAA 468 +Q252K 660 +K6A49 807 +32432 16 +22239 375 +T8J48 30 +Q98K4 325 +8J76Q 308 +55525 324 +Q4KT4 61 +JK6AA 861 +78448 148 +665AT 798 +77999 403 +JJ8JJ 378 +24642 395 +KJ6J8 978 +K6KK8 438 +422J7 717 +A4K86 990 +QJQ9T 715 +K4KKK 318 +87867 777 +42857 80 +AT727 576 +88KK8 376 +33JJ3 31 +K554K 920 +T2Q4A 454 +5J527 620 +784A5 248 +5KKK5 855 +AAAJ6 293 +JATAQ 291 +2J239 885 +555AA 271 +AJAKA 532 +QAQQQ 211 +K473A 649 +82AA9 306 +A6666 639 +K3K66 578 +T5557 931 +A4444 187 +865J5 881 +79669 123 +6AJQQ 173 +83878 277 +KK559 521 +3KKK8 37 +33A88 547 +T678Q 731 +33994 919 +TT33T 185 +J9999 397 +6J58Q 687 +7782J 183 +2Q3KJ 929 +8AQ88 81 +698T4 370 +AAAQQ 337 +46665 478 +2A299 733 +4J44A 945 +AJ725 60 +A6K43 749 +QQAA6 775 +Q8738 515 +KK999 944 +J8899 946 +347AQ 103 +94999 729 +KKKKJ 357 +62JQ8 474 +2422A 834 +66263 741 +QKQKK 937 +9JK3Q 412 +TTJT2 943 +22263 960 +A4372 329 +833QQ 735 +2JA6J 577 +86452 744 +Q8884 204 +AAAQA 656 +742Q4 259 +T6666 53 +A7733 930 +K4K4K 51 +64TT2 827 +J4472 950 +55K56 381 +8QQQQ 799 +979T6 134 +AJATT 52 +8KQJ4 241 +82AK7 338 +23222 268 +QQ77Q 73 +6665A 136 +A9282 587 +862T2 558 +K444J 434 +66565 747 +2K2QA 153 +89889 14 +J9933 309 +523T9 323 +7A87J 106 +7K6K6 614 +38T97 119 +J45J6 787 +9AJ69 199 +78Q5J 818 +3T3KK 8 +TT9TT 710 +77736 771 +A2TQJ 64 +95559 278 +844QQ 246 +666K6 508 +TT6T6 779 +TT7T7 692 +6AAA6 970 +KJ8K7 933 +76J66 966 +7K57K 986 +2T9J6 364 +TT88T 912 +9K4A5 488 +A65A5 206 +A5TKQ 497 +3422Q 971 +38888 770 +25J85 174 +79775 429 +72T38 260 +874TK 257 +477J4 50 +3Q8QK 137 +999QK 146 +6JAQ2 955 +2T333 658 +892Q4 893 +4Q635 726 +7Q685 410 +J9386 852 +KK7KA 247 +77Q57 327 +88K88 898 +QA366 651 +2879J 483 +68886 269 +K7J78 702 +84K5T 831 +8KKKK 964 +4A774 720 +2KK62 400 +69J7Q 57 +J9JQA 264 +2K22T 513 +JK5T4 564 +23T6J 575 +43334 987 +3T596 570 +343J4 4 +63T4K 138 +QT57K 941 +J4792 992 +35339 892 +35KJ3 75 +3A74T 997 +8A8J7 643 +JQ55Q 884 +T3TT9 773 +TQTTT 716 +83AAA 935 +JT38J 957 +258AT 901 +73334 934 +7765J 732 +6KK96 222 +87KTA 942 +KJKT3 251 +A777J 925 +56862 63 +333Q8 590 +AA5A5 272 +Q6AQQ 979 +AK333 626 +84937 675 +J8555 236 +22522 789 +38JQ3 503 +45444 388 +TJK9A 168 +QTTKT 66 +88QQ8 405 +56223 141 +9K6KQ 638 +AA252 758 +77TTJ 995 +542A7 419 +KQ369 33 +87KKK 924 +3JJ88 390 +Q7777 475 +T9AJ6 360 +JTA9T 346 +J5555 126 +279JJ 691 +42TJ8 82 +79Q99 317 +595J8 538 +TAAAJ 802 +5T7J3 482 +563A5 156 +T3933 311 +22Q26 812 +55775 524 +33TJ4 77 +7K555 149 +5Q428 665 +59QQ9 556 +345T8 824 +JA9K5 535 +TK9T8 220 +94J68 79 +8K942 458 +T39QJ 281 +63633 13 +7JJJ5 494 +QJ24Q 115 +QQ5QJ 724 +38JK8 725 +QKJKJ 743 +JQQ6Q 500 +54Q49 800 +JK987 292 +T33JA 224 +833J3 351 +3333J 711 +73T3T 583 +7TQ6T 171 +J665T 766 +3K77K 850 +QT4K7 501 +KK939 915 +99QJ8 754 +3K333 288 +3KT5Q 759 +634TA 804 +86T8T 369 +48777 820 +Q3792 5 +J7425 948 +66J2K 295 +T269T 794 +8948Q 828 +Q452J 450 +46T65 42 +23JTT 695 +KK7Q3 469 +T4433 112 +5JJ76 611 +KK3Q3 520 +32A85 750 +87887 921 +A27A2 760 +Q96A9 358 +TT82T 196 +8A4A8 252 +T8887 365 +66644 862 +7538J 630 +25JJ5 636 +A9889 664 +45T2Q 287 +K8227 368 +9AAAA 26 +82K23 250 +5KJ8A 842 +333Q3 143 +66287 443 +87K94 894 +8KJJ7 536 +88882 253 +33AA3 768 +T8K5T 466 +T9944 256 +43944 150 +66622 745 +3337J 918 +JTT83 936 +3A379 421 +58A55 926 +AJT47 713 +7JT78 738 +3Q58T 677 +T33JJ 275 +66TT8 572 +66636 765 +TJT55 751 +33666 289 +66222 632 +AA5A7 706 +7T2KK 202 +A979J 7 +88KKK 127 +QQQ33 495 +93996 837 +8882Q 856 +93T86 452 +8A8AA 27 +5975J 835 +789KA 947 +J47Q8 413 +AJ758 506 +62966 567 +A664J 409 +J2222 993 +Q5557 455 +99T99 10 +62825 207 +K98JJ 786 +8JAT9 442 +QTQTQ 887 +K7747 889 +57577 439 +KJK44 228 +7T7J7 574 +9TKT4 310 +KQK8K 97 +2J283 24 +QTTQT 465 +22822 604 +TT488 36 +25K59 662 +8Q8QQ 65 +QQQ55 193 +59A28 401 +KA9A9 69 +TATTJ 902 +4Q4QQ 356 +KKK3Q 552 +375KA 490 +6KK6J 161 +Q666J 672 +25A55 683 +AJAAA 180 +A9494 391 +JAAJT 387 +JJ229 62 +22835 595 +JT534 160 +73854 868 +TT7TT 217 +KK587 607 +7KQJ3 451 +97J77 985 +24924 118 +Q6TKA 899 +77877 667 +KA5J5 326 +9939T 640 +3Q522 653 +4429T 846 +Q3AQA 56 +T76JA 761 +57474 237 +QQJ44 878 +J5599 166 +429QK 414 +4J2JT 499 +66669 961 +77TK7 200 +6TQ27 635 +86A68 718 +39TJ2 261 +KTJJK 393 +66JK6 584 +2J7K8 618 +TTTQ7 107 +A59A8 274 +92J49 579 +Q7Q78 938 +33933 320 +Q7TJ4 594 +5QK23 163 +6QQQQ 952 +86666 674 +74554 793 +337JT 911 +3TAT7 19 +KQ22J 267 +2222A 681 +TKTKJ 102 +64622 663 +2J2A7 932 +J8836 545 +TTJJT 617 +232J6 87 +Q244J 967 +AJQ8Q 258 +74799 785 +Q9339 529 +7TJ73 95 +47K3J 139 +Q6767 810 +TTTT6 353 +66TKJ 226 +99995 673 +859T8 655 +23J2A 34 +Q9Q99 600 +9T98J 133 +444A6 573 +A7TA5 803 +7A275 416 +799T7 963 +222J9 879 +K2KAK 467 +AKA66 505 +6ATJJ 916 +23393 140 +22QQ7 927 +QTTJT 179 +954TJ 135 +42698 606 +KT625 342 +7K77J 3 +4A898 788 +6A6A2 147 +44AA4 871 +6K6K6 907 +9J696 991 +4Q5TA 240 +QJQ99 958 +72934 700 +Q696T 949 +77QQ4 806 +TTT22 652 +KK5T5 910 +Q333Q 181 +9J6AJ 883 +63433 858 +TK8Q7 792 +99T2J 867 +QQ7KK 359 +A7A77 130 +JKJ5J 411 +53455 826 +69A2Q 774 +56948 784 +95TA4 650 +299T2 599 +68884 399 +46Q4Q 836 +J828T 622 +J77J7 175 +293A8 762 +8JJ62 940 +4J44J 85 +83333 551 +6A78J 562 +885JJ 456 +83866 592 +TT4T2 191 +KJ66A 117 +TTTTK 162 +7598T 982 +TQT2T 654 +53K82 348 +A9979 386 +K442K 783 +47A4A 517 +J544K 550 +JTAA2 371 +7336A 182 +9QKT8 6 +K5KQQ 299 +JKKJA 15 +555TT 484 +5J5J5 265 +5555Q 519 +22QQQ 555 +J3QQ3 589 +TJTTT 67 +7A777 32 +QQQQ7 446 +64446 830 +7T973 531 +22428 404 +8Q928 678 +AK8A9 316 +99992 129 +48744 976 +9A9KK 18 +TT9T9 71 diff --git a/2023/day07/test b/2023/day07/test new file mode 100644 index 0000000..e3500c3 --- /dev/null +++ b/2023/day07/test @@ -0,0 +1,5 @@ +32T3K 765 +T55J5 684 +KK677 28 +KTJJT 220 +QQQJA 483 diff --git a/2023/day08/day08.bqn b/2023/day08/day08.bqn new file mode 100644 index 0000000..9f69b62 --- /dev/null +++ b/2023/day08/day08.bqn @@ -0,0 +1,16 @@ +⟨Split⟩←•Import"../bqn-libs/strings.bqn" + +lf←@+10 +strinst‿strnet←(lf‿lf)Split •FChars"input" +inst←"LR"⊐strinst +net←{3⊸↑¨↓⟜𝕩¨0‿7‿12}¨lf Split ¯1↓strnet +els←⊑¨net +map←els⊐>1‿2⊸⊏¨net + +start‿end←els⊐"AAA"‿"ZZZ" +n←30000 +•Show 1+⊑(start{𝕩⊑𝕨⊏map}`n⥊inst)⊐end + +starts‿ends←/¨(¯1⊸⊑¨els)⊸=¨"AZ" +•Show •math.LCM´{1+⊑/(𝕩{𝕩⊑𝕨⊏map}`n⥊inst)∊ends}¨starts + diff --git a/2023/day08/input b/2023/day08/input new file mode 100644 index 0000000..cc89eb0 --- /dev/null +++ b/2023/day08/input @@ -0,0 +1,768 @@ +LRRRLRRLRLLRLRRLRLRLLRRRLRLRRRLRRRLRLRLRRLRLRRRLRRLLRRLLLRRLRRLRRRLRLRRRLRRLRRRLRRRLRRLRLLRRRLRLRRLRLRLRRRLRRLLRRRLLRRLRLRRLRRRLLLRRRLLRLLRRLRRRLRLRLRRLLLRRRLLRRLLLRLRLRRLLRLLRRLLLRRLLRRRLRLRRRLRLLRRRLRRRLRLRLRRRLRLRRRLRRRLRRRLLRLRLRLRRLRLRRRLRLRLLRRLRRLRRLRRRLRRRLRLLRLLLRRLRLRRRR + +HGK = (LRV, NBJ) +MCT = (PKH, PBF) +FJD = (PGR, CJB) +CQL = (XNN, GCT) +PBV = (QSS, PDK) +MPX = (DHN, NCX) +KKH = (HBR, MXL) +BLM = (DHN, NCX) +TTF = (FRT, CHK) +JDT = (SSQ, KHX) +KKR = (STS, RVK) +KRM = (JXX, LQG) +TTD = (SGV, VPF) +KCP = (NPP, CTV) +PTM = (MNN, GTS) +KTP = (GLC, GJH) +FNQ = (NVT, LXV) +TKQ = (DCR, GJX) +LXV = (VCC, CNC) +DVQ = (QHD, TPF) +QRN = (TXV, HFX) +KFH = (XHS, SHB) +QRT = (KQH, FFN) +XKC = (NTC, RMK) +GTH = (NVL, FFK) +MJS = (BLD, SQD) +XQB = (HVK, LVV) +CLV = (XQB, XQS) +HTH = (NSS, BKT) +FMK = (DSS, JMS) +KDF = (VTP, GMR) +VFG = (DLS, TPQ) +RHB = (SMB, JVD) +DPX = (LHH, GNB) +XHC = (RDF, XQN) +MGD = (PKH, PBF) +PTP = (KCT, BJH) +RVV = (FKC, XHC) +BRL = (BJH, KCT) +JJF = (MCK, BCJ) +KGR = (GJM, GJM) +KRF = (FMD, BGJ) +XQN = (DDR, NNX) +TVQ = (XTH, PJL) +HMT = (JNJ, BVS) +NKB = (JXR, FQM) +SFJ = (KFH, CCB) +FMB = (NKB, DGT) +VKD = (FMD, BGJ) +PJR = (BTS, LNN) +RJG = (DGK, BRS) +LSZ = (BDS, RXJ) +CTV = (KFV, JVF) +TGP = (CTJ, FBQ) +HVX = (JMR, RQT) +RVK = (CTC, RDJ) +KGS = (KMM, JPV) +SCC = (QCG, TCS) +HBR = (TGG, KBG) +PND = (BMC, HSK) +FQD = (PTD, NGM) +XGH = (KKS, HHC) +NJJ = (RHC, SFQ) +SNF = (FXJ, BSR) +DDR = (TSQ, PJR) +VRV = (NMJ, JBJ) +FFL = (NRD, BPD) +NMJ = (LTR, RQQ) +FSK = (KVQ, JXS) +MLF = (HGD, XHZ) +RQQ = (JGF, GGS) +KSN = (HGL, HVX) +VCR = (QNN, LLB) +PKH = (XSR, XDF) +DFL = (FFK, NVL) +LPQ = (FKS, PGM) +DQR = (JQV, FDP) +SSQ = (QPT, QPT) +JNC = (SPK, JPG) +SFQ = (BPG, NSQ) +NCD = (TJB, GBP) +CTJ = (KTF, DQF) +VPC = (VFG, QVQ) +SQD = (XQC, PHJ) +XKH = (MJS, SNH) +VDS = (FKD, PKD) +GFF = (JCF, HBS) +FKD = (MCM, LKD) +XDT = (NTC, RMK) +GRK = (RFQ, CSF) +PKN = (NGK, FLG) +QHD = (FSJ, FSJ) +GHS = (HTD, KLJ) +JGR = (RRD, XVQ) +XVC = (KGS, CNG) +XFH = (RTB, DDK) +CJS = (KKR, BNX) +KLJ = (NMN, LQK) +PJB = (GTH, DFL) +NPT = (JRJ, TVT) +FJX = (GXQ, VCG) +QBH = (QCL, VCB) +SXT = (MKJ, BLC) +GTR = (CDG, BFT) +KDJ = (GVL, KTD) +NTC = (RJP, SVQ) +DTP = (BSR, FXJ) +FDN = (JHK, VNQ) +BKL = (SBV, XKD) +VCX = (JQV, FDP) +LQG = (DKP, HTH) +MCM = (RSJ, PXH) +VHT = (CVK, MBQ) +XQS = (LVV, HVK) +CPG = (VFR, LVN) +QVQ = (TPQ, DLS) +VSH = (JNJ, BVS) +CFB = (FXD, FQK) +BGF = (TTJ, GNT) +MBB = (MKH, TKK) +SBV = (MQQ, DSG) +JBR = (NDX, MBB) +SMT = (KKS, HHC) +CSF = (QHG, VXS) +SFN = (LRD, NJJ) +GGS = (JLD, LPJ) +CHK = (QGS, RQZ) +RNH = (BCJ, MCK) +GJX = (XKQ, XTF) +TVB = (HGK, LJB) +SGV = (NNQ, LTF) +JHR = (XMH, SJB) +NBN = (BBH, PJQ) +BPV = (MRP, MRP) +PCH = (LFV, JCP) +KPR = (TDB, RVV) +KKT = (SNM, QBH) +DPS = (QPK, VSP) +LXM = (RNH, JJF) +TRK = (XVM, RHX) +TLT = (QQT, SXT) +DDB = (PML, MXS) +DSG = (BVH, QML) +MHD = (PMV, GHH) +XVQ = (MFC, JBH) +TTJ = (PJN, CQD) +XTG = (VBD, GFF) +VJF = (TVQ, NRP) +NSS = (HHN, FXT) +XSR = (CQL, RRX) +SPK = (BBP, LMK) +RSB = (KKR, BNX) +XNL = (NJJ, LRD) +SBH = (TVQ, NRP) +JXR = (NJK, CGS) +DGX = (VPL, TRK) +KTD = (KSP, TGB) +CBP = (LXM, TRM) +DCM = (FTX, FNC) +LMP = (NRX, JQL) +QNP = (FGF, QBT) +GJT = (TFD, FVN) +NPP = (KFV, JVF) +SVG = (DSS, JMS) +KBG = (KKG, PHN) +RDJ = (GJV, HBN) +NQS = (SNM, QBH) +GHR = (DVK, BCH) +LBX = (BNR, KDJ) +SCJ = (MPS, RCR) +HHM = (FXP, LTB) +LCV = (BFT, CDG) +LKS = (MRS, GSH) +JQL = (GBT, STL) +LHK = (VVP, LDT) +FLX = (TKQ, DCL) +VFR = (HDF, VSV) +XQK = (FJD, MCG) +JNF = (VDF, XJB) +GXL = (FQD, QFJ) +GBT = (CLG, KBH) +VFV = (SSL, FMM) +RHX = (LKS, BSD) +LRD = (RHC, SFQ) +TKK = (GJT, NFV) +XTF = (GPQ, XVX) +DQH = (KSN, GNR) +TPQ = (MPB, DSJ) +HTS = (XVQ, RRD) +LFN = (KVX, TTD) +NBQ = (JCH, TTM) +FMT = (DDB, NRN) +KTF = (FLX, DRP) +NRP = (XTH, PJL) +RFQ = (QHG, VXS) +CRG = (BPJ, LRF) +NRN = (PML, MXS) +MXF = (CTV, NPP) +BBV = (XXR, KQB) +LVN = (VSV, HDF) +PTK = (MVK, MVK) +NHM = (TXP, DLL) +NTK = (FGC, CGG) +LRF = (NRM, VHT) +XGG = (SSN, PBV) +ZZZ = (HRP, SRS) +DQF = (DRP, FLX) +NTT = (RCT, VBL) +HDH = (MGD, MCT) +CVK = (DXG, DCM) +KHX = (QPT, FHZ) +GNR = (HVX, HGL) +KVQ = (CBP, VMP) +JFC = (VFV, KRP) +FLG = (QTT, VKR) +VSP = (JXH, PKN) +HQN = (GJH, GLC) +GNV = (FXD, FQK) +BCJ = (MRT, GSD) +KKG = (DDC, XMN) +TLM = (JJM, QGK) +VMP = (LXM, TRM) +MPB = (NGN, JTD) +NFV = (TFD, FVN) +FVN = (DCP, PXL) +NMQ = (VNK, DGX) +NJB = (VXB, SFF) +NPD = (NKB, DGT) +JJM = (BBV, GPV) +PQT = (XQK, KBT) +PJL = (NQS, KKT) +FTX = (PPL, RGJ) +JCH = (DPP, GDB) +SCN = (TKM, CLV) +MKJ = (JFQ, FMT) +JGN = (QBS, MFB) +GJH = (SLD, LQT) +GVL = (TGB, KSP) +NBM = (QRN, CGF) +XXR = (FMK, SVG) +FQK = (QBN, NTK) +BLX = (BMC, HSK) +RCR = (JJR, DPX) +TTG = (CTJ, FBQ) +SSL = (KHQ, XFH) +PKD = (LKD, MCM) +RJH = (XKH, JCR) +VPF = (NNQ, LTF) +TJB = (TXQ, JFC) +XHZ = (NHM, PFM) +XTL = (RXJ, BDS) +HQS = (KPR, GLQ) +RRD = (MFC, JBH) +FLN = (VCH, BGT) +VBD = (HBS, JCF) +TLR = (XTR, FSK) +CHD = (FXP, LTB) +HHN = (CNB, MDX) +RJP = (TLM, NNT) +HKC = (RVN, JKR) +SJL = (CHD, HHM) +FDP = (TLR, SRP) +VPK = (MRP, RND) +VQP = (BHF, MVH) +XMN = (GRK, NLN) +MVK = (MLS, MLS) +GXM = (GJF, CRG) +KFB = (HTD, KLJ) +GFR = (XNL, SFN) +BCL = (SRS, HRP) +NLT = (SNT, VMJ) +BRQ = (FQD, QFJ) +VPL = (XVM, RHX) +VJN = (SJB, XMH) +GHH = (NSG, HVR) +BBP = (XGH, SMT) +DCB = (MVS, NRC) +DGK = (FQP, KDF) +BLC = (JFQ, FMT) +TCS = (PVK, HSJ) +PPL = (RSF, FSX) +QTT = (KHG, QLF) +PML = (NCQ, VRK) +LLB = (SGJ, VHX) +VXK = (FKD, PKD) +FSX = (CJS, RSB) +KKS = (SJL, SFR) +JLD = (RXB, RJL) +VGG = (XTL, LSZ) +BLG = (KFH, CCB) +TPF = (FSJ, GDP) +JFQ = (DDB, NRN) +RDF = (NNX, DDR) +HGL = (RQT, JMR) +KQB = (SVG, FMK) +RMM = (JHK, VNQ) +BCH = (VPC, GXH) +MCG = (PGR, CJB) +JBT = (PLF, VQP) +NSQ = (PTK, TNS) +RVN = (CMP, DBF) +XGK = (VCH, BGT) +BNR = (KTD, GVL) +QML = (QQV, VFJ) +KSD = (SFB, GGM) +PDK = (JJH, BNH) +KBH = (NTT, BVQ) +MSA = (PFM, NHM) +JRJ = (KXT, SFV) +AAA = (SRS, HRP) +NRD = (NLM, FXR) +QCL = (JTT, LBX) +CTC = (HBN, GJV) +DDK = (LCV, GTR) +PBF = (XSR, XDF) +TKM = (XQS, XQB) +SNM = (VCB, QCL) +JCC = (LQQ, RFC) +GSN = (VXB, SFF) +CNG = (JPV, KMM) +VMJ = (GVC, HGN) +CXT = (LDT, VVP) +CLG = (NTT, BVQ) +HHC = (SFR, SJL) +VTP = (SNF, DTP) +PKA = (STR, TVR) +MFB = (NJB, GSN) +NNX = (TSQ, PJR) +LCP = (HGK, LJB) +MQQ = (BVH, QML) +MXL = (TGG, KBG) +FHZ = (TVR, STR) +LQK = (SXB, LHF) +QNM = (RXR, BXF) +LNN = (SKN, BXL) +HSJ = (PJB, VVJ) +SHS = (SPK, JPG) +VKR = (QLF, KHG) +VMC = (CRG, GJF) +XHS = (KQK, FNQ) +BKT = (HHN, FXT) +NCJ = (PMV, GHH) +RQL = (NBF, CXB) +MNG = (CCT, SRB) +MQB = (CKV, XTG) +PGR = (XJS, SCN) +JCP = (VJS, FJX) +TFD = (PXL, DCP) +XTH = (NQS, KKT) +JBH = (GXM, VMC) +SLD = (BBC, RQH) +BBH = (XCD, HQS) +HRP = (VDJ, NCD) +CCT = (JNC, SHS) +VNK = (VPL, TRK) +QPT = (STR, TVR) +MJC = (FLN, XGK) +TBK = (GJM, NCH) +JCR = (SNH, MJS) +TBC = (KVX, TTD) +HDF = (GFR, TMR) +DJV = (SFJ, BLG) +VDJ = (GBP, TJB) +FKS = (KKH, FGH) +TXV = (NCJ, MHD) +FGH = (MXL, HBR) +RSJ = (CPG, RFT) +MVS = (HMT, VSH) +QBN = (CGG, FGC) +GSH = (HTS, JGR) +FBQ = (DQF, KTF) +SFR = (CHD, HHM) +PHN = (XMN, DDC) +KRS = (GNV, CFB) +QSS = (JJH, BNH) +BXL = (NJG, HKC) +RRX = (GCT, XNN) +KCT = (SLM, CCK) +BVQ = (RCT, VBL) +NMN = (LHF, SXB) +RQV = (SBV, XKD) +JJR = (LHH, GNB) +VCC = (BPV, VPK) +TPB = (MJC, XBQ) +SSN = (QSS, PDK) +GXH = (VFG, QVQ) +MRT = (VJN, JHR) +CRL = (VDF, XJB) +RFC = (LMX, PVR) +FGC = (CKT, SVS) +XKS = (BGV, MPT) +CCB = (XHS, SHB) +QGK = (BBV, GPV) +FTP = (SSQ, SSQ) +BSB = (MLS, HKM) +SKN = (HKC, NJG) +MNL = (TBC, LFN) +MRP = (QLX, QLX) +BSD = (MRS, GSH) +GXQ = (TTG, TGP) +FXD = (QBN, NTK) +GDP = (QJV, LXZ) +PJN = (DKM, NLT) +BNH = (KGR, TBK) +LHH = (RBC, HFK) +TDB = (XHC, FKC) +PXH = (CPG, RFT) +DRG = (JCR, XKH) +VXB = (NQQ, FLR) +JBJ = (RQQ, LTR) +JCF = (LPQ, JPC) +SJR = (QNN, LLB) +CGS = (HQB, FGG) +GLN = (KFB, GHS) +XKD = (MQQ, DSG) +HBN = (KSD, TNM) +XHB = (HQN, KTP) +FVJ = (GNV, CFB) +LJB = (NBJ, LRV) +NVL = (XVC, FBC) +SXB = (KRS, FVJ) +RHC = (BPG, NSQ) +LHF = (KRS, FVJ) +STR = (BNF, GLN) +MCK = (GSD, MRT) +RBC = (BRL, PTP) +MRS = (HTS, JGR) +SFF = (FLR, NQQ) +SRP = (FSK, XTR) +XQC = (BRQ, GXL) +BTS = (BXL, SKN) +MFC = (GXM, VMC) +BGT = (NMD, PCH) +RGJ = (RSF, FSX) +FPN = (SXT, QQT) +BNF = (KFB, GHS) +VVP = (XGJ, GPD) +CGG = (CKT, SVS) +XVX = (FMB, NPD) +DDC = (GRK, NLN) +JXX = (DKP, HTH) +JKR = (CMP, DBF) +SGJ = (KVS, CGD) +TRM = (RNH, JJF) +GNB = (HFK, RBC) +CGK = (DCB, SBB) +MDN = (RFC, LQQ) +XJS = (CLV, TKM) +LTF = (PTM, KRX) +NCH = (GMX, VGG) +NSG = (DRG, RJH) +RXJ = (LCP, TVB) +QLF = (JJQ, FSN) +TSQ = (BTS, LNN) +FNC = (RGJ, PPL) +RXB = (PQT, QDN) +SNH = (BLD, SQD) +PJQ = (XCD, HQS) +DHN = (BGF, XXN) +QNN = (SGJ, VHX) +BRS = (FQP, KDF) +DRP = (DCL, TKQ) +KMM = (BKX, CGK) +MLS = (BCL, BCL) +QQT = (BLC, MKJ) +FFK = (FBC, XVC) +BPG = (PTK, TNS) +LTB = (XFC, KRM) +XTR = (JXS, KVQ) +PDF = (DVK, BCH) +KVX = (SGV, VPF) +DPP = (JVB, GKC) +VVJ = (GTH, DFL) +KVS = (BQG, KCQ) +LFV = (VJS, FJX) +TNG = (PJQ, BBH) +NRM = (MBQ, CVK) +CMP = (VKD, KRF) +GTS = (BPT, TPB) +BHF = (DJV, SSD) +JNJ = (RGX, VRB) +DKM = (VMJ, SNT) +TSM = (QBS, MFB) +BKX = (SBB, DCB) +FBC = (CNG, KGS) +TNM = (SFB, GGM) +BQG = (TSM, JGN) +TMR = (XNL, SFN) +NGK = (VKR, QTT) +GDB = (GKC, JVB) +TXP = (FPN, TLT) +NRX = (STL, GBT) +BPT = (XBQ, MJC) +HGN = (JPS, QLM) +QLM = (SCJ, RNV) +XCT = (DGX, VNK) +HTD = (LQK, NMN) +TLQ = (JRJ, TVT) +GJM = (GMX, GMX) +KFV = (GSS, TPM) +KXT = (RJG, MGB) +GSD = (JHR, VJN) +NVT = (VCC, CNC) +KQH = (XCT, NMQ) +HVR = (DRG, RJH) +LMK = (XGH, SMT) +JTD = (GSL, MQB) +PMV = (HVR, NSG) +JPG = (LMK, BBP) +RMK = (RJP, SVQ) +LMX = (XLJ, PXQ) +MGB = (DGK, BRS) +PTD = (HDH, THF) +FQM = (CGS, NJK) +GSS = (BLX, PND) +GJF = (BPJ, LRF) +DLL = (TLT, FPN) +NJG = (JKR, RVN) +JPC = (PGM, FKS) +SRS = (NCD, VDJ) +XVM = (LKS, BSD) +KRX = (GTS, MNN) +RQT = (BKL, RQV) +BLD = (PHJ, XQC) +LKD = (PXH, RSJ) +NJN = (VDT, NBM) +GPV = (KQB, XXR) +VDF = (VXK, VDS) +CKT = (DQR, VCX) +SLF = (LGK, XGG) +PSL = (XDT, XKC) +NNQ = (PTM, KRX) +TVR = (GLN, BNF) +PVK = (PJB, VVJ) +DXG = (FTX, FNC) +NBJ = (DQH, FDJ) +CXB = (XSQ, QNP) +NBF = (QNP, XSQ) +MBQ = (DCM, DXG) +BBX = (JQL, NRX) +XBQ = (XGK, FLN) +GKC = (MLD, FFL) +GSL = (CKV, XTG) +SBB = (NRC, MVS) +QJV = (KQP, XHB) +FMM = (XFH, KHQ) +TXQ = (KRP, VFV) +DCR = (XKQ, XTF) +BJH = (CCK, SLM) +RGX = (QRV, QRV) +SFV = (RJG, MGB) +GFQ = (PLF, VQP) +BGJ = (TCQ, SLF) +LTR = (GGS, JGF) +JVD = (QVS, XKS) +HKM = (BCL, ZZZ) +GBP = (JFC, TXQ) +VBL = (BLM, MPX) +GRV = (QPK, VSP) +BBC = (KCP, MXF) +BVH = (VFJ, QQV) +FDJ = (KSN, GNR) +KCQ = (TSM, JGN) +NNT = (QGK, JJM) +BVS = (RGX, VRB) +XGJ = (NPT, TLQ) +JPV = (BKX, CGK) +NCX = (XXN, BGF) +SFB = (FTP, FTP) +QQV = (SJR, VCR) +KBT = (FJD, MCG) +GNT = (CQD, PJN) +NLM = (QRT, XNT) +CJB = (XJS, SCN) +CCK = (NBN, TNG) +XLJ = (CRL, JNF) +HVK = (MNG, CVP) +GLQ = (RVV, TDB) +JJH = (KGR, TBK) +MVH = (SSD, DJV) +PLF = (MVH, BHF) +HQB = (CKL, DVQ) +HBS = (LPQ, JPC) +NRC = (HMT, VSH) +CGD = (KCQ, BQG) +BGV = (RMM, FDN) +TTM = (DPP, GDB) +DKP = (NSS, BKT) +MKH = (NFV, GJT) +RQZ = (GHR, PDF) +XMH = (DPS, GRV) +JMS = (SBH, VJF) +DVK = (VPC, GXH) +VRB = (QRV, TTF) +XSQ = (FGF, QBT) +DDQ = (NJN, KQV) +HFK = (BRL, PTP) +NBA = (RXJ, BDS) +SLM = (NBN, TNG) +NDX = (TKK, MKH) +VFJ = (VCR, SJR) +XNN = (TML, RGD) +KQV = (NBM, VDT) +BDS = (LCP, TVB) +JVF = (TPM, GSS) +FVH = (CGL, NBQ) +CNB = (GFQ, JBT) +RHA = (PDF, GHR) +QFJ = (NGM, PTD) +JXS = (VMP, CBP) +XKQ = (GPQ, XVX) +FXJ = (XPP, JBR) +RFT = (VFR, LVN) +DSS = (VJF, SBH) +JPS = (SCJ, RNV) +XDF = (CQL, RRX) +FFN = (NMQ, XCT) +VJS = (VCG, GXQ) +TJS = (XDT, XKC) +SMB = (QVS, XKS) +FSJ = (QJV, QJV) +QRV = (FRT, FRT) +TML = (CXT, LHK) +CQD = (NLT, DKM) +SHB = (KQK, FNQ) +PGM = (KKH, FGH) +RSF = (CJS, RSB) +LXZ = (XHB, KQP) +KHG = (JJQ, FSN) +CGF = (HFX, TXV) +BFT = (PVS, DDQ) +NJK = (HQB, FGG) +TCQ = (XGG, LGK) +SNT = (HGN, GVC) +VCG = (TGP, TTG) +VSV = (GFR, TMR) +THF = (MGD, MCT) +TVT = (SFV, KXT) +LQQ = (PVR, LMX) +CKL = (QHD, QHD) +GPD = (NPT, TLQ) +DSJ = (NGN, JTD) +CVP = (SRB, CCT) +VNQ = (GQL, FVH) +MDX = (GFQ, JBT) +PVR = (PXQ, XLJ) +MXS = (VRK, NCQ) +DBF = (KRF, VKD) +CDA = (KQP, XHB) +XCD = (KPR, GLQ) +GJV = (KSD, TNM) +JMR = (BKL, RQV) +CKV = (GFF, VBD) +GMR = (DTP, SNF) +VCH = (NMD, PCH) +JJQ = (RQL, JVX) +SSD = (BLG, SFJ) +NQQ = (BBX, LMP) +PVS = (KQV, NJN) +BSR = (JBR, XPP) +SVQ = (NNT, TLM) +HSK = (HJM, MNL) +RQH = (MXF, KCP) +FXP = (XFC, KRM) +BPD = (FXR, NLM) +FQP = (VTP, GMR) +HJM = (TBC, LFN) +KQP = (KTP, HQN) +TPM = (PND, BLX) +DCP = (MDN, JCC) +LPJ = (RXB, RJL) +QBT = (RHB, VBG) +KRP = (FMM, SSL) +NCQ = (VRV, GFS) +FLR = (BBX, LMP) +VRK = (GFS, VRV) +RNV = (RCR, MPS) +XXN = (GNT, TTJ) +DLS = (DSJ, MPB) +TGG = (KKG, PHN) +CNC = (BPV, VPK) +CDG = (DDQ, PVS) +JXH = (NGK, FLG) +BXF = (CJN, SCC) +FMD = (SLF, TCQ) +JQV = (TLR, SRP) +RGD = (CXT, LHK) +QGS = (PDF, GHR) +RTB = (LCV, GTR) +RXR = (SCC, CJN) +FKC = (XQN, RDF) +RJL = (PQT, QDN) +DGT = (FQM, JXR) +GMX = (XTL, XTL) +KHQ = (RTB, DDK) +GCT = (TML, RGD) +SJB = (GRV, DPS) +SVS = (DQR, VCX) +NLN = (RFQ, CSF) +NGN = (GSL, MQB) +PFM = (TXP, DLL) +VCB = (JTT, LBX) +QBS = (NJB, GSN) +XPP = (NDX, MBB) +QCG = (HSJ, PVK) +LGK = (SSN, PBV) +NGM = (HDH, THF) +BMC = (HJM, MNL) +GGM = (FTP, JDT) +PXL = (MDN, JCC) +PHJ = (BRQ, GXL) +QVS = (MPT, BGV) +GQL = (NBQ, CGL) +GLC = (SLD, LQT) +MNN = (TPB, BPT) +TGB = (VHM, QNM) +MPS = (DPX, JJR) +TNS = (MVK, BSB) +QLX = (HGD, HGD) +JHK = (FVH, GQL) +CGL = (JCH, TTM) +FGF = (VBG, RHB) +CJN = (TCS, QCG) +FSN = (RQL, JVX) +XNT = (KQH, FFN) +GVC = (JPS, QLM) +LDT = (XGJ, GPD) +LQT = (RQH, BBC) +VHX = (KVS, CGD) +PXQ = (JNF, CRL) +FGG = (CKL, DVQ) +STL = (KBH, CLG) +FRT = (QGS, QGS) +RCT = (BLM, MPX) +VXS = (TJS, PSL) +FXT = (MDX, CNB) +KQK = (LXV, NVT) +QDN = (KBT, XQK) +NMD = (JCP, LFV) +GPQ = (FMB, NPD) +QPK = (PKN, JXH) +STS = (CTC, RDJ) +XJB = (VDS, VXK) +BPJ = (NRM, VHT) +GFS = (JBJ, NMJ) +HFX = (MHD, NCJ) +QHG = (TJS, PSL) +FXR = (QRT, XNT) +JTT = (KDJ, BNR) +VHM = (RXR, BXF) +KSP = (VHM, QNM) +JVB = (MLD, FFL) +XFC = (LQG, JXX) +VBG = (JVD, SMB) +JVX = (NBF, CXB) +BNX = (STS, RVK) +VDT = (QRN, CGF) +MPT = (RMM, FDN) +HGD = (PFM, NHM) +SRB = (SHS, JNC) +MLD = (BPD, NRD) +DCL = (DCR, GJX) +LRV = (FDJ, DQH) +RND = (QLX, MLF) +LVV = (CVP, MNG) +JGF = (LPJ, JLD) diff --git a/2023/day08/test1 b/2023/day08/test1 new file mode 100644 index 0000000..9029a1b --- /dev/null +++ b/2023/day08/test1 @@ -0,0 +1,9 @@ +RL + +AAA = (BBB, CCC) +BBB = (DDD, EEE) +CCC = (ZZZ, GGG) +DDD = (DDD, DDD) +EEE = (EEE, EEE) +GGG = (GGG, GGG) +ZZZ = (ZZZ, ZZZ) diff --git a/2023/day08/test2 b/2023/day08/test2 new file mode 100644 index 0000000..7d1b58d --- /dev/null +++ b/2023/day08/test2 @@ -0,0 +1,5 @@ +LLR + +AAA = (BBB, BBB) +BBB = (AAA, ZZZ) +ZZZ = (ZZZ, ZZZ) diff --git a/2023/day08/test3 b/2023/day08/test3 new file mode 100644 index 0000000..5b3fa58 --- /dev/null +++ b/2023/day08/test3 @@ -0,0 +1,10 @@ +LR + +11A = (11B, XXX) +11B = (XXX, 11Z) +11Z = (11B, XXX) +22A = (22B, XXX) +22B = (22C, 22C) +22C = (22Z, 22Z) +22Z = (22B, 22B) +XXX = (XXX, XXX) diff --git a/2023/day09/day09.bqn b/2023/day09/day09.bqn new file mode 100644 index 0000000..bfab91b --- /dev/null +++ b/2023/day09/day09.bqn @@ -0,0 +1,7 @@ +⟨Split⟩←•Import"../bqn-libs/strings.bqn" + +input←>•ParseFloat¨¨" "⊸Split¨•FLines"input" +Deltas←1⊸(↓--⊸↓) +diffs←0‿¯1⊸⊏¨Deltas⍟(↕≠)˘input +•Show +´⥊1⊸⊑¨diffs +•Show +´⊑˘-˜`⌾⌽˘⊑¨diffs diff --git a/2023/day09/input b/2023/day09/input new file mode 100644 index 0000000..829cbc7 --- /dev/null +++ b/2023/day09/input @@ -0,0 +1,200 @@ +0 4 12 24 40 60 84 112 144 180 220 264 312 364 420 480 544 612 684 760 840 +-7 -6 -4 -9 -35 -97 -191 -246 -18 1130 4645 13492 33206 73178 147656 275084 472783 741142 1026794 1146833 644835 +9 26 43 55 64 84 151 349 869 2131 5030 11432 25171 54036 113717 235730 483765 988508 2023553 4171877 8686902 +5 1 -3 -11 -29 -65 -131 -235 -344 -296 360 2612 8328 20688 44682 87630 159655 274011 447135 698255 1048345 +9 8 7 6 5 4 3 2 1 0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 +17 15 17 31 75 193 478 1098 2316 4488 8014 13206 20019 27555 33193 31168 10612 -45996 -160136 -339076 -513992 +7 13 22 40 70 117 216 496 1293 3325 7942 17464 35620 68101 123240 212832 353107 565869 879814 1332040 1969762 +2 6 18 38 66 102 146 198 258 326 402 486 578 678 786 902 1026 1158 1298 1446 1602 +14 24 44 94 201 403 760 1387 2543 4833 9607 19671 40460 81862 160925 305726 560732 994038 1706926 2846252 4620235 +1 10 39 97 196 356 617 1068 1914 3629 7307 15465 33852 75432 168942 376878 832608 1815805 3903720 8270454 17270193 +5 19 42 72 107 145 184 222 257 287 310 324 327 317 292 250 189 107 2 -128 -285 +12 15 30 80 202 462 987 2022 4016 7742 14486 26437 47626 86163 159187 302969 592100 1173777 2326006 4552222 8729546 +14 23 32 41 50 59 68 77 86 95 104 113 122 131 140 149 158 167 176 185 194 +-1 9 33 70 119 179 249 328 415 509 609 714 823 935 1049 1164 1279 1393 1505 1614 1719 +4 6 14 28 58 143 389 1043 2624 6131 13339 27174 52124 94592 163026 267567 418836 625332 888732 1196168 1508302 +4 2 5 30 104 265 572 1144 2260 4566 9450 19661 40262 80019 153337 282859 502844 863434 1435907 2318992 3646292 +-9 -13 -17 -21 -25 -29 -33 -37 -41 -45 -49 -53 -57 -61 -65 -69 -73 -77 -81 -85 -89 +12 24 36 57 124 313 761 1720 3676 7579 15237 29914 57115 105401 186792 315795 505227 755716 1034175 1235335 1121613 +22 47 82 126 192 314 558 1044 1987 3776 7139 13492 25641 49104 94473 181517 346284 653553 1219032 2249318 4113718 +18 20 30 55 104 192 355 687 1423 3123 7081 16225 37039 83491 184672 398935 838880 1713686 3398184 6541851 12235754 +15 30 70 156 328 658 1265 2333 4140 7133 12148 21006 37974 73064 149014 315318 675348 1437546 3011453 6189930 12503151 +4 5 5 15 56 174 471 1164 2702 6002 12909 27044 55299 110446 215853 414613 788476 1498775 2875725 5610685 11159750 +8 31 70 134 239 409 677 1086 1690 2555 3760 5398 7577 10421 14071 18686 24444 31543 40202 50662 63187 +9 25 66 144 277 492 830 1361 2218 3660 6175 10635 18516 32197 55353 93458 154415 249331 393456 607306 917991 +22 42 84 167 321 606 1139 2133 3968 7350 13683 25901 50230 99787 201801 411958 842563 1716835 3471119 6942204 13701436 +28 57 102 176 309 563 1070 2107 4222 8425 16458 31158 56927 100323 170786 281513 450496 701737 1066654 1585692 2310153 +20 21 22 25 38 81 184 375 654 956 1141 1146 1664 6232 26744 96835 302631 850462 2210531 5411258 12622253 +7 19 43 93 185 331 526 720 761 301 -1297 -4889 -10900 -17197 -13690 29843 189479 639343 1754419 4307877 9840271 +4 1 -1 -6 -12 -4 62 297 952 2539 6013 13028 26280 49950 90260 156155 260124 419173 655963 1000126 1489772 +18 22 27 41 78 158 304 537 876 1361 2133 3626 6952 14591 31534 67068 137438 269672 506911 915647 1595338 +19 23 35 67 133 245 402 568 640 430 -263 -1323 -1418 3984 26478 91620 250473 597977 1300999 2639727 5067019 +20 35 65 131 269 545 1086 2140 4182 8087 15395 28697 52175 92333 158960 266370 434968 693195 1079909 1647263 2464145 +3 15 44 98 185 326 581 1095 2190 4561 9679 20562 43146 88572 176802 342087 640933 1163347 2048294 3504458 5837575 +1 3 3 16 84 288 760 1695 3363 6121 10425 16842 26062 38910 56358 79537 109749 148479 197407 258420 333624 +8 35 89 185 353 666 1283 2507 4858 9161 16649 29081 48875 79256 124419 189707 281804 408943 581129 810377 1110965 +23 37 51 65 79 93 107 121 135 149 163 177 191 205 219 233 247 261 275 289 303 +9 26 71 159 305 524 831 1241 1769 2430 3239 4211 5361 6704 8255 10029 12041 14306 16839 19655 22769 +16 33 71 137 231 339 428 457 434 568 1584 5298 15624 40381 94712 207811 436248 889847 1780273 3508803 6818905 +9 9 17 48 129 315 723 1606 3508 7571 16117 33726 69225 139390 275916 538615 1040303 1993089 3792709 7168424 13442509 +16 27 46 96 221 496 1037 2011 3646 6241 10176 15922 24051 35246 50311 70181 95932 128791 170146 221556 284761 +5 24 63 139 276 511 910 1594 2775 4802 8217 13821 22750 36561 57328 87748 131257 192156 275747 388479 538104 +9 9 16 51 157 408 928 1925 3752 7036 12991 24198 46470 93037 193345 410478 873859 1837811 3782186 7579109 14760539 +10 23 45 91 186 361 646 1072 1718 2876 5475 12045 28789 69888 166179 382092 847590 1816341 3768141 7583575 14833152 +12 15 34 95 235 512 1036 2038 3998 7856 15338 29449 55222 100866 179519 311865 529884 881921 1439014 2301919 3607393 +3 15 37 70 123 224 429 829 1555 2781 4725 7648 11851 17670 25469 35631 48547 64603 84165 107562 135067 +8 29 64 113 178 283 514 1087 2460 5524 11951 24866 50179 99212 193756 375492 722940 1380935 2610294 4869119 8942436 +18 28 43 64 106 222 550 1407 3473 8127 18015 37964 76465 148273 279508 518581 960498 1800964 3454785 6808934 13749834 +17 26 46 78 114 133 97 -53 -401 -1060 -2176 -3932 -6552 -10305 -15509 -22535 -31811 -43826 -59134 -78358 -102194 +10 27 56 101 172 303 585 1221 2626 5624 11833 24382 49201 97351 189395 363975 695078 1326741 2541306 4889375 9428454 +12 24 53 125 287 617 1234 2308 4070 6822 10947 16919 25313 36815 52232 72502 98704 132068 173985 226017 289907 +6 23 62 150 325 632 1115 1810 2752 4017 5828 8762 14103 24394 44249 81494 148714 265291 460026 774446 1266905 +0 8 32 76 151 293 601 1308 2912 6429 13890 29294 60369 121751 240745 468071 898672 1713090 3260268 6221284 11925491 +6 19 44 88 161 289 545 1107 2348 4965 10179 20112 38616 73180 139233 269466 533150 1074491 2185794 4441940 8939215 +14 32 55 89 149 259 452 770 1264 1994 3029 4447 6335 8789 11914 15824 20642 26500 33539 41909 51769 +10 39 92 194 385 720 1269 2117 3364 5125 7530 10724 14867 20134 26715 34815 44654 56467 70504 87030 106325 +20 38 63 96 157 298 616 1266 2474 4550 7901 13044 20619 31402 46318 66454 93072 127622 171755 227336 296457 +17 31 62 131 280 579 1136 2118 3793 6614 11402 19765 35038 64290 122437 240554 482932 983212 2023133 4206066 8836323 +8 12 27 54 90 132 196 370 939 2648 7214 18276 43102 95574 201284 406127 791003 1498336 2783948 5126512 9468339 +28 51 82 121 168 223 286 357 436 523 618 721 832 951 1078 1213 1356 1507 1666 1833 2008 +8 28 53 83 116 140 122 4 -271 -661 -786 555 6249 22283 59905 138820 292022 573758 1074275 1949579 3483298 +4 -3 -10 -5 37 152 382 782 1468 2750 5410 11202 23669 49391 99798 193703 360732 645851 1115214 1863581 3023581 +24 44 84 162 305 563 1046 1992 3874 7559 14542 27298 49847 88770 155290 269983 474023 856431 1619479 3231867 6775748 +10 36 87 171 292 450 641 857 1086 1312 1515 1671 1752 1726 1557 1205 626 -228 -1409 -2973 -4980 +-5 -6 -5 12 68 196 456 985 2100 4469 9343 18789 35761 63669 104826 156736 204593 207548 75219 -370486 -1454950 +11 34 75 141 239 376 559 795 1091 1454 1891 2409 3015 3716 4519 5431 6459 7610 8891 10309 11871 +0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 +7 28 61 124 254 511 982 1785 3073 5038 7915 11986 17584 25097 34972 47719 63915 84208 109321 140056 177298 +5 17 39 84 191 443 994 2113 4258 8205 15288 27879 50384 91301 167378 311845 590547 1133497 2196553 4281370 8365869 +18 48 92 163 286 506 901 1595 2766 4644 7494 11579 17098 24094 32327 41107 49082 53976 52272 38835 6470 +0 7 27 68 140 260 474 903 1824 3809 7967 16368 32776 63882 121310 224771 406864 720171 1247467 2116068 3517572 +4 22 55 105 174 264 377 515 680 874 1099 1357 1650 1980 2349 2759 3212 3710 4255 4849 5494 +17 23 37 65 117 212 400 817 1788 3987 8664 17982 35624 68152 128400 244019 478203 977431 2075879 4513391 9873183 +14 29 49 88 185 414 906 1904 3894 7898 16093 33065 68281 140870 288708 585336 1170726 2305775 4466201 8499930 15883953 +7 33 78 162 317 598 1104 2000 3530 6023 9936 16089 26501 46753 91758 198441 451413 1031601 2303346 4963092 10282833 +6 9 9 12 30 81 189 384 702 1185 1881 2844 4134 5817 7965 10656 13974 18009 22857 28620 35406 +1 4 27 82 181 336 559 862 1257 1756 2371 3114 3997 5032 6231 7606 9169 10932 12907 15106 17541 +20 32 43 55 79 149 351 876 2111 4787 10208 20590 39544 72742 128810 220497 366174 591722 932873 1438073 2171941 +27 48 83 145 251 416 638 867 961 654 -398 -2354 -4437 -3166 11515 64575 214023 590842 1487409 3552077 8210955 +1 18 51 115 241 487 958 1835 3413 6148 10713 18063 29509 46801 72220 108679 159833 230198 325279 451707 617385 +12 24 45 83 156 309 643 1356 2805 5614 10878 20564 38339 71385 134554 259991 519075 1070899 2265416 4854588 10409155 +11 30 69 148 297 564 1045 1956 3782 7556 15344 31052 61765 120065 228336 427270 793142 1472619 2750732 5177929 9796126 +19 43 85 160 301 579 1144 2296 4608 9157 17985 35023 67883 131190 252578 483334 917448 1726590 3226456 6006185 11184868 +0 2 16 47 102 190 317 477 638 718 552 -109 -1408 -2552 775 23343 107323 361097 1043615 2739838 6711885 +8 19 30 41 52 63 74 85 96 107 118 129 140 151 162 173 184 195 206 217 228 +21 29 29 30 55 141 339 714 1345 2325 3761 5774 8499 12085 16695 22506 29709 38509 49125 61790 76751 +15 35 68 129 242 440 765 1268 2009 3057 4490 6395 8868 12014 15947 20790 26675 33743 42144 52037 63590 +17 24 25 29 57 141 323 654 1193 2006 3165 4747 6833 9507 12855 16964 21921 27812 34721 42729 51913 +15 33 74 149 271 454 709 1037 1419 1803 2088 2105 1595 184 -2645 -7583 -15529 -27627 -45306 -70323 -104809 +-5 0 30 100 240 524 1112 2315 4716 9424 18625 36759 72943 145738 292097 583418 1153161 2242584 4273936 7964054 14495898 +8 3 -2 -12 -31 -54 -48 97 676 2387 6770 17125 40496 92007 204272 447475 971345 2091090 4459978 9410214 19617066 +18 42 89 176 339 657 1289 2526 4871 9189 17032 31374 58243 110193 213346 421080 839804 1676592 3326619 6533852 12687463 +24 33 32 19 -8 -50 -102 -136 -49 473 2262 7289 19835 48621 110656 238316 492843 991157 1960791 3853889 7582363 +14 18 21 39 110 315 811 1883 4040 8205 16089 30927 58972 112662 217520 427204 855716 1744348 3596383 7439559 15322188 +-3 -4 -1 10 37 92 191 354 605 972 1487 2186 3109 4300 5807 7682 9981 12764 16095 20042 24677 +24 46 92 185 368 710 1323 2418 4443 8365 16192 31899 63053 123665 239189 455253 852922 1575720 2878724 5220673 9441526 +5 11 17 26 37 47 59 104 294 932 2714 7067 16676 36262 73682 141431 258635 453633 767255 1256912 2001623 +3 13 39 95 206 420 835 1646 3233 6351 12563 25196 51317 105537 216866 440362 875931 1697317 3195027 5837601 10356172 +23 34 50 90 186 399 850 1766 3541 6812 12550 22166 37632 61617 97638 150226 225107 329398 471818 662914 915302 +14 19 27 31 29 47 188 717 2202 5752 13431 28996 59229 116338 222228 415936 766238 1392433 2497659 4420877 7715957 +22 48 88 154 266 456 777 1319 2240 3845 6813 12814 26034 56648 128255 293079 661970 1461954 3143994 6580482 13420090 +9 27 57 116 231 448 867 1716 3482 7124 14399 28336 53896 98861 175007 299642 497639 804177 1268533 1959460 2972957 +-5 2 26 89 231 516 1037 1929 3411 5887 10136 17600 30719 53137 89384 143329 214445 291300 344296 328391 229769 +10 30 73 147 251 375 503 626 792 1256 2850 7776 21139 53687 126416 277935 575774 1133162 2133207 3862881 6759755 +6 25 64 130 230 371 560 804 1110 1485 1936 2470 3094 3815 4640 5576 6630 7809 9120 10570 12166 +5 21 49 96 188 381 773 1520 2870 5250 9472 17165 31591 59064 111262 208803 386547 701187 1241803 2144174 3609774 +4 8 11 19 52 164 473 1201 2724 5632 10799 19463 33316 54604 86237 131909 196228 284856 404659 563867 772244 +16 17 21 43 115 288 629 1207 2056 3095 3975 3811 743 -8746 -30845 -75873 -160312 -309571 -561663 -972005 -1619581 +20 41 64 95 146 226 334 465 656 1126 2602 6972 18466 45637 104496 223248 449180 858367 1568988 2759181 4690514 +24 42 78 154 311 626 1242 2425 4680 8984 17234 33088 63554 122049 234333 449868 862900 1650010 3134026 5887858 10895573 +13 24 35 46 57 68 79 90 101 112 123 134 145 156 167 178 189 200 211 222 233 +12 33 64 116 215 402 733 1279 2126 3375 5142 7558 10769 14936 20235 26857 35008 44909 56796 70920 87547 +3 3 4 -1 -25 -93 -238 -474 -732 -738 206 3624 12659 33762 80457 181823 401424 878936 1920547 4193588 9142746 +10 16 43 118 281 578 1050 1719 2572 3544 4501 5224 5395 4586 2252 -2271 -9762 -21104 -37265 -59270 -88163 +7 21 40 64 88 114 190 496 1519 4408 11689 28662 66010 144437 302531 609532 1185287 2230407 4070518 7219532 12468068 +18 19 20 24 31 50 138 480 1524 4185 10132 22172 44745 84544 151274 258564 425046 675615 1042884 1568848 2306771 +2 13 45 110 219 374 557 718 762 535 -171 -1502 -3053 -2416 8385 50602 173946 484417 1192461 2692454 5688803 +14 41 93 176 304 512 878 1570 2957 5860 12072 25350 53185 109799 221015 431914 818552 1505483 2691447 4686364 7963758 +9 29 64 128 257 525 1071 2144 4177 7920 14718 27142 50410 95443 185129 366688 735437 1479587 2963316 5878324 11515435 +16 19 24 34 52 86 175 455 1295 3545 8960 20916 45648 94464 187794 362623 685982 1278943 2358276 4306974 7790760 +19 39 73 124 205 360 708 1522 3349 7176 14664 28524 53217 96349 171431 303116 536647 954093 1701059 3028980 5359901 +11 21 45 102 218 437 855 1689 3406 6966 14280 29052 58269 114730 221168 416748 767160 1380593 2434552 4224642 7259199 +-4 2 19 63 173 427 963 2005 3894 7124 12383 20599 32991 51125 76975 112989 162160 228102 315131 428351 573745 +-1 12 34 70 130 233 433 882 1953 4463 10073 22022 46520 95464 191794 380004 746419 1457358 2828948 5451118 10401486 +14 22 35 60 104 174 277 420 610 854 1159 1532 1980 2510 3129 3844 4662 5590 6635 7804 9104 +9 37 74 115 162 231 359 611 1087 1929 3328 5531 8848 13659 20421 29675 42053 58285 79206 105763 139022 +14 30 60 115 225 452 920 1889 3925 8250 17403 36422 74887 150368 294152 560732 1043848 1904908 3426737 6121852 10960199 +13 33 68 117 181 265 378 540 811 1358 2581 5358 11617 25866 59349 140794 342438 839116 2034831 4820180 11072302 +4 10 23 53 125 287 615 1215 2234 3916 6792 12205 23585 49261 108196 240939 529400 1130878 2334229 4649285 8944773 +0 12 47 122 268 538 1015 1820 3120 5136 8151 12518 18668 27118 38479 53464 72896 97716 128991 167922 215852 +16 25 37 67 148 350 815 1820 3891 8002 15904 30640 57313 104185 184196 317003 531650 869991 1390999 2176105 3335722 +7 13 27 67 162 360 754 1548 3200 6702 14102 29466 60657 122623 243399 474813 911029 1719659 3192341 5824533 10437948 +-8 -6 13 71 198 436 844 1494 2438 3610 4612 4343 514 -10667 -33824 -70889 -110866 -105267 85552 803711 2818074 +14 38 85 184 375 702 1212 1984 3240 5642 10963 23451 52427 117093 255476 541581 1119610 2274418 4578809 9201258 18541055 +25 31 44 84 187 422 919 1908 3776 7176 13278 24350 45030 84981 164300 324477 650636 1316593 2675177 5435792 11004698 +9 26 59 113 201 356 655 1271 2590 5462 11709 25122 53406 111972 231249 470433 942467 1857869 3599689 6850972 12816343 +10 12 36 106 267 608 1301 2667 5287 10193 19221 35721 66061 122837 231568 444139 864652 1697018 3328986 6474792 12408627 +-6 -12 -21 -25 -9 50 197 540 1338 3167 7211 15746 32911 65891 126673 234577 419810 728342 1228459 2019409 3242623 +11 18 25 32 39 46 53 60 67 74 81 88 95 102 109 116 123 130 137 144 151 +8 25 53 92 140 193 245 288 312 305 253 140 -52 -343 -755 -1312 -2040 -2967 -4123 -5540 -7252 +4 1 3 27 99 259 583 1232 2552 5276 10917 22488 45750 91310 178160 339843 635656 1171627 2140131 3893921 7081377 +11 10 14 35 90 206 432 858 1641 3038 5446 9449 15872 25842 40856 62856 94311 138306 198638 279919 387686 +22 25 22 26 60 148 307 546 877 1354 2199 4172 9516 24086 61732 152899 361419 818276 1792455 3844615 8164667 +-3 7 45 125 273 545 1066 2109 4251 8673 17706 35760 70818 136787 257331 472725 853469 1529147 2750403 5019227 9352947 +7 32 75 134 205 297 459 819 1635 3358 6707 12756 23033 39631 65331 103737 159423 238092 346747 493874 689637 +0 8 21 33 39 54 146 483 1394 3444 7523 14949 27585 47970 79464 126407 194292 289952 421761 599849 836331 +22 34 62 131 281 582 1166 2282 4380 8230 15082 26873 46487 78074 127434 202472 313730 475002 704038 1023343 1461077 +3 -3 -15 -33 -55 -62 6 285 1050 2841 6711 14709 30853 63183 128177 260102 530081 1083209 2207481 4456263 8857341 +7 17 23 19 9 21 127 486 1444 3743 8904 19860 41950 84508 163610 307266 565741 1032145 1882461 3450445 6362167 +4 8 22 58 134 291 630 1388 3082 6765 14463 29914 59853 116367 221424 415775 776340 1449322 2711168 5076766 9484732 +3 14 43 100 210 428 854 1648 3045 5370 9053 14644 22828 34440 50480 72128 100759 137958 185535 245540 320278 +25 35 49 81 159 342 749 1609 3351 6777 13410 26194 50855 98422 189666 362554 684245 1269687 2309519 4110751 7154599 +14 21 39 94 224 484 956 1776 3220 5944 11563 23901 51474 112113 241132 505141 1024546 2009023 3811863 7011128 12528108 +18 22 24 21 6 -31 -86 -99 120 1002 3370 8631 19008 37809 69728 121171 200598 318870 489588 729409 1058322 +8 4 7 36 124 333 786 1725 3601 7201 13831 25623 46145 81700 144044 255782 460470 840522 1547463 2850958 5215466 +17 28 49 99 207 409 756 1355 2488 4902 10453 23452 53362 120043 263748 563961 1174814 2392019 4780564 9420616 18383440 +19 42 90 172 300 490 761 1142 1717 2770 5136 10920 24814 56322 123295 257282 511319 970906 1769062 3106500 5278128 +-1 9 28 56 93 139 194 258 331 413 504 604 713 831 958 1094 1239 1393 1556 1728 1909 +13 33 63 122 241 460 825 1385 2189 3283 4707 6492 8657 11206 14125 17379 20909 24629 28423 32142 35601 +18 27 51 105 210 393 687 1131 1770 2655 3843 5397 7386 9885 12975 16743 21282 26691 33075 40545 49218 +11 21 46 97 193 366 668 1191 2111 3761 6726 11936 20718 34781 56227 88111 137295 224377 412322 879711 2092491 +6 19 43 73 105 142 201 321 572 1065 1963 3493 5959 9756 15385 23469 34770 50207 70875 98065 133285 +14 20 43 96 205 428 876 1735 3301 6063 10913 19662 36281 69839 141311 298920 651705 1441036 3189732 7007974 15213130 +7 27 66 140 273 497 852 1386 2155 3223 4662 6552 8981 12045 15848 20502 26127 32851 40810 50148 61017 +1 12 30 55 87 126 172 225 285 352 426 507 595 690 792 901 1017 1140 1270 1407 1551 +-4 -7 6 49 136 281 498 801 1204 1721 2366 3153 4096 5209 6506 8001 9708 11641 13814 16241 18936 +11 14 18 38 107 278 632 1311 2606 5149 10293 20835 42382 85939 172805 343763 676168 1315542 2534037 4839292 9178800 +2 4 11 33 79 152 244 331 368 284 -23 -691 -1899 -3872 -6886 -11273 -17426 -25804 -36937 -51431 -69973 +14 14 10 2 -8 -24 -60 -134 -247 -339 -196 783 4227 14509 42992 117673 303448 741928 1725310 3826880 8122058 +12 10 6 4 11 37 95 201 374 636 1012 1530 2221 3119 4261 5687 7440 9566 12114 15136 18687 +13 20 27 34 41 48 55 62 69 76 83 90 97 104 111 118 125 132 139 146 153 +-6 -4 8 32 81 194 469 1133 2672 6048 13034 26702 52103 97182 173975 300139 500870 811268 1279212 1968812 2964509 +-7 -7 10 71 227 566 1230 2446 4586 8273 14551 25150 42945 72947 124844 219801 408064 812066 1726241 3836910 8686204 +6 17 43 102 238 533 1128 2271 4426 8500 16275 31169 59494 112430 208992 380332 675790 1171187 1979939 3267664 5271054 +-1 12 45 102 183 284 397 510 607 668 669 582 375 12 -547 -1346 -2433 -3860 -5683 -7962 -10761 +20 38 76 145 269 507 980 1895 3562 6409 11006 18095 28567 43214 61926 81867 94208 79512 3336 -183235 -527535 +11 17 38 85 165 282 449 719 1244 2386 4943 10630 23099 50057 107582 228809 481245 1000903 2058564 4185863 8409645 +-4 2 23 68 146 266 437 668 968 1346 1811 2372 3038 3818 4721 5756 6932 8258 9743 11396 13226 +27 57 98 151 237 422 867 1927 4340 9587 20592 43100 88355 178137 353879 692653 1334714 2530900 4725103 8699880 15836006 +1 14 50 138 328 711 1464 2934 5783 11229 21435 40119 73480 131543 229979 392268 651589 1050788 1636808 2442508 3443080 +19 29 46 91 194 406 841 1763 3732 7817 15864 30768 56648 98793 163296 256523 385125 558401 796734 1152901 1757738 +13 37 70 112 163 223 292 370 457 553 658 772 895 1027 1168 1318 1477 1645 1822 2008 2203 +10 28 67 149 318 659 1328 2607 5009 9476 17753 33118 61871 116451 221938 429262 841028 1659924 3275775 6416139 12397756 +6 21 54 106 169 234 324 572 1376 3679 9455 22554 50197 105644 212909 414884 786866 1458249 2646020 4704634 8197761 +6 12 18 24 30 36 42 48 54 60 66 72 78 84 90 96 102 108 114 120 126 +15 34 73 145 258 418 638 957 1490 2560 5006 10817 24311 54160 116657 240729 475321 899910 1639055 2882049 4908912 +21 40 71 124 213 359 605 1057 1983 4039 8765 19642 44303 99108 218519 474039 1011681 2124154 4385819 8897208 17714481 +18 30 46 65 89 126 198 368 808 1946 4768 11433 26515 59454 129224 272864 560430 1120182 2179498 4129193 7621709 +11 26 44 66 101 166 293 561 1175 2610 5820 12474 25119 47084 81835 131383 193259 255538 289468 239506 11065 +21 38 70 127 230 432 859 1785 3762 7833 15868 31092 58941 108519 195181 345194 604107 1051488 1826178 3168309 5487200 +9 10 28 84 222 524 1136 2328 4621 9026 17461 33459 63396 118745 220471 407910 756769 1414902 2671186 5083402 9707186 +13 15 31 91 248 589 1254 2471 4631 8465 15450 28679 54623 106574 211226 421036 837005 1649727 3211485 6159471 11620662 +7 -2 -12 -16 -9 16 96 361 1145 3173 7887 18036 38751 79463 157207 302095 566043 1036208 1855038 3249368 5571615 +3 11 36 96 223 477 974 1940 3821 7520 14909 29886 60431 122413 246441 490099 959927 1851269 3520762 6617456 12316647 +1 13 40 100 234 532 1171 2463 4908 9241 16451 27732 44299 66964 95316 126283 151771 154973 104818 -52116 -403072 +15 32 61 115 216 409 800 1623 3347 6850 13718 26781 51089 95697 176978 325002 596485 1102414 2068745 3970445 7823396 +15 29 56 121 270 592 1251 2533 4921 9230 16874 30408 54600 98451 178805 326486 596275 1082507 1942636 3431795 5952178 +7 25 64 131 229 363 547 811 1221 1965 3653 8177 20861 55354 144069 359480 856203 1952117 4281458 9077979 18688197 +24 41 62 85 104 121 176 407 1164 3220 8148 18975 41310 85330 169392 326765 618248 1155531 2143418 3953905 7252132 +5 17 53 139 320 679 1367 2644 4940 8972 16011 28493 51314 94333 176804 334621 631315 1173583 2131613 3763411 6440504 +11 21 36 58 100 209 504 1239 2917 6511 13888 28577 57079 111038 210938 392938 722755 1325501 2450316 4607036 8844274 diff --git a/2023/day09/test b/2023/day09/test new file mode 100644 index 0000000..539a763 --- /dev/null +++ b/2023/day09/test @@ -0,0 +1,3 @@ +0 3 6 9 12 15 +1 3 6 10 15 21 +10 13 16 21 30 45 diff --git a/2023/day10/day10.bqn b/2023/day10/day10.bqn new file mode 100644 index 0000000..4259dcd --- /dev/null +++ b/2023/day10/day10.bqn @@ -0,0 +1,57 @@ +n‿m←≢grid←>•FLines"input" + +Dirs←⊑"|-LJ7F"⊸=/⟨⟨¯1‿0,1‿0⟩,⟨0‿¯1,0‿1⟩,⟨¯1‿0,0‿1⟩,⟨¯1‿0,0‿¯1⟩,⟨0‿¯1,1‿0⟩,⟨0‿1,1‿0⟩⟩˙ +Advance←{ + 'S'=(⊑𝕩)⊑grid ? 𝕩 ; + nextpos←(⊑𝕩)+⊑(-´⌽2↑𝕩)⊸≢¨⊸/Dirs(⊑𝕩)⊑grid + ⟨nextpos⟩∾𝕩 +} + +spos←m(⌊∘÷˜∾|)/⥊grid='S' +start←⟨spos+0‿1,spos⟩ # works for my input +path←⌽Advance⍟(n×m)start +•Show ⌊2÷˜1-˜≠path + +# First method, using the parity of the number of vertical pipes crossed on each side +# Only takes into account the ones connecting above, because "FJ" is equivalent to a single "|" +pathmask←1⊸+⌾(path⊸⊑) n‿m⥊0 +cleangrid←'.'˙¨⌾((¬pathmask)⊸(/○⥊))grid +inmask←(¬pathmask)∧⍉(↕m){∨´2|+´¨∊⟜"JL|"¨𝕨(↑⋈↓)𝕩}⌜<˘cleangrid +•Show +´⥊inmask + +# Second method for part 2, using Pick's theorem and the shoelace formula +# https://en.wikipedia.org/wiki/Pick%27s_theorem +# https://en.wikipedia.org/wiki/Shoelace_formula#Shoelace_formula +# Area inside the polygon, using the shoelace formula (determinant) +a←|2÷˜-´+˝(⌽˘1⊸⌽)⊸×>path +# Number of points in the boundary = length of the path +b←≠path +# Pick's formula to compute the number of points inside the polygon +•Show ⌈a+1-b÷2 + +## Display the path in the terminal as Unicode box drawing characters +# ReplaceChars←⊑(=⟜"|-FJL7.S"/"┃━┏┛┗┓ █"˙) +# •Out ⥊∾⟜(@+10)˘ReplaceChars¨cleangrid + +## Generate an image of the path and its interior +# ⟨PBM,PPM⟩←•Import"../../bqn-graphics/pnm.bqn" +# pixels←3‿3⊸⥊¨⟨ +# 9⥊0‿1‿0, +# 0‿0‿0‿1‿1‿1‿0‿0‿0, +# 0‿0‿0‿0‿1‿1‿0‿1‿0, +# 0‿1‿0‿1‿1‿0‿0‿0‿0, +# 0‿1‿0‿0‿1‿1‿0‿0‿0, +# 0‿0‿0‿1‿1‿0‿0‿1‿0, +# 9⥊0, +# 9⥊1, +# 9⥊1, +# ⟩ +# ReplaceCharsPixels←⊑(=⟜"|-FJL7.SI"/pixels˙) +# •Out PBM ¬∾˝∾˘´˘ReplaceCharsPixels¨ 'I'˙¨⌾(inmask⊸(/○⥊)) cleangrid + +## With color representing the distance from the start +# ⟨Inferno⟩←•Import"../../bqn-graphics/colormaps.bqn" +# pixgrid←ReplaceCharsPixels¨cleangrid +# coloroffset←1500 +# colors←⌊255×Inferno¨(coloroffset+2÷˜≠path)÷˜+´path{𝕩⊸+⌾(𝕨⊸⊑)n‿m⥊0}¨coloroffset+⌊˝(⌽≍⊢)↕≠path +# •Out PPM >∾˝∾˘´˘colors{𝕨⊸ר𝕩}¨pixgrid diff --git a/2023/day10/input b/2023/day10/input new file mode 100644 index 0000000..5c635d2 --- /dev/null +++ b/2023/day10/input @@ -0,0 +1,140 @@ +---7|.|-7F7.-FF-77FF7J-L-77.JF-.FLJ-7.F77F7-J-L7LF7J.L7.-L-.F7-7F7-|-F---..FFF7-L|.|..-.|J.F-77--77|--J.LFLF7F-|7-|.LFF-FJ7FL--7F-FJ-J-L.FFJ +L7--F.F-F7-7J..|L---JL.J7.777LLF|L|FJ-LJ-JLFJ|FL-|.L7|F-JFJFJ||-L7||-F7J|FJLJ||-7|FFL7..|.--|L-J|L-JJJJFLL7L7--JJ7LF.7J-J---LJ7F|JLL.|7|7F|7 +FJ--J.|.|L7J|--7FLJJF.FFF---||L-JF-F7.L|L|F|7-7-FL7-LFJ-|J-|7L.F-L7J7|F77FL7|-JF7|F7FF7FF77.L-..J||LL7F77|7J..7JLFF-7L7|FJ.F|7|-L77|FL-JF-JF +F|LLJ.F-F-JLJJLL-JLF-77L.L|FLJJ|-|F-J7FJJFJ|L7L-JF|.F7.L7.FLJ.7JF-L|-F.|77JFFJLLL-JF-|||LJJ.L.77-L7-LJ7---|7FF7|.L-J7FF--.F7|LF7LLJ777.|F--- +J..|F-7|J.|FLF.L|.L-.F--F-F-.FFJ-7J-LF-J-|.|-7.|FF-L||7|F77-|FL.L.7|.L7L-|LF--7|LJ7|F--JFJ.F.|.7.F|-|.J-|J|.|-|-L.|F7JJ7..||LL.|.|F7.-77L--L +|L77|F|-7FFJ.7----7JL--F77LJ-LJLFLJJLJLL-L---JF-|7LL|L77J.F7-|.L-7-J7L7--J-F7|LJ7LLL7JJ7F-|-F--7-F7-7.|L-77-L---.7--|JL7-J|L..FJ.FLJ-F|.F|-J +7LLF-FF77-J.-JF|J-|J.|7|F-J-JJL7JF77.|7|F-L|FF7-FJ7-L7L7F7|||.|7L|J..||||.F|--7L-L7LL7.L||L.L-7L7||F77F-|.J-F-...-77.JFJ7||F-FF7.|JJL-F.FLJ| +L-FL7-JL|.7-7FLFF-F--77-LJ|FLF-7F7J|FLF-7...LJJLF-F-7L7||||L7FL77J.FJJFFF-JJL|FJ--LJ.|7JF|7F|FL7||LJL7JJ|J|-L-J-LLJ--7|FJJL7.|J|.L|7FLL-|J7F +|--JJF-7L-7|L-JLL7LLJ||.LJFFFL7LJ|FLF7LLL7FFJJFL|FL7|J|LJLJFJ7LJJ7F||LFJF-7J.777F-L-.77F|JLF-7FJ||F--J.F7-|7L7J|FL|7F---.FLJ7J7L-JLLLJJ7|F-7 +7-|LLJ.L-||F||J|F--|L-JJ|-FLF-JF-J7J|L7JLF77FLF-7F-JL7L-7F-JJF7JFFFLL--.LL7FFF777||LFJLF77FL7LJFJ||F7F77L-7-F|LF7JL-7.|.F-.L|J|-|FL-J.FJ||-L +JLF-7-7J.LL|-J|L|F-7.|.FL.L-L-7|LF-7|FJJL|L7J.L7|L--7L7FJL---7F-77|.LL-L7-LF-JL7F7F77JF--7F7L-7L7|||LJ|7LFF777FJL7-J|F|FF.-.LFJ.77FF--|7|JLL +|F|.7FL-J.F-77L7L7F|777L.LLF--J|FJFJ||.FFJFJFF-JL7F7|FJL-7F--J|FJ-F7.L7.|.FL--7LJ||L-7|F-J||F7|FJ|||F-J7-FJL-7|F-J7JF7LJLJ|F-LJ.LFLF7JLJ7.FL +FJ|7L7-JJFLLF-F7|F-LF-7L|JLL--7||FJ-||F7L7|F7L--7||LJL7F-JL-7FJL7FJL--77FFF7F7L7FJ|F-J||F-J||||L-J|||F7F7L-7FJ||-F7F-7-|JF|7F7.F-JJ|F7LL|LJJ +L7J77.F7.L7|.F-J-LJLJLL-|-F7FFJLJ|F7||||FJ|||F7FJ|L--7|L7F--JL7FJ|F-7FJF7FJLJL7|L-JL7|||L-7|||L-7FJ||||||-FJL-J|FJ|L7|7|-FJ-7J-|.J7FJ|7F||J. +LF7F7-|-.|-FF||.-JF|F|.F|7|L7L--7||||LJ|L7LJ|||L7L7F7|L7|L-7F7||FJL7||FJ|L-7F-J|F--7L-JL-7||||F-J|FJLJLJL7L---7LJFJFJL-7-7-L-7||F.|J||FFJ7.J +77FL--JLFF.|-F7-FF|-777F77|FJF--JLJLJF7|JL-7|||FJFJ||L7|L-7LJLJLJF-JLJL7||FJL7FLJF-JF7F-7||LJ|L-7|L7F----JF7F-JF-JFJF7FJL|.-L77LL-J-LJ.J-LJ. +--L.F|J.77-7L|.FL7J|||L||FJ||L-7F7F--JLJF7FJ|||L7|||||||F7L-7F--7L-7|F7|L-JF-JF7FL--J||.|||F-JF7||F||F7F7FJ|L-7|F-JFJLJ|.LF7FJ-7|J|.LFJJJ7|7 +|J.F7J7LJLF7.|7--|JJLF-|||FJF7|LJ||F--7FJ|L7LJL-JL7|L7|LJ|F7||F7L--JFJ||F-7|F7||F-7F7LJFJLJ|F7|||L-JLJLJ|L7L7J||L7FJJ.FJ-JJ||LFFJL77-77|.FL. +--F7L-J-L.LJJ.|J-|77-F7||||FJ|F--J|L7FJL7L7|F-----J|FJL7FJ||||||F7F7L7|LJJ|||||||FJ|L7FJF-7||||||F--7F-7|FJFJFJL7||F7FL7F-7F-7F7LF--JL--FFJF +|.||7|.7L7||LF|7.LL7.|LJ|||L7|L--7|J|L-7L7||||F-7F-J|F7|L7|||LJLJLJL7|L7F-J||LJ||L7L7|L7|FJ||||||L-7LJ7LJL7|FJF-J|LJL7L|JJFL7|7|-7.|-LFJ.LJL +7-FL7FFJ7.F7JFF-7JLLFJF7LJL7||7F-JL-JF-JFJ||L7|FJL-7|||L7LJLJF------J|FJL-7||F-JL7|.|L7LJL7||||||F-J|F77F7|||FJF-JF--J-JF7-L||F7-|J..|.LJF7| +|7LFLJL-J.||F7|.|7FJL-JL7F7LJL7L----7|-FJFJL7LJL7F7|LJL7L-7F-JF---7F7|L7F7||||F7.|L7L7L---JLJ|||||F-7|L7||||||7|F-JF7.|7|JFFJLJ|J|L777FFLL-7 +7777F|F.L7--J|F|FF-7LF--J|L-7FJF----JL7L7L7FJF--J||L7F-J7FJL-7L7F7||LJFJ|||LJLJL7L7L7L------7LJ||||FJ|FJ|||||L-J|F7||F7F-7FJF--J7LFJ.F777-|J +|L.-L|J---7|.F7.FL-F-L--7|F-JL7L----7FJ.|FJL7L7F7||-||F7FJF--JFJ|LJL-7L7||L--7F-JFJFJF-----7L-7LJ||L-JL7|||||F7FJ|||||||FJL7L7.FJ-|.-JL..F|J +|.L-FL|J7.LJF||-LJF|7|F7LJL--7||F7F7||F-J|F7L7|||||FJ||||FJFF7L7|F7F-JFJ|L7F7|L-7L7L7L--7F7L--JF7LJF--7|||||||LJFJLJLJLJL7FJFJ7FJJ|7FFJ-|7|. +||FF7.L--7-F-J|.FFF7F-JL-7F--JL7|LJ||LJF-J||.|LJLJ|L7|||||F7|L7|LJ|L-7L7L7||LJF-JJ|FJF-7LJL----J|F-JF7LJ|||||L-7|F7F-----J|FJ|7JL-L77L-JLLL7 +J||7JFFL-L-L-7|F7F||L--7FJL---7|L-7|L-7|F-JL7L---7L7|LJLJLJ|L7||F-JF7L7L-J|L-7L7F7|L7|FJFF7LF7F7|L--JL7FJ||LJF-JLJ||F7F7|FJL-7.L|LFLJ.F7.F|. +.FFJ7-JJ.FF7F||||FJL7F7|L7F---J|F-JL7FJLJF--JF7F7L7|L7F7F--JFJLJL7FJL-JF--JF7|FJ|LJFJ|L7FJL-J|||L7F---JL7||F-JF77FJLJLJL-JF--JF77FJJ|F|-F-L. +J.J.F-..FFJL-JLJ||F-J||L7LJF--7|L--7||F-7L--7|LJ|FJL-J||L7F7L7F--JL---7|F7FJ||L7|F7L7L7||F7F7LJ|FJL-7F7FJ||L-7||FJF-7F---7L---J|JFJ77|JL|JL- +J-|F-7F--|F7F7F7|||F7|||L7FJF-JL7F7||||JL---JL7FJL7F--JL-J||J|L7F7F--7|LJ|L7||FJLJL7|FJ|LJLJL-7||F7FJ||L7||F-J||L7L7|L--7|F----JFJ.L-F7.|F7J +.LL|L|||J||LJLJ|LJ||LJ|F7LJ-L--7||||LJL--7F77FJL7FJ|F77JF7||FJFJ|LJF-JL-7|FJ||L7F77||L7|JF7F7FJ|LJ|L-JL7|LJL-7|L-JFJL---J|L---7LFJ-7J|F7JL-- +L7FJ|L7J-LJF7JFL-7|L7FJ||F7LF7FJLJ|L-7F--J||FJF-JL7||L7FJ||||FJLL-7|-F--J||FJ|FJ|L7|L7|L7|LJ|L7L7FJF---J|F---JL7F7L----7FL----JL|--L.FLJF7-L +.|L-7-J7L||||.F--JL7|L7|||L-J|L--7L7FJL-7FJ|L7|F7FJ||FJ|FJ|||L-7JFJL7L--7LJL7||FL7||FJ|FJL-7|FJFJL7|.F7|||F7F7FJ||F7F7FJF7F7F77FF7J7-LJF7L|7 +LF7L7.F---FJL7L---7|L7|||L--7|F--JFJL-7FJL7L-J|||L7LJL7||FJ||F-JFJF-JF-7L--7||L7FJ||L7|L7F-JLJFJFFJ|FJL7|||||LJFJLJLJLJFJLJLJL-7||J|7.FFJ.77 +F||FL7|FJFL-7|F---JL-J|||F7FJ|L--7|F7L||F7L-7FJ||-L-7FJ||L7|||F7|FJF7L7|7F7|||FJL7||FJL7|L7F--JF7L7|L7FJ|LJ||F-J7F7|F7-L7F----7LJL7J7--J-7-J +F7LJJ-JJFFF-J|L------7LJ|||L7L-77|LJ|FJ|||F7||FJ|F7FJL7|L7|||LJ||L7||FJL7||||||F7|||L7FJL7|L7F7||FJL7||FJF-J||FF-JL-JL7FJL---7L---J7F7J..||| +F7FL7|J-||L-7L-------JF7LJL-JF7|FJF7||FJ|||||LJFJ|||F7||FJ|||F7|L7LJ|L7FJ|||||||||||FJL7F||FJ|||LJF7LJLJFL--JL-JF--7F-J|F----JJF-7.-F..FL|F| +L-7JL7..F-7.L7F-7F7F--JL--7F7|||L-J||||FJLJLJF-JFJ|LJ|||L7||LJ||FJF-JFJL-J||LJ||LJLJ|F-JFJ|L7|LJ|FJL-------7F7F-JF7LJF-J|F7F7F7|FJJ.|.||FL-- +||J7F777L7|.LLJ7LJLJJF-7F-J|LJ|L---JLJ|L-7F--JF7|FJF-JLJ|||L7FJ|L7L-7|F---J|F-JL---7|L7.L7L7|L7F7L-7F-7F--7||||F-JL-7|F-J||||||||7|7-F-F7|LJ +||JF||L7.|L7F-7F7F7FFJFJL--J.FJF7F---7L-7||F7FJ||L7L----7||.|L7L7|F-J|L7F-7|L7F7F7FJ|FJF7|FJ|FJ|L--JL7LJLFJLJLJL7F--J||F7|||||LJL-77.|F7-J77 +FJ-|.|.F7|FJL7LJLJL7L7L-----7L-JLJ|F7L7J||LJ|L7|L7L7F--7|LJFJFJFJ|L7FJFJ|F||-LJ|||L7|L-J||L7LJ-L--7F-JF--J-F7JF7||F7-|LJLJLJLJF---JJ|J--7|-| +||F|7F7F-J|F7|F---7L-JF----7L7.F-7FJL-JFJL-7L7|L-JFJL-7||F7L7||L7|FJ|FJFJFJL--7||L7|L7F7|L7L-77F7FJ|F7L----JL7|||||L-JF7F---7FJF-77..FFFJ--- +-|J|F|LJS7|||LJF7-L---JF7F7L7L7|FJL--7JL7F-JFJL7F-JF7FJ|LJ|FJL7FJ|L7|L7|FJF-7FJ|L7LJF||LJ||F7L7||L7||L------7LJLJLJF7FJ|L-7J|L-JFJ--7J-L|J-| +|.L-FL--J|LJ|F7||F---7FJLJ|FL7LJ|F7F-JF7LJF-JF7||F7||L7|F-J|F7|L7|F||FJ|L7L7|L7L7|F--J|7F7LJL-J||FJ||F-7F7F7L-7F-7FJLJFJF7|FJF7FJJ.LL|.|L77J +.7.FLF-7FJF7LJLJ|L-7FJL--7L-7L-7LJLJF-JL7-L-7|LJ||||L7||L-7LJ|L7|L7LJL7|FJFJL7L7LJL7F7L-JL----7||L-JLJ7LJLJL-7|L7|L--7L-JLJ|FJ|L7J7|.F..F--7 +|FFF7L7|L-JL---7|F7|||F--JF7L-7L----JF-7L7F7LJLFJ||L7||L7FJF-JFJL7|F--J||FJF7|FJ.F7||L7F---7F7||L--7F7F------JL7||F--JF7F7J||-L-JJLJ.JJ-7|F7 +F--J|FJ|F------JLJLJL-JF7FJ|F7L------JLL7LJL--7L7||FJ|L7||7L-7L-7LJL--7||L-J|||F-JLJL7||F--J|LJL--7|||L------77LJLJF--JLJL7|L-7F7.FJ7.LL|J7. +L--7|L7LJF------7F7F-7FJ||-LJL---------7|F---7|FJ|LJ||FJLJF--JF7L-7F--J|L7F-JLJ|F7F7FJLJL7F7L-7F--JLJL------7L--7F-JF7F---JL-7LJL-7.|7-FJFJ7 +F--JL-JF-JF7F--7LJLJ-LJLLJF----7F------JLJF7FJ|L7L-7FJL--7L7F7||F7|L-7FJFJL-7F7|||||L---7LJ|F-JL-----7F----7L---J|F-JLJF----7|F7F-JF-L7L-||| +L7F7F--JF-J||F7L7LF77F7FF7L---7LJF----7JF7||L-J.L7FJL7F7FJL||||||LJF-JL7L7F7LJ|||LJ|F7F7|F-J|F-------J|F---JF--77||JF7|L7F7FJ||LJJJ-7LF.LFJJ +LLJ|L7F-JF7LJ|L7L-JL-JL-JL-7LFJF-JF--7L-JLJ|JF77||L-7||LJF7|||||L-7L-7FJL|||F-JLJ-FJ|||LJL7FJL7F7F7F-7|L-7F7L7FJFJL-JL--J|LJ-LJ||7|F|-|7FLJJ +L|LL-JL7FJL-7|FJF7F-7F-7F-7L-JFJF7L7-L7F7F7L-JL7FJF7||L7FJLJ|LJL--J|FJ|F-J||L-7JF7L7||L-7FJL7FJ||||||LJF7LJL-JL-JF7F7F--7L7F7F----7-FJL7J.LF +.F-LL-L||F--J|L-J|L7||FJ|LL-7FJFJL-JF7LJLJL-7F-JL-J|||FJL7F7L---7F--JFJL-7||F7|FJL-J|L7FJL7FJL-JLJLJF--JL------7FJLJ|L7-L7LJ||F---J|L--L7-7J +FJ777-L||L--7||F7L7|LJL7|F--J|7L----JL-7F7F7LJF-7F7||LJF-J||F7F7|L7F-JF--J|LJ||L7F-7|F||F-JL7JF7F7F7L---------7LJ7F7L7L-7|F7LJL-7-|--|L||L|| +LL7FJJFLJJ.LLJFJ|7LJF--J|L-7FJF---7F7F7LJLJL-7L7LJ||L-7L7FJ||LJLJ|LJF7L7F7L-7||FJ|FJL7|||F7FJFJ||LJ|F7F---7F--JFF-J|-L7FJ|||F7F-J.-JF|.F7FFJ +F7L7.FF|JJFJF7L7|F7FL--7|F-J|FL7F7LJLJL7F---7L-JF-JL-7|FJL7|L7JJ-F--JL-J||F-JLJL-JL--JLJLJLJJL7|L-7|||L--7|L----JF7|F7LJ|LJLJLJJL|F|LL7L.-|J +7FFLJJL||.FFJL-JLJ|F7F7LJL--JF7LJ|F---7||F77L7F7L7F77LJ|F-JL7L7F7L-7F7F-J|L---7F------7F7F-7F-JL--JLJL---J|F-----J|LJ|F--7F7F-7.LF-|-|-|FLJ. +--7|.J7|FF-JF7F--7LJLJL------JL-7LJF-7|LJ|L-7|||FJ||F7.|L7LFJFJ|L--J||L7FL7F-7||F7F7F7LJLJFJL7F7F-7F---7F7LJF7LF-7|F7LJF7LJLJFJ-.LF|FJ|FJ7-7 +LLLF|7F|7L--JLJF7L------------7FJ7FJJLJLFJF7||||L-J||L7|FJFJFJLL7F7FJ|FJF-JL7||||LJLJL---7L-7LJLJJLJF7|LJ|F-JL7|FJLJ|F-JL-7F7L7--7||7|F|L-7J +.7--L|FL-F-----JL7F77F-7JF7F7FJL-7L--7F7L7|LJLJL7F-J|FJLJ7L7L--7LJ|L7||FJF7FJLJLJ|F7F7JF-JF7L7F-7F7FJL--7LJF-7LJL-7-LJF7F7LJL7||.FJL7--JLJ-J +F||L7L-JLL7F----7LJL7L7|FJLJ|L7F7|F--J|L-JL----7LJ7FJ|F7F7FL7F7|L|L-J||L7||L-7F---JLJL-JF7|L7|L7|||L---7L--JFJF7F-JF7FJLJL7F7LJFF--F||.F77|. +7|FLLFL7|JLJFF7JL--7|FJLJF-7|-||LJL---JF-------JFF7|FJ|LJL7|LJLJ7-LJ|LJJLJL7FJ|F--------JLJFJL-JLJL--7.L---7L-J|L--JLJF--7LJL---7.F|F7.LLJ|| +F-77LJ-|7.F7FJL----JLJF-7|FJ|FJL------7L--7F7F7JFJLJL-JF7FJ7JJ.|J-|.L.J7LLL|L7||F---------7L--------7|F----JF-7|F7F---JF7L------J.LJ7LFFJLFJ +.-L--J-F-FJLJF-------7L7LJL7LJF7F----7|F7FJ|||L-JF-7F--JLJL-7-|.|LJ.LJFJ|.LL-JLJL7F-7F-7F7L---------JLJF---7|FJLJLJF---JL7LF--7J||J7|F|-7F-7 +F|LLLJF|FL---JF------JFJFF7L7FJLJF7F-JLJ|L7|||F--JFJL---77|.|LL-77JF-LL--7..L||F7LJFJL7||L7F-7F7F7F7F7FJF--J|L-7|F7|F-7F7L-JF7L-7JLJJ|JFJ--7 +F|.|L-LF7LF--7L---7F7FJ7FJL7LJF--JLJF7F7L-J|LJL--7L7F7F7|F-7||F7J|FF..J-J.J-7|FJ|F7L--J||-LJ7LJLJLJLJLJ7L--7|F7L7|LJL7LJL---JL-7|-7.F|F-|FLJ +||FL-7FLF-L-7L-7F-J|||F-JF7L--JF7F--JLJL7F7|F-7F7L7LJLJ|LJFJ7F7--77..-J-F..||-L7||||F7LLJF-7F-7F7F-7F7F-7F7LJ|L-J|F--JF----7.F7LJJ|FLF7-7--J +L77..77-|-F7L-7|L--JLJL--JL--7FJ||F-----J||||-|||FJFF7||F-JJFJJFL|J7F-L7.L-FFJFJLJL-JL7F7L7|L7LJ|L7|||L7LJL7FJF77|L---JF--7L-JL7J|F|LF|JJ..| +JJL-.JJF7FJL--J|F7F7F7F7F----J|FJ|L------JLJL7LJ|L--JL7LJF7F7JJFFJ-|--FLF--FF-JF7F7F-7LJL-JL7L-7|FJLJL7L--7||FJL7|F----JF7L---7||F-J|||L7.F| +.FJL77L|LJF---7LJLJLJLJLJF----JL-J|F7F7F7F7F7L-7L7F7F7|J.||||FF77J-LL.F7.7|.L--JLJ||FJF7F-7FJF7|LJF--7L7F-JLJ|F-J||F----JL7F-7LJJLJFL-F7|.F7 +LJ.7L|-L-7|F7|L-7F-------JF7F7|F7F-JLJLJLJ|||F7L7LJLJLJLFJ||L-JL77.LJ7LJ7LF.FF-7J|LJL7|LJFJ|FJLJF-JF-JFJL----JL--JLJF-----J|FJ7.|7.F|7LLJF|. +F-FJFL7|FLJ|L---J|FF---7F-JLJL-JLJF-----7.LJLJL-JF7F-7F7L7||F-7FJ.|JL|J..|F-7L7|FF7F7LJF7L7LJF-7|F-JF7L7FF7F-7F7F-7FJF7F--7|L777-L7||LFJLLJ7 +J.J|FL||FJ|L7F---JFJF-7|L--7F--7F-JF7F--JF7F----7|||FJ||FJLJ|.LJJ7|--77-FLL7|FJL-JLJ|F7||FJF7L7LJL7FJL7L-JLJLLJLJ||L-J||F-J|FJL-J.L-7-|.L-LF +L.LF--L7|.LFLJJF--JFJFJL7F7LJF7||F-JLJF7FJLJF7F7LJ||L-JLJF7FJF7J-F|JLJ--|.F||L-----7|||||L7||FJ|F7LJF7L--------7F7|F7FJ|L--JL-7|FFJ.JF|FJJ.| +.-FJ|F|7L77F---JF--J-|F7LJ|F7||LJL----JLJF--JLJ|F7LJF-7F7|||J|L-7--77LL7F|F|L------JLJLJL7LJ||F-JL--JL---------J||LJ|L-JF7F7F7|F7F7-LL7J..F7 +7.-7L|J|FF-JF---JF---J||F7LJLJL7F7F------JF7F-7LJL--JFLJLJLJFJF-J|JFJ-.F|LFJF7F---------7L--J|L----7F7F7F-------JL-7L7F7|LJLJLJ||||77.L|7FJ7 +J-L77||FFL7FJJF-7L----JLJ|F7F-7LJ|L-7F7F--JLJFJFF-----7F7F--JFJJFJLLJ|-LF.L-J||F-------7|F7F7|F----J|LJLJF7F------7L7LJLJF7F7F7|LJL---777|-| +.|.LF77-|J||F-JFJF-------J|LJL|F7L--J|LJF----J-FJF----J|LJF7FJJ--JL|.F.FJ7.L7LJL------7LJ|||||L--7F7L7F--JLJF7F--7L7L--7FJLJLJ|L-7F---J77F7- +L|7FLJJ|J.LJL-7L7L----7F-7|F--J|L----JF7L-----7L7|F-7F7|F-JLJ.|JLF7J7L--.|J7L|.F------JF7|LJLJF-7LJ|FJL---7J|LJF-J-L7F-J|F7F7FJF-JL-7.||F-J| +.|F7FJJF7.JLF7L7L----7|L7LJL7F7L7F----JL----7FJ||LJFJ|||L7F7F77F.FJ.F7LLJLLF7|-L---7F7FJ|L7F7|L7|F7LJF7F--JFJF7|F7F7|L7FJ|LJLJFJF---J-7-J.-| +F-J|LJ-|L-|L||FL-7F-7LJFJ|F7||L-JL--------7.LJJFJF7|FJLJFJ|LJL77-J-L.7J|||.LL-7LF--J|LJLL-J||F7||||F7||L---JFJLJ|LJ||FJL7L7F-7L7L-----7J.F|J +7JFLJ7.F7F|J|L---J|7L-7|F7|LJL7F----------JF7F7L7|LJ|F-7L-JF7FJF7L-J7.L|-|7J|JFFJF7FJF7F--7|||||LJLJLJL7F---JF7F|F-JLJF-JFJL7L-JF-----J.F-F- +L-|.||--F7F7L-----JF7|LJ|LJF7FJL-7F-------7|LJ|FJL--JL7L7F7|LJFJL7J.7.F|FJF---7L-J||FJLJF7LJLJ||F-7F--7|L----JL7|L--7|L-7L--JF--JF77.LJ7L-J. +.L|-||J-|-|L-------JL---JF7|||F7FJ|F------JL-7LJF7F-7FJFJ|||F7L7FJF7F7F7F7L--7|||LLJL-7FJL---7LJL7LJF7|L--7F7F7||F--JF7FJF---JF-7|L7--JF|-J. +FF.|LL--LJL----------7F-7|||LJ||L-J|F----7JF7|F-J|L7|L7L7|LJ|L7||FJ|||||||LF-JL7-F---7|L77F7FJF--JF-JLJF-7LJLJLJ||F7F||L7||F7JL7||FJL7J|77.| +FJL-J..L|F--7F------7LJ7||||F-JL---J|F---JFJLJL-7L-JL7L7LJF-JFJ|||FJ||||||-L--7L7L--7|L-JFJLJFJ7F-JF7F7|FJF7JF7FJLJL-JL-JL7||F-JLJL-7F-7-7L7 +|7LL7J-FLL-7|L-----7L---J|||L-------JL----JF---7L--7-|FJF7L-7L-J||L-J||LJ|F---JFJF-7|L7FFJF7FJF7L7FJ||LJL-J|FJLJF7F7F----7LJ||F-----J|FJJ7.7 +-J|FJ.FL.F-JL7JF7F-JF7F7FJ||F---7F---7F-7F7L-7FJF--JFJ|.||F7L-7FJL7F-J|F-JL-7F7|FJFJ|FJFJFJ||FJ|JLJ.LJF---7LJF-7|LJLJF-7FJF7LJL----7FJL7LJJ| +F|77J-7|7L7F7|FJLJF7|LJ||7||L--7|L--7|L7|||F-JL-JF77L-JFJ||L--J|F7||F7|L7F7FLJ|||FJFJL7L7L7LJL7L--77F7L--7L-7L7|L7F7.|FJL7||F-7F--7LJF-J7FJ7 +-|J|J.L--FJ||LJF--JLJF-JL7LJF--JL---JL7|LJLJ7F7FFJL-7F7L7|L-7F7LJ||LJLJFJ|L7|FJLJL7L-7L7L-JF-7L7F7L-JL---JF7|FJL7LJL-JL-7||||FJL-7L--JJ|LJF7 +LF-L7J.FFL-JL-7L7F---JF-7L7FJF7F-----7LJF7F7FJL-JF--J||FJL7JLJ|F-JL-7F-J-L7L7L7F--JF7L7L7FFJFJFJ|L7F7F7F-7||LJLFL----7F7|LJLJL-7FJF-7JF-L-J. +LL-J|J|FF7-LLFJFJL---7||L-JL-J||F----JF7|LJLJF--7L--7|||F-JF7FJL7F7FJ|F7F7L7L7|L--7|L-JFJFJFJLL-JJLJLJLJ|LJL-7-F7F7F7LJLJ|F7F-7|L-JFJ-|7L7.| +F7|7L7-7JF7F7L7L-7F-7LJF7F7F--J|L-----JLJF7F7|F7L---J||||F7||L7FJ||L7|||||FJFJ|F--JL7F-J-L7|F7F7F7F7F-------7L7|||LJL-7F--JLJFJ|F-7L77.7JF-J +|L7J7.FF7||||.L--JL7|F7||||L---JFF-------JLJLJ|L7F7F7||||||||FJ|FJL-JLJ||||FJFJL7F7FJL7F-7|||||||||||F7F---7L7LJLJF7F-JL7F---JFJ|FJFJ7JJ7.F7 +JFLF77J|LJLJL-7F-7FJLJ|||||F7F7F7L----7-F7F-7FJFJ|||||||||LJLJFJL-----7||LJL7L7FJ||L7FJL7|||||||||||LJLJF--JFJF7F7||L-7FJL---7L7|L-JLLJF7.LF +FJ..|LFL-----7||FJL7F7LJLJLJLJ|||F7F-7L-JLJFJL7|FJ||||LJ|L-7F-JF-7F--7||L-7FJJ|L7|L7||-FJLJ||||LJ||L7-F7L--7L-JLJLJL-7LJF----J.|L7F7|.||J-|J +|J7F---7|7F7FJLJ|F7LJ|F------7LJLJ|L7|F7F7FJF-JLJFJ|||F-JF7|||FJFJL-7||L-7||F7L7||FJ|L7L-7FJ|||F7LJFJFJL---JLF------7|F7L----7-L7|||7F7L-7L7 +.|LJ|.LF7FJ|L-7FJ||F7LJF7F7F-JF7F7L-J||LJLJFJF---JFJ|||F7|LJL7L7|F--JLJF-J|LJ|-|LJL7L7L--J||||LJL7FJ|L-------JF7F--7|||L-----JF7LJ|L-JL7.7.. +F7JF7FFJ|L7|F-J|L||||.FJLJ|L--JLJL--7LJF7F7L7|F-7.|FJ||||L--7L-J|L----7L-7L7FJFJF--JJL--7FJFJL--7|L-7F-----7F7|||F7LJLJFF----7|L--JF---J.F-- +7J-LJ.L7L-J|L-7L-JLJL7L--7L7F7F7FF--JJFJ||L7|||FJFJ|FJ||||F-JF--J7F--7L-7L7|L7L7|F7F7F7-|L7L7F--JL7FJL----7||LJLJ||FF7F7|F---J|F---JJ.L||77. +L7.LL7|L--7|F7L-7F7F7L-7FL7LJLJL7L-7F-JFJ|FJ||||J|FJL7LJL7L-7L---7L-7|F7L7||FJFJLJ|||||FJFJFJL7|F7||F7.F7FJLJFF-7|L7|||LJL7F--JL----77F|J|F- +7.J7FF7F--J|||F-J|LJL-7|F-JF-7F7L--JL-7|FJL7||||FJL7FJF--JF7|F---JF-JLJL7||||JL7F7LJLJ|L7L7L-7L7||||||FJLJF7F7|FJ|FJ|||F--J|F--7F---J----FJJ +|7.F-JLJF-7|||L-7|F7F-J|L-7L7LJL7F-7-FJ||F-J|LJ|L-7|L7|F7L||||7F7|L----7||LJL7FJ|L7F--J.L7|F7|FJ|||LJ|L---JLJLJL7||FJLJL---JL-7|L---7J.|||F| +LF-L-7F7|FJLJL7|LJ|LJF7L--JFJF--J|FL7L7LJL7FJF-J-FJL7|||L7|||L7|L-7F--7|||F--JL-JFJL7F7F7||||||FJ|L-7L7F7F--7F-7LJLJF7F-7F----J|F---J7FF-F77 +.JJ|-LJLJL-7F-JF--JF7|L----J||F7FJF-J.L-7FJL7|-F7L7FJ||L7||||FJL7FJL7FJ||||F7F7F7L7FJ||||||||||L7|F7|FJ||L-7|L7|F7F-JLJFJL----7|L--7-FFJ-JL| +|7F7F7F7LF-JL--JF7FJ||F-----7LJLJFJF7F7FJL7FJL7||FJ|FJL7|||||L7FJL7FJ|FJ||||||||L7|L7|||LJ|||||FJ|||||FJ|F7|L7|LJ|L---7L7F7F--JL---JFFJ7|.L| +LL|LJLJL-JF7F-7FJ||J||L----7|FF--JFJ||LJF-JL-7||LJ|LJFFJ|||||FJ|F7||FJL7LJ||LJ||FJL7||||FFJ|LJ||FJ|||LJFLJ|L7LJF7L7F--JFJ||L------7J7|-F7-FF +FLL--7F7F7|LJFJL7||FJ|F--7FJL-JF7FJL|L-7L7F7FJ|L--7|F7L7|LJ||L7LJ|LJL-7L7FJL-7||L7FJ||||FJFJF-J|L7||L---77L-JF-J|FJL--7L7||F7F7F7FJ--J.L--J| +FFF7FJ|LJ|L7JL--JLJL7||F7LJF-7FJ|L-7|F7|FJ||L7|F--JFJL-JL-7LJ-|F7L-7F7|FJL7F7||L7||FJ||||FJFJF7|FJ|L-7F-JF---JF-JL7F-7L7||LJLJLJLJ|L||7|J.-| +F-JLJFJJFJFJF----77FJ|LJL--J-||-L-7|||||L7||FJ|L-7FL7F7F7FJ.F-J||F7||LJL-7||LJL7|||L7||||L7|FJ|||FJF-JL--JF---JF7FJL7|FJ|L----7.|||FFLF-77LJ +L7F--J-F|FJFJF7F7L-JFJ|F-----JL--7LJ||LJF||||-|F-JF-J||||L7FJF7|LJLJL7F--J|L--7|||L7LJLJ|FJ||FJ||L7L7F-7F7L----J|L7FJLJFJF7F--J7JFLJ-JJ----J +F|||JF7FJL7L7||||F7FJF7L-7F7F7F7FJ-FJ|7F-J||L7LJF-JF7||||FJ|FJ|L--7F-JL-7FJF7FJ||L7|F---JL7||L7||FJF||JLJL7F7F7FJ.|L-7-L-JLJJ|L7LL7JJL.-.|77 +FLJF-JLJF7|FJ|LJLJLJFJL-7LJ|||||L-7L7|FJF7|L7L-7|F7||||||L7|L7L7F-J|F7F7||FJLJFJL7|||F--7FJLJFJ|LJLFJL7F7FJ|LJLJF7|F7L----7JL|7|-LF.7.JJ7FL7 +LL7L---7|LJL-J7F7F--JF-7L--J||||F-JLLJ|FJ||F|F-J||||LJ|||FJ|FJFJL-7LJ|||||L--7L--J||||F-JL-77L7L-7FJF7LJ|L7L-7F7||LJL7F-7FJL7|LFF.L-L7LF7LJ7 +..JLF--JL77F---JLJF-7L7L7F7FJ||LJ7F---J||LJFJL-7LJ|L7FJ|||FJ|F|F-7L-7||||L7F-JF-7-LJ||L----JF7|F7|L-J|F-J7|F7LJLJL--7LJF|L---7-|L-|J|7FJ|-L7 +F-.F|F7F7L7|F-7F7FJFJFJFJ|||FJL--7L-7F7L-7FJF--JF7|FJL7|||L7L7|L7|F7|||LJFJL--JFJF7FLJF-----JLJ||L-7FJL--7LJ|F--7F--JF7FJF7F-J7L7JLF|.|.F.|| +F7-7LJLJ|FJ||FJ|||FJFJJL7|||L7F-7L7FJ||F7|L7L-7FJLJ|F7||||-L7||FJ||LJLJF-JF7F7FJJ|L--7L--7F7F7FJ|F-JL7F--JF7|L-7|L---J|L7|LJFLJJ|JLL77L7J7F| +LJFJJF--J|LLJL7|LJL-J|F|LJ||7LJFJFJL7||||L7|F7|L7F7||LJ|LJF-J||L7|L---7|F7|LJ|L--JF7FJLF7LJ|||L7|L7F7|L---J||F-J|F7F7FJ.LJJJF|FFL-F7|F||FL-- +FJ7.L|F--J--LFJ|F-77F7FF--JL--7L-JF-J|||L-J||LJ|||LJL-7|F7L7FJ|FJ|F--7|||LJ|FJF7F-J||F-JL--J||FJ|FJ|LJF7F-7||L-7||LJ|L-7LLJ-FJF-|JJFJ-77F7F7 +L|LF.LJJ..|-L|FJL7L-JL7L-7F7F7L7F-JF7||L-7|LJLF-JL7F--J||L-JL7|L7|L-7LJLJF--JFJ|L-7||L-7F-7FJ|L7LJ-L-7|LJ.LJ|F7||L-7|F7|7JF7JLL----7J-77|J.L +|L-F-JJ.|-J7F||LLL7F-7L--J|LJ|FJL7FJ|||F7L-7F7L--7|L7F7|L7F--JL7|L7FJF--7L7F7|||F-J||F-JL7||FJFJF----JL---7FJ|LJL7FJLJLJ7.|L7J.F|7LJL|JFJFLJ +FL-J.L7-F7||FLJ7LFJ|FJF7F7L-7|L7.|||LJLJL7FJ|||F-JL7LJ||FJL---7LJ7||FJF7|FJ||L7|L7FJ|L7F7|LJL7L7|F---7F-7FJL7L--7|L-77JLL-F.|7FJ7-F---7LJJ.J +F|JJ7F--7JFJ7JL7L|FJL7|LJL7FJL-JFJL---7F7|L7|L-JF-7|F-J|L-7F7FJF--JLJFJLJL7|L7||FJL7|FJ|LJ7F-JFJLJLF-JL7LJF7L7F-J|F7L-7.J.|FF-J-JLL7F7|7.LJ7 +L|..7-JFJ.FL7.L-7LJ7F||7F7|L-7F-JF7F--J||L-J|F-7L7||L-7L7FJ||L7L7F7F7L7LF7|L7|||L-7LJL7L--7L--JF7F7L7F7L--J|FJL7FJ||F-J7|7.F.|L7JLLF|.F77F|7 +|L--.LFJ|L|F|-F7LLJFFJ|FJLJF7||F7||L---JL-7FJ|L|FJLJF7|FJL-J|FJLLJ||L7L7||L7|||L7FJFF-JF--JLF7FJLJL-J||F--7|L7FJL7|||LF-L.FF---.F7-J|-|F-J.7 +LFJ|7L7LJLL|LFJ|||LLL7||F-7|LJ|||||F-7F7F-J|FJFJL-7FJLJL---7|L7F--JL7L7LJ|FJ|LJF||F-JF-JF---JLJF--7F7||L-7LJFJL-7||||L-JJ7.L|JFFL||LJ.--7-FJ +|LLLJL|7JLL|L|FF7F-L-LJ||FJL-7LJ|||L7||LJF-JL7L7F7|L--7F--7|L7||F7F7|FJF-JL7L7.LLJL7FJ|LL-7F7F7|F-J||||F-JF7L---J||LJ7LJ.LL-LFF.L.L7LJJ-|-J| +|-7|77JL7-|J7|||-||7FJF||L-7FJF-J||FJ|L-7L-7FJJ||||F--JL-7LJFJ|||||||L7L--7L7L7||F-JL777F7LJLJLJL7FJ|||L--JL---77LJ-L77.FLL..FJ7JFFL.||.J|J| +L-7JFL7L|7..F.|JFLF|77-LJF-J|FJF7|LJJ|F-JLF|||||||||F7F7FJF7L7|LJ||||FJF--JJL7L77L-7FJF-JL-7.F---J|FJ||F--7F7F7|-JJ|JJFJ7|.FF|J--JJJ.777.7.F +LFJF--FF-J7.77F---JJF-JLLL--JL-J|L7J-||FJ-FJL7-LJLJ|||||L-JL7LJF-J|LJL7L-7..|L7L7LLLJ-L-7F7L7L---7|L-J||F7LJLJLJ7..|---LL77FJ|.|||.L-.7--J.J +FL-F.7F|7.L-LJ|F--..||-.|7||.|JFJFJJLLJJ7LL7FJJ7L||LJLJ|F7F-J.L|F-JF--JF-J-F-JL-J-J-F7JJ||L7L----J|F--JLJL------7FF|.|7L|LF--J77FJ...F|LJL|| +JJ7.--JLJ-7F---J|-7F|L|-L7L--F-JFJLJ7F|-J-LLJJF-7LLLLF-J|||.|7F|L77|F-7L7JFJ77L.LL-FFJ|FLJ-L-7F--7|L---7F-------J-JJ7F-FJ-|JJ-||F7.7FFJ|.FJF +FLL7J|.L|.F-77|.-.--7-F7|.|.LL--J-LL|-7F|.L|J.FJ77FJ.|F7|LJFLLFL-J-LJFL7|.|LFF..L7FF.|L-7|||.||F-J|F---JL--7F7FF7.|L-JFJ..|7L||F-|-|F||F777| +L.LJ-F|-LFJ-J7|.|F|JLJLFL.F.|LLJL7.LJF---J-F.F--L-J.F||LJ7F-.F7JLJF|L-FJ|-L-FJ.|.7-.--JL|LF7.|||F-JL-7F7F7FJ|L-J|-|7JL7-FF7J-L--JJ|F7LL|JLF7 +|J.L--F7-L..|FL7LL|JL7|.|FLJ7FLF-J7F--J7..FJ.L|J.LLF-JL7.FLL-LJF-JF-..L-J7|7|77|FL7J7|.---77-LJ||F---J||||L-JF7FJ.LJ7LJ|.LFJ-L-J..J.JLLJLF|| +|.|J.LLJ7L7.||FFL-LJ|LJ--|7JL7F|.LJLFJFLL7|LF||.7.LL---J7L7|LLL7-7LL|.LLJ.-JL|--L-L|-J..L7JL|.LLJL7F7FJ|||F--J|L7.7L--LL7||J.L-LL-J-|....7|F +.F|.7.--L-FL7-|77FL.F7J-LL7.L7-L-F--JJ|J.|-7.F.J7L-7L|.L|J|7J7.77.FLL.|-J--FL|.|J7LJ7J|JJ.--F7FJ-L||LJFJ||L--7L7L7|FJFL|J|7F-.F7-F|-L---FF-| +-JJ-L7J77FL-JJ.|7JLF7-7.|.L--|.|-LF|-7L7-|J7.L-7|.L-FLF-J.|J-F-J.L----JJJ.---77|-7..L-L|F|F---|JFLLJF-JFJ|F7FJLL-J-|||.L--7JFF.-7|.F|L--|L7J +|L.|F|7LFFJ77.FLJ7.7JL77-7.LLL7-JJLL-|-JLJ.L.7.F---J|-||7-|LF-77FJFJ-FJ7.|F|JL7JF|-FL7-|-|7|L-JJFJ..L7FJL|||L--7-|-LF777L7F7F7FL.FF7-F77-J|| +7-7--.FL|JJF---J----JJJLJ|J-J-LJ7-.LJJ.L---L--J..LL77-|-L.-F7-L7-L7J-LJL-L-JF---FJ--.--.LF---JL-----LLJLLLJL---JLL.LJ--JLJL7JJ|-FJLJJLLJLLLJ diff --git a/2023/day10/input.png b/2023/day10/input.png new file mode 100644 index 0000000000000000000000000000000000000000..47c164f9d6011bb13481af80f26de37a668f63a8 GIT binary patch literal 8308 zcmV-)AdBCLP)Y`mx;|B|2vAD_F$-@xNwst$cD~zIR4oe4hEf*%fmrhwvapn(UQ`K>lr1V2*+DN_ zx_=>ZMoQePMt4D!yH19d7*)JU5M0S&hH&olyv3Idc4ut&Zcxh&goir3=lyuzk5fwh z=kcG%*FQ4RRZz}H9g2C$@is zsLUuo80PwSYtwPhbhw^!yWYPyNygn$)9T-Sy8VY0vpUMUw(k^i6@Ig82W}zf7Vy_{ z3)ve)l}GhKRPWE~gYm?)j{A6L+%2~zrB=5z%$HlAx1wCT;zSh{<#d!&Ma#uo5Ke6A zIHy%s#oHHnHB@<2bJ}&!biMHeVk{4>q+Kt^p>9p|xR=EFa_&W-d@kDpJ5T?O`XIoH?3bdVdnibvf z`SY8;wtZJY;o*C;uvyo>A=J*XXCSmZR;VF5Y-_uc9Kx=<9#&{zFO#IbfwC*yj#xn& zx@hssZDs=u(9WWw|^g2h$nzZ)^mo;S>^q1s%bGpp-+y}<|;4SNaos0ORS z3ZalCXk(<#n{z~IFc1_{@1Y!MJ}j|;&B9Ju8ooDD&P|}eX9kCp>8xIA^=QtsyHa6449yhuj zmOIA7Ubk}zp2Wel4OEC-_C{x=0he2V1hViRu8n8~#~Z*x#Z&_a&mkN}kefgmxM)K! zjhHgaBO;fu?_&`rR1_?oJ)j@fHVs59yuq5Z>$=fgNF%C}<{=god=kGVr2!fMn`NAZYTXFxZrwEN z1DHb`cyTSm71lhiuvbQm9tFBxM`Ss_LUCdU1TO56W(a9ibOdPx3NfM>=*U;0KLDZXK7fl2OROVI~85Y53|17U{L~kSB-)mRf3`r8jZKwS97@qVK3IbsG`3 zfXg9Rc=&2#1+Ccree$7&@s#z{;)ocK^vfod5>~lp}0XYr9o}S zbz@u+FX=$shOh8XFx4WssKsr)77CUdOj}U4aM0;Zp@Fc7&cuvJZ@du~4;kXksll5| zRF(>luPyS+$?-tysAF^&FadBCt|YE-CH6H@IjEV}gwT4r8Irq-HX26fIutU&B3oSH zz;w;Z+rZqY?c`CsghkD1;Obetq(d&!Z$KKPsp`5YNC}}NGYd+cNgul$LFH=Y4p#V7 zkMbU^riOGN!3tOO23td2Qq*ct;;M#*7Z9@o2Crg{aRK_)6mnI#CMxgkOt6~>eC5uh z1V#4X8LAL z8p8CjM-6U@TjV9E`DCQwHdL4DXnO$}BE>A?Y#A(W7l;yI~8P->re zaF6Xz*mR_R=5UqQGj0|cBd9a>Ji7#er$4bz+}LteUnwSW%Fccr3X%FZm!CR^3Nsz} zK=42$@6a^F5zrKMDu_<#>HWg{I$IB=m?P%|d!aJe67 z7sxItAOB+1$qMyM9Q77dT@CB~Sy*bBq%{%Vb;39T^BJ4LDTLWW1k|m`w9{QfNwU-M z-GUS}itrLAB&Be?xWq2fOdphhSrT)lOHjFkC9063e%nOBgfs21Pc`d8>&m8kFzzA? zfD&S_2gvK&pBS=RUEK~BD12Ms6r>V}-`l7loE?COHV|qhgpub%j8)KPc)TsBXLFQ8 z)c#(IIwHT_K;`J@I%Yb1>Yb8zC6d`C?fpF%&MZh?nsVo}cQ@$E$5zsan2tG=7`SMb zMT16G7xwq;Dt+Dep!aZn0g32(Oj)7|3)B%%u;PnR82-r*b=MYakZZ56+W9uCqxG`y=$(b!IB{~sv10nI%i>d=g zif{m#6p>VBZ#VDYi5APn`v@5eRIoxtOVl?%3ran=wxbLd!>}vNzfN}zD%<*>pT*&r z=j1jBF;cg|%3m)v%3R9N}Wex??7ENtHFkgeAz_=fiTM~IDFD$XkeH~&@mum z_vR}^lxI@Limqao@gV0kt1RtM`v|83Jd5Nq@3+4Qe&ibpw=ImFNbBZlzGAeOEEo2vb^wzEUh4+XjaoJ zsu+eE3~N3qJ9%aFLDVk9R^%W^Fh$vz8oQDuIrHdn7L~E|EDNb?EnN3lT@i$|osJ#so zce71KjVB++v|^@sWAmgnfjp6)dZSTmIY1TWD0d4A{2ysuWy5+X&k^(-Kh>8w|SnzU% zl50SJ8p@GsBegH9yVqM$wdo;w{`64%A#=TnWTO)} z#(%sGe|V1t8#6vmI^Cr6dL@kp!#$ZW8(s)!;93yFlC{p{&5uQ&ZG>t z)6TCqETA*kHHWz^FABEfzWSgRwSwDhFy%y})cRu`b)fv)KtCzhC4*hJv2gFP}|Uab(CoH_)bP6G+i(KkOq z{~N!#DLrNt4z`&i-HNuL_MQu>k#&!NvKFX)_rWGA&oonP;UnA&@+kznmvoXIl+Yjv zeFr+hOmKF#ErlONPVBB z=ZQ8^d3cikEG-Xmy9Zbj_MN^OYh$T|wc>V|fjn2*3sK}il{L$NIjNm~>)I9+-c@(> z5sMpCc!;G~RTrWj{x#b9$^IfJD=mp^L*>itISOAzt~dMfZ*A=I7Z@^o7R*M2GLq$X zcy^beEmS=C2PPEu&QI~fzs6G}n`tdwEJ9H;Aq{mAs_(|tgV@ZTuc01nLG_1ZID=xH zrZM{jNByL2W(d$N>^(iUd1=_mg}R#8D;!ctxZk4GSkws|$YW(@86km6<||%EPlSBN z-;T<_9ITKUW`16xqD>SlOR(GlE!TLb`|=u=+W8 zOEpFPL_L(IQd3b@_S*8!p%8!VhvxTDc~7b$*hd4-(CHv8fB!4__Vxc z%e1wIBF~Jg6pPwPQIV3KyP}jdxoFlcT!OlnqRi(@Pirhl2E{)vddyq@vb&M}rn{>3OipQ3&Nig`V@V*_Pjh2D_W zb*!YszqL;(>V2&|+6UqBPNAq>i8w11dkPWj8zAs5>1*}BQq&vl(WBe=2z0WUhTyM4 zJ$^9%*d~g6hQ%dmRY>BzSYhx488k)L^AKV>roYNY6|-H02G${wR93*B7t#n0UceTR z90edP%-`1{>^kcH+sfkyb4vlri7rA}shu*LGu``dYfp~CIqH3VnwB@Y(K*;rdA*;K z_B%KSmAn78dT`{=QEwE>4j_0)ON&{oe61*b29*{$EddP+7o&EN)}?0BHHKS^RsA5S zQ)*_&q8!pacuV%J7AS^(DWDZ4ia}=zx%-0pKbut-asyav6tGNGyco56a{u-3qGVD9 zo@D&lOZn>all$*wh3u5ENP^T4yIf{uS)wed{7AV^ijx|sw;~P2;)bN^z9K=jR$b05 zC`gj#JX2pTMD0wxdp%0;kQ|#8b>vfHn)7V-1*sn!;*c{gXuG07N*gCGJ9lf+ID_(2lt})IBL!_iL{w-?MR70KMjnmQx8;Jh; zSmq|m$w<^oQM=nwnM3k_IA>vl%mTbqK^ZfMYxM6WDb*_&NJV08 zzkI24DjAF7NWfl1J^YFPxXje5Y%<2dMJOg*L`~hxPwsWMoSdfW|l0D^HF4*781#V=pnB{hMbnl-Po7UY(wqJzVDjfL*;492x^?@ z1Gfn&N$xTzB5O@vM`(jdHKD#}K0;x9+9nd)SgB_|ultO8$oWQ_%~?m$X*lfIF1PF~ z>V=?QQ8#9nqDrJy6Yo#GDP;AsXRy&JihQg~E|LDnU7jpgsO_|q?$hx;U=+}0K`C+r z8UilY6w56v=eW+IY@+VZxy@y$gzkD$9)4DN6G(3sD0WQ1ucR30JoD)fU(KbVo0a>&z+e?Q7y{g~N_-Y|@Ip|}(jTVu^NO}F zK(VWM44cL0KxWu&JWWyI;1sD};I+6^En#}u1efVDOGn&=#}5!JDrz@H!No~Xqf)`| zRope#v5r!GqN26w zJvhdtKeSwiPG5=`!l^h){S8ngCuAlSzL^$GqTHn@v7Oy7m!P1kaETy+c*1hxm~Cac z$LC*YL~SO0h&a+;?)Dcb`OEezF3OfMvS4XvtLIbc4#WM*v|gNLwQvh+Ct9H%M$Nt| zetQv$Thl=}4ol`=e`C_e9uQEk+Mi789a}AI_XPdcuk7xrwFg_+inVCa687n;K>cKY zP|bagA=&e~x?cI-byQZLL1k65g1Ed5l}AvU4g>aT4J!h>H(@8mo~Cb$)qA8?nuCAK6C zV)REQp}`cC8)-fZ@AZLnauYKdbj)-?VmY!!|IY{f+aA;&io_fwt9L89h=fjYk}!?7 z&Fv`n`5LMK)XBjXR6gadB}8YE!!UUsBvM^xHEG<_qfbv*9;uOjGe*y)K`sY2!ta-M z!!8?qY_-R1BkD%~aX|=kgNmx{?Wlvo9Ca{9scopd$LXm`X;z!I18n7!aknf}Oi$vJ z9GWK`uC`BNW)_p}?B2?BhtKl3$~{iIHqGF1vFaA!<*b8<0}PyJE?SFH+Zohe29P=G z_5$T>LFF~C%W^u~wWoDC6wrlZl-2-y1XCILD|fo-ylyHD{=g`kPFCE0&M@J~X6-@2 z8p=(x17_ucj+U*5GpIDU91!(^^{&RZ7ohTVDILnnNHcT_>0yg!pBU^|(59;_MRbYy zA!~8D%30P}y2d=RVLj#y#&4w1g?$G~6^p)+M^&7QQF6ROh&?E7Pqv`2!e$7P z&ozJ$$|$=hZVkM?L!_R?LZF7PMC@1joy9^w*Z>>}&?K z-#BnYl8mryQxn=1@e9jWkJn6mp7UD^m$k z7i}q!wCje9?L{()gqL6`kwm~{bXZ4az8)nL0x{QP#7yup(*BX01(;7Rg=vO`753*S z#evnL6cBbLc+u-}`y6^gnUYe{!J#yKwTUX6LEU&G) zjibeJ_{0Bp2QPcN)&1dpn55LJv3A0ODwK|yDYsaG0cx9PoxXch)kkcH-FlnWRDJT6 zi&6J~A&RY^22oCN6J^m_J2YfZwo-R`_utp2EfAZ4DKp8f>B~t0bJ%s4S%8w_vrH^= zD!7@u|3=0L5yc9e3T8?k$$0;&6}ttc3xYZ#>LB*_Hc>mh5_glOhAGc1U`bu6FHO87 z78MWL^^c$y?QqcIub7u^?5d2t@yrW**1TeslSsCuj`;E*%CUsVZjSUO?5(IfD^x?l zkvb{kI)}PjD~)pcZau9ZdYyNk97r+bGvP;eY`cipZ14?{EFf?T3hs`_H>C1x2TpTe z=9YbqI2Qcdio>E#lp2LEZTIu2TfYDW$N0!mk5ZJ%T!6Y8md29Gwew%z2iVh6ygxPX zIJ<(~Kdq&0W%!>=yM`4mErsQaD68YF1;yiur+pRO;h7G2v*#7K4z@@X2NBomY%3H@ zRmUH+49?9_&5HBPa=+g|?HIP{+41QmJP>yx?fA)*1Dtiv`<>QHFMHm-E*4)#s%9{+V3xnYm5tI%UA~MNNNLh zdycxJU)*67MgqIL9fgIZD})R`j%ovrRK3$L-0#RkeH>Nl6oM}Lk|+fh8_F=V3WnO~(^_{rmx zDY7RypCZ$+u%NVkZ$?WQ$|NoAG0St@(Fg7?nO-2nU4hJwGL>U$yprJxb?c4gzQ}$R zD(xV54CvpNzxO<-T&v4UY#Q}|YB6o$DBYMV>@W0JOKV2O73+1?IjXoaLCyKwIBllL zVIp>yC=GW5#R6C3Yfy04`DDfsi)lJ>&6z`)zQ*5}GqIYZn;dR8JTj2lvYgJ~kw8VS zi-=HU;zMaPOnFv|2&w3ZlkUAz4L0LvLR$wZen3^Y{S42rqx$DV5yTj_1$*=&@mHBot zZLHQD!-tn8^ei+gkf@ZCp#^#v2fM>bB&51IrYel89D@`BQ@sYtf*a|>C)2A?*-GSu zq4%dAX;`c4$>AC>3Q4kH-SfKv;A^o948F~I{^+K~XVzDRkwVkBS(e*a4bNW*6|$pe zK7+XSn;{gh)M8g9!`2ljFH19V zPU|te>PAJnvDB!A&R-Qpm%>~LJLnxwN-}_fy%w%mLlTV@I+CQ64=4R4DkgoBle50t zfIsBC96Jcvzw<>M!Dmy01x+ba&BR%Z#G)f$1T3u%rlw^hQ)!26}Q-6sZfyA#^ zqLeM6sv&cXLi_355HDbW5t|V%+uRktY*w#{%FLdYXN(tK>)4F)91a-;1JTBE=NO(G z#y;&FbEs)pTizUl3J=Fs;L&4pDuh}d7UPhQ%gT~Ur+0z!l06@4`~>;6S*H8&&AXIH;T+6|{Ic*lAOwfo(0U?ef)7pfq3w zs_u$Wrzg2snj6&_XbyW?@+=K+GhDlIMU>tCFmq_iW9VL}hXKMIcG>U*Zm4;lOHR|XueXM3N=<;}dW*c2C1@UZ;!HIsj!2&v zWEtJAje-+q?V5R$hk$aAv*Jn02}fL^*M3@V9SZ?dXC4es$USAE4?fLi4WDhhhScAr zKEtw1d?TnlXG(c92M%M)*nlKZ4IZU0u|dy6>*wz{fm9;mprBNTB-o?+y!u{6YE-K+pR zH-pM0a)!%DyN9QkSvl;HAC8`uvC9lP-81cPK~W&em)Xk-XKs1&hzADo1X(9f@i%j8 z!%^2kDQ4>7;It$qNgKupm}NNNCTmP{wBPZ7libSa<=cV++!vAu!FC8%k_| zu7=788{|AjgBj>x$a@h$Ei+>fS~wrMQN{*}g;UlCK<9Wkf?0f{%3hc)XB%U=DaQ?= zGQ5ijPePSsCS)*{2H!A1yk=XxHNh@#kp`kwF-VV@yK?-5H6;~D<%&)?ZJpcn0ZGsZB?XF*({SG*M+X#4wgXKydB_ofb$FN+r_0A_(L)GL~ zHoc?~l%?Rw2Ej1TMbZnI^42@2Aqo_7qLCtIFi^GF(l_n0RYZI_rAMQC9VUzn^bbq#MqRQuPv$MlWomrm8 z{MrX7L9jkE^M|5JawPNLMS&Hl!?%X^S>SQKATq8CAP>jM}@kHHz4^ z8lp<6)xPa)ko>-|IRh z`5S0@A{WVEpK}kzfp}x zZD2Ef2JdAPg)ER8gx2N2pZ_3$FNn+6fz@wJ^I^M!>53`1{H~oct?R2>UcZ8X!Q8%v zj6SPRlU1(U~&K9zTERcYOF#9ZJ!zDEeIqwt%~Y<`p4 z4>}c%tE6n!&1Dk=yh3?=e@Adk>1cJ`H!=qJe7BJKwd3;ZhsUp7A9Y%{cVaHTNCCh0 zLw+5ECklH0I*dAg%I?bUcO1<&{ZR98!`1}gd${FLbI*FiN?L=~9V701cocK^`&AgP z@6occ8@u1p>XVZfEGIEHj@B)ElpcSSw%)Y9_gc{N=p^wsLGSmX;h#9>ua7i(A%ZN2E``$eoTU=+Jo<-EsWkbo)G=<~)P?Jd^r7n>q^U^XDSR zo73;C@Alb%#MzKkqpStdMJ!F&<06Opyj|ep9d$IH&v}Q?MIQA4>_|2EwESi0+7uubl zwk(24(z90QGiBu_@CrZ7fn~lcDQc{&-23Tf^8oq#IYH-SdA!B{d!yG|_Gu`3_No>% zp#Xm^Un&pwEQl9vR4KJvL9;z=(TwU7z{%O4RB4D#~=jm4k&tutoM`H<9J@V=$;;R<3Hsp&v@&UkKUK@W|JsB|0P+8xz$sIkQLz0 za!M;V$#e)AibtM))j5tcw-w|Em+vh~I;~A|x_1=j8TPSS37o#8Lh5eSA0hu}Ze>|^S`8YHdDNqX^apLoMgsLu;Maj?}@#M;}`=)0EWT`hF z;?dA6i@%ePCW?V>AN|%Ny7X{*ebZS?D@*$}2Flqk@$1|mk!^O|xpBqaMfg)Kjo&u2 zAk#?MaF-SPN1DEUjB&efU`2 zZN2~pqM>=)q3@rQ|6X6@&<4nLCnXTsBQ`s#y|hr7HUv(t3&~mq#G8yzp?3GglD=R$ z!oY}vV8V{VrM6I-y;l9-f6sz`!0Kcn)6Bl_iM}|#a>=)KD*=j)rgK`|!oY=XW-G~0 zR&uBq;QH?Q_usgjP`ALeR^uExN#&q^sXwxf4}JJ@<-nfhUiz&SB7E-c zD{q4Q_i@>y1<2RUUP5-`9FwE~8e7P}Us-O(PCzak*`wr}wC>?fv0sXr z*K);_wzZ%S{3cHCD%C@8{D_O8?DPFT+EAVnHOfn1+fNS&d~V_&5rm?i4K60A1lad8ubH`Q|rJ0e$kZ&9{Qv!5!sS&b{9OAQJofivdBu;%O{=X9qKaL@3AtJu zp*RmF*ZIorQs3>#+z+^6fdB0$dXG7HWiW+8M1ex>Dc%u)GpZomfu&$p((Nrg`y`a> zAjNB@9$S@@;k$M@rH%7GiYU(WX!aJ08q=@Nfp(N%h84@ilzKGx0tQ;2w`GQP<|S3K zDnN-6@(#PU?cc?Kb6&LYMeH}jB^AqqR)C#AIMZIakV(IA|p1 z@%}zG+;Ix*jPfh+Kw7?r-%CiK!2{n)dI}gIl08(2xncLjKN@&{B>iSUbVQYcFf<7^ zOYxL;ZCL#lKmid}r*QL7rm1(4ORaxjxYss|w3$i1)jz9?@)ad^tB&JGFLc;AVJud+ z6ROAu5{G`aj`H$06;9@0x2#bi>I##brxUw@sPcIY_l6s}!VOfa&2kT65t>`GrS4OM z=BlVS+uyJc+HrZmA9DsEpATla?wt7`Asr8_vu8AFq|0u=j3=O}P+Ek@L4%n7eD{X@ zDxjs>`b!Qps?VA}#|*WGOUg;e(v4i$z5G5J;z>9T4G(yOdp zF#)pgfac5>x_L=M<|@&XV>ll*57TDuomL8P*?zk zODifq`U23@D{)C5t(c!yb&Ngf>0GM6KeL^Z4J`0oi@?XmJ`P=}LUydIT=waLJooNk z?I&2zay-Y-4P#fqp5c3D^lfBn4+G~2*g zBW(ZqUgP?&fs5>2A;{0yq;U)?2%=cFUx$6RZT#nd&ofgdZ~y7Cx@au4U$4AdW92c7 z*(beEAv^)BZ)O=_ktG;g@dZ%b-CZ~tt;7wiDVBvAMleb4pB@x6dVImXcbGD&%{~W3 zJzdHrpJ&XUt$80m{C(-C)05_Xa&I{9_i4tOZQq|WaG2A@2O`n>zx3F{yNFm^aWX_< zIH5WJM$NczDFL!yS*QC|0NXY<9#%9O(gB#Y?GMH$@MtcXwab2&Y`l&6PK7#|pgoFX zoyijwQ*^k7s?4w3eQf5Jo=51O_jm(6W?#BdmOEoI{%S109V)tTI)ydciiNs=;Y5ug zx`itu10NPZT5hb5anuhBUsHb6X-}ShCh!#sd<=M_PZo_X{ zH47K5IT>X>?~Rx2x`kDGyH{W13}P}XR4`ER19x0q==cdnJXt?S3sklIAvD?x$0{#A z2(0p&6Yg;6CO)AdmyIr=W#o6|*j8o`HTMw%;+!JHj36*sVq-2VzUH^bb>JBVq?9XL zxpi;&hfi5X?gNNcyRy;?H**eN8{(94!ooIT4S6KHWC&r4)MQ8bJj#b2&vW^_f9X86 zpO8u+-89%XFn=p!|s*!E_#-} z#c7R(kB?z(wtmQpS2@bh?+~=x*i+i}i9<8!2hPBS(^m#f0!^HMx12C+usY5>b>EpB zY%v2M`H6WXzU11AXeE7j0AOqW&6;onKf4*K01@$5YS`x*^1ja$tuqRbEQ03yUz-po zwqM7!5jV0Nnc`_sPq``z=t2F-ZFHp9VWMo4)iDqZ3M##rkaLX?bwj4^Ep*?82D8z+ z6tXorW|;-m&$)rGvS+J;D%DY+MUzkNz;eWI1;)T$=Ju6SBOyKkJQ|#qtKAfbKeU-N zN-cS!(l*P-BqOeuSEDiqXC8Z1p_3Ra1!Ntj5)NLLK=W_r%BjDG*iV5_Ht!D7=XO(1O1oplftAIz6D$H>?sjmgq@{Y5gsK`^2|N; z%OrLwwMh{7+lue7oep63C*hNRI@6ecZZXhmuh8eviDw^5@P*Vd27nqp+qb@PZFP(S zq(afkfGR(#Gf(rzEjc=XJr-hdZsa9fv_Jy-nq=zus&=})!rIK2Y{kcZODf7lfT z09fi{`=}%0UU|rdhyFnUmYC1{F79&nlWut3nyHv>n(z!&r3WOfn+KpCS zU#iufdR{U$U(1&}^VJOHHxs^;o1uv*g?tW6fOi35MbA%sIoDJ0^;sHRq<3K{kjN8T z8K_3HTQLV>`LcRTX$j}u=)?6|0B;tEa29d~!mb`Dk;uz(5(%*y_PZYLi1e=4aW)=@ z8Zh32en58U_kTX>8534%f6b>f$Nk8`_#)*Vv;mEu5txT@LTx`+Mm}lIwE85f7$zGv zS+wXh5@vi28S7&j+Y6b2@yxdie0t~Y@exeMQ}q9n0%Rk9Vla^u%hNzC`|ct*!_c#STj8I#!n?w zh)5**^B<5IVNQl4qB#vcQvy-!>+^=i+{P`q^HXAQPJ*psJdJ=AJ}1cvDrA(H{5!Yq zLfNt*0L{F)HA^SXon|&je%Q<{?$>t@n3c13_R(L4+@mVA^v>{bu4&X5ma6Zv_(uLD zYHkTQ;Fo;lDW=&~tl$0|Vl~jgBuy@I2Vm|sJgpG`BpDn|*Ziq1>Ud5R?P7lCW8UIS z^Zq+{AhgY8I30kX{xpCUwNzv~wJ8RKdbi znzap(Q3KB_I7FjZx=gG<0^&l%QgmxLg@(nAwLw`Fdj35~5*Cl?tx}3)ih3a1@Or7c zbv&S(VuS-qV-zYz#=cj33@*2}K0u{V(9V)WXVm)-&(yt)Q`*7;@ra*4aI$L&=%WRl z>_+wK|3Ki1HlgG>4T^>2)JjQAH(ObX!!5}9F28`&v@(RmwUO#}5BPq(Y4@BwYZ>>g zeaT_%lScQ(w+8k!I!86Z6)7LVx2OuRzugiR{6RKhe!F>d^t|zF`s0A>pdH-T`JpUb zej_z9>G|x|tsw^4)npW&*V3!}X&b-QGd z)ov#e=Ku(f!)u^903V%#xJK%ey3s!&#n}f-$qR@M1ZO}g=+o)@wXuRM^fmm~K;&~y z&X1lFwB~LqEAX~Zw{$Ik`k{F9ZreabMpR@c;I{nmXBYZd(r%I zNfHm`<4uPiKVB5(aSdP|0noIn%)m7L1JrrK?Y3d%ms0aZ9K1SR3bWs^rw&tUB<~GE z#VWw?(ZqtP5h+tA@8F`2Dq3Ji7py>AIX$QUOTV23v9spWmi_5#LMbltaFham>d7K=(dtw`a1supTG; z5~5k$^gV^&((U=N*xG?@F_eAFr1j9Oc2`m38is(K=3s{5IX#wU-^r zXL6&OASi*CMFHwPPH(5qKN*VKr){a5xh1WLqduA7kShSf)%m!NjrB&P;Yb&5(4vAD zYH3el2mjJ9y{=joY6SYCq;f&gcTae2Z(!}Mg#R4ZwkrO5=bNX}6@8T3!ge389Qa8F zZdD$7b9`$&Oon8w8+3*t8n1$kKInz9p3;4PiT9aGVP?0j&ZR{?0G@q+Fn;=CbjiYw zFm=eXbahL=Aa&DioCsD?j@ z>>pyG2iChcg?e>8rvCQRyN?Pl*W`+V#E;&2D(fkKe=cgEoNs%i!?sjMNxX?TcOQXW zC1t?b2?-Yp-*HJnU|MHzR&s@lXOe9*3?91dfFy zjW+jX{yLMHXN<7lyCDk|Q^d)j;&OKIf{G0w&x2(S-s9R;J(0qdk7d4bLW+Or%3d?r z@08g>2BPQ7)MP%o5wP^$HJA)2f37y_*zyL*EXqm$GZuijJbYQg8>pk4aD|P$7M%%> z(iMja=~no?eg9AEA%nOi9z+ZDmYvPiFDLLyN>(jpF^2h)g?O)l!w}Ka_IG|nfycB~sDg%4Wo%OssG9Kut+ z)!v-?N1{eYyFBN}fqry11$F0fNt4m1@45kTRAF$x@X0c?Xy^n3yHXI{sIKPZpo?h2 z!tss$gLDKmbSR7#arQfy5ZF+UUVh$e*sl6H>o!;(f7-UsZ5z;if9qR%Q{Y;L&g(Y7 zb4aG|_qNc73O&1Zl5OI3BvkE-$NmP66lVs8dq~cK`_{4tk;jvUOFGOn$T4A}Xa{Mq zdv&xZ*}^ZKZO+j|k9kRFSU4?MLbU<3^Pzl1Y1@P6DfPflWm+`!Oq@_GD^9thEWa~z z10C}HI?PLBHv4GUunwx*G^*e~Day6>po1{v23mS)_xLADmEgD!U^(>?VkV1o|5id~ z*Zg7`XZSvnbgxguLL0DqusUG7?ac_k^i`56a}Ar6voA@E2E`CEEKIq`7Fg;9Nzji0 zm*)I-<<=ZEJ$}QV*{$J$nc1#TdIMCJ-?iV3(YrzJOjh=u^);EoB$fjmT$ive^F649 z;ybJJWCj3IVuFJvndtx%IR`ZvL8u05VmrEe zCgucL$8KCazCC10O(Qp57O0+gX&_$r?y+-WGT@`M?WijXY&8UeR~Fx|9ZPU8AO_Hc z?;WICJ{0Xd#Hbuk_|LAURDTHt39Pu{Oz^&@pA;96ZEQd1xyUU+)gz;6-wGcEVqN$9 z96CvdgSucSf3jKc<@M;9kHE7bczrHJ$03HjnnGahv$m0~rbguB(Il+lAUFthOA0)7 z|1;n*7jGO(T!lRJVZN$Xx1%OT*SGKf+V&cH+E#e@oAA^l*zMTmvf=8^E4U#f~#%Em;o>ptHb6;@ew(I(fyN6dTwUi|ox*&t}%*qURBJbhH@4u>X%Uq?A5_c|_p z>F=@AvVUf3rb^*HvU02682TaqSfT?!L$j@`P!<;C&Vt#szK5C47aBP<|C$#n-#D4p zi}?BhHt+0XJo8Aue9d6^$vV65v}8qbBTBM;xfDuWS0~nfiW9e&lRMHzZRK$w_vA}@m<(;SXjQ&!ucKFQae20Z) z2Y#DHl*T@$OgNs%Gj;zDXy8aGLe|1nZj>W2y;m@--unV$^yn1cux}N$(BN6@b4bTo z0W)#Q-rXPK*hkB*{$&40V;^ShPsIW+!hW%w-Tqx80())3(PFXIpk~+&2l-^=$?`eD zydN02p9tfk{3?v(+02y&QZ9(@whgUBqbiQVio&Oh3fGW4ld$7;<8noAv^OwVU=tb2A^va8@PJQa!_Dv z5{`0XYWMioN<#Zod}c#?cGdH-z^q@^$hHcbN%AObJ9UfA8-2)f@XEMplrr$-;(7JF z2&z(hq-O&;$M5&I*Nq?DR1~cl@Q1n|IVJpon|FmVB*LcvFAUr;_6%^r621DXvu|83Vk z)Snv%w1``LyhR>axfzmfj0jB-2Eeu5mpCS@i?FTMdb7?&C24-X`G!;(iXX5B zey&AcB-37`%ygdtMwhg_*zsA@>$XRH8p!1wojzl=|XqRlqbp^o!Yy zirvx9=3nHiuiu2xG@!;rdW(p9!pj3mkyZb`hJd>JM@kcO5(gh+`6g4R7oRjBvMfpu zXX}z7RU(m`bW^r{n7&VKF2*)rt|H8B0yP$eMV9uGv;AwkinE_>B<@t(EE!nMEgYVz zSaMF;LkXHxIj>}|dUe7X6j*i8+NIW%TaA*Hq*qNcN9pe+EYu9@%eL^EGdCI+P%Z8?!t_X?I*JIw!iab2vNnV0+yf zP8l+H*@l9SDXkdLh-JC`rMGm$tdChBTD$ky#d0z}?Nm>iBtQ83ZD{kH=Chb+nA`QR z=JgX+t#Om(23QarwDV?d+`+%_IgP8e1{xoaXh-6kxndQN%JRafHRiJlY4PLEPwJyf z*HGJLWVZMWD{XNy$c#dU<%BHJd;1GwlFq4+yS>2RRPrzs!8<+=d!jt#MBT$zfr7Sw z{9TxldzVzMl<&5kX|>n+rm6H{y|qY&Rlb`v>J}T1rOO}9e@dR#-o@m)m4B7zHZ`VM>N`+=bM~?0j2ATLo#+*L>p?A$YtBtq3Z9}Q^v1Exqhc)I`H24 zOT$+%G;5T?(Ng>$*Ls@BR4t(xHaV-bFwK}Rf+r5TgHXE@v(Rqr{P;Uq`M=m#Qzop9 zMz2(7WATooVGi7CUEj%$O?7UFme4KI1>Mm-WCgo!`@X_j+p!DOF!>SRZYDhQ*~_8*o1S4FpVY4mZ-yeqYyhH}1xLr~Qa5ysIbaQn4ozL!Taj)!dMKpH1WU}dS@I~rBcM*iQ=JXd~}%}sZxhIe)JI>6H9=fIkqX6QETHuY!gJ#lVL?PIZ{ z*MP#)?r$!xy~(fP&L|xZcx6RbZtSNs z1@zWNAHBTqIVBt1jm^?K1v>BX%^@`G5cR7D34;pTt8@FqLqyBviC}_R5#|$p$!B;9 z1eCXaSJLetooII0+5~HOS(&Hc`yh02jO!gcvpgm^C_Hm;p?imuBbEzZ$(ftFj zem$v|w>YOTFGwPyc6u%UF73fPEu2c)q=R=`Dj0Owmrs))V02QP@HwR=okxWl|Ca@@ zSZ*d89t=0``biivZeR>L)%`<<8X|p!I!GtR|4!J6g;|xyl7b2eZ-EiADi2jmH?Nm9 z&Rm!KhJ78hamqy=VDhMA+jx*=;<=%anls_ESTk(~I-{iR_QrKY&&eX+qxRi1i40#t zV3(d45yd)Andh!-7-2=vFLUOQo@7ZQeX#v~=!hTK-C6VkT#ME(FaJVc`FR^~%u=s~ z76N6sBeOtWpxRQ#33|$LWpm}*GYV#Eo6XRyhHfzYOrP!3*@$TF27i1F#KxYSI6qRD07=oD&VzLJ}+Gpg=k1?W@Z zVWM;y5^mIG3-O;?9qY||sLH9`5eMN9{b$)Zc`O7qamU2<@9NPaXd`MqfqrqvIbFXQ zVLOUvuJW^0FA&)p*OuvDV3UK1Ho0tm4wtez$VvJ%sg-a~!cvs1)?Q>% zBwL<@mUguoWt*~1D9II6ozu?_%h_!7T=zYCh^_ zsSR~T1y!|!xQId9Y0v~Om@*{TROlyTVxQhZNdF#Zn@3jd*k)N-FNWv6d*8=nW#L~E zaYc$pw~$n3T3TaErZ-DwUBbGMZ8^bcG`6C7|FqseA4I=Jz$IGPN8y^0^i81Y`Hw&s7ld+j>HlILqtV^i^PB{^^TNj5jDmLn7M}f=#o!-y* z{WEs$-vNnEsAIld7o<-woh)qz(e3)^cSor)Yxf>0VV4$OMAoSp?Uy-BBiYD4;8Q`d zbXQ^ced8>XQsCnck0>JE9r#3lb_Eq0$R3W8a~4m7tU&#IL3;$X5wo9}t_{;Rxc9J|_bQdCjJ4@W7H%y!7b#=p5mW^FPWlm7xLzjk@PEV!>R zZHS2Ed^y8?XWEF8|MIAd;w`Py8z{7xYZ|A>1(Fj z`G|8*Yz5xTR~-39pAliuB3Ft^RRR6_=Df$y7l<)2_^!|i{q4`)h>JY)yi_t&TjVg* z>K9nSkIKeDKJ4bYuwYv9RJUu(e@#-1|D%rL4SQk;R#fJ5m*T6Z2;Z}X=Z;n>g#J=^ zqUL)zt-XizD1NrU4B@p5a2WMQktV|_vaz+2dV%T$EoPWtikVki(waGHL>43idXe(u z!TrnbR|%mfaxp3Z70IsVL0tSckp*Lvvc(YCL*|#S{XM^kk+9dpoP3Yoj1tVO`^Ry= z&niL|PCH~-{MXFEta4==lPWV>XuhO%BPH<+wz!B#A8r3dt7}+Q*Q>xeKsYVojX^y zxoxM1#1NzMI_;_nHVfA~-zl!cDfT~|c%1v`^Z^f+4X@HxYW?$*)~rLnNogZX1=g&po8`mH4gvY!>F0)Ue* z!w#IpJ3q9!gJxsmzYX9oLS+p|TZrPv0@N@!4c$OciL;RL2ZjL$bvt0M0w^s=gO`7) zB3a85rss?TmCS+5ViXNSo_<&#PksmgdS5JXH!Jzxzh5a3#Z9hlVK=pu(B2h5(wraP zEoLSs!VTgZLTk(IXJXX>WVwNi!79btL?J$8>&COE`m7{b2f=U|8to##GlGl;L=xD)zCO>jeDEw(T}a@F05Wda$_t*BCfm zb1Y8+@6^zy*8Pm~!WVxLA*BloupG;iX8s0IS$JbQ3!KgioU+%l$@LL%7pY2ad ze)UGw$jZoQzv7v3?{PJYK>@k)=+|A?bkAzEY}rLf8`<7Sy=s`V~N@ZbJFeI7&#PHo!etEiJLIGO*6^VMb2^9^@hlD_?t9U5Bg?GgMzzU&WO z*0-Np3Bcpvy+Rn$VlqeWH~%w@oRIwsS!nU%HC(actTsf2L1S!r$>3=mi{jAV}=tZo()mWph>uK07l>X=Dkp?MmVwUqWLu7V6VRO&(){(%_=uXN%HI-KpJ64M#iPJxuYbCDL@e$F`2EmCj@;yIXK|CkNDkSJ zJ;qAwU#f!NjEn9(AA8^Jj&pvTUs5ceKs`TX(ks9c2j-?&E4c48l^48#)!R&javVOf zmEUN-yST#&Uc$L94!k2;5q|60n^}H|7^uJh!Y{5*sE?Lz1)x1l zk>0_haJhh^C&?<`kxMFeK0d|VT)M9Mn?zy1TONivB_EKS?#M`QL&b!FITfL4OH+P5 zZ4TZzK`nVj^?LUy!&m1c^mwe6=a?KL%EFJO$`KeM7Cq&0Z<_(3&O6S#*Fpcn|C-Vl z9&pYVH7oFU%Gl-ex3m?%F0@NJ%$ zsKab|$*w@HN7jqGD+b>eRlE5<-t9C!cuB6d`sXxwMvz@7k7a7WO(5|>^o&^E3#i(w z_6emy;EkI90GSNIvcVY##Cwou@aD~*Z)VkMSH1LqoC@ww^>_%C*&MKXz4v+9;AoU_ z=4}{NBbi{MHq}jzNL@PLd3*x@W?7qz8w>4jc>$P~h9{3;RY~ON*7)zgf2L)2c28Z5 z^XrhjAz*dcmFldp9gL`VwPz)y@W#v5=MWx-)^T~3me#aU1%Q_}N(_&5k6ozVQ$W_uv-cAnN+8-=5gg(y_d^W+*{_6lKuV8TrHGc ze5i>>_=c1cG9z+Wm?1s|T^W19fZs5FdWkN}OJn zs1m7Pk&`aXx!^TCkM!Cf1MLESxmO3T%#H5isoV=G7!vGltBqVL34MWYxQ}+(GBUNK z3Fi?(9etb?K1(6zG!GF;Ov7Y1fFNz7p!8}JHY`l!yPFQ3kwZ>qYmB~widKezT%V%S zvX9_dvQ;BWQNKbhtEazbQnkp-uH7ewkOJJbThbSqM*=t#%*l^2)$-)TYe2RVDwr!U zwiPCJ5VKo5XjKGJWV^o{kiEIz$a1=LVl3SNHT5x%>akf7`{y&8&BT{X?fhl-1~U^x;Y;ZuRv5*R5v%FT=ZF7Kl6U) zXecwh$#2PHTdCz0)jMMF_Z}dDNn;qhrbjD3{k@?s=g2q}s+MODg5#zwD}Np$73$Cm zBtO>#o4#LKY?dFAaEBsQ*-&oLBi$$B=qslw$hwn6Pa!Vb zRdhUVMc+VKr3R_T!*z7KvN+rWm3T(1tp$|6pw|C^p-sD#MY0YD-QR}nYg4Bfcvw&*f#OGKtfsIGip4b4V>Z7F0oY+OGbpBn;OXm2gRasTCV%^$hSYPb&CC>!w^_KrlHBAdUaAVkiIpuut2 z)%r2&A*Z{)R6J*qZTqt#`!~NKU3O0o;Ij!f2wTX*4mhs27)Xlu>3F`e(wvd7h4W6@ z*QW|`s-i^o{eU4&_EbW=59IJGq;T0hf(Eh=J~c1B>8d9py|!o&+~g23OlNmn<0;Q6 z(dURZH4nNM~Dwn!xyxb7}2-Th!g{n@p_pJkc(qGg{CwoRtY9yHqSP;%+kYJxGy1Qo!a#GY(MJ>W{kbjG zx1T(+l>PL8=~AWcF8aYCJaFt4!=$^DeyE!vQnC@e7H-9zD>tjp9S4bu;r}Ib%p`Ka z5MmWlc|K&;540%7-I@MRv=jYRp_2wr2;(CC(fO7Lal-8LZT3xwdQU_F)__L_irrD~^@MwZJ;bv3j9f=q)$D{D z2UnWqk}7B8EwffrG;LEL41++l+!chsTv3}y;`*3sAkd$B^R)Bqd;H;Q-}IUzC#%0O z4uW~r_jRht%E#ONZ!Wb|`Uu!5ifu4LNrnpL#1kIy6I`B+-Kyx;Xh1I|x~D^x{@P3b zt=Qs^IgDZqDQyJMyJs4xDSo+uI?lyH6~7?F!4O!+93Y#w&#Qx?;hw4TCWoIQG8M_%% zAr>~D>IKtuad;Sjk$eD3QhXQ&y68IBXf?^6D0%BuUhcJne#-${A(@0iPFRm_<`12G zuNgs-36wUfPbptz-L=w$Kx2tLKw^`%QSL`6a%HZ@$MZ zmC29g=uSi~WnHfx-mqKvES!9BK@5%U?T3r+mjIle9p zR>ajB(-a@~MDK*i{29Q@E9^$&^CCDvafa_VxV${#uZebiz$v-}4K?v7YjK#;ASZ)C zi)wpcG_jVF=23lR`obXYC+j|Q`n~T#3CY%J+{sQ(0 z13x#|xrv5jGJa2Y$b~ke+NJ}1AG^>P(p5^$kq1XDhe~&Df=MjVTzeJNfAOug}UPpxNecU zbijyn_<&NklyIBrB>MZ>Z;AD>g4tCAcLT(;;2njC-i=9sLQg1}b|(GRCU{G2b3d(FlfWfA;Ucm<$~Gnp)*%R7O;l{W0WwQleZe)Coy zI^!Ya5=93d4s3p@H*UXD^wO8(Ckshp{y^eh854r-=k3bgTcj4~Tz`_!zTZ^*=cuCj z*xt8|?tBk_cYq^f9)bF^cs=SlG0=!tCb2G{InH73?U*8UwbM|X!t}D2mV}0BZ0wOc zQbIx<0}XVkI{YbjLVWK(MY;q@;=_HW8uWu4r!~wQ0V;XG=f=*qj}XZ!%&bzqm}t!1 zc?v{px;}A^1);0#P8JbHU$=4EeGD{0e#7=H8K$vJsoe*7@&J~3j~5}m zZadsJ?PNb5CU~wc=F~t8$f|N5#hvUm$vOwvdk? zX$@vZfS*;|aFe{&xBj+r-5{%$7SZp-k%8*Lns9ptYJe0Hj!7(}%CNmgCssrKtHj&5 z`qc7@jzPtByW{s6K3t!l1x0RQW~DDdGU9w4e!=pJ5?P%{?`Sy40$Tv8RipHa7@8=jcA**1rc4wuTS#Eo8l>1eNZSH|LD+hJVRZbB8&tg?GiaPekPE z+!IGdWBdaf?oje+FyXAROp;!v{g~RjgP8YZ%MV-+edg(M7@SNVJYZ-bISyq(PGACr z`r!FrJYNc>Y$eIM;&NlGt7psnapbjvvj5$H#vvcm zpgfdIwZs$|{)V z3bo{S4H(LH+0PuKBo>$e}eRhda1fs2QWDv03g;fZj+E0{{aJ3F6G65~=EF9r{s$ICO)x$CL9m)Dz(i&LcY#_lBR;IV>WR z)s@|W*zv9Af=bOSS9XN8pJydKMQS`!vaM5{b@gs7pdeP4Q0tId<<6ucwBN` z9{SERKaqC}>hW6{s=T!Y>_q0Awbgh%VA+}p=B->I)L>& z+DC|xrQ0q_ehMq#h;h5OR5bWP6(sWL8dBEN#^&{~r(@31eEYqG8-r99qI^GZMx;QB zZ4~lDm%=l)LtpSByo`H*u<}(h&+nw7!cCu$H=ASx(6ImKBmS2zwfWM6O@V`H2pS=C zg2l@MNZy{EF}0fPV%z3C%vEALyw6PvT+ykC2}U`o$t$Jy#8`9_g|E?M3pcKG`TGV` zY5vY6XZi<`5{iGw7+|hx!n;Y6#k=?u_cJ+k=PJzZd0PWt#?Y=vJc|)1@TlU>JhWr8hnSUG;{9 zaPG=><1u0F*_V1wWU(%I?UYn*Ogb18BHaw6ZskSn$Qm*r`nOt{e2vEinkTCd?zc@5 zn(0X(jS}b-KW{r3o*$$D{Do2&O8dUD5Myu#EWsWD0b!{*J4T5Nsk494NH!!dZ{}1f z&D+e^`d;v{5$AN1FS2iGQ?z?Z`1-eg4LCT=m5LXsclC#O;A7=Vy zaLVVJFY^&ivSndXx?R9ha#u)Ivm?ZwzkxMmZ$M1qa-YB`5SnQMkYV43JB(S)li`$| z9nEb1^w6)ukwYewxx(`>k76L)<&N+q={^!rUosWkAe-?i^=)i#-Z3-;0J}HV{a>;2$AC69$ibng=>pOQT zF`HyD?ll~8CUcxooEkb}^rC-Pc6@@zXsv&)*^<0ovqOv##X4i~Y!tL9o4u854l8c1 zFiib@G$T2xGI^{RtTaCGUa7-_vL{9y?Lr1s*IZRhsgaUj`D(e8l)!H+ygZIzwU1an z1N=Gv-J!llBY?6|tNR#m-S>sw7eMi(PflF;O;j`(1^RSP2?fX#LCMWj(QD(W2u58z zU9AMH;L3q^BGakYOU?Z->wzaQs}kF(P~7yX$Mw!+UWD6}Z1VpE{R;y0;+yWAbug)d zyV~BJaJsV@xH~wq?%+oBk?cz|P1CA%PqbwT)cQQPG)XC*P*aeL}&(_eU zHfcVX#G-4mykB=?BVM|S+zrK(RosaYuQBP>S3k^53b=EVEa1T;?BMm{&L|g5ashNu zG%4Uti6@Rb$XFMM=eUCmbjc*T{e*uu`v`Cs4C~qazEKA^(A_kk4nxsWA$sT2s zpw1*c>C6f=X(#%c zBQ(hm=cq{mcXmzoMwSuJDaZ3Gjcg^msk2VM$P$*Dgn*Z&JB@a&Nsatcg^jdvr!Q|z z+6l@sUnE00000V|Nkl^pS!%brkWpChmmFf?v&Q?pv4#FnsVP}#RP-ar2 z2dIahp&2UM2zuI9OE2ok;sY<0e$>A|Bt=WHmiD}4VvS9L=DJDcdiF*qUW8i(cV<$z zcW2SgLHD~xZMsustQ#J8n(Gqov;gZmlQii)@Brb?iD$Fed+nYsW$7-N6f@pQE@NFY zj&ViYG4zf&!Y*D+6L;&zouSPrDcq>-a(7P~37ZtZthZEak`CzAVoykh3l5^qX|o*SQl_-p{{EtqMWqFE3Xu|+Z3{lmvE;8tjlrdtn%6=#?Tkcp=(M$PURQ8&d2Exyo&! zckH3gBt6`T)=AInV;zK*Y-f@auZlYi1U$Pk>$pR%OD1``!^WMxt_;(9;wj+$5pk@Tlzxm2d1isR$0o(m1$y{s^>LPc2h2>5DW= zzeyjCO`4R_6$*&XJMLbA^kgXP{H89tPSGu9-6UVn67j@M@|CRN4wM_Tm^IdQCMoE| zia$02=)gK1A=g=*;qJv3A5A7H@y>39S&ItpoOmtnjzv9clWONZI3!nW=EF?fQob$Z zCb>S0J43uef_`BeLTIBcYuiE|9M~im>Obo6?nx%qe)23hpzt0#+Xm_~IJhNcF&d3c zl6hcKq@2qGUP^HWx9spUjcf+-&TZB0+I5RrWu4f1R_Gmffpv~Mj&^;xvn6e}hP72K zST_K7&qKD7?Qo~F(AA2wjd-m|XVYTVO*-~i$DJ3mAx;fh-@HP_XK08v)4BHO?`S}; zhA&fDB)Q(9$N*J?L*Hsi)E=Lu795Zio~J@+PssJS^$-ie;m2{EbZi{6AvWoQ_|Vv- zIcZWO%vx}?bJhjiMb@?Bcdv55JEM`~?)bL$jk{kr$}Uns#JcX{tjLkB80y@lLAW!M zc<=6>dmaz+TxaPHS1W#O#KYAJUeAs`-3?=sXfu6a1?w|ZcyKt^x`%!8Hfl}M;X1>z zLu-``sdzbeRWeEIBW)l!JVk((OP)rvDR(AlMmUqcCZDirP9;%={`7J7koIzQM5CK>BW z+&%m3v(FOf1eBv?ED$FSJ>I*k5>HL)GTw@U-UpNyK8V?2HOdaqxst0jNr!KQmkpFm zvXj0G{uLUH_A0*kk@4_B>!&~VYzsZBb=gBwERwjN&ZYu&wh?~J3h$?}N%O%ZgYZzUe6+hJMIj0$IOw82X!VD0ndBravhu;2viKPb54y{Q#SZCMX<8aIhTrHIv-XwNq3MM@{4^1lHl(GWk z=`OL3)18`>a0ioEerOwaZc@TsT+BY%hy$MCPMml!iHMg>@_@%nTAc-~Q{3r)p7(%P zQqH3tOghUo5O;IKB%4>GlfDant__$})lHTfI+N&8-xhi@zUnK*vS}}CBX1^OHa%GE z40#(pTNKbe#q!9NOtQnX1_p<*NkLC>bjyoqF z9m*U89mH+48eQvyvfv=GID`5om{fch?&UM`J#vS4A0GEE*jCdLD z?uDojUdCFq!$k^=OI#N4(mY%L!>6ut3)~~PE8G8;!6r2h*+3g*!2v3R!vV$5R>lVp z4p{>wlj6zStbvkAcK#B}4rld*h&d-F-U2b{todh>i=y4R#5yUjB&BqBM%rej^=xiZ zE#P$!-d26Lc?ShqAYBqr+qp_0zo9?3;8zQ9xsp>f$$|K%DEuaECb)ma&L-%Q@pI?x3`5 zS0uU;cLLTC?lL8lIOe$+cS=04?vkpe{(ox)DQlyu&ZxCfrsXj{xc2ISTNxZCR9_oG zw+&n#u@<^XPu5Iw;*Cw3wDc-$&bq3qtaB}g2AHJjPSluyyGj1QzKrb<=gM&B#GCK9 zySyl-rsY&rP4f8wYapJdEDj5|#o!=usWgu@HfbK{a@X{}&TU)*XlrgU}MH64W-#M$tmYrSSEGL z*vYU?dN%GRD-U(Ifp4zNB&QtB3rNd*>e*B>DV}7LTt8o!sbP6fJ)0VvG=Y}0R?yD? z=y9lX;sxAUu3K=pn^U@mh7`d8DnrCrv#PO4^FYZVUd#sEU3=|<4R~`$*HC;wkp&0T z<7Qfs8k;l^)PasR?ymJhXQ8$2SSw84OxN0cZP8L=tzeB!ng?Rm37h0v!9UZ08kcMD$sA0YG-LNNGR)&Kwi07*qoM6N<$g8J;nUjP6A literal 0 HcmV?d00001 diff --git a/2023/day10/input_color.pnm b/2023/day10/input_color.pnm new file mode 100644 index 0000000..61ed44c --- /dev/null +++ b/2023/day10/input_color.pnm @@ -0,0 +1,2 @@ +P3 420 420 254 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 136 33 106 136 33 106 136 33 106 136 33 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 136 33 106 136 33 106 136 33 106 136 33 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 136 33 106 136 33 106 136 33 106 136 33 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 221 82 56 221 82 56 221 82 56 221 82 56 221 82 56 221 82 56 221 82 56 221 82 56 221 82 56 221 82 56 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 221 82 56 221 82 56 221 82 56 221 82 56 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 136 33 106 136 33 106 136 33 106 136 33 106 0 0 0 0 0 0 136 33 106 136 33 106 136 33 106 136 33 106 0 0 0 0 0 0 136 33 106 136 33 106 136 33 106 136 33 106 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 220 80 57 220 80 57 220 80 57 220 80 57 220 80 57 220 80 57 220 80 57 0 0 0 0 0 0 221 82 56 221 82 56 221 82 56 221 82 56 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 221 82 56 221 82 56 221 82 56 221 82 56 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 96 19 110 96 19 110 96 19 110 96 19 110 96 19 110 96 19 110 96 19 110 0 0 0 0 0 0 96 19 110 96 19 110 96 19 110 96 19 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 133 32 106 133 32 106 133 32 106 133 32 106 133 32 106 133 32 106 133 32 106 0 0 0 0 0 0 136 33 106 136 33 106 136 33 106 136 33 106 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 136 33 106 136 33 106 136 33 106 136 33 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 220 80 57 220 80 57 220 80 57 220 80 57 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 221 82 56 221 82 56 221 82 56 221 82 56 0 0 0 0 0 0 221 82 56 221 82 56 221 82 56 221 82 56 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 96 19 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 96 19 110 0 0 0 0 0 0 96 19 110 0 0 0 0 0 0 96 19 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 133 32 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 133 32 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 96 19 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 96 19 110 0 0 0 0 0 0 96 19 110 0 0 0 0 0 0 96 19 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 133 32 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 133 32 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 134 33 106 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 96 19 110 96 19 110 96 19 110 96 19 110 0 0 0 0 0 0 96 19 110 96 19 110 96 19 110 96 19 110 0 0 0 0 0 0 96 19 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 98 20 110 98 20 110 98 20 110 98 20 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 133 32 106 133 32 106 133 32 106 133 32 106 0 0 0 0 0 0 133 32 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 134 33 106 0 0 0 0 0 0 136 33 106 136 33 106 136 33 106 136 33 106 0 0 0 0 0 0 136 33 106 136 33 106 136 33 106 136 33 106 0 0 0 0 0 0 136 33 106 136 33 106 136 33 106 136 33 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 220 80 57 220 80 57 220 80 57 220 80 57 220 80 57 220 80 57 220 80 57 0 0 0 0 0 0 220 80 57 220 80 57 220 80 57 220 80 57 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 222 83 55 222 83 55 222 83 55 222 83 55 222 83 55 222 83 55 222 83 55 222 83 55 222 83 55 222 83 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 96 19 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 96 19 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 133 32 106 0 0 0 0 0 0 133 32 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 134 33 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 96 19 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 96 19 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 133 32 106 0 0 0 0 0 0 133 32 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 134 33 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 96 19 110 96 19 110 96 19 110 96 19 110 96 19 110 96 19 110 96 19 110 0 0 0 0 0 0 96 19 110 96 19 110 96 19 110 96 19 110 96 19 110 96 19 110 96 19 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 98 20 110 98 20 110 98 20 110 98 20 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 122 28 109 122 28 109 122 28 109 122 28 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 125 29 108 125 29 108 125 29 108 125 29 108 125 29 108 125 29 108 125 29 108 0 0 0 0 0 0 133 32 106 133 32 106 133 32 106 133 32 106 133 32 106 133 32 106 133 32 106 0 0 0 0 0 0 133 32 106 133 32 106 133 32 106 133 32 106 0 0 0 0 0 0 134 33 106 134 33 106 134 33 106 134 33 106 134 33 106 134 33 106 134 33 106 0 0 0 0 0 0 137 34 105 137 34 105 137 34 105 137 34 105 137 34 105 136 33 106 136 33 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 215 75 62 215 75 62 215 75 62 215 75 62 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 220 80 57 220 80 57 220 80 57 220 80 57 0 0 0 0 0 0 220 80 57 220 80 57 220 80 57 220 80 57 0 0 0 0 0 0 221 82 56 221 82 56 221 82 56 221 82 56 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 222 83 55 222 83 55 222 83 55 222 83 55 0 0 0 0 0 0 222 83 55 222 83 55 222 83 55 222 83 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 230 94 45 230 94 45 230 94 45 230 94 45 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 96 19 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 96 19 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 122 28 109 0 0 0 0 0 0 122 28 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 125 29 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 125 29 108 0 0 0 0 0 0 133 32 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 133 32 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 134 33 106 0 0 0 0 0 0 137 34 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 96 19 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 96 19 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 122 28 109 0 0 0 0 0 0 122 28 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 125 29 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 125 29 108 0 0 0 0 0 0 131 32 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 133 32 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 134 33 106 0 0 0 0 0 0 137 34 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 96 19 110 96 19 110 96 19 110 96 19 110 96 19 110 96 19 110 96 19 110 0 0 0 0 0 0 96 19 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 96 19 110 96 19 110 96 19 110 96 19 110 96 19 110 96 19 110 96 19 110 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 98 20 110 98 20 110 98 20 110 98 20 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 122 28 109 0 0 0 0 0 0 122 28 109 122 28 109 122 28 109 122 28 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 125 29 108 125 29 108 125 29 108 125 29 108 0 0 0 0 0 0 125 29 108 0 0 0 0 0 0 131 32 107 131 32 107 131 32 107 131 32 107 131 32 107 131 32 107 131 32 107 131 32 107 131 32 107 131 32 107 0 0 0 0 0 0 133 32 106 133 32 106 133 32 106 133 32 106 0 0 0 0 0 0 134 33 106 134 33 106 134 33 106 134 33 106 0 0 0 0 0 0 137 34 105 137 34 105 137 34 105 137 34 105 137 34 105 137 34 105 137 34 105 137 34 105 137 34 105 137 34 105 137 34 105 137 34 105 137 34 105 0 0 0 0 0 0 139 34 105 139 34 105 139 34 105 139 34 105 139 34 105 139 34 105 139 34 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 215 75 62 215 75 62 215 75 62 215 75 62 215 75 62 215 75 62 215 75 62 0 0 0 0 0 0 215 75 62 215 75 62 215 75 62 215 75 62 0 0 0 0 0 0 215 75 62 215 75 62 215 75 62 215 75 62 0 0 0 0 0 0 217 77 61 217 77 61 217 77 61 217 77 61 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 217 77 61 217 77 61 217 77 61 217 77 61 217 77 61 217 77 61 217 77 61 217 77 61 217 77 61 217 77 61 0 0 0 0 0 0 218 78 59 218 78 59 218 78 59 218 78 59 0 0 0 0 0 0 220 80 57 220 80 57 220 80 57 220 80 57 220 80 57 220 80 57 220 80 57 0 0 0 0 0 0 221 82 56 221 82 56 221 82 56 221 82 56 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 222 83 55 222 83 55 222 83 55 222 83 55 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 230 94 45 230 94 45 230 94 45 230 94 45 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 230 94 45 230 94 45 230 94 45 230 94 45 0 0 0 0 0 0 230 94 45 230 94 45 230 94 45 230 94 45 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 96 19 110 0 0 0 0 0 0 96 19 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 96 19 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 96 19 110 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 122 28 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 122 28 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 125 29 108 0 0 0 0 0 0 125 29 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 131 32 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 133 32 106 0 0 0 0 0 0 134 33 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 137 34 105 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 96 19 110 0 0 0 0 0 0 96 19 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 96 19 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 96 19 110 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 122 28 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 125 29 108 0 0 0 0 0 0 125 29 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 131 32 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 133 32 106 0 0 0 0 0 0 134 33 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 137 34 105 0 0 0 0 0 0 137 34 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 95 18 110 95 18 110 95 18 110 95 18 110 95 18 110 95 18 110 95 18 110 95 18 110 96 19 110 96 19 110 0 0 0 0 0 0 96 19 110 0 0 0 0 0 0 96 19 110 96 19 110 96 19 110 96 19 110 0 0 0 0 0 0 98 20 110 98 20 110 96 19 110 96 19 110 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 122 28 109 122 28 109 122 28 109 122 28 109 0 0 0 0 0 0 123 29 108 123 29 108 123 29 108 123 29 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 125 29 108 125 29 108 125 29 108 125 29 108 125 29 108 125 29 108 125 29 108 0 0 0 0 0 0 125 29 108 125 29 108 125 29 108 125 29 108 0 0 0 0 0 0 131 32 107 131 32 107 131 32 107 131 32 107 0 0 0 0 0 0 131 32 107 0 0 0 0 0 0 133 32 106 133 32 106 133 32 106 133 32 106 0 0 0 0 0 0 134 33 106 134 33 106 134 33 106 134 33 106 134 33 106 134 33 106 134 33 106 0 0 0 0 0 0 137 34 105 137 34 105 137 34 105 137 34 105 137 34 105 137 34 105 137 34 105 137 34 105 137 34 105 137 34 105 0 0 0 0 0 0 137 34 105 0 0 0 0 0 0 139 34 105 139 34 105 139 34 105 139 34 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 139 34 105 139 34 105 139 34 105 139 34 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 215 75 62 215 75 62 215 75 62 215 75 62 215 75 62 215 75 62 215 75 62 215 75 62 215 75 62 215 75 62 0 0 0 0 0 0 215 75 62 215 75 62 215 75 62 215 75 62 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 217 77 61 217 77 61 217 77 61 217 77 61 217 77 61 217 77 61 217 77 61 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 217 77 61 217 77 61 217 77 61 217 77 61 217 77 61 217 77 61 217 77 61 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 218 78 59 218 78 59 218 78 59 218 78 59 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 221 82 56 221 82 56 221 82 56 221 82 56 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 223 84 54 223 84 54 223 84 54 223 84 54 223 84 54 222 83 55 222 83 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 230 94 45 230 94 45 230 94 45 230 94 45 0 0 0 0 0 0 230 94 45 230 94 45 230 94 45 230 94 45 230 94 45 230 94 45 230 94 45 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 230 94 45 230 94 45 230 94 45 230 94 45 230 94 45 230 94 45 230 94 45 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 95 18 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 96 19 110 0 0 0 0 0 0 96 19 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 122 28 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 125 29 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 125 29 108 0 0 0 0 0 0 131 32 107 0 0 0 0 0 0 131 32 107 0 0 0 0 0 0 131 32 107 0 0 0 0 0 0 133 32 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 134 33 106 0 0 0 0 0 0 137 34 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 137 34 105 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 95 18 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 96 19 110 0 0 0 0 0 0 96 19 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 122 28 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 125 29 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 125 29 108 0 0 0 0 0 0 131 32 107 0 0 0 0 0 0 131 32 107 0 0 0 0 0 0 131 32 107 0 0 0 0 0 0 133 32 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 134 33 106 0 0 0 0 0 0 137 34 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 137 34 105 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 95 18 110 95 18 110 95 18 110 95 18 110 95 18 110 95 18 110 95 18 110 95 18 110 95 18 110 95 18 110 0 0 0 0 0 0 96 19 110 0 0 0 0 0 0 96 19 110 0 0 0 0 0 0 98 20 110 98 20 110 98 20 110 98 20 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 98 20 110 98 20 110 98 20 110 98 20 110 0 0 0 0 0 0 122 28 109 122 28 109 122 28 109 122 28 109 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 123 29 108 123 29 108 123 29 108 123 29 108 0 0 0 0 0 0 125 29 108 125 29 108 125 29 108 125 29 108 125 29 108 125 29 108 125 29 108 125 29 108 125 29 108 125 29 108 0 0 0 0 0 0 125 29 108 0 0 0 0 0 0 131 32 107 0 0 0 0 0 0 131 32 107 131 32 107 131 32 107 131 32 107 0 0 0 0 0 0 133 32 106 133 32 106 133 32 106 133 32 106 0 0 0 0 0 0 134 33 106 134 33 106 134 33 106 134 33 106 134 33 106 134 33 106 134 33 106 0 0 0 0 0 0 137 34 105 137 34 105 137 34 105 137 34 105 137 34 105 137 34 105 137 34 105 0 0 0 0 0 0 137 34 105 137 34 105 137 34 105 137 34 105 0 0 0 0 0 0 139 34 105 139 34 105 139 34 105 139 34 105 0 0 0 0 0 0 139 34 105 139 34 105 139 34 105 139 34 105 0 0 0 0 0 0 139 34 105 139 34 105 139 34 105 139 34 105 139 34 105 139 34 105 139 34 105 139 34 105 139 34 105 139 34 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 186 54 85 186 54 85 186 54 85 186 54 85 0 0 0 0 0 0 187 55 84 187 55 84 187 55 84 187 55 84 0 0 0 0 0 0 215 75 62 215 75 62 215 75 62 215 75 62 0 0 0 0 0 0 215 75 62 215 75 62 215 75 62 215 75 62 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 217 77 61 217 77 61 217 77 61 217 77 61 217 77 61 217 77 61 217 77 61 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 218 78 59 218 78 59 218 78 59 218 78 59 218 78 59 218 78 59 218 78 59 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 221 82 56 221 82 56 221 82 56 221 82 56 221 82 56 221 82 56 221 82 56 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 223 84 54 223 84 54 223 84 54 223 84 54 0 0 0 0 0 0 223 84 54 223 84 54 223 84 54 223 84 54 0 0 0 0 0 0 230 94 45 230 94 45 230 94 45 230 94 45 230 94 45 230 94 45 230 94 45 0 0 0 0 0 0 230 94 45 230 94 45 230 94 45 230 94 45 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 231 95 44 231 95 44 231 95 44 231 95 44 0 0 0 0 0 0 232 97 43 232 97 43 232 97 43 232 97 43 232 97 43 232 97 43 232 97 43 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 95 18 110 0 0 0 0 0 0 96 19 110 0 0 0 0 0 0 96 19 110 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 122 28 109 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 125 29 108 0 0 0 0 0 0 125 29 108 0 0 0 0 0 0 131 32 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 133 32 106 0 0 0 0 0 0 134 33 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 137 34 105 0 0 0 0 0 0 137 34 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 232 97 43 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 97 43 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 95 18 110 0 0 0 0 0 0 96 19 110 0 0 0 0 0 0 96 19 110 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 99 20 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 122 28 109 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 125 29 108 0 0 0 0 0 0 125 29 108 0 0 0 0 0 0 131 32 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 133 32 106 0 0 0 0 0 0 134 33 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 137 34 105 0 0 0 0 0 0 137 34 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 232 97 43 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 97 43 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 87 15 109 87 15 109 88 16 109 88 16 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 95 18 110 95 18 110 95 18 110 95 18 110 0 0 0 0 0 0 96 19 110 96 19 110 96 19 110 96 19 110 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 98 20 110 98 20 110 98 20 110 98 20 110 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 99 20 110 0 0 0 0 0 0 122 28 109 122 28 109 122 28 109 122 28 109 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 123 29 108 123 29 108 123 29 108 123 29 108 0 0 0 0 0 0 123 29 108 123 29 108 125 29 108 125 29 108 0 0 0 0 0 0 125 29 108 0 0 0 0 0 0 131 32 107 131 32 107 131 32 107 131 32 107 131 32 107 131 32 107 131 32 107 131 32 107 131 32 107 131 32 107 0 0 0 0 0 0 133 32 106 0 0 0 0 0 0 134 33 106 134 33 106 134 33 106 134 33 106 0 0 0 0 0 0 137 34 105 137 34 105 137 34 105 137 34 105 137 34 105 137 34 105 137 34 105 137 34 105 137 34 105 137 34 105 0 0 0 0 0 0 137 34 105 137 34 105 137 34 105 137 34 105 0 0 0 0 0 0 139 34 105 139 34 105 139 34 105 139 34 105 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 139 34 105 139 34 105 139 34 105 139 34 105 139 34 105 139 34 105 139 34 105 0 0 0 0 0 0 139 34 105 139 34 105 139 34 105 139 34 105 0 0 0 0 0 0 186 54 85 186 54 85 186 54 85 186 54 85 0 0 0 0 0 0 186 54 85 186 54 85 186 54 85 186 54 85 0 0 0 0 0 0 187 55 84 187 55 84 187 55 84 187 55 84 0 0 0 0 0 0 187 55 84 187 55 84 187 55 84 187 55 84 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 215 75 62 215 75 62 215 75 62 215 75 62 215 75 62 215 75 62 215 75 62 0 0 0 0 0 0 217 77 61 217 77 61 217 77 61 217 77 61 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 218 78 59 218 78 59 218 78 59 218 78 59 218 78 59 218 78 59 218 78 59 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 220 80 57 220 80 57 220 80 57 220 80 57 220 80 57 220 80 57 220 80 57 0 0 0 0 0 0 222 83 55 222 83 55 222 83 55 222 83 55 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 230 94 45 230 94 45 230 94 45 230 94 45 0 0 0 0 0 0 230 94 45 230 94 45 230 94 45 230 94 45 230 94 45 230 94 45 230 94 45 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 231 95 44 231 95 44 231 95 44 231 95 44 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 232 97 43 232 97 43 232 97 43 232 97 43 0 0 0 0 0 0 232 97 43 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 87 15 109 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 95 18 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 99 20 110 0 0 0 0 0 0 122 28 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 125 29 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 131 32 107 0 0 0 0 0 0 133 32 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 134 33 106 0 0 0 0 0 0 137 34 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 137 34 105 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 97 43 0 0 0 0 0 0 232 97 43 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 87 15 109 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 95 18 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 99 20 110 0 0 0 0 0 0 122 28 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 125 29 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 131 32 107 0 0 0 0 0 0 133 32 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 134 33 106 0 0 0 0 0 0 137 34 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 137 34 105 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 97 43 0 0 0 0 0 0 232 97 43 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 87 15 109 0 0 0 0 0 0 88 16 109 88 16 109 88 16 109 88 16 109 0 0 0 0 0 0 95 18 110 95 18 110 95 18 110 95 18 110 95 18 110 95 18 110 95 18 110 95 18 110 95 18 110 95 18 110 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 98 20 110 98 20 110 98 20 110 98 20 110 0 0 0 0 0 0 99 20 110 0 0 0 0 0 0 122 28 109 122 28 109 122 28 109 122 28 109 0 0 0 0 0 0 123 29 108 123 29 108 123 29 108 123 29 108 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 123 29 108 123 29 108 123 29 108 123 29 108 0 0 0 0 0 0 125 29 108 125 29 108 125 29 108 125 29 108 0 0 0 0 0 0 128 31 107 128 31 107 128 31 107 128 31 107 0 0 0 0 0 0 131 32 107 0 0 0 0 0 0 133 32 106 133 32 106 133 32 106 133 32 106 0 0 0 0 0 0 134 33 106 0 0 0 0 0 0 137 34 105 137 34 105 137 34 105 137 34 105 137 34 105 137 34 105 137 34 105 0 0 0 0 0 0 137 34 105 137 34 105 137 34 105 137 34 105 0 0 0 0 0 0 137 34 105 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 139 34 105 139 34 105 139 34 105 139 34 105 0 0 0 0 0 0 139 34 105 139 34 105 141 35 105 141 35 105 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 186 54 85 186 54 85 186 54 85 186 54 85 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 186 54 85 186 54 85 186 54 85 186 54 85 186 54 85 186 54 85 186 54 85 0 0 0 0 0 0 187 55 84 187 55 84 187 55 84 187 55 84 187 55 84 187 55 84 187 55 84 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 215 75 62 215 75 62 215 75 62 215 75 62 215 75 62 215 75 62 215 75 62 215 75 62 215 75 62 215 75 62 0 0 0 0 0 0 217 77 61 217 77 61 217 77 61 217 77 61 217 77 61 217 77 61 217 77 61 0 0 0 0 0 0 217 77 61 217 77 61 217 77 61 217 77 61 217 77 61 217 77 61 217 77 61 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 220 80 57 220 80 57 220 80 57 220 80 57 220 80 57 220 80 57 220 80 57 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 222 83 55 222 83 55 222 83 55 222 83 55 0 0 0 0 0 0 223 84 54 223 84 54 223 84 54 223 84 54 0 0 0 0 0 0 223 84 54 223 84 54 223 84 54 223 84 54 0 0 0 0 0 0 223 84 54 223 84 54 223 84 54 223 84 54 0 0 0 0 0 0 230 94 45 230 94 45 230 92 46 230 92 46 230 92 46 230 92 46 230 92 46 230 92 46 230 92 46 230 92 46 230 92 46 230 92 46 230 92 46 0 0 0 0 0 0 230 94 45 230 94 45 231 95 44 231 95 44 0 0 0 0 0 0 231 95 44 231 95 44 231 95 44 231 95 44 0 0 0 0 0 0 232 97 43 232 97 43 232 97 43 232 97 43 0 0 0 0 0 0 232 97 43 232 97 43 232 97 43 232 97 43 232 97 43 232 97 43 232 97 43 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 87 15 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 95 18 110 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 99 20 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 122 28 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 125 29 108 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 131 32 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 133 32 106 0 0 0 0 0 0 134 33 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 137 34 105 0 0 0 0 0 0 137 34 105 0 0 0 0 0 0 137 34 105 0 0 0 0 0 0 137 34 105 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 141 35 105 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 97 43 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 97 43 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 87 15 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 95 18 110 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 99 20 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 122 28 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 125 29 108 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 131 32 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 133 32 106 0 0 0 0 0 0 134 33 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 137 34 105 0 0 0 0 0 0 137 34 105 0 0 0 0 0 0 137 34 105 0 0 0 0 0 0 137 34 105 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 141 35 105 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 97 43 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 97 43 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 87 15 109 87 15 109 87 15 109 87 15 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 87 15 109 0 0 0 0 0 0 88 16 109 88 16 109 88 16 109 88 16 109 0 0 0 0 0 0 95 18 110 95 18 110 95 18 110 95 18 110 95 18 110 95 18 110 95 18 110 95 18 110 95 18 110 95 18 110 0 0 0 0 0 0 98 20 110 98 20 110 98 20 110 98 20 110 0 0 0 0 0 0 98 20 110 98 20 110 98 20 110 98 20 110 0 0 0 0 0 0 99 20 110 99 20 110 99 20 110 99 20 110 0 0 0 0 0 0 99 20 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 122 28 109 122 28 109 122 28 109 122 28 109 122 28 109 122 28 109 122 28 109 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 123 29 108 123 29 108 123 29 108 123 29 108 0 0 0 0 0 0 125 29 108 125 29 108 125 29 108 125 29 108 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 131 32 107 131 32 107 131 32 107 131 32 107 0 0 0 0 0 0 133 32 106 0 0 0 0 0 0 134 33 106 134 33 106 134 33 106 134 33 106 134 33 106 134 33 106 134 33 106 0 0 0 0 0 0 137 34 105 137 34 105 137 34 105 137 34 105 0 0 0 0 0 0 137 34 105 137 34 105 137 34 105 137 34 105 0 0 0 0 0 0 139 34 105 139 34 105 139 34 105 139 34 105 0 0 0 0 0 0 141 35 105 141 35 105 141 35 105 141 35 105 141 35 105 141 35 105 141 35 105 0 0 0 0 0 0 139 34 105 139 34 105 139 34 105 139 34 105 0 0 0 0 0 0 186 54 85 186 54 85 186 54 85 186 54 85 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 186 54 85 186 54 85 186 54 85 186 54 85 0 0 0 0 0 0 187 55 84 187 55 84 187 55 84 187 55 84 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 215 75 62 215 75 62 215 75 62 215 75 62 0 0 0 0 0 0 214 74 63 214 74 63 214 74 63 214 74 63 214 74 63 215 75 62 215 75 62 0 0 0 0 0 0 214 74 63 214 74 63 214 74 63 214 74 63 0 0 0 0 0 0 214 74 63 214 74 63 214 74 63 214 74 63 214 74 63 214 74 63 214 74 63 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 218 78 59 218 78 59 218 78 59 218 78 59 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 220 80 57 220 80 57 220 80 57 220 80 57 220 80 57 220 80 57 220 80 57 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 222 83 55 222 83 55 222 83 55 222 83 55 0 0 0 0 0 0 223 84 54 223 84 54 223 84 54 223 84 54 223 84 54 223 84 54 223 84 54 223 84 54 223 84 54 223 84 54 223 84 54 223 84 54 223 84 54 223 84 54 223 84 54 223 84 54 0 0 0 0 0 0 229 91 48 229 91 48 229 91 48 229 91 48 0 0 0 0 0 0 230 92 46 230 92 46 230 92 46 230 92 46 230 92 46 230 92 46 230 92 46 0 0 0 0 0 0 231 95 44 231 95 44 231 95 44 231 95 44 231 95 44 231 95 44 231 95 44 0 0 0 0 0 0 232 97 43 232 97 43 232 97 43 232 97 43 0 0 0 0 0 0 232 97 43 232 97 43 232 97 43 232 97 43 0 0 0 0 0 0 232 97 43 232 97 43 232 97 43 232 97 43 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 87 15 109 0 0 0 0 0 0 87 15 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 87 15 109 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 95 18 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 99 20 110 0 0 0 0 0 0 99 20 110 0 0 0 0 0 0 99 20 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 122 28 109 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 125 29 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 131 32 107 0 0 0 0 0 0 133 32 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 134 33 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 141 35 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 97 43 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 97 43 0 0 0 0 0 0 232 97 43 0 0 0 0 0 0 232 97 43 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 87 15 109 0 0 0 0 0 0 87 15 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 87 15 109 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 95 18 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 99 20 110 0 0 0 0 0 0 99 20 110 0 0 0 0 0 0 99 20 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 122 28 109 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 125 29 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 131 32 107 0 0 0 0 0 0 133 32 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 134 33 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 141 35 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 97 43 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 97 43 0 0 0 0 0 0 232 97 43 0 0 0 0 0 0 232 97 43 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 87 15 109 0 0 0 0 0 0 87 15 109 0 0 0 0 0 0 87 15 109 87 15 109 87 15 109 87 15 109 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 95 18 110 95 18 110 95 18 110 95 18 110 95 18 110 95 18 110 95 18 110 0 0 0 0 0 0 95 18 110 95 18 110 95 18 110 95 18 110 0 0 0 0 0 0 99 20 110 99 20 110 99 20 110 99 20 110 99 20 110 99 20 110 99 20 110 99 20 110 99 20 110 99 20 110 0 0 0 0 0 0 99 20 110 99 20 110 99 20 110 99 20 110 0 0 0 0 0 0 101 21 110 101 21 110 101 21 110 101 21 110 0 0 0 0 0 0 122 28 109 122 28 109 122 28 109 122 28 109 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 123 29 108 123 29 108 123 29 108 123 29 108 0 0 0 0 0 0 125 29 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 131 32 107 0 0 0 0 0 0 133 32 106 0 0 0 0 0 0 133 32 106 133 32 106 133 32 106 133 32 106 0 0 0 0 0 0 134 33 106 134 33 106 134 33 106 134 33 106 134 33 106 134 33 106 134 33 106 0 0 0 0 0 0 141 35 105 141 35 105 141 35 105 141 35 105 141 35 105 141 35 105 141 35 105 141 35 105 141 35 105 141 35 105 0 0 0 0 0 0 141 35 105 141 35 105 141 35 105 141 35 105 141 35 105 141 35 105 141 35 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 181 51 87 181 51 87 181 51 87 181 51 87 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 186 54 85 186 54 85 186 54 85 186 54 85 186 54 85 186 54 85 186 54 85 0 0 0 0 0 0 187 55 84 187 55 84 187 55 84 187 55 84 187 55 84 187 55 84 187 55 84 0 0 0 0 0 0 189 55 83 189 55 83 189 55 83 189 55 83 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 214 74 63 214 74 63 214 74 63 214 74 63 214 74 63 214 74 63 214 74 63 214 74 63 214 74 63 214 74 63 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 218 78 59 218 78 59 218 78 59 218 78 59 218 78 59 218 78 59 218 78 59 0 0 0 0 0 0 219 79 58 219 79 58 219 79 58 219 79 58 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 223 84 54 223 84 54 223 84 54 223 84 54 0 0 0 0 0 0 223 84 54 223 84 54 224 86 52 224 86 52 0 0 0 0 0 0 229 91 48 229 91 48 229 91 48 229 91 48 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 230 92 46 230 92 46 230 92 46 230 92 46 230 92 46 230 92 46 230 92 46 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 231 95 44 231 95 44 232 97 43 232 97 43 232 97 43 232 97 43 232 97 43 0 0 0 0 0 0 232 97 43 232 97 43 232 97 43 232 97 43 0 0 0 0 0 0 232 97 43 232 97 43 232 97 43 232 97 43 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 87 15 109 0 0 0 0 0 0 87 15 109 0 0 0 0 0 0 87 15 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 95 18 110 0 0 0 0 0 0 95 18 110 0 0 0 0 0 0 95 18 110 0 0 0 0 0 0 99 20 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 101 21 110 0 0 0 0 0 0 101 21 110 0 0 0 0 0 0 122 28 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 125 29 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 131 32 107 0 0 0 0 0 0 133 32 106 0 0 0 0 0 0 133 32 106 0 0 0 0 0 0 133 32 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 134 33 106 0 0 0 0 0 0 141 35 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 141 35 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 141 35 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 181 51 87 0 0 0 0 0 0 181 51 87 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 189 55 83 0 0 0 0 0 0 189 55 83 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 97 43 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 87 15 109 0 0 0 0 0 0 87 15 109 0 0 0 0 0 0 87 15 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 95 18 110 0 0 0 0 0 0 95 18 110 0 0 0 0 0 0 95 18 110 0 0 0 0 0 0 99 20 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 101 21 110 0 0 0 0 0 0 101 21 110 0 0 0 0 0 0 122 28 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 125 29 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 131 32 107 0 0 0 0 0 0 133 32 106 0 0 0 0 0 0 133 32 106 0 0 0 0 0 0 133 32 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 134 33 106 0 0 0 0 0 0 141 35 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 141 35 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 141 35 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 181 51 87 0 0 0 0 0 0 181 51 87 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 189 55 83 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 97 43 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 87 15 109 0 0 0 0 0 0 87 15 109 0 0 0 0 0 0 87 15 109 0 0 0 0 0 0 88 16 109 88 16 109 88 16 109 88 16 109 0 0 0 0 0 0 88 16 109 88 16 109 88 16 109 88 16 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 95 18 110 95 18 110 95 18 110 95 18 110 0 0 0 0 0 0 95 18 110 0 0 0 0 0 0 99 20 110 0 0 0 0 0 0 99 20 110 99 20 110 99 20 110 99 20 110 99 20 110 99 20 110 99 20 110 99 20 110 99 20 110 99 20 110 0 0 0 0 0 0 101 21 110 101 21 110 101 21 110 101 21 110 0 0 0 0 0 0 101 21 110 0 0 0 0 0 0 122 28 109 122 28 109 122 28 109 122 28 109 0 0 0 0 0 0 123 29 108 123 29 108 123 29 108 123 29 108 0 0 0 0 0 0 123 29 108 123 29 108 123 29 108 123 29 108 123 29 108 123 29 108 123 29 108 0 0 0 0 0 0 125 29 108 125 29 108 125 29 108 125 29 108 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 129 31 107 129 31 107 129 31 107 129 31 107 0 0 0 0 0 0 131 32 107 0 0 0 0 0 0 133 32 106 133 32 106 133 32 106 133 32 106 0 0 0 0 0 0 133 32 106 0 0 0 0 0 0 134 33 106 134 33 106 134 33 106 134 33 106 0 0 0 0 0 0 134 33 106 0 0 0 0 0 0 141 35 105 0 0 0 0 0 0 141 35 105 141 35 105 141 35 105 141 35 105 0 0 0 0 0 0 141 35 105 141 35 105 141 35 105 141 35 105 141 35 105 141 35 105 141 35 105 141 35 105 141 35 105 141 35 105 0 0 0 0 0 0 181 51 87 181 51 87 181 51 87 181 51 87 0 0 0 0 0 0 181 51 87 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 186 54 85 186 54 85 186 54 85 186 54 85 186 54 85 186 54 85 186 54 85 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 187 55 84 187 55 84 187 55 84 187 55 84 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 189 55 83 0 0 0 0 0 0 194 59 79 194 59 79 194 59 79 194 59 79 194 59 79 194 59 79 194 59 79 0 0 0 0 0 0 213 73 64 213 73 64 213 73 64 213 73 64 0 0 0 0 0 0 214 74 63 214 74 63 214 74 63 214 74 63 0 0 0 0 0 0 214 74 63 214 74 63 214 74 63 214 74 63 0 0 0 0 0 0 217 77 61 217 77 61 218 78 59 218 78 59 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 219 79 58 219 79 58 219 79 58 219 79 58 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 222 83 55 222 83 55 222 83 55 222 83 55 222 83 55 222 83 55 222 83 55 0 0 0 0 0 0 223 84 54 223 84 54 223 84 54 223 84 54 0 0 0 0 0 0 223 84 54 223 84 54 223 84 54 223 84 54 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 229 91 48 229 91 48 229 91 48 229 91 48 0 0 0 0 0 0 229 91 48 229 91 48 230 92 46 230 92 46 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 231 95 44 231 95 44 231 95 44 231 95 44 0 0 0 0 0 0 232 97 43 232 97 43 232 97 43 232 97 43 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 87 15 109 0 0 0 0 0 0 87 15 109 0 0 0 0 0 0 87 15 109 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 95 18 110 0 0 0 0 0 0 99 20 110 0 0 0 0 0 0 99 20 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 99 20 110 0 0 0 0 0 0 101 21 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 101 21 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 122 28 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 125 29 108 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 131 32 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 133 32 106 0 0 0 0 0 0 134 33 106 0 0 0 0 0 0 134 33 106 0 0 0 0 0 0 134 33 106 0 0 0 0 0 0 141 35 105 0 0 0 0 0 0 141 35 105 0 0 0 0 0 0 141 35 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 181 51 87 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 181 51 87 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 189 55 83 0 0 0 0 0 0 194 59 79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 194 59 79 0 0 0 0 0 0 213 73 64 0 0 0 0 0 0 213 73 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 232 97 43 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 87 15 109 0 0 0 0 0 0 87 15 109 0 0 0 0 0 0 87 15 109 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 95 18 110 0 0 0 0 0 0 99 20 110 0 0 0 0 0 0 99 20 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 99 20 110 0 0 0 0 0 0 101 21 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 101 21 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 122 28 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 125 29 108 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 131 32 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 133 32 106 0 0 0 0 0 0 134 33 106 0 0 0 0 0 0 134 33 106 0 0 0 0 0 0 134 33 106 0 0 0 0 0 0 141 35 105 0 0 0 0 0 0 141 35 105 0 0 0 0 0 0 141 35 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 180 51 88 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 181 51 87 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 189 55 83 0 0 0 0 0 0 194 59 79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 194 59 79 0 0 0 0 0 0 213 73 64 0 0 0 0 0 0 213 73 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 232 97 43 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 87 15 109 87 15 109 87 15 109 87 15 109 0 0 0 0 0 0 87 15 109 0 0 0 0 0 0 87 15 109 0 0 0 0 0 0 87 15 109 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 88 16 109 88 16 109 88 16 109 88 16 109 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 95 18 110 95 18 110 95 18 110 95 18 110 95 18 110 95 18 110 95 18 110 95 18 110 95 18 110 95 18 110 0 0 0 0 0 0 99 20 110 0 0 0 0 0 0 99 20 110 99 20 110 99 20 110 99 20 110 0 0 0 0 0 0 99 20 110 99 20 110 99 20 110 99 20 110 0 0 0 0 0 0 101 21 110 101 21 110 101 21 110 101 21 110 0 0 0 0 0 0 101 21 110 101 21 110 101 21 110 101 21 110 0 0 0 0 0 0 122 28 109 0 0 0 0 0 0 125 29 108 125 29 108 125 29 108 125 29 108 125 29 108 125 29 108 125 29 108 125 29 108 125 29 108 125 29 108 125 29 108 125 29 108 125 29 108 125 29 108 125 29 108 125 29 108 125 29 108 125 29 108 125 29 108 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 129 31 107 129 31 107 129 31 107 129 31 107 0 0 0 0 0 0 131 32 107 131 32 107 131 32 107 131 32 107 0 0 0 0 0 0 133 32 106 133 32 106 133 32 106 133 32 106 0 0 0 0 0 0 134 33 106 0 0 0 0 0 0 134 33 106 0 0 0 0 0 0 134 33 106 0 0 0 0 0 0 141 35 105 0 0 0 0 0 0 141 35 105 0 0 0 0 0 0 141 35 105 0 0 0 0 0 0 141 35 105 141 35 105 141 35 105 141 35 105 0 0 0 0 0 0 141 35 105 141 35 105 141 35 105 141 35 105 0 0 0 0 0 0 180 51 88 180 51 88 180 51 88 180 51 88 0 0 0 0 0 0 181 51 87 0 0 0 0 0 0 186 54 85 186 54 85 186 54 85 186 54 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 189 55 83 0 0 0 0 0 0 194 59 79 0 0 0 0 0 0 194 59 79 194 59 79 194 59 79 194 59 79 0 0 0 0 0 0 213 73 64 0 0 0 0 0 0 213 73 64 213 73 64 213 73 64 213 73 64 0 0 0 0 0 0 214 74 63 214 74 63 214 74 63 214 74 63 0 0 0 0 0 0 214 74 63 214 74 63 214 74 63 214 74 63 214 74 63 214 74 63 214 74 63 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 224 86 52 224 86 52 224 86 52 224 86 52 224 86 52 224 86 52 224 86 52 224 86 52 224 86 52 224 86 52 0 0 0 0 0 0 224 86 52 224 86 52 224 86 52 224 86 52 224 86 52 224 86 52 224 86 52 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 229 91 48 229 91 48 229 91 48 229 91 48 0 0 0 0 0 0 230 92 46 230 92 46 230 92 46 230 92 46 0 0 0 0 0 0 230 92 46 230 92 46 230 92 46 230 92 46 0 0 0 0 0 0 231 95 44 231 95 44 231 95 44 231 95 44 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 232 97 43 0 0 0 0 0 0 232 97 43 232 97 43 232 97 43 232 97 43 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 237 104 37 237 104 37 237 104 37 237 104 37 237 104 37 237 104 37 237 104 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 87 15 109 0 0 0 0 0 0 87 15 109 0 0 0 0 0 0 87 15 109 0 0 0 0 0 0 87 15 109 0 0 0 0 0 0 87 15 109 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 95 18 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 99 20 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 99 20 110 0 0 0 0 0 0 99 20 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 101 21 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 101 21 110 0 0 0 0 0 0 122 28 109 0 0 0 0 0 0 125 29 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 131 32 107 0 0 0 0 0 0 133 32 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 134 33 106 0 0 0 0 0 0 134 33 106 0 0 0 0 0 0 134 33 106 0 0 0 0 0 0 141 35 105 0 0 0 0 0 0 141 35 105 0 0 0 0 0 0 141 35 105 0 0 0 0 0 0 141 35 105 0 0 0 0 0 0 141 35 105 0 0 0 0 0 0 141 35 105 0 0 0 0 0 0 141 35 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 180 51 88 0 0 0 0 0 0 181 51 87 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 189 55 83 0 0 0 0 0 0 194 59 79 0 0 0 0 0 0 194 59 79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 213 73 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 213 73 64 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 232 97 43 0 0 0 0 0 0 232 97 43 0 0 0 0 0 0 232 97 43 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 87 15 109 0 0 0 0 0 0 87 15 109 0 0 0 0 0 0 87 15 109 0 0 0 0 0 0 87 15 109 0 0 0 0 0 0 87 15 109 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 95 18 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 99 20 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 99 20 110 0 0 0 0 0 0 99 20 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 101 21 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 101 21 110 0 0 0 0 0 0 122 28 109 0 0 0 0 0 0 126 30 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 131 32 107 0 0 0 0 0 0 133 32 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 134 33 106 0 0 0 0 0 0 134 33 106 0 0 0 0 0 0 134 33 106 0 0 0 0 0 0 141 35 105 0 0 0 0 0 0 141 35 105 0 0 0 0 0 0 141 35 105 0 0 0 0 0 0 141 35 105 0 0 0 0 0 0 141 35 105 0 0 0 0 0 0 141 35 105 0 0 0 0 0 0 141 35 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 180 51 88 0 0 0 0 0 0 181 51 87 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 189 55 83 0 0 0 0 0 0 194 59 79 0 0 0 0 0 0 194 59 79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 213 73 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 213 73 64 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 232 97 43 0 0 0 0 0 0 232 97 43 0 0 0 0 0 0 232 97 43 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 87 15 109 0 0 0 0 0 0 87 15 109 87 15 109 87 15 109 87 15 109 0 0 0 0 0 0 87 15 109 0 0 0 0 0 0 87 15 109 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 88 16 109 88 16 109 88 16 109 88 16 109 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 95 18 110 95 18 110 95 18 110 95 18 110 95 18 110 95 18 110 95 18 110 95 18 110 95 18 110 95 18 110 0 0 0 0 0 0 99 20 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 99 20 110 0 0 0 0 0 0 99 20 110 99 20 110 99 20 110 99 20 110 99 20 110 99 20 110 99 20 110 0 0 0 0 0 0 101 21 110 101 21 110 101 21 110 101 21 110 0 0 0 0 0 0 101 21 110 0 0 0 0 0 0 122 28 109 0 0 0 0 0 0 126 30 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 126 30 108 126 30 108 126 30 108 126 30 108 126 30 108 126 30 108 126 30 108 0 0 0 0 0 0 128 31 107 128 31 107 128 31 107 128 31 107 128 31 107 128 31 107 128 31 107 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 129 31 107 129 31 107 129 31 107 129 31 107 0 0 0 0 0 0 131 32 107 0 0 0 0 0 0 133 32 106 133 32 106 133 32 106 133 32 106 0 0 0 0 0 0 134 33 106 0 0 0 0 0 0 134 33 106 0 0 0 0 0 0 134 33 106 0 0 0 0 0 0 141 35 105 141 35 105 141 35 105 141 35 105 0 0 0 0 0 0 141 35 105 141 35 105 141 35 105 141 35 105 0 0 0 0 0 0 141 35 105 141 35 105 141 35 105 141 35 105 0 0 0 0 0 0 141 35 105 141 35 105 142 36 104 142 36 104 0 0 0 0 0 0 180 51 88 0 0 0 0 0 0 181 51 87 181 51 87 181 51 87 181 51 87 0 0 0 0 0 0 186 54 85 186 54 85 186 54 85 186 54 85 186 54 85 186 54 85 186 54 85 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 187 55 84 187 55 84 187 55 84 187 55 84 0 0 0 0 0 0 189 55 83 0 0 0 0 0 0 194 59 79 0 0 0 0 0 0 194 59 79 194 59 79 194 59 79 194 59 79 0 0 0 0 0 0 213 73 64 213 73 64 213 73 64 213 73 64 0 0 0 0 0 0 213 73 64 0 0 0 0 0 0 214 74 63 214 74 63 214 74 63 214 74 63 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 214 74 63 214 74 63 214 74 63 214 74 63 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 224 86 52 224 86 52 224 86 52 224 86 52 224 86 52 224 86 52 224 86 52 0 0 0 0 0 0 224 86 52 224 86 52 224 86 52 224 86 52 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 224 86 52 224 86 52 224 86 52 224 86 52 0 0 0 0 0 0 229 91 48 229 91 48 229 91 48 229 91 48 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 230 92 46 230 92 46 230 92 46 230 92 46 0 0 0 0 0 0 231 95 44 231 95 44 231 95 44 231 95 44 231 95 44 231 95 44 231 95 44 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 232 97 43 232 97 43 232 97 43 232 97 43 0 0 0 0 0 0 232 97 43 232 97 43 232 97 43 232 97 43 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 237 104 37 237 104 37 237 104 37 237 104 37 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 87 15 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 87 15 109 0 0 0 0 0 0 87 15 109 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 95 18 110 0 0 0 0 0 0 99 20 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 99 20 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 99 20 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 101 21 110 0 0 0 0 0 0 101 21 110 0 0 0 0 0 0 122 28 109 0 0 0 0 0 0 126 30 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 126 30 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 126 30 108 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 131 32 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 133 32 106 0 0 0 0 0 0 134 33 106 0 0 0 0 0 0 134 33 106 0 0 0 0 0 0 134 33 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 142 36 104 0 0 0 0 0 0 180 51 88 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 181 51 87 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 189 55 83 0 0 0 0 0 0 194 59 79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 194 59 79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 213 73 64 0 0 0 0 0 0 213 73 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 97 43 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 87 15 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 87 15 109 0 0 0 0 0 0 87 15 109 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 93 18 110 0 0 0 0 0 0 99 20 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 99 20 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 99 20 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 101 21 110 0 0 0 0 0 0 101 21 110 0 0 0 0 0 0 122 28 109 0 0 0 0 0 0 126 30 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 126 30 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 126 30 108 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 131 32 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 133 32 106 0 0 0 0 0 0 134 33 106 0 0 0 0 0 0 134 33 106 0 0 0 0 0 0 134 33 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 142 36 104 0 0 0 0 0 0 180 51 88 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 181 51 87 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 189 55 83 0 0 0 0 0 0 194 59 79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 194 59 79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 213 73 64 0 0 0 0 0 0 213 73 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 233 98 42 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 87 15 109 87 15 109 87 15 109 87 15 109 0 0 0 0 0 0 87 15 109 87 15 109 87 15 109 87 15 109 0 0 0 0 0 0 87 15 109 87 15 109 87 15 109 87 15 109 0 0 0 0 0 0 88 16 109 88 16 109 88 16 109 88 16 109 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 93 18 110 93 18 110 93 18 110 93 18 110 93 18 110 93 18 110 93 18 110 0 0 0 0 0 0 99 20 110 99 20 110 99 20 110 99 20 110 99 20 110 99 20 110 99 20 110 0 0 0 0 0 0 99 20 110 99 20 110 99 20 110 99 20 110 99 20 110 99 20 110 99 20 110 0 0 0 0 0 0 101 21 110 101 21 110 101 21 110 101 21 110 0 0 0 0 0 0 101 21 110 0 0 0 0 0 0 122 28 109 0 0 0 0 0 0 126 30 108 126 30 108 126 30 108 126 30 108 0 0 0 0 0 0 126 30 108 0 0 0 0 0 0 126 30 108 126 30 108 126 30 108 126 30 108 0 0 0 0 0 0 128 31 107 128 31 107 128 31 107 128 31 107 128 31 107 128 31 107 128 31 107 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 131 32 107 131 32 107 131 32 107 131 32 107 0 0 0 0 0 0 133 32 106 133 32 106 134 33 106 134 33 106 0 0 0 0 0 0 134 33 106 134 33 106 134 33 106 134 33 106 0 0 0 0 0 0 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 0 0 0 0 0 0 180 51 88 0 0 0 0 0 0 181 51 87 181 51 87 181 51 87 181 51 87 0 0 0 0 0 0 186 54 85 186 54 85 186 54 85 186 54 85 186 54 85 184 53 86 184 53 86 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 189 55 83 189 55 83 189 55 83 189 55 83 189 55 83 189 55 83 189 55 83 0 0 0 0 0 0 194 59 79 194 59 79 194 59 79 194 59 79 0 0 0 0 0 0 194 59 79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 213 73 64 0 0 0 0 0 0 213 73 64 213 73 64 213 73 64 213 73 64 0 0 0 0 0 0 214 74 63 214 74 63 214 74 63 214 74 63 0 0 0 0 0 0 214 74 63 214 74 63 214 74 63 214 74 63 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 224 86 52 224 86 52 224 86 52 224 86 52 224 86 52 224 86 52 224 86 52 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 226 87 51 226 87 51 226 87 51 226 87 51 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 228 90 49 228 90 49 228 90 49 228 90 49 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 231 95 44 231 95 44 231 95 44 231 95 44 0 0 0 0 0 0 231 95 44 231 95 44 231 95 44 231 95 44 231 95 44 231 95 44 231 95 44 0 0 0 0 0 0 233 98 42 233 98 42 233 98 42 233 98 42 233 98 42 233 98 42 233 98 42 233 98 42 233 98 42 233 98 42 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 237 104 37 237 104 37 237 104 37 237 104 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 87 15 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 87 15 109 0 0 0 0 0 0 87 15 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 93 18 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 99 20 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 101 21 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 101 21 110 0 0 0 0 0 0 122 28 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 126 30 108 0 0 0 0 0 0 126 30 108 0 0 0 0 0 0 126 30 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 131 32 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 142 36 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 180 51 88 0 0 0 0 0 0 181 51 87 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 189 55 83 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 194 59 79 0 0 0 0 0 0 194 59 79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 213 73 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 213 73 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 233 98 42 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 87 15 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 87 15 109 0 0 0 0 0 0 87 15 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 93 18 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 101 21 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 101 21 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 101 21 110 0 0 0 0 0 0 122 28 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 126 30 108 0 0 0 0 0 0 126 30 108 0 0 0 0 0 0 126 30 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 131 32 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 142 36 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 180 51 88 0 0 0 0 0 0 181 51 87 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 189 55 83 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 194 59 79 0 0 0 0 0 0 194 59 79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 213 73 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 213 73 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 233 98 42 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 87 15 109 87 15 109 87 15 109 87 15 109 87 15 109 87 15 109 87 15 109 0 0 0 0 0 0 87 15 109 87 15 109 87 15 109 87 15 109 0 0 0 0 0 0 85 15 109 85 15 109 85 15 109 85 15 109 0 0 0 0 0 0 88 16 109 88 16 109 88 16 109 88 16 109 0 0 0 0 0 0 88 16 109 88 16 109 88 16 109 88 16 109 0 0 0 0 0 0 93 18 110 93 18 110 93 18 110 93 18 110 93 18 110 93 18 110 93 18 110 93 18 110 93 18 110 93 18 110 93 18 110 93 18 110 93 18 110 93 18 110 93 18 110 93 18 110 0 0 0 0 0 0 101 21 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 101 21 110 101 21 110 101 21 110 101 21 110 0 0 0 0 0 0 101 21 110 101 21 110 101 21 110 101 21 110 0 0 0 0 0 0 122 28 109 122 28 109 122 28 109 122 28 109 0 0 0 0 0 0 126 30 108 126 30 108 126 30 108 126 30 108 0 0 0 0 0 0 126 30 108 126 30 108 126 30 108 126 30 108 0 0 0 0 0 0 126 30 108 126 30 108 126 30 108 126 30 108 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 129 31 107 129 31 107 129 31 107 129 31 107 0 0 0 0 0 0 129 31 107 129 31 107 129 31 107 129 31 107 0 0 0 0 0 0 131 32 107 131 32 107 131 32 107 131 32 107 131 32 107 131 32 107 131 32 107 0 0 0 0 0 0 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 0 0 0 0 0 0 156 41 99 156 41 99 156 41 99 156 41 99 156 41 99 156 41 99 156 41 99 156 41 99 156 41 99 156 41 99 156 41 99 156 41 99 156 41 99 0 0 0 0 0 0 180 51 88 180 51 88 180 51 88 180 51 88 0 0 0 0 0 0 180 51 88 0 0 0 0 0 0 181 51 87 181 51 87 181 51 87 181 51 87 0 0 0 0 0 0 181 51 87 181 51 87 181 51 87 181 51 87 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 189 55 83 0 0 0 0 0 0 189 55 83 189 55 83 189 55 83 189 55 83 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 194 59 79 0 0 0 0 0 0 194 59 79 194 59 79 194 59 79 194 59 79 0 0 0 0 0 0 213 73 64 213 73 64 213 73 64 213 73 64 0 0 0 0 0 0 213 73 64 213 73 64 213 73 64 213 73 64 213 73 64 213 73 64 213 73 64 213 73 64 213 73 64 213 73 64 213 73 64 214 74 63 214 74 63 0 0 0 0 0 0 219 79 58 219 79 58 219 79 58 219 79 58 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 224 86 52 224 86 52 224 86 52 224 86 52 224 86 52 224 86 52 224 86 52 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 226 87 51 226 87 51 226 87 51 226 87 51 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 233 98 42 233 98 42 233 98 42 233 98 42 233 98 42 233 98 42 233 98 42 0 0 0 0 0 0 235 101 39 235 101 39 236 103 38 236 103 38 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 237 104 37 237 104 37 237 104 37 237 104 37 0 0 0 0 0 0 237 104 37 237 104 37 237 104 37 237 104 37 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 87 15 109 0 0 0 0 0 0 85 15 109 0 0 0 0 0 0 85 15 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 93 18 110 0 0 0 0 0 0 101 21 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 101 21 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 101 21 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 122 28 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 126 30 108 0 0 0 0 0 0 126 30 108 0 0 0 0 0 0 126 30 108 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 131 32 107 0 0 0 0 0 0 142 36 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 156 41 99 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 156 41 99 0 0 0 0 0 0 180 51 88 0 0 0 0 0 0 180 51 88 0 0 0 0 0 0 180 51 88 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 181 51 87 0 0 0 0 0 0 181 51 87 0 0 0 0 0 0 181 51 87 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 189 55 83 0 0 0 0 0 0 189 55 83 0 0 0 0 0 0 189 55 83 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 194 59 79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 194 59 79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 213 73 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 233 98 42 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 15 109 0 0 0 0 0 0 85 15 109 0 0 0 0 0 0 85 15 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 93 18 110 0 0 0 0 0 0 101 21 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 101 21 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 21 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 122 28 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 126 30 108 0 0 0 0 0 0 126 30 108 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 131 32 107 0 0 0 0 0 0 142 36 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 156 41 99 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 156 41 99 0 0 0 0 0 0 180 51 88 0 0 0 0 0 0 180 51 88 0 0 0 0 0 0 180 51 88 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 181 51 87 0 0 0 0 0 0 181 51 87 0 0 0 0 0 0 181 51 87 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 189 55 83 0 0 0 0 0 0 189 55 83 0 0 0 0 0 0 189 55 83 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 194 59 79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 194 59 79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 213 73 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 233 98 42 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 15 109 85 15 109 85 15 109 85 15 109 85 15 109 85 15 109 85 15 109 85 15 109 85 15 109 85 15 109 0 0 0 0 0 0 85 15 109 0 0 0 0 0 0 85 15 109 85 15 109 85 15 109 85 15 109 85 15 109 85 15 109 85 15 109 0 0 0 0 0 0 88 16 109 88 16 109 88 16 109 88 16 109 0 0 0 0 0 0 93 18 110 93 18 110 93 18 110 93 18 110 93 18 110 93 18 110 93 18 110 93 18 110 93 18 110 93 18 110 93 18 110 93 18 110 93 18 110 93 18 110 93 18 110 93 18 110 0 0 0 0 0 0 101 21 110 101 21 110 101 21 110 101 21 110 0 0 0 0 0 0 101 21 110 101 21 110 101 21 110 101 21 110 0 0 0 0 0 0 102 21 110 102 21 110 102 21 110 102 21 110 0 0 0 0 0 0 122 28 109 122 28 109 122 28 109 122 28 109 0 0 0 0 0 0 126 30 108 126 30 108 126 30 108 126 30 108 126 30 108 126 30 108 126 30 108 126 30 108 126 30 108 126 30 108 0 0 0 0 0 0 126 30 108 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 128 31 107 128 31 107 128 31 107 128 31 107 0 0 0 0 0 0 129 31 107 129 31 107 129 31 107 129 31 107 129 31 107 129 31 107 129 31 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 131 32 107 131 32 107 131 32 107 131 32 107 0 0 0 0 0 0 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 0 0 0 0 0 0 156 41 99 156 41 99 156 41 99 156 41 99 0 0 0 0 0 0 156 41 99 156 41 99 156 41 99 156 41 99 0 0 0 0 0 0 156 41 99 0 0 0 0 0 0 180 51 88 0 0 0 0 0 0 180 51 88 180 51 88 180 51 88 180 51 88 0 0 0 0 0 0 181 51 87 181 51 87 181 51 87 181 51 87 0 0 0 0 0 0 181 51 87 0 0 0 0 0 0 181 51 87 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 187 55 84 187 55 84 187 55 84 187 55 84 0 0 0 0 0 0 189 55 83 189 55 83 189 55 83 189 55 83 0 0 0 0 0 0 189 55 83 189 55 83 189 55 83 189 55 83 0 0 0 0 0 0 194 59 79 194 59 79 194 59 79 194 59 79 0 0 0 0 0 0 194 59 79 194 59 79 194 59 79 194 59 79 0 0 0 0 0 0 213 73 64 213 73 64 213 73 64 213 73 64 213 73 64 213 73 64 213 73 64 213 73 64 213 73 64 213 73 64 213 73 64 213 73 64 213 73 64 213 73 64 213 73 64 213 73 64 213 73 64 213 73 64 213 73 64 213 73 64 213 73 64 213 73 64 0 0 0 0 0 0 219 79 58 219 79 58 219 79 58 219 79 58 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 224 86 52 224 86 52 224 86 52 224 86 52 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 226 87 51 226 87 51 226 87 51 226 87 51 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 231 95 44 231 95 44 231 95 44 231 95 44 231 95 44 231 95 44 231 95 44 0 0 0 0 0 0 233 98 42 0 0 0 0 0 0 235 101 39 235 101 39 235 101 39 235 101 39 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 236 103 38 236 103 38 236 103 38 236 103 38 0 0 0 0 0 0 236 103 38 236 103 38 236 103 38 236 103 38 236 103 38 236 103 38 236 103 38 0 0 0 0 0 0 237 104 37 237 104 37 237 104 37 237 104 37 0 0 0 0 0 0 237 106 35 237 106 35 237 104 37 237 104 37 237 104 37 237 104 37 237 104 37 237 104 37 237 104 37 237 104 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 15 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 15 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 15 109 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 93 18 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 101 21 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 101 21 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 21 110 0 0 0 0 0 0 122 28 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 126 30 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 126 30 108 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 131 32 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 142 36 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 156 41 99 0 0 0 0 0 0 156 41 99 0 0 0 0 0 0 156 41 99 0 0 0 0 0 0 156 41 99 0 0 0 0 0 0 180 51 88 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 181 51 87 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 181 51 87 0 0 0 0 0 0 181 51 87 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 189 55 83 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 194 59 79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 194 59 79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 213 73 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 233 98 42 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 237 106 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 15 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 15 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 15 109 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 93 18 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 101 21 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 101 21 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 21 110 0 0 0 0 0 0 122 28 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 126 30 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 126 30 108 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 131 32 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 142 36 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 156 41 99 0 0 0 0 0 0 156 41 99 0 0 0 0 0 0 156 41 99 0 0 0 0 0 0 156 41 99 0 0 0 0 0 0 180 51 88 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 181 51 87 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 181 51 87 0 0 0 0 0 0 181 51 87 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 189 55 83 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 194 59 79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 194 59 79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 213 73 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 233 98 42 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 237 106 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 75 12 107 75 12 107 75 12 107 75 12 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 15 109 85 15 109 85 15 109 85 15 109 85 15 109 85 15 109 85 15 109 85 15 109 85 15 109 85 15 109 0 0 0 0 0 0 85 15 109 0 0 0 0 0 0 85 15 109 85 15 109 85 15 109 85 15 109 85 15 109 85 15 109 85 15 109 0 0 0 0 0 0 88 16 109 88 16 109 88 16 109 88 16 109 0 0 0 0 0 0 93 18 110 93 18 110 93 18 110 93 18 110 93 18 110 93 18 110 93 18 110 93 18 110 93 18 110 93 18 110 93 18 110 93 18 110 93 18 110 93 18 110 93 18 110 93 18 110 0 0 0 0 0 0 101 21 110 101 21 110 101 21 110 101 21 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 101 21 110 0 0 0 0 0 0 102 21 110 102 21 110 102 21 110 102 21 110 0 0 0 0 0 0 122 28 109 122 28 109 122 28 109 122 28 109 0 0 0 0 0 0 126 30 108 126 30 108 126 30 108 126 30 108 0 0 0 0 0 0 126 30 108 126 30 108 126 30 108 126 30 108 0 0 0 0 0 0 126 30 108 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 129 31 107 129 31 107 129 31 107 129 31 107 0 0 0 0 0 0 131 32 107 131 32 107 131 32 107 131 32 107 0 0 0 0 0 0 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 0 0 0 0 0 0 156 41 99 156 41 99 156 41 99 156 41 99 0 0 0 0 0 0 156 41 99 0 0 0 0 0 0 156 41 99 156 41 99 156 41 99 156 41 99 0 0 0 0 0 0 180 51 88 180 51 88 180 51 88 180 51 88 180 51 88 180 51 88 180 51 88 0 0 0 0 0 0 181 51 87 181 51 87 181 51 87 181 51 87 0 0 0 0 0 0 181 51 87 0 0 0 0 0 0 181 51 87 0 0 0 0 0 0 184 53 86 184 53 86 184 53 86 184 53 86 184 53 86 184 53 86 184 53 86 184 53 86 184 53 86 184 53 86 0 0 0 0 0 0 189 55 83 189 55 83 189 55 83 189 55 83 189 55 83 189 55 83 189 55 83 0 0 0 0 0 0 194 59 79 194 59 79 194 59 79 194 59 79 0 0 0 0 0 0 194 59 79 194 59 79 194 59 79 194 59 79 0 0 0 0 0 0 212 72 65 212 72 65 212 72 65 212 72 65 212 72 65 212 72 65 212 72 65 212 72 65 212 72 65 212 72 65 212 72 65 212 72 65 212 72 65 212 72 65 212 72 65 212 72 65 212 72 65 212 72 65 212 72 65 0 0 0 0 0 0 213 73 64 213 73 64 213 73 64 213 73 64 213 73 64 213 73 64 213 73 64 0 0 0 0 0 0 219 79 58 219 79 58 219 79 58 219 79 58 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 224 86 52 224 86 52 226 87 51 226 87 51 226 87 51 226 87 51 226 87 51 0 0 0 0 0 0 226 87 51 226 87 51 226 87 51 226 87 51 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 233 98 42 233 98 42 233 98 42 233 98 42 0 0 0 0 0 0 233 98 42 233 98 42 233 98 42 233 98 42 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 236 103 38 236 103 38 236 103 38 236 103 38 0 0 0 0 0 0 237 104 37 237 104 37 237 104 37 237 104 37 0 0 0 0 0 0 237 106 35 237 106 35 237 106 35 237 106 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 15 109 0 0 0 0 0 0 85 15 109 0 0 0 0 0 0 85 15 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 93 18 110 0 0 0 0 0 0 101 21 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 101 21 110 0 0 0 0 0 0 102 21 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 122 28 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 126 30 108 0 0 0 0 0 0 126 30 108 0 0 0 0 0 0 126 30 108 0 0 0 0 0 0 126 30 108 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 131 32 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 142 36 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 156 41 99 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 156 41 99 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 180 51 88 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 181 51 87 0 0 0 0 0 0 181 51 87 0 0 0 0 0 0 181 51 87 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 189 55 83 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 194 59 79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 194 59 79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 212 72 65 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 212 72 65 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 213 73 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 233 98 42 0 0 0 0 0 0 233 98 42 0 0 0 0 0 0 233 98 42 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 237 106 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 15 109 0 0 0 0 0 0 85 15 109 0 0 0 0 0 0 85 15 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 93 18 110 0 0 0 0 0 0 101 21 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 101 21 110 0 0 0 0 0 0 102 21 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 122 28 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 126 30 108 0 0 0 0 0 0 126 30 108 0 0 0 0 0 0 126 30 108 0 0 0 0 0 0 126 30 108 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 131 32 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 142 36 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 156 41 99 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 156 41 99 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 180 51 88 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 181 51 87 0 0 0 0 0 0 181 51 87 0 0 0 0 0 0 181 51 87 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 189 55 83 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 194 59 79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 194 59 79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 212 72 65 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 213 73 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 213 73 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 233 98 42 0 0 0 0 0 0 233 98 42 0 0 0 0 0 0 233 98 42 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 237 106 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 83 14 109 83 14 109 83 14 109 83 14 109 0 0 0 0 0 0 85 15 109 85 15 109 85 15 109 85 15 109 0 0 0 0 0 0 85 15 109 85 15 109 85 15 109 85 15 109 85 15 109 85 15 109 85 15 109 85 15 109 85 15 109 85 15 109 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 91 17 110 91 17 110 91 17 110 91 17 110 0 0 0 0 0 0 91 17 110 91 17 110 91 17 110 91 17 110 0 0 0 0 0 0 93 18 110 0 0 0 0 0 0 101 21 110 0 0 0 0 0 0 101 21 110 101 21 110 101 21 110 101 21 110 101 21 110 101 21 110 101 21 110 0 0 0 0 0 0 102 21 110 0 0 0 0 0 0 102 21 110 102 21 110 102 21 110 102 21 110 0 0 0 0 0 0 122 28 109 122 28 109 122 28 109 122 28 109 0 0 0 0 0 0 126 30 108 0 0 0 0 0 0 126 30 108 0 0 0 0 0 0 126 30 108 0 0 0 0 0 0 126 30 108 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 128 31 107 128 31 107 128 31 107 128 31 107 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 131 32 107 0 0 0 0 0 0 142 36 104 142 36 104 142 36 104 142 36 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 156 41 99 156 41 99 156 41 99 156 41 99 0 0 0 0 0 0 156 41 99 156 41 99 156 41 99 156 41 99 0 0 0 0 0 0 156 41 99 0 0 0 0 0 0 158 41 99 158 41 99 158 41 99 158 41 99 0 0 0 0 0 0 180 51 88 180 51 88 180 51 88 180 51 88 180 51 88 180 51 88 180 51 88 0 0 0 0 0 0 181 51 87 181 51 87 181 51 87 181 51 87 0 0 0 0 0 0 181 51 87 0 0 0 0 0 0 181 51 87 181 51 87 183 52 86 183 52 86 0 0 0 0 0 0 184 53 86 184 53 86 184 53 86 184 53 86 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 189 55 83 189 55 83 189 55 83 189 55 83 189 55 83 189 55 83 189 55 83 0 0 0 0 0 0 194 59 79 194 59 79 193 58 80 193 58 80 0 0 0 0 0 0 194 59 79 194 59 79 194 59 79 194 59 79 0 0 0 0 0 0 212 72 65 212 72 65 212 72 65 212 72 65 212 72 65 212 72 65 212 72 65 212 72 65 212 72 65 212 72 65 0 0 0 0 0 0 212 72 65 212 72 65 212 72 65 212 72 65 0 0 0 0 0 0 213 73 64 213 73 64 213 73 64 213 73 64 213 73 64 213 73 64 213 73 64 213 73 64 213 73 64 213 73 64 0 0 0 0 0 0 212 72 65 212 72 65 212 72 65 212 72 65 0 0 0 0 0 0 224 86 52 224 86 52 224 86 52 224 86 52 0 0 0 0 0 0 226 87 51 226 87 51 226 87 51 226 87 51 226 87 51 226 87 51 226 87 51 226 87 51 226 87 51 226 87 51 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 233 98 42 0 0 0 0 0 0 233 98 42 233 98 42 233 98 42 233 98 42 0 0 0 0 0 0 235 101 39 235 101 39 235 101 39 235 101 39 0 0 0 0 0 0 235 101 39 235 101 39 235 101 39 235 101 39 0 0 0 0 0 0 236 103 38 236 103 38 236 103 38 236 103 38 0 0 0 0 0 0 236 103 38 236 103 38 236 103 38 236 103 38 0 0 0 0 0 0 236 103 38 236 103 38 236 103 38 236 103 38 0 0 0 0 0 0 237 104 37 237 104 37 237 104 37 237 104 37 0 0 0 0 0 0 237 106 35 237 106 35 237 106 35 237 106 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 83 14 109 0 0 0 0 0 0 83 14 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 15 109 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 91 17 110 0 0 0 0 0 0 91 17 110 0 0 0 0 0 0 91 17 110 0 0 0 0 0 0 91 17 110 0 0 0 0 0 0 93 18 110 0 0 0 0 0 0 101 21 110 0 0 0 0 0 0 101 21 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 21 110 0 0 0 0 0 0 102 21 110 0 0 0 0 0 0 102 21 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 122 28 109 0 0 0 0 0 0 126 30 108 0 0 0 0 0 0 126 30 108 0 0 0 0 0 0 126 30 108 0 0 0 0 0 0 126 30 108 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 131 32 107 0 0 0 0 0 0 142 36 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 156 41 99 0 0 0 0 0 0 156 41 99 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 156 41 99 0 0 0 0 0 0 156 41 99 0 0 0 0 0 0 158 41 99 0 0 0 0 0 0 158 41 99 0 0 0 0 0 0 180 51 88 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 181 51 87 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 181 51 87 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 189 55 83 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 194 59 79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 212 72 65 0 0 0 0 0 0 212 72 65 0 0 0 0 0 0 212 72 65 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 212 72 65 0 0 0 0 0 0 212 72 65 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 233 98 42 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 237 106 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 83 14 109 0 0 0 0 0 0 83 14 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 15 109 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 91 17 110 0 0 0 0 0 0 91 17 110 0 0 0 0 0 0 91 17 110 0 0 0 0 0 0 91 17 110 0 0 0 0 0 0 93 18 110 0 0 0 0 0 0 101 21 110 0 0 0 0 0 0 101 21 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 21 110 0 0 0 0 0 0 102 21 110 0 0 0 0 0 0 102 21 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 122 28 109 0 0 0 0 0 0 126 30 108 0 0 0 0 0 0 126 30 108 0 0 0 0 0 0 126 30 108 0 0 0 0 0 0 126 30 108 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 131 32 107 0 0 0 0 0 0 142 36 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 156 41 99 0 0 0 0 0 0 156 41 99 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 156 41 99 0 0 0 0 0 0 156 41 99 0 0 0 0 0 0 156 41 99 0 0 0 0 0 0 158 41 99 0 0 0 0 0 0 180 51 88 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 181 51 87 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 181 51 87 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 189 55 83 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 194 59 79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 212 72 65 0 0 0 0 0 0 212 72 65 0 0 0 0 0 0 212 72 65 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 212 72 65 0 0 0 0 0 0 212 72 65 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 233 98 42 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 237 106 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 75 12 107 75 12 107 75 12 107 75 12 107 75 12 107 75 12 107 75 12 107 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 12 107 77 12 107 77 12 107 77 12 107 0 0 0 0 0 0 83 14 109 83 14 109 83 14 109 83 14 109 83 14 109 83 14 109 83 14 109 0 0 0 0 0 0 83 14 109 83 14 109 83 14 109 83 14 109 83 14 109 83 14 109 83 14 109 0 0 0 0 0 0 85 15 109 85 15 109 85 15 109 85 15 109 85 15 109 85 15 109 85 15 109 85 15 109 85 15 109 85 15 109 0 0 0 0 0 0 88 16 109 88 16 109 90 17 109 90 17 109 0 0 0 0 0 0 91 17 110 0 0 0 0 0 0 91 17 110 91 17 110 91 17 110 91 17 110 0 0 0 0 0 0 91 17 110 0 0 0 0 0 0 93 18 110 0 0 0 0 0 0 101 21 110 101 21 110 101 21 110 101 21 110 0 0 0 0 0 0 102 21 110 102 21 110 102 21 110 102 21 110 102 21 110 102 21 110 102 21 110 0 0 0 0 0 0 102 21 110 0 0 0 0 0 0 102 21 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 122 28 109 0 0 0 0 0 0 126 30 108 126 30 108 126 30 108 126 30 108 0 0 0 0 0 0 126 30 108 126 30 108 126 30 108 126 30 108 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 128 31 107 128 31 107 128 31 107 128 31 107 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 131 32 107 0 0 0 0 0 0 142 36 104 0 0 0 0 0 0 142 36 104 142 36 104 142 36 104 142 36 104 0 0 0 0 0 0 156 41 99 0 0 0 0 0 0 156 41 99 156 41 99 156 41 99 156 41 99 0 0 0 0 0 0 156 41 99 0 0 0 0 0 0 156 41 99 156 41 99 156 41 99 156 41 99 0 0 0 0 0 0 158 41 99 0 0 0 0 0 0 180 51 88 180 51 88 180 51 88 180 51 88 180 51 88 180 51 88 180 51 88 0 0 0 0 0 0 181 51 87 181 51 87 181 51 87 181 51 87 0 0 0 0 0 0 181 51 87 181 51 87 181 51 87 181 51 87 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 184 53 86 184 53 86 184 53 86 184 53 86 0 0 0 0 0 0 189 55 83 189 55 83 189 55 83 189 55 83 189 55 83 189 55 83 189 55 83 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 194 59 79 194 59 79 194 59 79 194 59 79 0 0 0 0 0 0 205 66 71 205 66 71 205 66 71 205 66 71 205 66 71 205 66 71 205 66 71 0 0 0 0 0 0 212 72 65 212 72 65 212 72 65 212 72 65 0 0 0 0 0 0 212 72 65 212 72 65 212 72 65 212 72 65 212 72 65 212 72 65 212 72 65 212 72 65 212 72 65 212 72 65 212 72 65 212 72 65 212 72 65 212 72 65 212 72 65 212 72 65 0 0 0 0 0 0 212 72 65 0 0 0 0 0 0 226 87 51 226 87 51 226 87 51 226 87 51 226 87 51 226 87 51 226 87 51 0 0 0 0 0 0 226 87 51 226 87 51 226 87 51 226 87 51 0 0 0 0 0 0 226 87 51 226 87 51 226 87 51 226 87 51 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 233 98 42 233 98 42 233 98 42 233 98 42 233 98 42 233 98 42 233 98 42 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 235 101 39 235 101 39 235 101 39 235 101 39 0 0 0 0 0 0 236 103 38 236 103 38 236 103 38 236 103 38 236 103 38 236 103 38 236 103 38 236 103 38 236 103 38 236 103 38 236 103 38 236 103 38 236 103 38 236 103 38 236 103 38 236 103 38 236 103 38 236 103 38 236 103 38 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 237 106 35 237 106 35 237 106 35 237 106 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 83 14 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 83 14 109 0 0 0 0 0 0 85 15 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 91 17 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 91 17 110 0 0 0 0 0 0 93 18 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 21 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 21 110 0 0 0 0 0 0 102 21 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 122 28 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 131 32 107 0 0 0 0 0 0 142 36 104 0 0 0 0 0 0 142 36 104 0 0 0 0 0 0 142 36 104 0 0 0 0 0 0 156 41 99 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 156 41 99 0 0 0 0 0 0 156 41 99 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 158 41 99 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 180 51 88 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 181 51 87 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 181 51 87 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 189 55 83 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 194 59 79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 212 72 65 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 233 98 42 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 237 106 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 83 14 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 83 14 109 0 0 0 0 0 0 85 15 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 91 17 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 91 17 110 0 0 0 0 0 0 93 18 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 21 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 21 110 0 0 0 0 0 0 102 21 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 120 28 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 142 36 104 0 0 0 0 0 0 142 36 104 0 0 0 0 0 0 142 36 104 0 0 0 0 0 0 156 41 99 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 156 41 99 0 0 0 0 0 0 156 41 99 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 158 41 99 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 180 51 88 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 181 51 87 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 181 51 87 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 189 55 83 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 194 59 79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 212 72 65 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 233 98 42 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 237 106 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 75 12 107 75 12 107 75 12 107 75 12 107 75 12 107 75 12 107 75 12 107 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 75 12 107 75 12 107 75 12 107 75 12 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 83 14 109 83 14 109 83 14 109 83 14 109 83 14 109 83 14 109 83 14 109 83 14 109 83 14 109 83 14 109 0 0 0 0 0 0 83 14 109 83 14 109 83 14 109 83 14 109 0 0 0 0 0 0 85 15 109 85 15 109 85 15 109 85 15 109 85 15 109 85 15 109 85 15 109 85 15 109 85 15 109 85 15 109 85 15 109 83 14 109 83 14 109 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 91 17 110 91 17 110 91 17 110 91 17 110 91 17 110 91 17 110 91 17 110 0 0 0 0 0 0 91 17 110 0 0 0 0 0 0 93 18 110 93 18 110 93 18 110 93 18 110 93 18 110 93 18 110 93 18 110 0 0 0 0 0 0 102 21 110 0 0 0 0 0 0 102 21 110 102 21 110 102 21 110 102 21 110 102 21 110 102 21 110 102 21 110 0 0 0 0 0 0 102 21 110 102 21 110 102 21 110 102 21 110 0 0 0 0 0 0 120 28 109 120 28 109 120 28 109 120 28 109 120 28 109 120 28 109 120 28 109 120 28 109 120 28 109 120 28 109 120 28 109 120 28 109 120 28 109 0 0 0 0 0 0 128 31 107 128 31 107 128 31 107 128 31 107 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 129 31 107 129 31 107 129 31 107 129 31 107 0 0 0 0 0 0 129 31 107 129 31 107 129 31 107 129 31 107 0 0 0 0 0 0 142 36 104 142 36 104 142 36 104 142 36 104 0 0 0 0 0 0 142 36 104 0 0 0 0 0 0 156 41 99 156 41 99 156 41 99 156 41 99 0 0 0 0 0 0 156 41 99 0 0 0 0 0 0 156 41 99 0 0 0 0 0 0 158 41 99 158 41 99 158 41 99 158 41 99 158 41 99 158 41 99 158 41 99 0 0 0 0 0 0 180 51 88 180 51 88 180 51 88 180 51 88 0 0 0 0 0 0 180 51 88 180 51 88 180 51 88 180 51 88 0 0 0 0 0 0 181 51 87 181 51 87 181 51 87 181 51 87 181 51 87 181 51 87 181 51 87 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 184 53 86 184 53 86 184 53 86 184 53 86 184 53 86 184 53 86 184 53 86 0 0 0 0 0 0 189 55 83 189 55 83 189 55 83 189 55 83 0 0 0 0 0 0 193 58 80 193 58 80 193 58 80 193 58 80 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 194 59 79 194 59 79 194 59 79 194 59 79 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 205 66 71 205 66 71 205 66 71 205 66 71 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 208 69 68 208 69 68 208 69 68 208 69 68 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 209 70 67 209 70 67 209 70 67 209 70 67 0 0 0 0 0 0 209 70 67 209 70 67 209 70 67 209 70 67 0 0 0 0 0 0 212 72 65 0 0 0 0 0 0 226 87 51 226 87 51 226 87 51 226 87 51 226 87 51 226 87 51 226 87 51 226 87 51 226 87 51 226 87 51 0 0 0 0 0 0 226 87 51 226 87 51 226 87 51 226 87 51 0 0 0 0 0 0 228 90 49 228 90 49 228 90 49 228 90 49 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 230 92 46 230 92 46 230 92 46 230 92 46 0 0 0 0 0 0 233 98 42 233 98 42 233 98 42 233 98 42 233 98 42 233 98 42 233 98 42 0 0 0 0 0 0 235 101 39 235 101 39 235 101 39 235 101 39 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 236 103 38 236 103 38 236 103 38 236 103 38 0 0 0 0 0 0 237 104 37 237 104 37 237 104 37 237 104 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 237 104 37 237 104 37 237 104 37 237 104 37 0 0 0 0 0 0 237 106 35 237 106 35 237 106 35 237 106 35 237 106 35 237 106 35 237 106 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 83 14 109 0 0 0 0 0 0 83 14 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 83 14 109 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 91 17 110 0 0 0 0 0 0 91 17 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 93 18 110 0 0 0 0 0 0 102 21 110 0 0 0 0 0 0 102 21 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 21 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 120 28 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 142 36 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 156 41 99 0 0 0 0 0 0 156 41 99 0 0 0 0 0 0 156 41 99 0 0 0 0 0 0 158 41 99 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 180 51 88 0 0 0 0 0 0 180 51 88 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 180 51 88 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 189 55 83 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 194 59 79 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 212 72 65 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 233 98 42 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 237 106 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 83 14 109 0 0 0 0 0 0 83 14 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 83 14 109 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 91 17 110 0 0 0 0 0 0 91 17 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 93 18 110 0 0 0 0 0 0 102 21 110 0 0 0 0 0 0 102 21 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 21 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 120 28 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 142 36 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 156 41 99 0 0 0 0 0 0 156 41 99 0 0 0 0 0 0 156 41 99 0 0 0 0 0 0 158 41 99 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 180 51 88 0 0 0 0 0 0 180 51 88 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 180 51 88 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 189 55 83 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 194 59 79 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 212 72 65 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 233 98 42 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 237 106 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 75 12 107 75 12 107 75 12 107 75 12 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 77 12 107 77 12 107 77 12 107 77 12 107 0 0 0 0 0 0 77 12 107 77 12 107 77 12 107 77 12 107 0 0 0 0 0 0 79 13 108 79 13 108 79 13 108 79 13 108 0 0 0 0 0 0 83 14 109 0 0 0 0 0 0 83 14 109 83 14 109 83 14 109 83 14 109 0 0 0 0 0 0 83 14 109 83 14 109 83 14 109 83 14 109 83 14 109 83 14 109 83 14 109 83 14 109 83 14 109 83 14 109 83 14 109 83 14 109 83 14 109 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 91 17 110 91 17 110 91 17 110 91 17 110 91 17 110 91 17 110 91 17 110 0 0 0 0 0 0 91 17 110 91 17 110 91 17 110 91 17 110 0 0 0 0 0 0 93 18 110 93 18 110 93 18 110 93 18 110 0 0 0 0 0 0 102 21 110 102 21 110 102 21 110 102 21 110 0 0 0 0 0 0 102 21 110 102 21 110 102 21 110 102 21 110 102 21 110 102 21 110 102 21 110 102 21 110 102 21 110 102 21 110 0 0 0 0 0 0 107 23 110 107 23 110 107 23 110 107 23 110 0 0 0 0 0 0 107 23 110 107 23 110 107 23 110 107 23 110 0 0 0 0 0 0 120 28 109 120 28 109 120 28 109 120 28 109 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 128 31 107 128 31 107 128 31 107 128 31 107 0 0 0 0 0 0 144 36 104 144 36 104 144 36 104 144 36 104 0 0 0 0 0 0 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 0 0 0 0 0 0 155 40 100 155 40 100 156 41 99 156 41 99 0 0 0 0 0 0 156 41 99 156 41 99 156 41 99 156 41 99 0 0 0 0 0 0 158 41 99 158 41 99 158 41 99 158 41 99 0 0 0 0 0 0 180 51 88 180 51 88 180 51 88 180 51 88 0 0 0 0 0 0 180 51 88 180 51 88 180 51 88 180 51 88 180 51 88 180 51 88 180 51 88 0 0 0 0 0 0 183 52 86 183 52 86 183 52 86 183 52 86 183 52 86 183 52 86 183 52 86 183 52 86 183 52 86 183 52 86 0 0 0 0 0 0 183 52 86 183 52 86 183 52 86 183 52 86 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 189 55 83 189 55 83 189 55 83 189 55 83 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 193 58 80 193 58 80 193 58 80 193 58 80 0 0 0 0 0 0 194 59 79 194 59 79 194 59 79 194 59 79 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 205 66 71 205 66 71 205 66 71 205 66 71 0 0 0 0 0 0 208 69 68 208 69 68 208 69 68 208 69 68 0 0 0 0 0 0 209 70 67 209 70 67 209 70 67 209 70 67 209 70 67 209 70 67 209 70 67 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 212 72 65 212 72 65 212 72 65 212 72 65 0 0 0 0 0 0 227 88 50 227 88 50 227 88 50 227 88 50 227 88 50 227 88 50 227 88 50 227 88 50 226 87 51 226 87 51 226 87 51 226 87 51 226 87 51 0 0 0 0 0 0 228 90 49 228 90 49 228 90 49 228 90 49 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 233 98 42 233 98 42 233 98 42 233 98 42 233 98 42 233 98 42 233 98 42 0 0 0 0 0 0 235 101 39 235 101 39 235 101 39 235 101 39 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 235 101 39 235 101 39 235 101 39 235 101 39 0 0 0 0 0 0 236 103 38 236 103 38 236 103 38 236 103 38 0 0 0 0 0 0 236 103 38 236 103 38 236 103 38 236 103 38 0 0 0 0 0 0 237 104 37 237 104 37 237 104 37 237 104 37 237 104 37 237 104 37 237 104 37 0 0 0 0 0 0 237 106 35 237 106 35 237 106 35 237 106 35 237 106 35 237 106 35 237 106 35 237 106 35 237 106 35 237 106 35 0 0 0 0 0 0 237 106 35 237 106 35 237 106 35 237 106 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 83 14 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 83 14 109 0 0 0 0 0 0 83 14 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 91 17 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 91 17 110 0 0 0 0 0 0 93 18 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 21 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 107 23 110 0 0 0 0 0 0 107 23 110 0 0 0 0 0 0 107 23 110 0 0 0 0 0 0 107 23 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 120 28 109 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 144 36 104 0 0 0 0 0 0 144 36 104 0 0 0 0 0 0 142 36 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 158 41 99 0 0 0 0 0 0 180 51 88 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 189 55 83 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 194 59 79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 212 72 65 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 233 98 42 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 237 106 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 237 106 35 0 0 0 0 0 0 237 106 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 83 14 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 83 14 109 0 0 0 0 0 0 83 14 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 91 17 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 91 17 110 0 0 0 0 0 0 93 18 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 21 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 107 23 110 0 0 0 0 0 0 107 23 110 0 0 0 0 0 0 107 23 110 0 0 0 0 0 0 107 23 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 120 28 109 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 144 36 104 0 0 0 0 0 0 144 36 104 0 0 0 0 0 0 142 36 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 158 41 99 0 0 0 0 0 0 180 51 88 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 189 55 83 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 212 72 65 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 233 98 42 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 237 106 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 237 106 35 0 0 0 0 0 0 237 106 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 75 12 107 75 12 107 75 12 107 75 12 107 0 0 0 0 0 0 75 12 107 75 12 107 75 12 107 75 12 107 75 12 107 75 12 107 75 12 107 0 0 0 0 0 0 75 12 107 75 12 107 75 12 107 75 12 107 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 77 12 107 77 12 107 77 12 107 77 12 107 77 12 107 77 12 107 77 12 107 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 83 14 109 83 14 109 83 14 109 83 14 109 0 0 0 0 0 0 83 14 109 83 14 109 83 14 109 83 14 109 0 0 0 0 0 0 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 91 17 110 91 17 110 91 17 110 91 17 110 91 17 110 91 17 110 91 17 110 91 17 110 91 17 110 91 17 110 0 0 0 0 0 0 91 17 110 0 0 0 0 0 0 93 18 110 0 0 0 0 0 0 104 22 110 104 22 110 104 22 110 104 22 110 104 22 110 104 22 110 104 22 110 0 0 0 0 0 0 102 21 110 102 21 110 102 21 110 102 21 110 102 21 110 102 21 110 102 21 110 102 21 110 102 21 110 102 21 110 0 0 0 0 0 0 107 23 110 0 0 0 0 0 0 107 23 110 107 23 110 107 23 110 107 23 110 0 0 0 0 0 0 107 23 110 0 0 0 0 0 0 120 28 109 120 28 109 120 28 109 120 28 109 0 0 0 0 0 0 128 31 107 128 31 107 128 31 107 128 31 107 128 31 107 128 31 107 128 31 107 0 0 0 0 0 0 144 36 104 0 0 0 0 0 0 144 36 104 0 0 0 0 0 0 142 36 104 142 36 104 142 36 104 142 36 104 0 0 0 0 0 0 147 37 103 147 37 103 147 37 103 147 37 103 0 0 0 0 0 0 155 40 100 155 40 100 155 40 100 155 40 100 0 0 0 0 0 0 158 41 99 158 41 99 158 41 99 158 41 99 158 41 99 158 41 99 158 41 99 158 41 99 158 41 99 158 41 99 0 0 0 0 0 0 180 51 88 180 51 88 180 51 88 180 51 88 180 51 88 180 51 88 180 51 88 180 51 88 180 51 88 180 51 88 180 51 88 178 50 89 178 50 89 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 183 52 86 183 52 86 183 52 86 183 52 86 0 0 0 0 0 0 183 52 86 183 52 86 183 52 86 183 52 86 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 189 55 83 189 55 83 189 55 83 189 55 83 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 193 58 80 193 58 80 193 58 80 193 58 80 0 0 0 0 0 0 196 60 78 196 60 78 196 60 78 196 60 78 0 0 0 0 0 0 205 66 71 205 66 71 205 66 71 205 66 71 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 208 69 68 208 69 68 208 69 68 208 69 68 0 0 0 0 0 0 208 69 68 208 69 68 208 69 68 208 69 68 0 0 0 0 0 0 209 70 67 209 70 67 209 70 67 209 70 67 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 212 72 65 212 72 65 212 72 65 212 72 65 0 0 0 0 0 0 227 88 50 227 88 50 227 88 50 227 88 50 227 88 50 227 88 50 227 88 50 0 0 0 0 0 0 227 88 50 227 88 50 227 88 50 227 88 50 0 0 0 0 0 0 228 90 49 228 90 49 228 90 49 228 90 49 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 233 98 42 233 98 42 233 98 42 233 98 42 233 98 42 233 98 42 233 98 42 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 235 101 39 235 101 39 235 101 39 235 101 39 0 0 0 0 0 0 238 108 34 238 108 34 238 108 34 238 108 34 238 108 34 238 108 34 238 108 34 0 0 0 0 0 0 238 108 34 238 108 34 238 108 34 238 108 34 238 108 34 238 108 34 238 108 34 238 108 34 238 108 34 238 108 34 238 108 34 238 108 34 238 108 34 0 0 0 0 0 0 237 106 35 237 106 35 237 106 35 237 106 35 237 106 35 237 106 35 237 106 35 237 106 35 237 106 35 237 106 35 237 106 35 237 106 35 237 106 35 0 0 0 0 0 0 237 106 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 83 14 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 82 14 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 82 14 108 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 91 17 110 0 0 0 0 0 0 91 17 110 0 0 0 0 0 0 93 18 110 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 21 110 0 0 0 0 0 0 107 23 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 107 23 110 0 0 0 0 0 0 120 28 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 144 36 104 0 0 0 0 0 0 144 36 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 142 36 104 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 158 41 99 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 189 55 83 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 212 72 65 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 233 98 42 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 238 108 34 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 238 108 34 0 0 0 0 0 0 238 108 34 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 238 108 34 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 237 106 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 83 14 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 83 14 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 82 14 108 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 91 17 110 0 0 0 0 0 0 93 18 110 0 0 0 0 0 0 93 18 110 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 21 110 0 0 0 0 0 0 107 23 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 107 23 110 0 0 0 0 0 0 120 28 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 144 36 104 0 0 0 0 0 0 144 36 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 144 36 104 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 158 41 99 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 189 55 83 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 212 72 65 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 233 98 42 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 238 108 34 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 238 108 34 0 0 0 0 0 0 238 108 34 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 238 108 34 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 237 106 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 74 11 106 74 11 106 74 11 106 74 11 106 0 0 0 0 0 0 74 11 106 74 11 106 74 11 106 74 11 106 0 0 0 0 0 0 74 11 106 74 11 106 74 11 106 74 11 106 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 77 12 107 77 12 107 77 12 107 77 12 107 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 83 14 109 83 14 109 83 14 109 83 14 109 0 0 0 0 0 0 83 14 109 83 14 109 83 14 109 83 14 109 0 0 0 0 0 0 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 0 0 0 0 0 0 90 17 109 90 17 109 90 17 109 90 17 109 0 0 0 0 0 0 90 17 109 90 17 109 90 17 109 90 17 109 0 0 0 0 0 0 91 17 110 0 0 0 0 0 0 93 18 110 0 0 0 0 0 0 93 18 110 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 104 22 110 104 22 110 102 21 110 102 21 110 102 21 110 102 21 110 102 21 110 102 21 110 102 21 110 102 21 110 102 21 110 102 21 110 102 21 110 0 0 0 0 0 0 107 23 110 107 23 110 107 23 110 107 23 110 0 0 0 0 0 0 107 23 110 107 23 110 107 23 110 107 23 110 0 0 0 0 0 0 120 28 109 120 28 109 120 28 109 120 28 109 0 0 0 0 0 0 144 36 104 144 36 104 144 36 104 144 36 104 144 36 104 144 36 104 144 36 104 144 36 104 144 36 104 144 36 104 0 0 0 0 0 0 144 36 104 144 36 104 144 36 104 144 36 104 144 36 104 144 36 104 144 36 104 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 158 41 99 158 41 99 158 41 99 158 41 99 0 0 0 0 0 0 161 43 97 161 43 97 161 43 97 161 43 97 0 0 0 0 0 0 161 43 97 161 43 97 161 43 97 161 43 97 161 43 97 161 43 97 161 43 97 161 43 97 161 43 97 161 43 97 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 183 52 86 183 52 86 183 52 86 183 52 86 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 183 52 86 183 52 86 183 52 86 183 52 86 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 189 55 83 189 55 83 189 55 83 189 55 83 0 0 0 0 0 0 193 58 80 193 58 80 193 58 80 193 58 80 0 0 0 0 0 0 193 58 80 193 58 80 193 58 80 193 58 80 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 205 66 71 205 66 71 205 66 71 205 66 71 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 208 69 68 208 69 68 208 69 68 208 69 68 0 0 0 0 0 0 208 69 68 208 69 68 208 69 68 208 69 68 0 0 0 0 0 0 208 69 68 208 69 68 208 69 68 208 69 68 208 69 68 208 69 68 208 69 68 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 212 72 65 0 0 0 0 0 0 212 72 65 212 72 65 210 71 66 210 71 66 0 0 0 0 0 0 227 88 50 227 88 50 227 88 50 227 88 50 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 228 90 49 228 90 49 228 90 49 228 90 49 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 233 98 42 233 98 42 233 98 42 233 98 42 233 98 42 233 98 42 233 98 42 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 235 101 39 235 101 39 235 101 39 235 101 39 0 0 0 0 0 0 238 108 34 238 108 34 238 108 34 238 108 34 0 0 0 0 0 0 238 108 34 0 0 0 0 0 0 238 108 34 238 108 34 238 108 34 238 108 34 238 108 34 238 108 34 238 108 34 238 108 34 238 108 34 238 108 34 0 0 0 0 0 0 238 108 34 0 0 0 0 0 0 237 106 35 237 106 35 237 106 35 237 106 35 237 106 35 237 106 35 237 106 35 237 106 35 237 106 35 237 106 35 237 106 35 237 106 35 237 106 35 237 106 35 237 106 35 237 106 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 74 11 106 0 0 0 0 0 0 74 11 106 0 0 0 0 0 0 74 11 106 0 0 0 0 0 0 74 11 106 0 0 0 0 0 0 74 11 106 0 0 0 0 0 0 74 11 106 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 83 14 109 0 0 0 0 0 0 83 14 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 82 14 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 91 17 110 0 0 0 0 0 0 93 18 110 0 0 0 0 0 0 93 18 110 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 107 23 110 0 0 0 0 0 0 107 23 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 120 28 109 0 0 0 0 0 0 144 36 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 158 41 99 0 0 0 0 0 0 161 43 97 0 0 0 0 0 0 161 43 97 0 0 0 0 0 0 161 43 97 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 161 43 97 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 189 55 83 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 212 72 65 0 0 0 0 0 0 212 72 65 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 233 98 42 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 238 108 34 0 0 0 0 0 0 238 108 34 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 238 108 34 0 0 0 0 0 0 238 108 34 0 0 0 0 0 0 237 106 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 74 11 106 0 0 0 0 0 0 74 11 106 0 0 0 0 0 0 74 11 106 0 0 0 0 0 0 74 11 106 0 0 0 0 0 0 74 11 106 0 0 0 0 0 0 74 11 106 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 83 14 109 0 0 0 0 0 0 83 14 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 82 14 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 91 17 110 0 0 0 0 0 0 93 18 110 0 0 0 0 0 0 93 18 110 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 107 23 110 0 0 0 0 0 0 107 23 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 120 28 109 0 0 0 0 0 0 144 36 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 158 41 99 0 0 0 0 0 0 161 43 97 0 0 0 0 0 0 161 43 97 0 0 0 0 0 0 161 43 97 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 161 43 97 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 189 55 83 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 212 72 65 0 0 0 0 0 0 212 72 65 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 233 98 42 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 234 100 40 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 238 108 34 0 0 0 0 0 0 238 108 34 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 238 108 34 0 0 0 0 0 0 238 108 34 0 0 0 0 0 0 237 106 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 74 11 106 0 0 0 0 0 0 74 11 106 74 11 106 74 11 106 74 11 106 0 0 0 0 0 0 74 11 106 74 11 106 74 11 106 74 11 106 0 0 0 0 0 0 74 11 106 0 0 0 0 0 0 75 12 107 75 12 107 75 12 107 75 12 107 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 77 12 107 77 12 107 77 12 107 77 12 107 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 79 13 108 79 13 108 79 13 108 79 13 108 0 0 0 0 0 0 83 14 109 83 14 109 83 14 109 83 14 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 91 17 110 0 0 0 0 0 0 93 18 110 93 18 110 93 18 110 93 18 110 0 0 0 0 0 0 104 22 110 104 22 110 104 22 110 104 22 110 104 22 110 104 22 110 104 22 110 104 22 110 104 22 110 104 22 110 0 0 0 0 0 0 107 23 110 107 23 110 107 23 110 107 23 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 107 23 110 107 23 110 107 23 110 107 23 110 0 0 0 0 0 0 107 23 110 107 23 110 107 23 110 107 23 110 0 0 0 0 0 0 120 28 109 120 28 109 120 28 109 120 28 109 0 0 0 0 0 0 144 36 104 0 0 0 0 0 0 144 36 104 144 36 104 144 36 104 144 36 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 145 37 103 145 37 103 145 37 103 145 37 103 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 155 40 100 155 40 100 155 40 100 155 40 100 0 0 0 0 0 0 158 41 99 158 41 99 158 41 99 158 41 99 0 0 0 0 0 0 161 43 97 0 0 0 0 0 0 161 43 97 161 43 97 161 43 97 161 43 97 0 0 0 0 0 0 161 43 97 161 43 97 161 43 97 161 43 97 161 43 97 161 43 97 161 43 97 0 0 0 0 0 0 178 50 89 178 50 89 178 50 89 178 50 89 178 50 89 178 50 89 178 50 89 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 183 52 86 183 52 86 183 52 86 183 52 86 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 189 55 83 189 55 83 190 56 82 190 56 82 0 0 0 0 0 0 193 58 80 193 58 80 193 58 80 193 58 80 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 205 66 71 205 66 71 204 65 72 204 65 72 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 208 69 68 208 69 68 208 69 68 208 69 68 0 0 0 0 0 0 208 69 68 208 69 68 208 69 68 208 69 68 0 0 0 0 0 0 208 69 68 208 69 68 208 69 68 208 69 68 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 212 72 65 212 72 65 212 72 65 212 72 65 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 227 88 50 227 88 50 227 88 50 227 88 50 227 88 50 227 88 50 227 88 50 0 0 0 0 0 0 227 88 50 227 88 50 227 88 50 227 88 50 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 229 91 48 229 91 48 229 91 48 229 91 48 0 0 0 0 0 0 233 98 42 233 98 42 233 98 42 233 98 42 233 98 42 233 98 42 233 98 42 0 0 0 0 0 0 234 100 40 0 0 0 0 0 0 235 101 39 235 101 39 235 101 39 235 101 39 235 101 39 235 101 39 235 101 39 0 0 0 0 0 0 238 108 34 238 108 34 238 108 34 238 108 34 0 0 0 0 0 0 238 108 34 238 108 34 238 108 34 238 108 34 238 108 34 238 108 34 238 108 34 238 108 34 238 108 34 238 108 34 238 108 34 238 108 34 238 108 34 0 0 0 0 0 0 238 108 34 0 0 0 0 0 0 237 106 35 237 106 35 237 106 35 237 106 35 237 106 35 237 106 35 237 106 35 237 106 35 237 106 35 237 106 35 237 106 35 237 106 35 237 106 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 74 11 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 74 11 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 82 14 108 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 91 17 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 107 23 110 0 0 0 0 0 0 107 23 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 107 23 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 107 23 110 0 0 0 0 0 0 120 28 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 144 36 104 0 0 0 0 0 0 144 36 104 0 0 0 0 0 0 144 36 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 158 41 99 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 161 43 97 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 161 43 97 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 233 98 42 0 0 0 0 0 0 234 100 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 238 108 34 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 238 108 34 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 237 106 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 74 11 106 0 0 0 0 0 0 74 11 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 74 11 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 82 14 108 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 91 17 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 107 23 110 0 0 0 0 0 0 107 23 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 107 23 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 109 24 110 0 0 0 0 0 0 120 28 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 144 36 104 0 0 0 0 0 0 144 36 104 0 0 0 0 0 0 144 36 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 158 41 99 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 161 43 97 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 161 43 97 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 191 57 81 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 234 100 40 0 0 0 0 0 0 234 100 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 238 108 34 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 238 108 34 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 238 108 34 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 74 11 106 74 11 106 74 11 106 74 11 106 0 0 0 0 0 0 72 11 106 72 11 106 72 11 106 72 11 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 74 11 106 74 11 106 74 11 106 74 11 106 74 11 106 74 11 106 74 11 106 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 77 12 107 77 12 107 77 12 107 77 12 107 0 0 0 0 0 0 79 13 108 79 13 108 79 13 108 79 13 108 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 80 13 108 80 13 108 80 13 108 80 13 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 80 13 108 80 13 108 80 13 108 80 13 108 0 0 0 0 0 0 82 14 108 82 14 108 82 14 108 82 14 108 0 0 0 0 0 0 90 17 109 90 17 109 90 17 109 90 17 109 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 91 17 110 91 17 110 91 17 110 91 17 110 91 17 110 91 17 110 91 17 110 0 0 0 0 0 0 104 22 110 104 22 110 104 22 110 104 22 110 104 22 110 104 22 110 104 22 110 104 22 110 104 22 110 104 22 110 0 0 0 0 0 0 107 23 110 0 0 0 0 0 0 107 23 110 0 0 0 0 0 0 107 23 110 107 23 110 107 23 110 107 23 110 0 0 0 0 0 0 109 24 110 109 24 110 109 24 110 109 24 110 109 24 110 109 24 110 109 24 110 0 0 0 0 0 0 120 28 109 120 28 109 120 28 109 120 28 109 0 0 0 0 0 0 144 36 104 0 0 0 0 0 0 144 36 104 0 0 0 0 0 0 144 36 104 144 36 104 144 36 104 144 36 104 0 0 0 0 0 0 145 37 103 145 37 103 145 37 103 145 37 103 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 158 41 99 158 41 99 158 41 99 158 41 99 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 161 43 97 161 43 97 161 43 97 161 43 97 161 43 97 161 43 97 161 43 97 0 0 0 0 0 0 161 43 97 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 178 50 89 178 50 89 178 50 89 178 50 89 178 50 89 178 50 89 178 50 89 178 50 89 178 50 89 178 50 89 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 183 52 86 183 52 86 183 52 86 183 52 86 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 190 56 82 190 56 82 190 56 82 190 56 82 0 0 0 0 0 0 191 57 81 0 0 0 0 0 0 193 58 80 193 58 80 193 58 80 193 58 80 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 196 60 78 196 60 78 196 60 78 196 60 78 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 205 66 71 205 66 71 205 66 71 205 66 71 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 208 69 68 208 69 68 208 69 68 208 69 68 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 208 69 68 208 69 68 208 69 68 208 69 68 0 0 0 0 0 0 209 70 67 209 70 67 209 70 67 209 70 67 0 0 0 0 0 0 210 71 66 210 71 66 210 71 66 210 71 66 0 0 0 0 0 0 227 88 50 227 88 50 227 88 50 227 88 50 227 88 50 227 88 50 227 88 50 227 88 50 227 88 50 227 88 50 227 88 50 227 88 50 227 88 50 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 234 100 40 234 100 40 234 100 40 234 100 40 234 100 40 234 100 40 234 100 40 234 100 40 234 100 40 234 100 40 234 100 40 234 100 40 234 100 40 0 0 0 0 0 0 234 100 40 234 100 40 234 100 40 234 100 40 0 0 0 0 0 0 239 109 33 239 109 33 239 109 33 239 109 33 0 0 0 0 0 0 238 108 34 238 108 34 238 108 34 238 108 34 238 108 34 238 108 34 238 108 34 238 108 34 239 109 33 239 109 33 239 109 33 239 109 33 239 109 33 239 109 33 239 109 33 239 109 33 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 238 108 34 238 108 34 238 108 34 238 108 34 238 108 34 238 108 34 238 108 34 238 108 34 238 108 34 238 108 34 238 108 34 238 108 34 238 108 34 238 108 34 238 108 34 238 108 34 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 72 11 106 0 0 0 0 0 0 72 11 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 74 11 106 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 80 13 108 0 0 0 0 0 0 80 13 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 80 13 108 0 0 0 0 0 0 80 13 108 0 0 0 0 0 0 82 14 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 91 17 110 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 107 23 110 0 0 0 0 0 0 107 23 110 0 0 0 0 0 0 107 23 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 109 24 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 120 28 109 0 0 0 0 0 0 144 36 104 0 0 0 0 0 0 144 36 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 144 36 104 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 158 41 99 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 161 43 97 0 0 0 0 0 0 161 43 97 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 191 57 81 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 234 100 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 234 100 40 0 0 0 0 0 0 239 109 33 0 0 0 0 0 0 239 109 33 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 239 109 33 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 72 11 106 0 0 0 0 0 0 72 11 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 74 11 106 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 80 13 108 0 0 0 0 0 0 80 13 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 80 13 108 0 0 0 0 0 0 80 13 108 0 0 0 0 0 0 82 14 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 91 17 110 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 107 23 110 0 0 0 0 0 0 107 23 110 0 0 0 0 0 0 107 23 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 109 24 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 120 28 109 0 0 0 0 0 0 144 36 104 0 0 0 0 0 0 144 36 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 144 36 104 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 158 41 99 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 161 43 97 0 0 0 0 0 0 161 43 97 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 191 57 81 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 234 100 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 234 100 40 0 0 0 0 0 0 239 109 33 0 0 0 0 0 0 239 109 33 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 239 109 33 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 72 11 106 0 0 0 0 0 0 72 11 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 74 11 106 74 11 106 74 11 106 74 11 106 74 11 106 74 11 106 74 11 106 74 11 106 74 11 106 74 11 106 0 0 0 0 0 0 77 12 107 77 12 107 77 12 107 77 12 107 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 79 13 108 79 13 108 79 13 108 79 13 108 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 80 13 108 0 0 0 0 0 0 80 13 108 80 13 108 80 13 108 80 13 108 80 13 108 80 13 108 80 13 108 0 0 0 0 0 0 80 13 108 0 0 0 0 0 0 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 0 0 0 0 0 0 90 17 109 90 17 109 90 17 109 90 17 109 0 0 0 0 0 0 91 17 110 91 17 110 91 17 110 91 17 110 0 0 0 0 0 0 104 22 110 104 22 110 104 22 110 104 22 110 104 22 110 104 22 110 104 22 110 0 0 0 0 0 0 107 23 110 107 23 110 107 23 110 107 23 110 0 0 0 0 0 0 107 23 110 0 0 0 0 0 0 107 23 110 107 23 110 107 23 110 107 23 110 0 0 0 0 0 0 109 24 110 0 0 0 0 0 0 109 24 110 109 24 110 109 24 110 109 24 110 0 0 0 0 0 0 120 28 109 120 28 109 120 28 109 120 28 109 0 0 0 0 0 0 144 36 104 0 0 0 0 0 0 144 36 104 0 0 0 0 0 0 144 36 104 144 36 104 144 36 104 144 36 104 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 145 37 103 145 37 103 145 37 103 145 37 103 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 158 41 99 158 41 99 158 41 99 158 41 99 158 41 99 158 41 99 158 41 99 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 161 43 97 161 43 97 161 43 97 161 43 97 0 0 0 0 0 0 161 43 97 161 43 97 161 43 97 161 43 97 0 0 0 0 0 0 178 50 89 178 50 89 178 50 89 178 50 89 178 50 89 178 50 89 178 50 89 178 50 89 178 50 89 178 50 89 0 0 0 0 0 0 183 52 86 183 52 86 183 52 86 183 52 86 0 0 0 0 0 0 183 52 86 183 52 86 183 52 86 183 52 86 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 191 57 81 191 57 81 191 57 81 191 57 81 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 196 60 78 196 60 78 196 60 78 196 60 78 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 205 66 71 205 66 71 205 66 71 205 66 71 0 0 0 0 0 0 207 68 70 207 68 70 207 68 70 207 68 70 207 68 70 207 68 70 207 68 70 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 208 69 68 208 69 68 208 69 68 208 69 68 0 0 0 0 0 0 209 70 67 209 70 67 209 70 67 209 70 67 0 0 0 0 0 0 210 71 66 210 71 66 210 71 66 210 71 66 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 228 90 49 228 90 49 228 90 49 228 90 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 234 100 40 0 0 0 0 0 0 234 100 40 234 100 40 234 100 40 234 100 40 0 0 0 0 0 0 234 100 40 234 100 40 234 100 40 234 100 40 0 0 0 0 0 0 234 100 40 234 100 40 234 100 40 234 100 40 0 0 0 0 0 0 239 109 33 0 0 0 0 0 0 239 109 33 0 0 0 0 0 0 239 109 33 239 109 33 239 109 33 239 109 33 0 0 0 0 0 0 239 109 33 239 109 33 239 109 33 239 109 33 0 0 0 0 0 0 239 109 33 239 109 33 239 109 33 239 109 33 0 0 0 0 0 0 242 117 26 242 117 26 242 117 26 242 117 26 0 0 0 0 0 0 242 117 26 242 117 26 242 117 26 242 117 26 0 0 0 0 0 0 242 117 26 242 117 26 242 117 26 242 117 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 117 26 242 117 26 243 119 25 243 119 25 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 72 11 106 0 0 0 0 0 0 72 11 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 74 11 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 80 13 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 80 13 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 82 14 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 91 17 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 107 23 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 107 23 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 107 23 110 0 0 0 0 0 0 109 24 110 0 0 0 0 0 0 109 24 110 0 0 0 0 0 0 109 24 110 0 0 0 0 0 0 120 28 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 144 36 104 0 0 0 0 0 0 144 36 104 0 0 0 0 0 0 144 36 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 158 41 99 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 161 43 97 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 161 43 97 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 191 57 81 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 234 100 40 0 0 0 0 0 0 234 100 40 0 0 0 0 0 0 234 100 40 0 0 0 0 0 0 234 100 40 0 0 0 0 0 0 234 100 40 0 0 0 0 0 0 234 100 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 239 109 33 0 0 0 0 0 0 239 109 33 0 0 0 0 0 0 239 109 33 0 0 0 0 0 0 239 109 33 0 0 0 0 0 0 239 109 33 0 0 0 0 0 0 239 109 33 0 0 0 0 0 0 239 109 33 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 243 119 25 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 72 11 106 0 0 0 0 0 0 72 11 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 74 11 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 80 13 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 80 13 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 82 14 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 91 17 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 107 23 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 107 23 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 107 23 110 0 0 0 0 0 0 109 24 110 0 0 0 0 0 0 109 24 110 0 0 0 0 0 0 109 24 110 0 0 0 0 0 0 120 28 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 144 36 104 0 0 0 0 0 0 144 36 104 0 0 0 0 0 0 144 36 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 158 41 99 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 161 43 97 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 161 43 97 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 191 57 81 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 234 100 40 0 0 0 0 0 0 234 100 40 0 0 0 0 0 0 234 100 40 0 0 0 0 0 0 234 100 40 0 0 0 0 0 0 234 100 40 0 0 0 0 0 0 234 100 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 239 109 33 0 0 0 0 0 0 239 109 33 0 0 0 0 0 0 239 109 33 0 0 0 0 0 0 239 109 33 0 0 0 0 0 0 239 109 33 0 0 0 0 0 0 239 109 33 0 0 0 0 0 0 239 109 33 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 243 119 25 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 72 11 106 72 11 106 72 11 106 72 11 106 0 0 0 0 0 0 72 11 106 72 11 106 72 11 106 72 11 106 0 0 0 0 0 0 74 11 106 74 11 106 74 11 106 74 11 106 74 11 106 74 11 106 74 11 106 74 11 106 74 11 106 74 11 106 74 11 106 74 11 106 74 11 106 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 77 12 107 77 12 107 77 12 107 77 12 107 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 80 13 108 80 13 108 80 13 108 80 13 108 80 13 108 80 13 108 80 13 108 80 13 108 80 13 108 80 13 108 0 0 0 0 0 0 80 13 108 0 0 0 0 0 0 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 0 0 0 0 0 0 90 17 109 90 17 109 90 17 109 90 17 109 0 0 0 0 0 0 91 17 110 91 17 110 91 17 110 91 17 110 91 17 110 91 17 110 91 17 110 0 0 0 0 0 0 104 22 110 104 22 110 104 22 110 104 22 110 0 0 0 0 0 0 107 23 110 107 23 110 107 23 110 107 23 110 0 0 0 0 0 0 107 23 110 107 23 110 107 23 110 107 23 110 107 23 110 107 23 110 107 23 110 0 0 0 0 0 0 109 24 110 0 0 0 0 0 0 109 24 110 0 0 0 0 0 0 109 24 110 0 0 0 0 0 0 120 28 109 120 28 109 120 28 109 120 28 109 0 0 0 0 0 0 144 36 104 144 36 104 144 36 104 144 36 104 0 0 0 0 0 0 144 36 104 144 36 104 144 36 104 144 36 104 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 147 37 103 147 37 103 147 37 103 147 37 103 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 158 41 99 158 41 99 158 41 99 158 41 99 158 41 99 158 41 99 158 41 99 0 0 0 0 0 0 160 42 98 160 42 98 161 43 97 161 43 97 0 0 0 0 0 0 161 43 97 161 43 97 161 43 97 161 43 97 161 43 97 161 43 97 161 43 97 0 0 0 0 0 0 164 44 96 164 44 96 164 44 96 164 44 96 164 44 96 164 44 96 164 44 96 0 0 0 0 0 0 178 50 89 178 50 89 178 50 89 178 50 89 178 50 89 178 50 89 178 50 89 178 50 89 178 50 89 178 50 89 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 190 56 82 190 56 82 190 56 82 190 56 82 0 0 0 0 0 0 191 57 81 191 57 81 191 57 81 191 57 81 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 196 60 78 196 60 78 196 60 78 196 60 78 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 205 66 71 205 66 71 205 66 71 205 66 71 0 0 0 0 0 0 207 68 70 207 68 70 207 68 70 207 68 70 207 68 70 207 68 70 207 68 70 0 0 0 0 0 0 208 69 68 208 69 68 208 69 68 208 69 68 0 0 0 0 0 0 209 70 67 209 70 67 209 70 67 209 70 67 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 210 71 66 210 71 66 210 71 66 210 71 66 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 227 88 50 227 88 50 228 90 49 228 90 49 0 0 0 0 0 0 228 90 49 228 90 49 228 90 49 228 90 49 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 234 100 40 0 0 0 0 0 0 234 100 40 0 0 0 0 0 0 234 100 40 0 0 0 0 0 0 234 100 40 0 0 0 0 0 0 234 100 40 234 100 40 234 100 40 234 100 40 0 0 0 0 0 0 239 109 33 239 109 33 239 109 33 239 109 33 0 0 0 0 0 0 239 109 33 239 109 33 239 109 33 239 109 33 0 0 0 0 0 0 239 109 33 239 109 33 239 109 33 239 109 33 0 0 0 0 0 0 239 109 33 239 109 33 239 109 33 239 109 33 0 0 0 0 0 0 242 117 26 242 117 26 242 117 26 242 117 26 0 0 0 0 0 0 242 117 26 242 117 26 242 117 26 242 117 26 0 0 0 0 0 0 242 117 26 242 117 26 242 117 26 242 117 26 0 0 0 0 0 0 242 117 26 242 117 26 242 117 26 242 117 26 242 117 26 242 117 26 242 117 26 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 243 119 25 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 72 11 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 72 11 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 74 11 106 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 80 13 108 0 0 0 0 0 0 80 13 108 0 0 0 0 0 0 82 14 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 91 17 110 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 107 23 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 109 24 110 0 0 0 0 0 0 109 24 110 0 0 0 0 0 0 109 24 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 120 28 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 144 36 104 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 158 41 99 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 160 42 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 161 43 97 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 164 44 96 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 164 44 96 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 191 57 81 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 234 100 40 0 0 0 0 0 0 234 100 40 0 0 0 0 0 0 234 100 40 0 0 0 0 0 0 234 100 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 239 109 33 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 243 119 25 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 72 11 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 72 11 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 74 11 106 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 80 13 108 0 0 0 0 0 0 80 13 108 0 0 0 0 0 0 82 14 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 109 24 110 0 0 0 0 0 0 109 24 110 0 0 0 0 0 0 109 24 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 120 28 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 144 36 104 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 158 41 99 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 160 42 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 161 43 97 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 164 44 96 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 164 44 96 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 191 57 81 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 234 100 40 0 0 0 0 0 0 234 100 40 0 0 0 0 0 0 234 100 40 0 0 0 0 0 0 234 100 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 239 109 33 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 243 119 25 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 72 11 106 72 11 106 72 11 106 72 11 106 72 11 106 72 11 106 72 11 106 0 0 0 0 0 0 72 11 106 0 0 0 0 0 0 74 11 106 74 11 106 74 11 106 74 11 106 74 11 106 74 11 106 74 11 106 74 11 106 74 11 106 74 11 106 74 11 106 74 11 106 74 11 106 0 0 0 0 0 0 77 12 107 77 12 107 77 12 107 77 12 107 77 12 107 77 12 107 77 12 107 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 79 13 108 79 13 108 79 13 108 79 13 108 0 0 0 0 0 0 80 13 108 80 13 108 80 13 108 80 13 108 0 0 0 0 0 0 80 13 108 0 0 0 0 0 0 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 90 17 109 90 17 109 90 17 109 90 17 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 106 23 110 106 23 110 106 23 110 106 23 110 0 0 0 0 0 0 106 23 110 106 23 110 106 23 110 106 23 110 106 23 110 106 23 110 106 23 110 0 0 0 0 0 0 109 24 110 109 24 110 109 24 110 109 24 110 0 0 0 0 0 0 109 24 110 0 0 0 0 0 0 109 24 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 120 28 109 120 28 109 120 28 109 120 28 109 120 28 109 120 28 109 120 28 109 0 0 0 0 0 0 144 36 104 144 36 104 144 36 104 144 36 104 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 147 37 103 147 37 103 145 37 103 145 37 103 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 158 41 99 0 0 0 0 0 0 158 41 99 158 41 99 158 41 99 158 41 99 0 0 0 0 0 0 160 42 98 0 0 0 0 0 0 161 43 97 161 43 97 161 43 97 161 43 97 0 0 0 0 0 0 161 43 97 161 43 97 161 43 97 161 43 97 0 0 0 0 0 0 164 44 96 164 44 96 164 44 96 164 44 96 0 0 0 0 0 0 164 44 96 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 164 44 96 164 44 96 164 44 96 164 44 96 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 190 56 82 190 56 82 190 56 82 190 56 82 0 0 0 0 0 0 191 57 81 191 57 81 191 57 81 191 57 81 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 196 60 78 196 60 78 196 60 78 196 60 78 0 0 0 0 0 0 204 65 72 204 65 72 204 65 72 204 65 72 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 207 68 70 207 68 70 207 68 70 207 68 70 0 0 0 0 0 0 209 70 67 209 70 67 209 70 67 209 70 67 209 70 67 209 70 67 209 70 67 209 70 67 209 70 67 209 70 67 0 0 0 0 0 0 210 71 66 210 71 66 210 71 66 210 71 66 0 0 0 0 0 0 210 71 66 210 71 66 210 71 66 210 71 66 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 227 88 50 227 88 50 227 88 50 227 88 50 0 0 0 0 0 0 228 90 49 228 90 49 228 90 49 228 90 49 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 234 100 40 234 100 40 234 100 40 234 100 40 0 0 0 0 0 0 234 100 40 0 0 0 0 0 0 234 100 40 0 0 0 0 0 0 239 109 33 239 109 33 239 109 33 239 109 33 239 109 33 239 109 33 239 109 33 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 239 109 33 239 109 33 240 111 31 240 111 31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 240 111 31 240 111 31 240 111 31 240 111 31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 117 26 242 117 26 242 117 26 242 117 26 0 0 0 0 0 0 243 119 25 243 119 25 243 119 25 243 119 25 243 119 25 243 119 25 243 119 25 243 119 25 243 119 25 243 119 25 243 119 25 243 119 25 243 119 25 243 119 25 243 119 25 243 119 25 0 0 0 0 0 0 242 117 26 242 117 26 242 117 26 242 117 26 0 0 0 0 0 0 243 119 25 243 119 25 243 119 25 243 119 25 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 72 11 106 0 0 0 0 0 0 72 11 106 0 0 0 0 0 0 74 11 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 80 13 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 80 13 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 82 14 108 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 109 24 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 109 24 110 0 0 0 0 0 0 109 24 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 120 28 109 0 0 0 0 0 0 144 36 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 158 41 99 0 0 0 0 0 0 158 41 99 0 0 0 0 0 0 158 41 99 0 0 0 0 0 0 160 42 98 0 0 0 0 0 0 161 43 97 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 161 43 97 0 0 0 0 0 0 161 43 97 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 164 44 96 0 0 0 0 0 0 164 44 96 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 164 44 96 0 0 0 0 0 0 164 44 96 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 191 57 81 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 234 100 40 0 0 0 0 0 0 234 100 40 0 0 0 0 0 0 239 109 33 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 239 109 33 0 0 0 0 0 0 240 111 31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 240 111 31 0 0 0 0 0 0 240 111 31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 243 119 25 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 119 25 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 119 25 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 72 11 106 0 0 0 0 0 0 72 11 106 0 0 0 0 0 0 74 11 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 80 13 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 80 13 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 82 14 108 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 109 24 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 109 24 110 0 0 0 0 0 0 109 24 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 120 28 109 0 0 0 0 0 0 144 36 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 158 41 99 0 0 0 0 0 0 158 41 99 0 0 0 0 0 0 158 41 99 0 0 0 0 0 0 160 42 98 0 0 0 0 0 0 161 43 97 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 161 43 97 0 0 0 0 0 0 163 43 97 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 164 44 96 0 0 0 0 0 0 164 44 96 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 164 44 96 0 0 0 0 0 0 164 44 96 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 191 57 81 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 234 100 40 0 0 0 0 0 0 234 100 40 0 0 0 0 0 0 239 109 33 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 239 109 33 0 0 0 0 0 0 240 111 31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 240 111 31 0 0 0 0 0 0 240 111 31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 243 119 25 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 119 25 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 119 25 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 72 11 106 72 11 106 72 11 106 72 11 106 72 11 106 72 11 106 72 11 106 0 0 0 0 0 0 72 11 106 0 0 0 0 0 0 74 11 106 74 11 106 72 11 106 72 11 106 72 11 106 72 11 106 72 11 106 72 11 106 72 11 106 72 11 106 72 11 106 72 11 106 72 11 106 72 11 106 72 11 106 72 11 106 72 11 106 72 11 106 72 11 106 72 11 106 72 11 106 72 11 106 0 0 0 0 0 0 79 13 108 79 13 108 79 13 108 79 13 108 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 80 13 108 80 13 108 80 13 108 80 13 108 0 0 0 0 0 0 80 13 108 80 13 108 80 13 108 80 13 108 80 13 108 80 13 108 80 13 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 82 14 108 0 0 0 0 0 0 90 17 109 90 17 109 90 17 109 90 17 109 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 90 17 109 90 17 109 90 17 109 90 17 109 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 106 23 110 106 23 110 106 23 110 106 23 110 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 109 24 110 0 0 0 0 0 0 109 24 110 109 24 110 109 24 110 109 24 110 0 0 0 0 0 0 109 24 110 0 0 0 0 0 0 112 25 110 112 25 110 112 25 110 112 25 110 0 0 0 0 0 0 120 28 109 120 28 109 120 28 109 120 28 109 0 0 0 0 0 0 144 36 104 144 36 104 144 36 104 144 36 104 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 145 37 103 145 37 103 145 37 103 145 37 103 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 158 41 99 158 41 99 158 41 99 158 41 99 0 0 0 0 0 0 158 41 99 0 0 0 0 0 0 160 42 98 0 0 0 0 0 0 161 43 97 161 43 97 161 43 97 161 43 97 0 0 0 0 0 0 161 43 97 0 0 0 0 0 0 163 43 97 0 0 0 0 0 0 163 43 97 163 43 97 164 44 96 164 44 96 0 0 0 0 0 0 164 44 96 164 44 96 164 44 96 164 44 96 0 0 0 0 0 0 164 44 96 0 0 0 0 0 0 164 44 96 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 191 57 81 191 57 81 191 57 81 191 57 81 0 0 0 0 0 0 191 57 81 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 196 60 78 196 60 78 196 60 78 196 60 78 0 0 0 0 0 0 204 65 72 204 65 72 204 65 72 204 65 72 0 0 0 0 0 0 205 66 71 205 66 71 205 66 71 205 66 71 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 209 70 67 209 70 67 209 70 67 209 70 67 0 0 0 0 0 0 210 71 66 210 71 66 210 71 66 210 71 66 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 210 71 66 210 71 66 210 71 66 210 71 66 0 0 0 0 0 0 227 88 50 227 88 50 227 88 50 227 88 50 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 228 90 49 228 90 49 228 90 49 228 90 49 0 0 0 0 0 0 234 100 40 234 100 40 234 100 40 234 100 40 234 100 40 234 100 40 234 100 40 0 0 0 0 0 0 234 100 40 0 0 0 0 0 0 239 109 33 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 239 109 33 239 109 33 239 109 33 239 109 33 239 109 33 239 109 33 239 109 33 0 0 0 0 0 0 240 111 31 240 111 31 240 111 31 240 111 31 240 111 31 240 111 31 240 111 31 0 0 0 0 0 0 240 111 31 240 111 31 240 111 31 240 111 31 0 0 0 0 0 0 242 117 26 242 117 26 242 117 26 242 117 26 0 0 0 0 0 0 243 119 25 243 119 25 243 119 25 243 119 25 243 119 25 243 119 25 243 119 25 243 119 25 243 119 25 243 119 25 243 119 25 243 119 25 243 119 25 0 0 0 0 0 0 243 119 25 243 119 25 243 119 25 243 119 25 243 119 25 243 119 25 243 119 25 243 119 25 243 119 25 243 119 25 243 119 25 243 119 25 243 119 25 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 72 11 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 72 11 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 72 11 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 80 13 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 80 13 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 82 14 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 109 24 110 0 0 0 0 0 0 109 24 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 109 24 110 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 120 28 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 144 36 104 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 158 41 99 0 0 0 0 0 0 160 42 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 161 43 97 0 0 0 0 0 0 161 43 97 0 0 0 0 0 0 163 43 97 0 0 0 0 0 0 163 43 97 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 164 44 96 0 0 0 0 0 0 164 44 96 0 0 0 0 0 0 164 44 96 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 191 57 81 0 0 0 0 0 0 191 57 81 0 0 0 0 0 0 191 57 81 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 234 100 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 234 100 40 0 0 0 0 0 0 239 109 33 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 239 109 33 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 240 111 31 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 119 25 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 72 11 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 72 11 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 72 11 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 80 13 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 80 13 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 82 14 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 109 24 110 0 0 0 0 0 0 109 24 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 109 24 110 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 120 28 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 144 36 104 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 158 41 99 0 0 0 0 0 0 160 42 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 161 43 97 0 0 0 0 0 0 161 43 97 0 0 0 0 0 0 163 43 97 0 0 0 0 0 0 163 43 97 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 164 44 96 0 0 0 0 0 0 164 44 96 0 0 0 0 0 0 164 44 96 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 191 57 81 0 0 0 0 0 0 191 57 81 0 0 0 0 0 0 191 57 81 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 234 100 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 234 100 40 0 0 0 0 0 0 239 109 33 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 239 109 33 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 240 111 31 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 119 25 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 72 11 106 72 11 106 70 10 105 70 10 105 70 10 105 70 10 105 70 10 105 0 0 0 0 0 0 72 11 106 72 11 106 72 11 106 72 11 106 72 11 106 72 11 106 72 11 106 72 11 106 72 11 106 72 11 106 72 11 106 72 11 106 72 11 106 72 11 106 72 11 106 72 11 106 72 11 106 72 11 106 72 11 106 72 11 106 72 11 106 72 11 106 72 11 106 72 11 106 72 11 106 0 0 0 0 0 0 70 10 105 70 10 105 70 10 105 70 10 105 0 0 0 0 0 0 79 13 108 79 13 108 79 13 108 79 13 108 0 0 0 0 0 0 79 13 108 79 13 108 80 13 108 80 13 108 80 13 108 80 13 108 80 13 108 0 0 0 0 0 0 69 10 105 69 10 105 69 10 105 69 10 105 0 0 0 0 0 0 80 13 108 0 0 0 0 0 0 82 14 108 82 14 108 82 14 108 82 14 108 0 0 0 0 0 0 82 14 108 82 14 108 82 14 108 82 14 108 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 104 22 110 104 22 110 104 22 110 104 22 110 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 109 24 110 109 24 110 109 24 110 109 24 110 0 0 0 0 0 0 109 24 110 109 24 110 109 24 110 109 24 110 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 120 28 109 0 0 0 0 0 0 120 28 109 120 28 109 120 28 109 120 28 109 0 0 0 0 0 0 144 36 104 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 145 37 103 145 37 103 145 37 103 145 37 103 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 155 40 100 155 40 100 155 40 100 155 40 100 0 0 0 0 0 0 158 41 99 0 0 0 0 0 0 160 42 98 160 42 98 160 42 98 160 42 98 0 0 0 0 0 0 161 43 97 161 43 97 161 43 97 161 43 97 0 0 0 0 0 0 163 43 97 0 0 0 0 0 0 163 43 97 163 43 97 163 43 97 163 43 97 0 0 0 0 0 0 164 44 96 164 44 96 164 44 96 164 44 96 0 0 0 0 0 0 164 44 96 0 0 0 0 0 0 164 44 96 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 191 57 81 0 0 0 0 0 0 191 57 81 0 0 0 0 0 0 191 57 81 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 196 60 78 196 60 78 196 60 78 196 60 78 0 0 0 0 0 0 204 65 72 204 65 72 204 65 72 204 65 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 209 70 67 209 70 67 209 70 67 209 70 67 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 210 71 66 210 71 66 210 71 66 210 71 66 0 0 0 0 0 0 240 112 30 240 112 30 240 112 30 240 112 30 0 0 0 0 0 0 227 88 50 227 88 50 227 88 50 227 88 50 0 0 0 0 0 0 228 90 49 228 90 49 228 90 49 228 90 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 234 100 40 234 100 40 234 100 40 234 100 40 234 100 40 234 100 40 234 100 40 234 100 40 234 100 40 234 100 40 0 0 0 0 0 0 239 109 33 239 109 33 239 109 33 239 109 33 239 109 33 239 109 33 239 109 33 0 0 0 0 0 0 240 111 31 240 111 31 240 111 31 240 111 31 240 111 31 240 111 31 240 111 31 240 111 31 240 111 31 240 111 31 0 0 0 0 0 0 240 111 31 240 111 31 240 111 31 240 111 31 240 111 31 240 111 31 240 111 31 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 243 119 25 243 119 25 243 119 25 243 119 25 243 119 25 243 119 25 243 119 25 243 119 25 243 119 25 243 119 25 243 119 25 243 119 25 243 119 25 243 119 25 243 119 25 243 119 25 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 121 24 243 121 24 243 121 24 243 121 24 243 121 24 243 121 24 243 121 24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 70 10 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 70 10 105 0 0 0 0 0 0 70 10 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 69 10 105 0 0 0 0 0 0 69 10 105 0 0 0 0 0 0 80 13 108 0 0 0 0 0 0 82 14 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 82 14 108 0 0 0 0 0 0 82 14 108 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 109 24 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 120 28 109 0 0 0 0 0 0 120 28 109 0 0 0 0 0 0 120 28 109 0 0 0 0 0 0 144 36 104 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 158 41 99 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 160 42 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 163 43 97 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 163 43 97 0 0 0 0 0 0 164 44 96 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 164 44 96 0 0 0 0 0 0 164 44 96 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 191 57 81 0 0 0 0 0 0 191 57 81 0 0 0 0 0 0 191 57 81 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 240 112 30 0 0 0 0 0 0 240 112 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 240 111 31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 240 111 31 0 0 0 0 0 0 240 111 31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 243 119 25 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 70 10 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 70 10 105 0 0 0 0 0 0 70 10 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 69 10 105 0 0 0 0 0 0 69 10 105 0 0 0 0 0 0 80 13 108 0 0 0 0 0 0 82 14 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 82 14 108 0 0 0 0 0 0 80 13 108 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 109 24 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 120 28 109 0 0 0 0 0 0 120 28 109 0 0 0 0 0 0 120 28 109 0 0 0 0 0 0 144 36 104 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 158 41 99 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 160 42 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 163 43 97 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 163 43 97 0 0 0 0 0 0 164 44 96 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 164 44 96 0 0 0 0 0 0 164 44 96 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 191 57 81 0 0 0 0 0 0 191 57 81 0 0 0 0 0 0 191 57 81 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 240 112 30 0 0 0 0 0 0 240 112 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 240 111 31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 240 111 31 0 0 0 0 0 0 240 111 31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 243 119 25 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 122 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 57 9 98 57 9 98 57 9 98 57 9 98 57 9 98 57 9 98 57 9 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 70 10 105 70 10 105 70 10 105 70 10 105 0 0 0 0 0 0 70 10 105 70 10 105 70 10 105 70 10 105 70 10 105 70 10 105 70 10 105 0 0 0 0 0 0 70 10 105 70 10 105 70 10 105 70 10 105 0 0 0 0 0 0 70 10 105 70 10 105 70 10 105 70 10 105 70 10 105 70 10 105 70 10 105 70 10 105 70 10 105 70 10 105 0 0 0 0 0 0 70 10 105 70 10 105 70 10 105 70 10 105 70 10 105 70 10 105 70 10 105 70 10 105 70 10 105 70 10 105 0 0 0 0 0 0 69 10 105 69 10 105 69 10 105 69 10 105 0 0 0 0 0 0 69 10 105 0 0 0 0 0 0 69 10 105 0 0 0 0 0 0 80 13 108 0 0 0 0 0 0 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 0 0 0 0 0 0 80 13 108 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 106 23 110 106 23 110 106 23 110 106 23 110 0 0 0 0 0 0 106 23 110 106 23 110 106 23 110 106 23 110 0 0 0 0 0 0 106 23 110 106 23 110 106 23 110 106 23 110 0 0 0 0 0 0 109 24 110 109 24 110 109 24 110 109 24 110 109 24 110 109 24 110 109 24 110 0 0 0 0 0 0 112 25 110 112 25 110 112 25 110 112 25 110 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 120 28 109 120 28 109 120 28 109 120 28 109 0 0 0 0 0 0 120 28 109 0 0 0 0 0 0 144 36 104 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 145 37 103 145 37 103 145 37 103 145 37 103 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 155 40 100 155 40 100 155 40 100 155 40 100 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 158 41 99 0 0 0 0 0 0 160 42 98 160 42 98 160 42 98 160 42 98 0 0 0 0 0 0 163 43 97 163 43 97 163 43 97 163 43 97 163 43 97 163 43 97 163 43 97 0 0 0 0 0 0 163 43 97 163 43 97 163 43 97 163 43 97 0 0 0 0 0 0 164 44 96 164 44 96 164 44 96 164 44 96 164 44 96 164 44 96 164 44 96 0 0 0 0 0 0 164 44 96 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 184 53 86 184 53 86 184 53 86 184 53 86 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 191 57 81 0 0 0 0 0 0 191 57 81 191 57 81 191 57 81 191 57 81 0 0 0 0 0 0 193 58 80 193 58 80 193 58 80 193 58 80 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 204 65 72 204 65 72 204 65 72 204 65 72 204 65 72 204 65 72 204 65 72 0 0 0 0 0 0 205 66 71 205 66 71 205 66 71 205 66 71 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 209 70 67 209 70 67 209 70 67 209 70 67 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 210 71 66 210 71 66 210 71 66 210 71 66 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 240 112 30 240 112 30 240 112 30 240 112 30 0 0 0 0 0 0 240 112 30 240 112 30 240 112 30 240 112 30 240 112 30 240 112 30 240 112 30 240 112 30 240 112 30 240 112 30 240 112 30 240 112 30 240 112 30 240 112 30 240 112 30 240 112 30 240 112 30 240 111 31 240 111 31 240 111 31 240 111 31 240 111 31 240 111 31 240 111 31 240 111 31 0 0 0 0 0 0 240 111 31 240 111 31 240 111 31 240 111 31 0 0 0 0 0 0 240 111 31 240 111 31 240 111 31 240 111 31 240 111 31 240 111 31 240 111 31 0 0 0 0 0 0 242 116 28 242 116 28 242 116 28 242 116 28 0 0 0 0 0 0 240 111 31 240 111 31 240 111 31 240 111 31 0 0 0 0 0 0 242 117 26 242 117 26 242 117 26 242 117 26 242 117 26 242 117 26 242 117 26 0 0 0 0 0 0 243 119 25 0 0 0 0 0 0 243 121 24 243 121 24 243 121 24 243 121 24 0 0 0 0 0 0 243 121 24 243 121 24 243 121 24 243 121 24 0 0 0 0 0 0 243 121 24 243 121 24 243 121 24 243 121 24 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 244 122 22 244 122 22 244 122 22 244 122 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 57 9 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 57 9 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 70 10 105 0 0 0 0 0 0 70 10 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 70 10 105 0 0 0 0 0 0 70 10 105 0 0 0 0 0 0 70 10 105 0 0 0 0 0 0 70 10 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 70 10 105 0 0 0 0 0 0 69 10 105 0 0 0 0 0 0 69 10 105 0 0 0 0 0 0 69 10 105 0 0 0 0 0 0 69 10 105 0 0 0 0 0 0 80 13 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 80 13 108 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 109 24 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 120 28 109 0 0 0 0 0 0 144 36 104 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 158 41 99 0 0 0 0 0 0 160 42 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 163 43 97 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 163 43 97 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 164 44 96 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 191 57 81 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 240 112 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 240 111 31 0 0 0 0 0 0 240 111 31 0 0 0 0 0 0 240 111 31 0 0 0 0 0 0 240 111 31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 116 28 0 0 0 0 0 0 242 116 28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 119 25 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 244 122 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 57 9 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 57 9 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 70 10 105 0 0 0 0 0 0 70 10 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 70 10 105 0 0 0 0 0 0 70 10 105 0 0 0 0 0 0 70 10 105 0 0 0 0 0 0 70 10 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 70 10 105 0 0 0 0 0 0 70 10 105 0 0 0 0 0 0 69 10 105 0 0 0 0 0 0 69 10 105 0 0 0 0 0 0 69 10 105 0 0 0 0 0 0 80 13 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 80 13 108 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 109 24 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 120 28 109 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 160 42 98 0 0 0 0 0 0 160 42 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 163 43 97 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 163 43 97 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 164 44 96 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 191 57 81 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 240 112 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 240 111 31 0 0 0 0 0 0 240 111 31 0 0 0 0 0 0 240 111 31 0 0 0 0 0 0 240 111 31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 116 28 0 0 0 0 0 0 242 116 28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 119 25 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 244 122 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 57 9 98 57 9 98 57 9 98 57 9 98 0 0 0 0 0 0 57 9 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 70 10 105 70 10 105 70 10 105 70 10 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 70 10 105 70 10 105 70 10 105 70 10 105 0 0 0 0 0 0 70 10 105 70 10 105 70 10 105 70 10 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65 9 103 65 9 103 65 9 103 65 9 103 65 9 103 65 9 103 65 9 103 0 0 0 0 0 0 70 10 105 70 10 105 70 10 105 70 10 105 70 10 105 70 10 105 70 10 105 0 0 0 0 0 0 70 10 105 0 0 0 0 0 0 69 10 105 69 10 105 69 10 105 69 10 105 0 0 0 0 0 0 69 10 105 0 0 0 0 0 0 80 13 108 80 13 108 80 13 108 80 13 108 80 13 108 80 13 108 80 13 108 80 13 108 80 13 108 80 13 108 80 13 108 80 13 108 80 13 108 0 0 0 0 0 0 90 17 109 90 17 109 90 17 109 90 17 109 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 106 23 110 106 23 110 106 23 110 106 23 110 106 23 110 106 23 110 106 23 110 0 0 0 0 0 0 109 24 110 109 24 110 109 24 110 109 24 110 109 24 110 109 24 110 109 24 110 109 24 110 109 24 110 109 24 110 0 0 0 0 0 0 110 24 110 110 24 110 110 24 110 110 24 110 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 112 25 110 112 25 110 112 25 110 112 25 110 0 0 0 0 0 0 120 28 109 120 28 109 120 28 109 120 28 109 120 28 109 120 28 109 120 28 109 0 0 0 0 0 0 145 37 103 145 37 103 145 37 103 145 37 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 147 37 103 147 37 103 147 37 103 147 37 103 0 0 0 0 0 0 155 40 100 155 40 100 155 40 100 155 40 100 0 0 0 0 0 0 160 42 98 0 0 0 0 0 0 160 42 98 160 42 98 160 42 98 160 42 98 0 0 0 0 0 0 163 43 97 163 43 97 163 43 97 163 43 97 163 43 97 163 43 97 163 43 97 0 0 0 0 0 0 163 43 97 0 0 0 0 0 0 164 44 96 164 44 96 164 44 96 164 44 96 164 44 96 164 44 96 164 44 96 164 44 96 164 44 96 164 44 96 164 44 96 164 44 96 164 44 96 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 190 56 82 190 56 82 190 56 82 190 56 82 190 56 82 190 56 82 190 56 82 0 0 0 0 0 0 191 57 81 191 57 81 191 57 81 191 57 81 191 57 81 191 57 81 191 57 81 191 57 81 191 57 81 191 57 81 191 57 81 191 57 81 191 57 81 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 204 65 72 204 65 72 204 65 72 204 65 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 205 66 71 205 66 71 205 66 71 205 66 71 0 0 0 0 0 0 207 68 70 207 68 70 207 68 70 207 68 70 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 210 71 66 210 71 66 210 71 66 210 71 66 0 0 0 0 0 0 240 112 30 240 112 30 240 112 30 240 112 30 0 0 0 0 0 0 240 112 30 240 112 30 240 112 30 240 112 30 240 112 30 240 112 30 240 112 30 0 0 0 0 0 0 241 114 29 241 114 29 241 114 29 241 114 29 241 114 29 241 114 29 241 114 29 0 0 0 0 0 0 241 114 29 241 114 29 241 114 29 241 114 29 241 114 29 241 114 29 241 114 29 241 114 29 241 114 29 241 114 29 0 0 0 0 0 0 240 111 31 0 0 0 0 0 0 240 111 31 0 0 0 0 0 0 240 111 31 0 0 0 0 0 0 240 111 31 0 0 0 0 0 0 242 116 28 242 116 28 242 116 28 242 116 28 242 116 28 242 116 28 242 116 28 0 0 0 0 0 0 242 116 28 242 116 28 242 116 28 242 116 28 242 116 28 242 116 28 242 116 28 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 243 119 25 243 119 25 243 119 25 243 119 25 243 119 25 243 119 25 243 119 25 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 244 122 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 57 9 98 0 0 0 0 0 0 57 9 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65 9 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65 9 103 0 0 0 0 0 0 70 10 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 70 10 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 69 10 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 109 24 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 120 28 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 160 42 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 160 42 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 163 43 97 0 0 0 0 0 0 163 43 97 0 0 0 0 0 0 164 44 96 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 191 57 81 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 240 112 30 0 0 0 0 0 0 240 112 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 240 112 30 0 0 0 0 0 0 241 114 29 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 114 29 0 0 0 0 0 0 241 114 29 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 114 29 0 0 0 0 0 0 240 111 31 0 0 0 0 0 0 240 111 31 0 0 0 0 0 0 240 111 31 0 0 0 0 0 0 240 111 31 0 0 0 0 0 0 242 116 28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 116 28 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 243 119 25 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 244 122 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 57 9 98 0 0 0 0 0 0 57 9 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65 9 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65 9 103 0 0 0 0 0 0 70 10 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 70 10 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 69 10 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 109 24 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 160 42 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 160 42 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 163 43 97 0 0 0 0 0 0 163 43 97 0 0 0 0 0 0 164 44 96 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 191 57 81 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 240 112 30 0 0 0 0 0 0 240 112 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 240 112 30 0 0 0 0 0 0 241 114 29 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 114 29 0 0 0 0 0 0 241 114 29 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 114 29 0 0 0 0 0 0 240 111 31 0 0 0 0 0 0 240 111 31 0 0 0 0 0 0 240 111 31 0 0 0 0 0 0 240 111 31 0 0 0 0 0 0 242 116 28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 116 28 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 243 119 25 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 244 122 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 57 9 98 0 0 0 0 0 0 57 9 98 57 9 98 57 9 98 57 9 98 0 0 0 0 0 0 65 9 103 65 9 103 65 9 103 65 9 103 65 9 103 65 9 103 65 9 103 0 0 0 0 0 0 65 9 103 65 9 103 65 9 103 65 9 103 0 0 0 0 0 0 65 9 103 65 9 103 65 9 103 65 9 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65 9 103 65 9 103 65 9 103 65 9 103 0 0 0 0 0 0 65 9 103 65 9 103 65 9 103 65 9 103 0 0 0 0 0 0 70 10 105 70 10 105 70 10 105 70 10 105 70 10 105 70 10 105 70 10 105 70 10 105 70 10 105 70 10 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 69 10 105 69 10 105 69 10 105 69 10 105 0 0 0 0 0 0 69 10 105 69 10 105 69 10 105 69 10 105 0 0 0 0 0 0 69 10 105 69 10 105 69 10 105 69 10 105 69 10 105 69 10 105 69 10 105 69 10 105 69 10 105 69 10 105 69 10 105 69 10 105 69 10 105 0 0 0 0 0 0 104 22 110 104 22 110 104 22 110 104 22 110 104 22 110 104 22 110 104 22 110 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 109 24 110 0 0 0 0 0 0 109 24 110 109 24 110 109 24 110 109 24 110 0 0 0 0 0 0 110 24 110 110 24 110 110 24 110 110 24 110 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 112 25 110 112 25 110 112 25 110 112 25 110 0 0 0 0 0 0 118 27 109 118 27 109 118 27 109 118 27 109 118 27 109 118 27 109 118 27 109 118 27 109 118 27 109 118 27 109 118 27 109 118 27 109 118 27 109 118 27 109 118 27 109 118 27 109 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 155 40 100 155 40 100 155 40 100 155 40 100 0 0 0 0 0 0 160 42 98 160 42 98 160 42 98 160 42 98 0 0 0 0 0 0 160 42 98 0 0 0 0 0 0 163 43 97 163 43 97 163 43 97 163 43 97 163 43 97 163 43 97 163 43 97 0 0 0 0 0 0 163 43 97 0 0 0 0 0 0 164 44 96 164 44 96 164 44 96 164 44 96 0 0 0 0 0 0 167 45 95 167 45 95 167 45 95 167 45 95 167 45 95 167 45 95 167 45 95 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 190 56 82 190 56 82 190 56 82 190 56 82 0 0 0 0 0 0 190 56 82 190 56 82 190 56 82 190 56 82 0 0 0 0 0 0 191 57 81 191 57 81 191 57 81 191 57 81 0 0 0 0 0 0 191 57 81 191 57 81 191 57 81 191 57 81 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 204 65 72 204 65 72 204 65 72 204 65 72 0 0 0 0 0 0 204 65 72 204 65 72 204 65 72 204 65 72 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 207 68 70 207 68 70 207 68 70 207 68 70 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 210 71 66 210 71 66 210 71 66 210 71 66 0 0 0 0 0 0 240 112 30 0 0 0 0 0 0 240 112 30 240 112 30 240 112 30 240 112 30 240 112 30 240 112 30 240 112 30 240 112 30 240 112 30 240 112 30 0 0 0 0 0 0 241 114 29 241 114 29 241 114 29 241 114 29 0 0 0 0 0 0 241 114 29 241 114 29 241 114 29 241 114 29 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 114 29 241 114 29 241 114 29 241 114 29 0 0 0 0 0 0 240 111 31 240 111 31 240 111 31 240 111 31 0 0 0 0 0 0 240 111 31 240 111 31 240 111 31 240 111 31 0 0 0 0 0 0 242 116 28 242 116 28 242 116 28 242 116 28 0 0 0 0 0 0 242 116 28 242 116 28 242 116 28 242 116 28 242 116 28 242 116 28 242 116 28 242 116 28 242 116 28 242 116 28 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 243 119 25 0 0 0 0 0 0 243 121 24 243 121 24 243 121 24 243 121 24 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 243 121 24 243 121 24 243 121 24 243 121 24 0 0 0 0 0 0 244 122 22 244 122 22 244 122 22 244 122 22 244 122 22 244 122 22 244 122 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 57 9 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 57 9 98 0 0 0 0 0 0 65 9 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65 9 103 0 0 0 0 0 0 65 9 103 0 0 0 0 0 0 65 9 103 0 0 0 0 0 0 65 9 103 0 0 0 0 0 0 65 9 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65 9 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65 9 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 69 10 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 69 10 105 0 0 0 0 0 0 69 10 105 0 0 0 0 0 0 69 10 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 69 10 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 109 24 110 0 0 0 0 0 0 109 24 110 0 0 0 0 0 0 109 24 110 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 160 42 98 0 0 0 0 0 0 160 42 98 0 0 0 0 0 0 163 43 97 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 163 43 97 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 164 44 96 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 191 57 81 0 0 0 0 0 0 191 57 81 0 0 0 0 0 0 191 57 81 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 240 112 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 114 29 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 114 29 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 116 28 0 0 0 0 0 0 242 116 28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 243 119 25 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 122 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 57 9 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 57 9 98 0 0 0 0 0 0 65 9 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65 9 103 0 0 0 0 0 0 65 9 103 0 0 0 0 0 0 65 9 103 0 0 0 0 0 0 65 9 103 0 0 0 0 0 0 65 9 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65 9 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 67 10 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 69 10 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 69 10 105 0 0 0 0 0 0 69 10 105 0 0 0 0 0 0 69 10 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 69 10 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 109 24 110 0 0 0 0 0 0 109 24 110 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 160 42 98 0 0 0 0 0 0 160 42 98 0 0 0 0 0 0 163 43 97 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 163 43 97 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 164 44 96 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 191 57 81 0 0 0 0 0 0 191 57 81 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 240 112 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 114 29 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 114 29 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 116 28 0 0 0 0 0 0 242 116 28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 243 119 25 0 0 0 0 0 0 243 119 25 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 122 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 57 9 98 0 0 0 0 0 0 57 9 98 57 9 98 57 9 98 57 9 98 0 0 0 0 0 0 65 9 103 65 9 103 65 9 103 65 9 103 0 0 0 0 0 0 65 9 103 65 9 103 65 9 103 65 9 103 0 0 0 0 0 0 65 9 103 65 9 103 65 9 103 65 9 103 0 0 0 0 0 0 65 9 103 65 9 103 65 9 103 65 9 103 0 0 0 0 0 0 65 9 103 65 9 103 65 9 103 65 9 103 0 0 0 0 0 0 67 10 104 67 10 104 67 10 104 67 10 104 67 10 104 67 10 104 67 10 104 67 10 104 67 10 104 67 10 104 67 10 104 67 10 104 67 10 104 67 10 104 67 10 104 67 10 104 67 10 104 67 10 104 67 10 104 0 0 0 0 0 0 69 10 105 69 10 105 69 10 105 69 10 105 69 10 105 69 10 105 69 10 105 0 0 0 0 0 0 69 10 105 69 10 105 69 10 105 69 10 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 69 10 105 69 10 105 69 10 105 69 10 105 0 0 0 0 0 0 69 10 105 69 10 105 69 10 105 69 10 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 109 24 110 109 24 110 109 24 110 109 24 110 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 110 24 110 110 24 110 110 24 110 110 24 110 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 112 25 110 112 25 110 112 25 110 112 25 110 0 0 0 0 0 0 112 25 110 112 25 110 112 25 110 112 25 110 0 0 0 0 0 0 117 27 109 117 27 109 117 27 109 117 27 109 117 27 109 117 27 109 117 27 109 117 27 109 118 27 109 118 27 109 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 145 37 103 145 37 103 145 37 103 145 37 103 0 0 0 0 0 0 147 37 103 147 37 103 147 37 103 147 37 103 0 0 0 0 0 0 155 40 100 155 40 100 155 40 100 155 40 100 0 0 0 0 0 0 160 42 98 160 42 98 160 42 98 160 42 98 0 0 0 0 0 0 160 42 98 0 0 0 0 0 0 163 43 97 163 43 97 163 43 97 163 43 97 0 0 0 0 0 0 163 43 97 163 43 97 163 43 97 163 43 97 0 0 0 0 0 0 164 44 96 164 44 96 164 44 96 164 44 96 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 190 56 82 190 56 82 190 56 82 190 56 82 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 191 57 81 0 0 0 0 0 0 191 57 81 191 57 81 191 57 81 191 57 81 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 204 65 72 204 65 72 204 65 72 204 65 72 204 65 72 204 65 72 204 65 72 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 207 68 70 207 68 70 207 68 70 207 68 70 0 0 0 0 0 0 210 71 66 210 71 66 210 71 66 210 71 66 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 240 112 30 240 112 30 240 112 30 240 112 30 240 112 30 240 112 30 240 112 30 240 112 30 240 112 30 240 112 30 0 0 0 0 0 0 241 114 29 241 114 29 241 114 29 241 114 29 241 114 29 241 114 29 241 114 29 0 0 0 0 0 0 241 114 29 241 114 29 241 114 29 241 114 29 241 114 29 241 114 29 241 114 29 241 114 29 241 114 29 241 114 29 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 114 29 241 114 29 241 114 29 241 114 29 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 116 28 242 116 28 242 116 28 242 116 28 0 0 0 0 0 0 242 116 28 0 0 0 0 0 0 242 116 28 0 0 0 0 0 0 242 116 28 242 116 28 242 116 28 242 116 28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 243 119 25 243 119 25 243 119 25 243 119 25 0 0 0 0 0 0 243 121 24 243 121 24 243 121 24 243 121 24 0 0 0 0 0 0 243 121 24 243 121 24 243 121 24 243 121 24 0 0 0 0 0 0 243 121 24 243 121 24 243 121 24 243 121 24 0 0 0 0 0 0 244 122 22 244 122 22 244 122 22 244 122 22 244 122 22 244 122 22 244 122 22 244 122 22 244 122 22 244 122 22 244 122 22 244 122 22 244 122 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 57 9 98 0 0 0 0 0 0 57 9 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65 9 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65 9 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65 9 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 67 10 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 69 10 105 0 0 0 0 0 0 69 10 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 69 10 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 160 42 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 160 42 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 163 43 97 0 0 0 0 0 0 163 43 97 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 164 44 96 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 191 57 81 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 191 57 81 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 240 112 30 0 0 0 0 0 0 241 114 29 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 114 29 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 114 29 0 0 0 0 0 0 241 114 29 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 116 28 0 0 0 0 0 0 242 116 28 0 0 0 0 0 0 242 116 28 0 0 0 0 0 0 242 116 28 0 0 0 0 0 0 242 116 28 0 0 0 0 0 0 242 116 28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 122 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 57 9 98 0 0 0 0 0 0 57 9 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65 9 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65 9 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65 9 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 67 10 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 69 10 105 0 0 0 0 0 0 69 10 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 69 10 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 160 42 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 160 42 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 163 43 97 0 0 0 0 0 0 163 43 97 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 164 44 96 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 191 57 81 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 191 57 81 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 240 112 30 0 0 0 0 0 0 241 114 29 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 114 29 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 114 29 0 0 0 0 0 0 241 114 29 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 116 28 0 0 0 0 0 0 242 116 28 0 0 0 0 0 0 242 116 28 0 0 0 0 0 0 242 116 28 0 0 0 0 0 0 242 116 28 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 122 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 57 9 98 57 9 98 57 9 98 57 9 98 0 0 0 0 0 0 57 9 98 57 9 98 57 9 98 57 9 98 57 9 98 57 9 98 57 9 98 0 0 0 0 0 0 57 9 98 0 0 0 0 0 0 57 9 98 57 9 98 59 9 100 59 9 100 0 0 0 0 0 0 65 9 103 0 0 0 0 0 0 65 9 103 65 9 103 65 9 103 65 9 103 65 9 103 64 9 102 64 9 102 64 9 102 64 9 102 64 9 102 64 9 102 64 9 102 64 9 102 0 0 0 0 0 0 65 9 103 65 9 103 65 9 103 65 9 103 65 9 103 65 9 103 65 9 103 0 0 0 0 0 0 64 9 102 64 9 102 64 9 102 64 9 102 64 9 102 64 9 102 64 9 102 64 9 102 64 9 102 64 9 102 64 9 102 64 9 102 64 9 102 64 9 102 64 9 102 64 9 102 0 0 0 0 0 0 67 10 104 67 10 104 67 10 104 67 10 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 67 10 104 67 10 104 67 10 104 67 10 104 67 10 104 67 10 104 67 10 104 0 0 0 0 0 0 69 10 105 69 10 105 69 10 105 69 10 105 0 0 0 0 0 0 69 10 105 69 10 105 69 10 105 69 10 105 69 10 105 69 10 105 69 10 105 0 0 0 0 0 0 104 22 110 104 22 110 104 22 110 104 22 110 0 0 0 0 0 0 106 23 110 106 23 110 106 23 110 106 23 110 106 23 110 106 23 110 106 23 110 0 0 0 0 0 0 110 24 110 110 24 110 110 24 110 110 24 110 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 110 24 110 110 24 110 110 24 110 110 24 110 110 24 110 112 25 110 112 25 110 0 0 0 0 0 0 112 25 110 112 25 110 112 25 110 112 25 110 0 0 0 0 0 0 117 27 109 117 27 109 117 27 109 117 27 109 117 27 109 117 27 109 117 27 109 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 118 27 109 118 27 109 118 27 109 118 27 109 0 0 0 0 0 0 147 37 103 147 37 103 147 37 103 147 37 103 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 160 42 98 160 42 98 160 42 98 160 42 98 0 0 0 0 0 0 160 42 98 0 0 0 0 0 0 163 43 97 163 43 97 163 43 97 163 43 97 0 0 0 0 0 0 163 43 97 0 0 0 0 0 0 164 44 96 164 44 96 164 44 96 164 44 96 0 0 0 0 0 0 167 45 95 167 45 95 167 45 95 167 45 95 0 0 0 0 0 0 167 45 95 167 45 95 167 45 95 167 45 95 0 0 0 0 0 0 178 50 89 178 50 89 178 50 89 178 50 89 178 50 89 178 50 89 178 50 89 178 50 89 178 50 89 178 50 89 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 191 57 81 191 57 81 191 57 81 191 57 81 0 0 0 0 0 0 191 57 81 0 0 0 0 0 0 196 60 78 196 60 78 196 60 78 196 60 78 0 0 0 0 0 0 204 65 72 204 65 72 204 65 72 204 65 72 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 207 68 70 207 68 70 207 68 70 207 68 70 0 0 0 0 0 0 207 68 70 207 68 70 207 68 70 207 68 70 207 68 70 207 68 70 207 68 70 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 133 14 247 133 14 247 131 16 247 131 16 0 0 0 0 0 0 240 112 30 240 112 30 240 112 30 240 112 30 0 0 0 0 0 0 241 114 29 0 0 0 0 0 0 246 128 18 246 128 18 246 128 18 246 128 18 0 0 0 0 0 0 241 114 29 241 114 29 241 114 29 241 114 29 241 114 29 241 114 29 241 114 29 241 114 29 241 114 29 241 114 29 241 114 29 241 114 29 241 114 29 241 114 29 241 114 29 241 114 29 0 0 0 0 0 0 241 114 29 241 114 29 242 116 28 242 116 28 0 0 0 0 0 0 242 116 28 0 0 0 0 0 0 242 116 28 0 0 0 0 0 0 242 116 28 0 0 0 0 0 0 242 116 28 0 0 0 0 0 0 242 116 28 0 0 0 0 0 0 242 117 26 242 117 26 242 117 26 242 117 26 242 117 26 242 117 26 242 117 26 0 0 0 0 0 0 245 126 20 245 126 20 245 126 20 245 126 20 0 0 0 0 0 0 245 126 20 245 126 20 245 126 20 245 126 20 245 126 20 245 126 20 245 126 20 245 126 20 245 126 20 245 126 20 245 126 20 245 126 20 245 126 20 0 0 0 0 0 0 244 122 22 244 122 22 244 122 22 244 122 22 0 0 0 0 0 0 244 122 22 244 122 22 244 122 22 244 122 22 244 122 22 244 122 22 244 122 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 57 9 98 0 0 0 0 0 0 57 9 98 0 0 0 0 0 0 57 9 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 57 9 98 0 0 0 0 0 0 57 9 98 0 0 0 0 0 0 59 9 100 0 0 0 0 0 0 65 9 103 0 0 0 0 0 0 65 9 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 9 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 9 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 9 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 67 10 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 67 10 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 67 10 104 0 0 0 0 0 0 69 10 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 160 42 98 0 0 0 0 0 0 160 42 98 0 0 0 0 0 0 163 43 97 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 163 43 97 0 0 0 0 0 0 164 44 96 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 191 57 81 0 0 0 0 0 0 191 57 81 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 133 14 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 240 112 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 114 29 0 0 0 0 0 0 246 128 18 0 0 0 0 0 0 246 128 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 116 28 0 0 0 0 0 0 242 116 28 0 0 0 0 0 0 242 116 28 0 0 0 0 0 0 242 116 28 0 0 0 0 0 0 242 116 28 0 0 0 0 0 0 242 116 28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 126 20 0 0 0 0 0 0 245 126 20 0 0 0 0 0 0 245 126 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 126 20 0 0 0 0 0 0 244 122 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 122 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 122 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 57 9 98 0 0 0 0 0 0 57 9 98 0 0 0 0 0 0 57 9 98 0 0 0 131 32 107 131 32 107 131 32 107 0 0 0 0 0 0 0 0 0 0 0 0 57 9 98 0 0 0 0 0 0 57 9 98 0 0 0 0 0 0 59 9 100 0 0 0 0 0 0 65 9 103 0 0 0 0 0 0 65 9 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 9 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 9 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 9 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 67 10 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 67 10 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 67 10 104 0 0 0 0 0 0 67 10 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 160 42 98 0 0 0 0 0 0 160 42 98 0 0 0 0 0 0 163 43 97 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 163 43 97 0 0 0 0 0 0 164 44 96 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 191 57 81 0 0 0 0 0 0 191 57 81 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 133 14 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 240 112 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 114 29 0 0 0 0 0 0 246 129 17 0 0 0 0 0 0 246 128 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 116 28 0 0 0 0 0 0 242 116 28 0 0 0 0 0 0 242 116 28 0 0 0 0 0 0 242 116 28 0 0 0 0 0 0 242 116 28 0 0 0 0 0 0 242 116 28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 126 20 0 0 0 0 0 0 245 126 20 0 0 0 0 0 0 245 126 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 244 122 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 122 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 122 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 57 9 98 0 0 0 0 0 0 57 9 98 57 9 98 57 9 98 57 9 98 0 0 0 131 32 107 131 32 107 131 32 107 57 9 98 57 9 98 0 0 0 0 0 0 57 9 98 0 0 0 0 0 0 57 9 98 0 0 0 0 0 0 59 9 100 0 0 0 0 0 0 65 9 103 65 9 103 65 9 103 65 9 103 0 0 0 0 0 0 59 9 100 59 9 100 59 9 100 59 9 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 9 102 64 9 102 64 9 102 64 9 102 64 9 102 64 9 102 64 9 102 64 9 102 64 9 102 64 9 102 64 9 102 64 9 102 64 9 102 0 0 0 0 0 0 60 9 101 60 9 101 60 9 101 60 9 101 0 0 0 0 0 0 60 9 101 60 9 101 60 9 101 60 9 101 0 0 0 0 0 0 64 9 102 64 9 102 64 9 102 64 9 102 0 0 0 0 0 0 67 10 104 67 10 104 67 10 104 67 10 104 0 0 0 0 0 0 67 10 104 0 0 0 0 0 0 67 10 104 67 10 104 67 10 104 67 10 104 0 0 0 0 0 0 67 10 104 67 10 104 67 10 104 67 10 104 67 10 104 67 10 104 67 10 104 67 10 104 67 10 104 67 10 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 104 22 110 104 22 110 104 22 110 104 22 110 0 0 0 0 0 0 106 23 110 106 23 110 106 23 110 106 23 110 106 23 110 106 23 110 106 23 110 0 0 0 0 0 0 110 24 110 110 24 110 110 24 110 110 24 110 0 0 0 0 0 0 110 24 110 110 24 110 110 24 110 110 24 110 0 0 0 0 0 0 112 25 110 112 25 110 112 25 110 112 25 110 112 25 110 112 25 110 112 25 110 0 0 0 0 0 0 115 26 109 115 26 109 115 26 109 115 26 109 0 0 0 0 0 0 117 27 109 117 27 109 117 27 109 117 27 109 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 118 27 109 118 27 109 118 27 109 118 27 109 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 147 37 103 147 37 103 147 37 103 147 37 103 0 0 0 0 0 0 155 40 100 155 40 100 155 40 100 155 40 100 0 0 0 0 0 0 160 42 98 160 42 98 160 42 98 160 42 98 0 0 0 0 0 0 160 42 98 0 0 0 0 0 0 163 43 97 163 43 97 163 43 97 163 43 97 0 0 0 0 0 0 163 43 97 0 0 0 0 0 0 164 44 96 164 44 96 166 44 95 166 44 95 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 167 45 95 167 45 95 167 45 95 167 45 95 0 0 0 0 0 0 177 49 90 177 49 90 177 49 90 177 49 90 177 49 90 177 49 90 177 49 90 0 0 0 0 0 0 178 50 89 178 50 89 178 50 89 178 50 89 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 190 56 82 190 56 82 190 56 82 190 56 82 0 0 0 0 0 0 191 57 81 191 57 81 191 57 81 191 57 81 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 204 65 72 204 65 72 204 65 72 204 65 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 207 68 70 207 68 70 207 68 70 207 68 70 0 0 0 0 0 0 207 68 70 207 68 70 207 68 70 207 68 70 0 0 0 0 0 0 247 133 14 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 240 112 30 240 112 30 240 112 30 240 112 30 0 0 0 0 0 0 241 114 29 0 0 0 0 0 0 246 129 17 0 0 0 0 0 0 246 128 18 246 128 18 246 128 18 246 128 18 246 128 18 246 128 18 246 128 18 246 128 18 246 128 18 246 128 18 246 128 18 246 128 18 246 128 18 246 128 18 246 128 18 246 128 18 246 128 18 246 128 18 246 128 18 246 128 18 246 128 18 246 128 18 0 0 0 0 0 0 242 116 28 242 116 28 242 116 28 242 116 28 0 0 0 0 0 0 242 116 28 242 116 28 242 116 28 242 116 28 0 0 0 0 0 0 242 116 28 242 116 28 242 116 28 242 116 28 0 0 0 0 0 0 245 126 20 245 126 20 245 126 20 245 126 20 0 0 0 0 0 0 245 126 20 245 126 20 245 126 20 245 126 20 0 0 0 0 0 0 245 126 20 0 0 0 0 0 0 245 126 20 245 126 20 245 126 20 245 126 20 245 126 20 245 126 20 245 126 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 244 122 22 244 122 22 244 122 22 244 122 22 244 122 22 244 122 22 244 122 22 0 0 0 0 0 0 244 122 22 244 122 22 244 122 22 244 122 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 57 9 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 131 32 107 131 32 107 131 32 107 0 0 0 57 9 98 0 0 0 0 0 0 57 9 98 0 0 0 0 0 0 57 9 98 0 0 0 0 0 0 59 9 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 59 9 100 0 0 0 0 0 0 59 9 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 60 9 101 0 0 0 0 0 0 60 9 101 0 0 0 0 0 0 60 9 101 0 0 0 0 0 0 60 9 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 9 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 67 10 104 0 0 0 0 0 0 67 10 104 0 0 0 0 0 0 67 10 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 67 10 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 160 42 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 160 42 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 163 43 97 0 0 0 0 0 0 163 43 97 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 166 44 95 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 177 49 90 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 177 49 90 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 247 133 14 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 240 112 30 0 0 0 0 0 0 241 114 29 0 0 0 0 0 0 246 129 17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 128 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 126 20 0 0 0 0 0 0 245 126 20 0 0 0 0 0 0 245 126 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 126 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 126 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 122 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 57 9 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 57 9 98 0 0 0 0 0 0 57 9 98 0 0 0 0 0 0 57 9 98 0 0 0 0 0 0 57 9 98 0 0 0 0 0 0 59 9 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 59 9 100 0 0 0 0 0 0 59 9 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 60 9 101 0 0 0 0 0 0 60 9 101 0 0 0 0 0 0 60 9 101 0 0 0 0 0 0 60 9 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 9 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 67 10 104 0 0 0 0 0 0 67 10 104 0 0 0 0 0 0 67 10 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 67 10 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 160 42 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 160 42 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 163 43 97 0 0 0 0 0 0 163 43 97 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 166 44 95 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 169 46 94 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 177 49 90 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 177 49 90 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 247 133 14 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 240 112 30 0 0 0 0 0 0 241 114 29 0 0 0 0 0 0 246 129 17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 128 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 126 20 0 0 0 0 0 0 245 126 20 0 0 0 0 0 0 245 126 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 126 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 126 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 122 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 57 9 98 57 9 98 57 9 98 57 9 98 57 9 98 57 9 98 57 9 98 57 9 98 57 9 98 57 9 98 0 0 0 0 0 0 57 9 98 0 0 0 0 0 0 57 9 98 57 9 98 57 9 98 57 9 98 0 0 0 0 0 0 59 9 100 0 0 0 0 0 0 59 9 100 59 9 100 59 9 100 59 9 100 0 0 0 0 0 0 59 9 100 0 0 0 0 0 0 59 9 100 0 0 0 0 0 0 59 9 100 59 9 100 59 9 100 59 9 100 59 9 100 59 9 100 59 9 100 59 9 100 59 9 100 59 9 100 59 9 100 59 9 100 59 9 100 0 0 0 0 0 0 60 9 101 60 9 101 60 9 101 60 9 101 0 0 0 0 0 0 60 9 101 60 9 101 60 9 101 60 9 101 0 0 0 0 0 0 60 9 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 9 102 64 9 102 64 9 102 64 9 102 0 0 0 0 0 0 67 10 104 67 10 104 67 10 104 67 10 104 0 0 0 0 0 0 67 10 104 0 0 0 0 0 0 67 10 104 67 10 104 67 10 104 67 10 104 0 0 0 0 0 0 67 10 104 67 10 104 67 10 104 67 10 104 67 10 104 67 10 104 67 10 104 0 0 0 0 0 0 64 9 102 64 9 102 64 9 102 64 9 102 0 0 0 0 0 0 104 22 110 104 22 110 106 23 110 106 23 110 0 0 0 0 0 0 110 24 110 110 24 110 110 24 110 110 24 110 110 24 110 110 24 110 110 24 110 0 0 0 0 0 0 110 24 110 110 24 110 110 24 110 110 24 110 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 115 26 109 115 26 109 115 26 109 115 26 109 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 117 27 109 117 27 109 117 27 109 117 27 109 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 118 27 109 118 27 109 118 27 109 118 27 109 118 27 109 118 27 109 118 27 109 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 147 37 103 147 37 103 147 37 103 147 37 103 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 160 42 98 160 42 98 160 42 98 160 42 98 0 0 0 0 0 0 160 42 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 163 43 97 0 0 0 0 0 0 163 43 97 0 0 0 0 0 0 166 44 95 166 44 95 166 44 95 166 44 95 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 169 46 94 169 46 94 169 46 94 169 46 94 0 0 0 0 0 0 177 49 90 177 49 90 177 49 90 177 49 90 0 0 0 0 0 0 177 49 90 0 0 0 0 0 0 178 50 89 178 50 89 178 50 89 178 50 89 0 0 0 0 0 0 190 56 82 190 56 82 190 56 82 190 56 82 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 196 60 78 196 60 78 196 60 78 196 60 78 196 60 78 196 60 78 196 60 78 196 60 78 196 60 78 196 60 78 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 203 64 73 203 64 73 203 64 73 203 64 73 0 0 0 0 0 0 207 68 70 207 68 70 207 68 70 207 68 70 0 0 0 0 0 0 207 68 70 207 68 70 207 68 70 207 68 70 207 68 70 207 68 70 207 68 70 0 0 0 0 0 0 247 133 14 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 240 112 30 240 112 30 240 112 30 240 112 30 0 0 0 0 0 0 241 114 29 0 0 0 0 0 0 246 129 17 0 0 0 0 0 0 246 129 17 246 129 17 246 129 17 246 129 17 246 129 17 246 129 17 246 129 17 0 0 0 0 0 0 246 129 17 246 129 17 246 129 17 246 129 17 0 0 0 0 0 0 246 129 17 246 129 17 246 129 17 246 129 17 0 0 0 0 0 0 246 128 18 246 128 18 246 128 18 246 128 18 246 128 18 246 128 18 246 128 18 0 0 0 0 0 0 246 128 18 246 128 18 246 128 18 246 128 18 246 128 18 246 128 18 246 128 18 0 0 0 0 0 0 245 126 20 245 126 20 245 126 20 245 126 20 0 0 0 0 0 0 245 126 20 245 126 20 245 126 20 245 126 20 0 0 0 0 0 0 245 126 20 245 126 20 245 126 20 245 126 20 0 0 0 0 0 0 245 126 20 245 126 20 245 126 20 245 126 20 0 0 0 0 0 0 245 126 20 0 0 0 0 0 0 245 124 21 245 124 21 245 124 21 245 124 21 0 0 0 0 0 0 244 122 22 244 122 22 244 122 22 244 122 22 0 0 0 0 0 0 244 122 22 244 122 22 244 122 22 244 122 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 57 9 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 59 9 100 0 0 0 0 0 0 59 9 100 0 0 0 0 0 0 59 9 100 0 0 0 0 0 0 59 9 100 0 0 0 0 0 0 59 9 100 0 0 0 0 0 0 59 9 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 59 9 100 0 0 0 0 0 0 60 9 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 60 9 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 9 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 67 10 104 0 0 0 0 0 0 67 10 104 0 0 0 0 0 0 67 10 104 0 0 0 0 0 0 67 10 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 9 102 0 0 0 0 0 0 64 9 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 160 42 98 0 0 0 0 0 0 160 42 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 163 43 97 0 0 0 0 0 0 163 43 97 0 0 0 0 0 0 166 44 95 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 169 46 94 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 177 49 90 0 0 0 0 0 0 177 49 90 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 203 64 73 0 0 0 0 0 0 203 64 73 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 133 14 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 240 112 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 114 29 0 0 0 0 0 0 246 129 17 0 0 0 0 0 0 246 129 17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 129 17 0 0 0 0 0 0 246 129 17 0 0 0 0 0 0 246 129 17 0 0 0 0 0 0 246 129 17 0 0 0 0 0 0 246 129 17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 128 18 0 0 0 0 0 0 246 128 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 128 18 0 0 0 0 0 0 245 126 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 126 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 126 20 0 0 0 0 0 0 245 126 20 0 0 0 0 0 0 245 126 20 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 122 22 0 0 0 0 0 0 244 122 22 0 0 0 0 0 0 244 122 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 57 9 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 59 9 100 0 0 0 0 0 0 59 9 100 0 0 0 0 0 0 59 9 100 0 0 0 0 0 0 59 9 100 0 0 0 0 0 0 59 9 100 0 0 0 0 0 0 59 9 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 59 9 100 0 0 0 0 0 0 60 9 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 60 9 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 9 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 67 10 104 0 0 0 0 0 0 67 10 104 0 0 0 0 0 0 67 10 104 0 0 0 0 0 0 67 10 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 9 102 0 0 0 0 0 0 64 9 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 149 38 102 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 160 42 98 0 0 0 0 0 0 160 42 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 163 43 97 0 0 0 0 0 0 163 43 97 0 0 0 0 0 0 166 44 95 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 169 46 94 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 177 49 90 0 0 0 0 0 0 177 49 90 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 203 64 73 0 0 0 0 0 0 203 64 73 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 133 14 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 240 112 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 114 29 0 0 0 0 0 0 246 129 17 0 0 0 0 0 0 246 129 17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 129 17 0 0 0 0 0 0 246 129 17 0 0 0 0 0 0 246 129 17 0 0 0 0 0 0 246 129 17 0 0 0 0 0 0 246 129 17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 128 18 0 0 0 0 0 0 246 128 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 128 18 0 0 0 0 0 0 245 126 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 126 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 126 20 0 0 0 0 0 0 245 126 20 0 0 0 0 0 0 245 126 20 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 122 22 0 0 0 0 0 0 244 122 22 0 0 0 0 0 0 244 122 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 57 9 98 57 9 98 57 9 98 57 9 98 57 9 98 57 9 98 57 9 98 0 0 0 0 0 0 57 9 98 57 9 98 57 9 98 57 9 98 0 0 0 0 0 0 57 9 98 57 9 98 57 9 98 57 9 98 0 0 0 0 0 0 59 9 100 59 9 100 59 9 100 59 9 100 0 0 0 0 0 0 59 9 100 59 9 100 59 9 100 59 9 100 0 0 0 0 0 0 59 9 100 0 0 0 0 0 0 59 9 100 59 9 100 59 9 100 59 9 100 59 9 100 59 9 100 59 9 100 0 0 0 0 0 0 59 9 100 59 9 100 59 9 100 59 9 100 0 0 0 0 0 0 60 9 101 60 9 101 60 9 101 60 9 101 60 9 101 60 9 101 60 9 101 60 9 101 60 9 101 60 9 101 0 0 0 0 0 0 60 9 101 60 9 101 60 9 101 60 9 101 60 9 101 60 9 101 60 9 101 0 0 0 0 0 0 64 9 102 64 9 102 64 9 102 64 9 102 64 9 102 64 9 102 64 9 102 0 0 0 0 0 0 67 10 104 67 10 104 67 10 104 67 10 104 0 0 0 0 0 0 67 10 104 67 10 104 67 10 104 67 10 104 0 0 0 0 0 0 64 9 102 64 9 102 64 9 102 64 9 102 64 9 102 64 9 102 64 9 102 0 0 0 0 0 0 64 9 102 64 9 102 62 9 102 62 9 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 110 24 110 110 24 110 110 24 110 110 24 110 110 24 110 110 24 110 110 24 110 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 110 24 110 110 24 110 110 24 110 110 24 110 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 115 26 109 115 26 109 115 26 109 115 26 109 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 118 27 109 118 27 109 118 27 109 118 27 109 118 27 109 118 27 109 118 27 109 0 0 0 0 0 0 147 37 103 147 37 103 147 37 103 147 37 103 0 0 0 0 0 0 149 38 102 0 0 0 0 0 0 155 40 100 155 40 100 155 40 100 155 40 100 0 0 0 0 0 0 160 42 98 0 0 0 0 0 0 160 42 98 160 42 98 160 42 98 160 42 98 0 0 0 0 0 0 163 43 97 163 43 97 163 43 97 163 43 97 0 0 0 0 0 0 166 44 95 166 44 95 166 44 95 166 44 95 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 169 46 94 169 46 94 169 46 94 169 46 94 0 0 0 0 0 0 177 49 90 177 49 90 177 49 90 177 49 90 0 0 0 0 0 0 177 49 90 177 49 90 177 49 90 177 49 90 0 0 0 0 0 0 178 50 89 178 50 89 177 49 90 177 49 90 0 0 0 0 0 0 190 56 82 190 56 82 190 56 82 190 56 82 0 0 0 0 0 0 196 60 78 196 60 78 196 60 78 196 60 78 0 0 0 0 0 0 200 62 75 200 62 75 200 62 75 200 62 75 0 0 0 0 0 0 204 65 72 204 65 72 204 65 72 204 65 72 204 65 72 203 64 73 203 64 73 0 0 0 0 0 0 203 64 73 203 64 73 203 64 73 203 64 73 203 64 73 203 64 73 203 64 73 203 64 73 203 64 73 203 64 73 203 64 73 203 64 73 203 64 73 203 64 73 203 64 73 203 64 73 0 0 0 0 0 0 247 133 14 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 240 112 30 240 112 30 240 112 30 240 112 30 240 112 30 241 114 29 241 114 29 0 0 0 0 0 0 246 129 17 246 129 17 246 129 17 246 129 17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 129 17 246 129 17 246 129 17 246 129 17 0 0 0 0 0 0 246 129 17 246 129 17 246 129 17 246 129 17 0 0 0 0 0 0 246 129 17 246 129 17 246 129 17 246 129 17 246 129 17 246 129 17 246 129 17 0 0 0 0 0 0 246 128 18 0 0 0 0 0 0 246 128 18 246 128 18 246 128 18 246 128 18 0 0 0 0 0 0 246 128 18 0 0 0 0 0 0 245 126 20 245 126 20 245 126 20 245 126 20 245 126 20 245 126 20 245 126 20 245 126 20 245 126 20 245 126 20 0 0 0 0 0 0 245 126 20 245 126 20 245 126 20 245 126 20 245 126 20 245 126 20 245 126 20 0 0 0 0 0 0 245 126 20 245 126 20 245 126 20 245 126 20 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 244 122 22 244 122 22 244 122 22 244 122 22 0 0 0 0 0 0 244 122 22 0 0 0 0 0 0 244 122 22 244 122 22 244 122 22 244 122 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 57 9 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 57 9 98 0 0 0 0 0 0 57 9 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 57 9 98 0 0 0 0 0 0 57 9 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 59 9 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 59 9 100 0 0 0 0 0 0 59 9 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 60 9 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 60 9 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 9 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 9 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 62 9 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 149 38 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 160 42 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 160 42 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 166 44 95 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 169 46 94 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 177 49 90 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 177 49 90 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 177 49 90 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 203 64 73 0 0 0 0 0 0 247 133 14 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 129 17 0 0 0 0 0 0 246 128 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 128 18 0 0 0 0 0 0 246 128 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 126 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 244 122 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 122 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 122 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 57 9 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 57 9 98 0 0 0 0 0 0 57 9 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 57 9 98 0 0 0 0 0 0 57 9 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 59 9 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 59 9 100 0 0 0 0 0 0 59 9 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 60 9 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 60 9 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 9 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 9 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 62 9 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 149 38 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 160 42 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 160 42 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 166 44 95 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 169 46 94 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 177 49 90 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 177 49 90 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 177 49 90 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 203 64 73 0 0 0 0 0 0 247 133 14 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 129 17 0 0 0 0 0 0 246 128 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 128 18 0 0 0 0 0 0 246 128 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 128 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 122 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 122 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 59 9 100 59 9 100 59 9 100 59 9 100 0 0 0 0 0 0 57 9 98 57 9 98 59 9 100 59 9 100 0 0 0 0 0 0 57 9 98 0 0 0 0 0 0 57 9 98 57 9 98 57 9 98 57 9 98 57 9 98 57 9 98 57 9 98 0 0 0 0 0 0 57 9 98 57 9 98 57 9 98 57 9 98 57 9 98 57 9 98 57 9 98 57 9 98 57 9 98 57 9 98 57 9 98 57 9 98 57 9 98 0 0 0 0 0 0 59 9 100 0 0 0 0 0 0 59 9 100 59 9 100 59 9 100 59 9 100 0 0 0 0 0 0 59 9 100 0 0 0 0 0 0 59 9 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 60 9 101 60 9 101 60 9 101 60 9 101 60 9 101 60 9 101 60 9 101 60 9 101 60 9 101 60 9 101 0 0 0 0 0 0 62 9 102 62 9 102 62 9 102 62 9 102 0 0 0 0 0 0 60 9 101 60 9 101 60 9 101 60 9 101 60 9 101 60 9 101 60 9 101 0 0 0 0 0 0 64 9 102 64 9 102 64 9 102 64 9 102 64 9 102 64 9 102 64 9 102 64 9 102 64 9 102 64 9 102 64 9 102 64 9 102 64 9 102 64 9 102 64 9 102 64 9 102 0 0 0 0 0 0 62 9 102 62 9 102 62 9 102 62 9 102 62 9 102 62 9 102 62 9 102 0 0 0 0 0 0 62 9 102 62 9 102 62 9 102 62 9 102 0 0 0 0 0 0 62 9 102 62 9 102 62 9 102 62 9 102 0 0 0 0 0 0 110 24 110 110 24 110 110 24 110 110 24 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 112 25 110 112 25 110 112 25 110 112 25 110 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 115 26 109 115 26 109 115 26 109 115 26 109 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 118 27 109 118 27 109 118 27 109 118 27 109 0 0 0 0 0 0 118 27 109 118 27 109 118 27 109 118 27 109 0 0 0 0 0 0 149 38 102 149 38 102 149 38 102 149 38 102 149 38 102 149 38 102 149 38 102 0 0 0 0 0 0 155 40 100 155 40 100 155 40 100 155 40 100 0 0 0 0 0 0 160 42 98 160 42 98 160 42 98 160 42 98 0 0 0 0 0 0 160 42 98 0 0 0 0 0 0 166 44 95 166 44 95 166 44 95 166 44 95 166 44 95 166 44 95 166 44 95 166 44 95 166 44 95 166 44 95 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 169 46 94 0 0 0 0 0 0 177 49 90 177 49 90 177 49 90 177 49 90 0 0 0 0 0 0 177 49 90 177 49 90 177 49 90 177 49 90 0 0 0 0 0 0 177 49 90 0 0 0 0 0 0 177 49 90 177 49 90 177 49 90 177 49 90 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 197 61 77 197 61 77 196 60 78 196 60 78 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 200 62 75 200 62 75 200 62 75 200 62 75 0 0 0 0 0 0 200 62 75 200 62 75 201 63 74 201 63 74 201 63 74 201 63 74 201 63 74 201 63 74 201 63 74 201 63 74 201 63 74 201 63 74 201 63 74 0 0 0 0 0 0 203 64 73 203 64 73 203 64 73 203 64 73 0 0 0 0 0 0 203 64 73 0 0 0 0 0 0 247 133 14 0 0 0 0 0 0 247 131 16 247 131 16 247 131 16 247 131 16 247 131 16 247 131 16 247 131 16 247 131 16 247 131 16 247 131 16 0 0 0 0 0 0 247 131 16 247 131 16 247 131 16 247 131 16 0 0 0 0 0 0 246 129 17 246 129 17 246 129 17 246 129 17 246 129 17 246 129 17 246 129 17 246 129 17 246 129 17 246 129 17 246 129 17 246 129 17 246 129 17 246 129 17 246 129 17 246 129 17 246 129 17 246 129 17 246 129 17 246 129 17 246 129 17 246 129 17 0 0 0 0 0 0 246 128 18 246 128 18 246 128 18 246 128 18 0 0 0 0 0 0 246 128 18 0 0 0 0 0 0 246 128 18 0 0 0 0 0 0 246 128 18 246 128 18 246 128 18 246 128 18 246 128 18 246 128 18 246 128 18 246 128 18 246 128 18 246 128 18 0 0 0 0 0 0 248 138 11 248 138 11 248 138 11 248 138 11 0 0 0 0 0 0 248 138 11 248 138 11 248 138 11 248 138 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 122 22 244 122 22 244 122 22 244 122 22 244 122 22 244 122 22 244 122 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 59 9 100 0 0 0 0 0 0 59 9 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 59 9 100 0 0 0 0 0 0 57 9 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 57 9 98 0 0 0 0 0 0 59 9 100 0 0 0 0 0 0 59 9 100 0 0 0 0 0 0 59 9 100 0 0 0 0 0 0 59 9 100 0 0 0 0 0 0 59 9 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 60 9 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 62 9 102 0 0 0 0 0 0 62 9 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 60 9 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 62 9 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 62 9 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 62 9 102 0 0 0 0 0 0 62 9 102 0 0 0 0 0 0 62 9 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 149 38 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 160 42 98 0 0 0 0 0 0 160 42 98 0 0 0 0 0 0 166 44 95 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 169 46 94 0 0 0 0 0 0 177 49 90 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 177 49 90 0 0 0 0 0 0 177 49 90 0 0 0 0 0 0 177 49 90 0 0 0 0 0 0 177 49 90 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 201 63 74 0 0 0 0 0 0 203 64 73 0 0 0 0 0 0 203 64 73 0 0 0 0 0 0 203 64 73 0 0 0 0 0 0 247 133 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 246 129 17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 128 18 0 0 0 0 0 0 246 128 18 0 0 0 0 0 0 246 128 18 0 0 0 0 0 0 246 128 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 59 9 100 0 0 0 0 0 0 59 9 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 59 9 100 0 0 0 0 0 0 57 9 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 57 9 98 0 0 0 0 0 0 59 9 100 0 0 0 0 0 0 59 9 100 0 0 0 0 0 0 59 9 100 0 0 0 0 0 0 59 9 100 0 0 0 0 0 0 60 9 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 60 9 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 62 9 102 0 0 0 0 0 0 62 9 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 60 9 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 62 9 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 62 9 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 62 9 102 0 0 0 0 0 0 62 9 102 0 0 0 0 0 0 62 9 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 149 38 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 160 42 98 0 0 0 0 0 0 160 42 98 0 0 0 0 0 0 166 44 95 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 169 46 94 0 0 0 0 0 0 177 49 90 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 177 49 90 0 0 0 0 0 0 177 49 90 0 0 0 0 0 0 177 49 90 0 0 0 0 0 0 177 49 90 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 201 63 74 0 0 0 0 0 0 203 64 73 0 0 0 0 0 0 203 64 73 0 0 0 0 0 0 203 64 73 0 0 0 0 0 0 247 133 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 246 129 17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 128 18 0 0 0 0 0 0 246 128 18 0 0 0 0 0 0 246 128 18 0 0 0 0 0 0 246 128 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 59 9 100 59 9 100 59 9 100 59 9 100 59 9 100 59 9 100 59 9 100 59 9 100 59 9 100 59 9 100 0 0 0 0 0 0 59 9 100 0 0 0 0 0 0 59 9 100 59 9 100 59 9 100 59 9 100 0 0 0 0 0 0 57 9 98 0 0 0 0 0 0 57 9 98 57 9 98 57 9 98 57 9 98 57 9 98 57 9 98 57 9 98 57 9 98 57 9 98 57 9 98 57 9 98 57 9 98 57 9 98 57 9 98 57 9 98 57 9 98 57 9 98 57 9 98 57 9 98 57 9 98 57 9 98 57 9 98 0 0 0 0 0 0 59 9 100 59 9 100 59 9 100 59 9 100 0 0 0 0 0 0 59 9 100 59 9 100 59 9 100 59 9 100 0 0 0 0 0 0 60 9 101 60 9 101 60 9 101 60 9 101 60 9 101 60 9 101 60 9 101 0 0 0 0 0 0 60 9 101 60 9 101 60 9 101 60 9 101 0 0 0 0 0 0 62 9 102 62 9 102 62 9 102 62 9 102 0 0 0 0 0 0 62 9 102 0 0 0 0 0 0 62 9 102 62 9 102 62 9 102 62 9 102 0 0 0 0 0 0 60 9 101 60 9 101 60 9 101 60 9 101 60 9 101 60 9 101 60 9 101 60 9 101 60 9 101 60 9 101 60 9 101 60 9 101 60 9 101 60 9 101 60 9 101 60 9 101 60 9 101 60 9 101 60 9 101 60 9 101 62 9 102 62 9 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 62 9 102 62 9 102 62 9 102 62 9 102 0 0 0 0 0 0 62 9 102 62 9 102 62 9 102 62 9 102 0 0 0 0 0 0 62 9 102 62 9 102 62 9 102 62 9 102 62 9 102 62 9 102 62 9 102 62 9 102 62 9 102 62 9 102 0 0 0 0 0 0 112 25 110 112 25 110 112 25 110 112 25 110 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 115 26 109 115 26 109 115 26 109 115 26 109 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 117 27 109 117 27 109 117 27 109 117 27 109 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 149 38 102 149 38 102 149 38 102 149 38 102 149 38 102 149 38 102 149 38 102 0 0 0 0 0 0 155 40 100 155 40 100 153 40 100 153 40 100 153 40 100 153 40 100 153 40 100 0 0 0 0 0 0 160 42 98 160 42 98 160 42 98 160 42 98 0 0 0 0 0 0 166 44 95 166 44 95 166 44 95 166 44 95 166 44 95 166 44 95 166 44 95 166 44 95 166 44 95 166 44 95 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 169 46 94 0 0 0 0 0 0 177 49 90 177 49 90 177 49 90 177 49 90 177 49 90 177 49 90 177 49 90 0 0 0 0 0 0 177 49 90 0 0 0 0 0 0 177 49 90 0 0 0 0 0 0 177 49 90 0 0 0 0 0 0 197 61 77 197 61 77 197 61 77 197 61 77 197 61 77 197 61 77 197 61 77 0 0 0 0 0 0 196 60 78 196 60 78 196 60 78 196 60 78 0 0 0 0 0 0 200 62 75 200 62 75 200 62 75 200 62 75 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 201 63 74 201 63 74 201 63 74 201 63 74 201 63 74 201 63 74 201 63 74 201 63 74 201 63 74 201 63 74 0 0 0 0 0 0 203 64 73 0 0 0 0 0 0 203 64 73 203 64 73 203 64 73 203 64 73 0 0 0 0 0 0 247 133 14 247 133 14 247 133 14 247 133 14 247 133 14 247 133 14 247 133 14 247 133 14 247 133 14 247 133 14 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 246 129 17 246 129 17 246 129 17 246 129 17 246 129 17 246 129 17 246 129 17 246 129 17 246 129 17 246 129 17 246 129 17 246 129 17 246 129 17 246 129 17 246 129 17 246 129 17 246 129 17 246 129 17 246 129 17 246 129 17 247 131 16 247 131 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 128 18 246 128 18 246 128 18 246 128 18 0 0 0 0 0 0 246 128 18 246 128 18 246 128 18 246 128 18 0 0 0 0 0 0 248 136 12 248 136 12 248 136 12 248 136 12 248 136 12 248 138 11 248 138 11 248 138 11 248 138 11 248 138 11 0 0 0 0 0 0 248 138 11 248 138 11 248 138 11 248 138 11 0 0 0 0 0 0 248 138 11 248 138 11 248 138 11 248 138 11 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 245 124 21 245 124 21 245 124 21 245 124 21 245 124 21 245 124 21 245 124 21 0 0 0 0 0 0 245 124 21 245 124 21 245 124 21 245 124 21 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 59 9 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 59 9 100 0 0 0 0 0 0 59 9 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 57 9 98 0 0 0 0 0 0 57 9 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 60 9 101 0 0 0 0 0 0 60 9 101 0 0 0 0 0 0 62 9 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 62 9 102 0 0 0 0 0 0 62 9 102 0 0 0 0 0 0 62 9 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 62 9 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 62 9 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 149 38 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 166 44 95 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 169 46 94 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 177 49 90 0 0 0 0 0 0 177 49 90 0 0 0 0 0 0 177 49 90 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 201 63 74 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 203 64 73 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 133 14 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 136 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 59 9 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 59 9 100 0 0 0 0 0 0 59 9 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 57 9 98 0 0 0 0 0 0 57 9 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 60 9 101 0 0 0 0 0 0 62 9 102 0 0 0 0 0 0 62 9 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 62 9 102 0 0 0 0 0 0 62 9 102 0 0 0 0 0 0 62 9 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 62 9 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 62 9 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 149 38 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 166 44 95 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 169 46 94 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 177 49 90 0 0 0 0 0 0 177 49 90 0 0 0 0 0 0 177 49 90 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 201 63 74 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 203 64 73 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 133 14 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 136 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 59 9 100 59 9 100 59 9 100 59 9 100 59 9 100 59 9 100 59 9 100 59 9 100 59 9 100 59 9 100 0 0 0 0 0 0 59 9 100 0 0 0 0 0 0 59 9 100 59 9 100 59 9 100 59 9 100 0 0 0 0 0 0 57 9 98 57 9 98 57 9 98 57 9 98 0 0 0 0 0 0 60 9 101 60 9 101 60 9 101 60 9 101 60 9 101 60 9 101 60 9 101 60 9 101 60 9 101 60 9 101 60 9 101 60 9 101 60 9 101 60 9 101 60 9 101 60 9 101 60 9 101 60 9 101 60 9 101 60 9 101 60 9 101 60 9 101 0 0 0 0 0 0 60 9 101 60 9 101 60 9 101 60 9 101 0 0 0 0 0 0 60 9 101 60 9 101 60 9 101 60 9 101 60 9 101 60 9 101 60 9 101 0 0 0 0 0 0 60 9 101 60 9 101 60 9 101 60 9 101 0 0 0 0 0 0 62 9 102 0 0 0 0 0 0 62 9 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 62 9 102 62 9 102 62 9 102 62 9 102 0 0 0 0 0 0 62 9 102 62 9 102 62 9 102 62 9 102 62 9 102 62 9 102 62 9 102 62 9 102 62 9 102 62 9 102 62 9 102 62 9 102 62 9 102 62 9 102 62 9 102 62 9 102 62 9 102 62 9 102 62 9 102 62 9 102 62 9 102 62 9 102 62 9 102 62 9 102 62 9 102 62 9 102 62 9 102 62 9 102 62 9 102 62 9 102 62 9 102 0 0 0 0 0 0 62 9 102 0 0 0 0 0 0 62 9 102 62 9 102 62 9 102 62 9 102 62 9 102 62 9 102 62 9 102 62 9 102 62 9 102 62 9 102 62 9 102 62 9 102 62 9 102 0 0 0 0 0 0 62 9 102 0 0 0 0 0 0 112 25 110 112 25 110 112 25 110 112 25 110 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 115 26 109 115 26 109 115 26 109 115 26 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 117 27 109 117 27 109 117 27 109 117 27 109 0 0 0 0 0 0 118 27 109 118 27 109 118 27 109 118 27 109 0 0 0 0 0 0 149 38 102 149 38 102 149 38 102 149 38 102 149 38 102 149 38 102 149 38 102 149 38 102 149 38 102 149 38 102 0 0 0 0 0 0 153 40 100 153 40 100 153 40 100 153 40 100 0 0 0 0 0 0 153 40 100 153 40 100 153 40 100 153 40 100 153 40 100 153 40 100 153 40 100 0 0 0 0 0 0 166 44 95 166 44 95 166 44 95 166 44 95 166 44 95 166 44 95 166 44 95 166 44 95 166 44 95 166 44 95 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 169 46 94 169 46 94 169 46 94 169 46 94 0 0 0 0 0 0 177 49 90 177 49 90 177 49 90 177 49 90 177 49 90 177 49 90 177 49 90 0 0 0 0 0 0 177 49 90 177 49 90 177 49 90 177 49 90 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 197 61 77 197 61 77 197 61 77 197 61 77 0 0 0 0 0 0 197 61 77 197 61 77 197 61 77 197 61 77 0 0 0 0 0 0 200 62 75 200 62 75 200 62 75 200 62 75 0 0 0 0 0 0 200 62 75 200 62 75 200 62 75 200 62 75 0 0 0 0 0 0 201 63 74 201 63 74 201 63 74 201 63 74 0 0 0 0 0 0 201 63 74 201 63 74 201 63 74 201 63 74 0 0 0 0 0 0 203 64 73 203 64 73 203 64 73 203 64 73 203 64 73 203 64 73 203 64 73 0 0 0 0 0 0 247 133 14 247 133 14 247 133 14 247 133 14 247 133 14 247 133 14 247 133 14 247 133 14 247 133 14 247 133 14 0 0 0 0 0 0 247 131 16 247 131 16 247 131 16 247 131 16 0 0 0 0 0 0 247 131 16 247 131 16 247 131 16 247 131 16 247 131 16 247 131 16 247 131 16 247 131 16 247 131 16 247 131 16 247 131 16 247 131 16 247 131 16 247 131 16 247 131 16 247 131 16 247 131 16 247 131 16 247 131 16 247 131 16 247 131 16 247 131 16 0 0 0 0 0 0 247 131 16 247 131 16 247 131 16 247 131 16 247 131 16 247 131 16 247 131 16 247 131 16 247 131 16 247 131 16 0 0 0 0 0 0 248 136 12 248 136 12 248 136 12 248 136 12 248 136 12 248 136 12 248 136 12 0 0 0 0 0 0 248 138 11 248 138 11 248 138 11 248 138 11 0 0 0 0 0 0 248 138 11 248 138 11 248 138 11 248 138 11 248 138 11 248 138 11 248 138 11 248 138 11 248 138 11 248 138 11 248 138 11 248 138 11 248 138 11 0 0 0 0 0 0 245 124 21 245 124 21 245 124 21 245 124 21 245 124 21 245 124 21 245 124 21 0 0 0 0 0 0 245 124 21 245 124 21 245 124 21 245 124 21 0 0 0 0 0 0 245 124 21 245 124 21 245 124 21 245 124 21 245 124 21 245 124 21 245 124 21 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 59 9 100 0 0 0 0 0 0 59 9 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 59 9 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 60 9 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 60 9 101 0 0 0 0 0 0 60 9 101 0 0 0 0 0 0 60 9 101 0 0 0 0 0 0 60 9 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 60 9 101 0 0 0 0 0 0 60 9 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 62 9 102 0 0 0 0 0 0 62 9 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 62 9 102 0 0 0 0 0 0 62 9 102 0 0 0 0 0 0 62 9 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 62 9 102 0 0 0 0 0 0 62 9 102 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 149 38 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 166 44 95 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 169 46 94 0 0 0 0 0 0 177 49 90 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 201 63 74 0 0 0 0 0 0 201 63 74 0 0 0 0 0 0 201 63 74 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 203 64 73 0 0 0 0 0 0 247 133 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 248 136 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 59 9 100 0 0 0 0 0 0 59 9 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 59 9 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 60 9 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 60 9 101 0 0 0 0 0 0 60 9 101 0 0 0 0 0 0 60 9 101 0 0 0 0 0 0 60 9 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 60 9 101 0 0 0 0 0 0 60 9 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 62 9 102 0 0 0 0 0 0 62 9 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 62 9 102 0 0 0 0 0 0 62 9 102 0 0 0 0 0 0 62 9 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 62 9 102 0 0 0 0 0 0 62 9 102 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 149 38 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 166 44 95 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 169 46 94 0 0 0 0 0 0 177 49 90 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 201 63 74 0 0 0 0 0 0 201 63 74 0 0 0 0 0 0 201 63 74 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 203 64 73 0 0 0 0 0 0 247 133 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 248 136 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 59 9 100 59 9 100 59 9 100 59 9 100 59 9 100 59 9 100 59 9 100 59 9 100 59 9 100 59 9 100 0 0 0 0 0 0 59 9 100 59 9 100 59 9 100 59 9 100 59 9 100 59 9 100 59 9 100 0 0 0 0 0 0 60 9 101 60 9 101 60 9 101 60 9 101 60 9 101 60 9 101 60 9 101 0 0 0 0 0 0 65 9 103 65 9 103 65 9 103 65 9 103 0 0 0 0 0 0 65 9 103 65 9 103 65 9 103 65 9 103 65 9 103 65 9 103 65 9 103 65 9 103 65 9 103 65 9 103 0 0 0 0 0 0 60 9 101 60 9 101 60 9 101 60 9 101 0 0 0 0 0 0 60 9 101 60 9 101 60 9 101 60 9 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 60 9 101 60 9 101 60 9 101 60 9 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 62 9 102 62 9 102 62 9 102 62 9 102 0 0 0 0 0 0 64 9 102 64 9 102 64 9 102 64 9 102 64 9 102 64 9 102 64 9 102 64 9 102 64 9 102 64 9 102 64 9 102 64 9 102 64 9 102 64 9 102 64 9 102 64 9 102 0 0 0 0 0 0 62 9 102 62 9 102 62 9 102 62 9 102 62 9 102 62 9 102 62 9 102 62 9 102 62 9 102 62 9 102 62 9 102 62 9 102 62 9 102 62 9 102 62 9 102 62 9 102 62 9 102 62 9 102 62 9 102 62 9 102 62 9 102 62 9 102 0 0 0 0 0 0 62 9 102 62 9 102 62 9 102 62 9 102 0 0 0 0 0 0 72 11 106 72 11 106 72 11 106 72 11 106 0 0 0 0 0 0 62 9 102 62 9 102 62 9 102 62 9 102 0 0 0 0 0 0 62 9 102 0 0 0 0 0 0 112 25 110 112 25 110 112 25 110 112 25 110 0 0 0 0 0 0 115 26 109 115 26 109 114 25 109 114 25 109 114 25 109 114 25 109 114 25 109 0 0 0 0 0 0 115 26 109 115 26 109 115 26 109 115 26 109 0 0 0 0 0 0 117 27 109 117 27 109 117 27 109 117 27 109 117 27 109 117 27 109 117 27 109 117 27 109 117 27 109 117 27 109 0 0 0 0 0 0 149 38 102 149 38 102 149 38 102 149 38 102 0 0 0 0 0 0 153 40 100 153 40 100 153 40 100 153 40 100 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 153 40 100 153 40 100 153 40 100 153 40 100 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 166 44 95 166 44 95 166 44 95 166 44 95 166 44 95 166 44 95 166 44 95 0 0 0 0 0 0 167 45 95 167 45 95 167 45 95 167 45 95 0 0 0 0 0 0 169 46 94 169 46 94 169 46 94 169 46 94 0 0 0 0 0 0 177 49 90 177 49 90 177 49 90 177 49 90 177 49 90 177 49 90 177 49 90 0 0 0 0 0 0 175 49 91 175 49 91 175 49 91 175 49 91 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 200 62 75 200 62 75 200 62 75 200 62 75 200 62 75 200 62 75 200 62 75 200 62 75 200 62 75 200 62 75 200 62 75 200 62 75 200 62 75 0 0 0 0 0 0 201 63 74 201 63 74 201 63 74 201 63 74 0 0 0 0 0 0 201 63 74 0 0 0 0 0 0 203 64 73 203 64 73 203 64 73 203 64 73 203 64 73 203 64 73 203 64 73 0 0 0 0 0 0 247 133 14 247 133 14 247 133 14 247 133 14 247 133 14 247 133 14 247 133 14 247 133 14 247 133 14 247 133 14 247 133 14 247 133 14 247 133 14 247 133 14 247 133 14 247 133 14 247 133 14 247 133 14 247 133 14 0 0 0 0 0 0 248 135 13 248 135 13 248 135 13 248 135 13 248 135 13 248 135 13 248 135 13 248 135 13 248 135 13 248 135 13 248 135 13 248 135 13 248 135 13 248 135 13 248 135 13 248 135 13 0 0 0 0 0 0 247 131 16 247 131 16 247 131 16 247 131 16 247 131 16 247 131 16 247 131 16 247 131 16 247 131 16 247 131 16 247 131 16 247 131 16 247 131 16 0 0 0 0 0 0 248 136 12 0 0 0 0 0 0 248 138 11 248 138 11 248 138 11 248 138 11 248 138 11 248 138 11 248 138 11 0 0 0 0 0 0 248 138 11 248 138 11 248 138 11 248 138 11 0 0 0 0 0 0 249 140 9 249 140 9 249 140 9 249 140 9 249 140 9 249 140 9 249 140 9 249 140 9 249 140 9 249 140 9 249 140 9 249 140 9 249 140 9 249 140 9 249 140 9 249 140 9 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 245 124 21 245 124 21 245 124 21 245 124 21 0 0 0 0 0 0 245 124 21 245 124 21 245 124 21 245 124 21 245 124 21 245 124 21 245 124 21 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 59 9 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 60 9 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65 9 103 0 0 0 0 0 0 65 9 103 0 0 0 0 0 0 65 9 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65 9 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 9 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 9 102 0 0 0 0 0 0 62 9 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 72 11 106 0 0 0 0 0 0 72 11 106 0 0 0 0 0 0 62 9 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 62 9 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 114 25 109 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 149 38 102 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 166 44 95 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 169 46 94 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 177 49 90 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 201 63 74 0 0 0 0 0 0 203 64 73 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 133 14 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 136 12 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 59 9 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 60 9 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65 9 103 0 0 0 0 0 0 65 9 103 0 0 0 0 0 0 65 9 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65 9 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 9 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 9 102 0 0 0 0 0 0 64 9 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 72 11 106 0 0 0 0 0 0 72 11 106 0 0 0 0 0 0 62 9 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 62 9 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 114 25 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 114 25 109 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 149 38 102 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 166 44 95 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 169 46 94 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 201 63 74 0 0 0 0 0 0 203 64 73 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 133 14 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 136 12 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 59 9 100 59 9 100 59 9 100 59 9 100 0 0 0 0 0 0 59 9 100 59 9 100 59 9 100 59 9 100 0 0 0 0 0 0 60 9 101 60 9 101 60 9 101 60 9 101 60 9 101 60 9 101 60 9 101 60 9 101 60 9 101 60 9 101 0 0 0 0 0 0 65 9 103 65 9 103 65 9 103 65 9 103 65 9 103 65 9 103 65 9 103 0 0 0 0 0 0 65 9 103 0 0 0 0 0 0 65 9 103 0 0 0 0 0 0 67 10 104 67 10 104 67 10 104 67 10 104 0 0 0 0 0 0 65 9 103 65 9 103 65 9 103 65 9 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 9 102 64 9 102 64 9 102 64 9 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 9 102 64 9 102 64 9 102 64 9 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 9 102 64 9 102 64 9 102 64 9 102 0 0 0 0 0 0 64 9 102 64 9 102 64 9 102 64 9 102 64 9 102 64 9 102 64 9 102 64 9 102 64 9 102 64 9 102 64 9 102 64 9 102 64 9 102 0 0 0 0 0 0 64 9 102 64 9 102 64 9 102 64 9 102 0 0 0 0 0 0 70 10 105 70 10 105 70 10 105 70 10 105 70 10 105 72 11 106 72 11 106 72 11 106 72 11 106 72 11 106 72 11 106 72 11 106 72 11 106 72 11 106 72 11 106 72 11 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 72 11 106 72 11 106 72 11 106 72 11 106 0 0 0 0 0 0 72 11 106 0 0 0 0 0 0 72 11 106 0 0 0 0 0 0 62 9 102 62 9 102 62 9 102 62 9 102 62 9 102 62 9 102 62 9 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 114 25 109 114 25 109 114 25 109 114 25 109 0 0 0 0 0 0 114 25 109 114 25 109 114 25 109 114 25 109 0 0 0 0 0 0 115 26 109 115 26 109 115 26 109 115 26 109 0 0 0 0 0 0 117 27 109 117 27 109 117 27 109 117 27 109 0 0 0 0 0 0 117 27 109 117 27 109 117 27 109 117 27 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 149 38 102 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 153 40 100 153 40 100 153 40 100 153 40 100 0 0 0 0 0 0 166 44 95 166 44 95 166 44 95 166 44 95 166 44 95 166 44 95 166 44 95 0 0 0 0 0 0 167 45 95 167 45 95 167 45 95 167 45 95 0 0 0 0 0 0 169 46 94 169 46 94 169 46 94 169 46 94 0 0 0 0 0 0 175 49 91 175 49 91 175 49 91 175 49 91 0 0 0 0 0 0 175 49 91 175 49 91 175 49 91 175 49 91 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 197 61 77 197 61 77 197 61 77 197 61 77 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 199 62 76 199 62 76 199 62 76 199 62 76 0 0 0 0 0 0 200 62 75 200 62 75 200 62 75 200 62 75 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 201 63 74 201 63 74 201 63 74 201 63 74 201 63 74 201 63 74 201 63 74 0 0 0 0 0 0 203 64 73 0 0 0 0 0 0 247 133 14 247 133 14 247 133 14 247 133 14 247 133 14 247 133 14 247 133 14 247 133 14 247 133 14 247 133 14 247 133 14 247 133 14 247 133 14 247 133 14 247 133 14 247 133 14 247 133 14 247 133 14 247 133 14 247 133 14 247 133 14 247 133 14 247 133 14 247 133 14 247 133 14 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 248 136 12 248 136 12 248 136 12 248 136 12 248 136 12 248 135 13 248 135 13 248 135 13 248 135 13 248 135 13 248 135 13 248 135 13 248 135 13 0 0 0 0 0 0 248 136 12 248 136 12 248 136 12 248 136 12 248 136 12 248 136 12 248 136 12 248 136 12 248 136 12 248 136 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 136 12 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 138 11 248 138 11 248 138 11 248 138 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 140 9 249 140 9 248 138 11 248 138 11 0 0 0 0 0 0 249 140 9 249 140 9 249 140 9 249 140 9 0 0 0 0 0 0 249 140 9 249 140 9 249 140 9 249 140 9 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 245 124 21 245 124 21 245 124 21 245 124 21 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 59 9 100 0 0 0 0 0 0 59 9 100 0 0 0 0 0 0 59 9 100 0 0 0 0 0 0 60 9 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65 9 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65 9 103 0 0 0 0 0 0 65 9 103 0 0 0 0 0 0 67 10 104 0 0 0 0 0 0 67 10 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65 9 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 9 102 0 0 0 0 0 0 64 9 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 9 102 0 0 0 0 0 0 64 9 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 9 102 0 0 0 0 0 0 64 9 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 9 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 70 10 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 72 11 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 72 11 106 0 0 0 0 0 0 72 11 106 0 0 0 0 0 0 72 11 106 0 0 0 0 0 0 72 11 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 114 25 109 0 0 0 0 0 0 114 25 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 149 38 102 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 166 44 95 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 169 46 94 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 201 63 74 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 203 64 73 0 0 0 0 0 0 247 133 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 248 136 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 136 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 136 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 136 12 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 59 9 100 0 0 0 0 0 0 59 9 100 0 0 0 0 0 0 59 9 100 0 0 0 0 0 0 60 9 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65 9 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65 9 103 0 0 0 0 0 0 65 9 103 0 0 0 0 0 0 67 10 104 0 0 0 0 0 0 67 10 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65 9 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65 9 103 0 0 0 0 0 0 64 9 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 9 102 0 0 0 0 0 0 64 9 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 9 102 0 0 0 0 0 0 64 9 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 9 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 70 10 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 72 11 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 72 11 106 0 0 0 0 0 0 72 11 106 0 0 0 0 0 0 72 11 106 0 0 0 0 0 0 72 11 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 114 25 109 0 0 0 0 0 0 114 25 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 149 38 102 0 0 0 0 0 0 152 39 101 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 166 44 95 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 169 46 94 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 201 63 74 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 203 64 73 0 0 0 0 0 0 247 133 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 248 136 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 136 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 136 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 136 12 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 59 9 100 59 9 100 59 9 100 59 9 100 0 0 0 0 0 0 59 9 100 0 0 0 0 0 0 60 9 101 60 9 101 60 9 101 60 9 101 0 0 0 0 0 0 65 9 103 65 9 103 65 9 103 65 9 103 65 9 103 65 9 103 65 9 103 0 0 0 0 0 0 65 9 103 65 9 103 67 10 104 67 10 104 0 0 0 0 0 0 65 9 103 65 9 103 65 9 103 65 9 103 0 0 0 0 0 0 67 10 104 0 0 0 0 0 0 67 10 104 67 10 104 67 10 104 67 10 104 0 0 0 0 0 0 65 9 103 65 9 103 65 9 103 65 9 103 65 9 103 65 9 103 65 9 103 0 0 0 0 0 0 64 9 102 64 9 102 64 9 102 64 9 102 64 9 102 64 9 102 64 9 102 0 0 0 0 0 0 64 9 102 64 9 102 64 9 102 64 9 102 64 9 102 64 9 102 64 9 102 0 0 0 0 0 0 64 9 102 64 9 102 64 9 102 64 9 102 64 9 102 64 9 102 64 9 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 9 102 64 9 102 64 9 102 64 9 102 0 0 0 0 0 0 70 10 105 70 10 105 70 10 105 70 10 105 70 10 105 70 10 105 70 10 105 0 0 0 0 0 0 74 11 106 74 11 106 74 11 106 74 11 106 74 11 106 74 11 106 74 11 106 74 11 106 74 11 106 74 11 106 0 0 0 0 0 0 72 11 106 72 11 106 72 11 106 72 11 106 72 11 106 72 11 106 72 11 106 0 0 0 0 0 0 72 11 106 72 11 106 72 11 106 72 11 106 0 0 0 0 0 0 72 11 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 72 11 106 72 11 106 72 11 106 72 11 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 114 25 109 0 0 0 0 0 0 114 25 109 114 25 109 114 25 109 114 25 109 114 25 109 114 25 109 114 25 109 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 117 27 109 117 27 109 117 27 109 117 27 109 0 0 0 0 0 0 149 38 102 149 38 102 149 38 102 149 38 102 0 0 0 0 0 0 149 38 102 0 0 0 0 0 0 152 39 101 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 153 40 100 153 40 100 153 40 100 153 40 100 153 40 100 153 40 100 153 40 100 0 0 0 0 0 0 166 44 95 166 44 95 166 44 95 166 44 95 166 44 95 166 44 95 166 44 95 0 0 0 0 0 0 167 45 95 167 45 95 167 45 95 167 45 95 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 169 46 94 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 175 49 91 175 49 91 175 49 91 175 49 91 175 49 91 175 49 91 175 49 91 0 0 0 0 0 0 197 61 77 197 61 77 197 61 77 197 61 77 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 197 61 77 197 61 77 197 61 77 197 61 77 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 200 62 75 200 62 75 200 62 75 200 62 75 0 0 0 0 0 0 201 63 74 201 63 74 201 63 74 201 63 74 0 0 0 0 0 0 203 64 73 203 64 73 203 64 73 203 64 73 0 0 0 0 0 0 247 133 14 247 133 14 247 133 14 247 133 14 0 0 0 0 0 0 248 135 13 248 135 13 248 135 13 248 135 13 0 0 0 0 0 0 248 135 13 248 135 13 248 135 13 248 135 13 0 0 0 0 0 0 248 135 13 248 135 13 248 135 13 248 135 13 248 135 13 248 135 13 248 135 13 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 248 136 12 248 136 12 248 136 12 248 136 12 248 136 12 248 136 12 248 136 12 0 0 0 0 0 0 248 136 12 248 136 12 248 136 12 248 136 12 0 0 0 0 0 0 248 136 12 248 136 12 248 136 12 248 136 12 0 0 0 0 0 0 248 136 12 248 136 12 248 136 12 248 136 12 0 0 0 0 0 0 248 136 12 248 136 12 248 136 12 248 136 12 0 0 0 0 0 0 248 138 11 248 138 11 248 138 11 248 138 11 248 138 11 248 138 11 248 138 11 0 0 0 0 0 0 248 138 11 248 138 11 248 138 11 248 138 11 248 138 11 248 138 11 248 138 11 248 138 11 248 138 11 248 138 11 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 249 140 9 249 140 9 249 140 9 249 140 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 124 21 245 124 21 245 124 21 245 124 21 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 59 9 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 60 9 101 0 0 0 0 0 0 65 9 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65 9 103 0 0 0 0 0 0 67 10 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 67 10 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 67 10 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 9 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 9 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 70 10 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 74 11 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 74 11 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 72 11 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 72 11 106 0 0 0 0 0 0 72 11 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 114 25 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 114 25 109 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 149 38 102 0 0 0 0 0 0 149 38 102 0 0 0 0 0 0 149 38 102 0 0 0 0 0 0 152 39 101 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 166 44 95 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 169 46 94 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 201 63 74 0 0 0 0 0 0 203 64 73 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 133 14 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 136 12 0 0 0 0 0 0 248 136 12 0 0 0 0 0 0 248 136 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 136 12 0 0 0 0 0 0 248 136 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 136 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 59 9 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 60 9 101 0 0 0 0 0 0 65 9 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65 9 103 0 0 0 0 0 0 67 10 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 67 10 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 67 10 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 9 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 64 9 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 70 10 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 74 11 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 74 11 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 72 11 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 72 11 106 0 0 0 0 0 0 72 11 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 114 25 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 114 25 109 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 149 38 102 0 0 0 0 0 0 149 38 102 0 0 0 0 0 0 149 38 102 0 0 0 0 0 0 152 39 101 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 166 44 95 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 169 46 94 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 201 63 74 0 0 0 0 0 0 203 64 73 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 133 14 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 136 12 0 0 0 0 0 0 248 136 12 0 0 0 0 0 0 248 136 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 136 12 0 0 0 0 0 0 248 136 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 136 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 59 9 100 59 9 100 59 9 100 59 9 100 59 9 100 60 9 101 60 9 101 0 0 0 0 0 0 65 9 103 65 9 103 65 9 103 65 9 103 0 0 0 0 0 0 65 9 103 65 9 103 65 9 103 65 9 103 0 0 0 0 0 0 67 10 104 67 10 104 67 10 104 67 10 104 67 10 104 67 10 104 67 10 104 0 0 0 0 0 0 67 10 104 0 0 0 0 0 0 67 10 104 67 10 104 67 10 104 67 10 104 0 0 0 0 0 0 67 10 104 67 10 104 67 10 104 67 10 104 0 0 0 0 0 0 69 10 105 69 10 105 69 10 105 69 10 105 69 10 105 69 10 105 69 10 105 0 0 0 0 0 0 69 10 105 69 10 105 69 10 105 69 10 105 69 10 105 69 10 105 69 10 105 0 0 0 0 0 0 70 10 105 70 10 105 70 10 105 70 10 105 70 10 105 70 10 105 70 10 105 0 0 0 0 0 0 64 9 102 64 9 102 64 9 102 64 9 102 64 9 102 64 9 102 64 9 102 0 0 0 0 0 0 70 10 105 70 10 105 70 10 105 70 10 105 0 0 0 0 0 0 74 11 106 74 11 106 74 11 106 74 11 106 0 0 0 0 0 0 74 11 106 74 11 106 74 11 106 74 11 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 74 11 106 74 11 106 74 11 106 74 11 106 0 0 0 0 0 0 74 11 106 74 11 106 74 11 106 74 11 106 0 0 0 0 0 0 72 11 106 72 11 106 72 11 106 72 11 106 0 0 0 0 0 0 72 11 106 72 11 106 72 11 106 72 11 106 72 11 106 72 11 106 72 11 106 0 0 0 0 0 0 72 11 106 72 11 106 72 11 106 72 11 106 0 0 0 0 0 0 114 25 109 114 25 109 114 25 109 114 25 109 0 0 0 0 0 0 114 25 109 114 25 109 114 25 109 114 25 109 0 0 0 0 0 0 114 25 109 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 117 27 109 117 27 109 117 27 109 117 27 109 0 0 0 0 0 0 149 38 102 149 38 102 149 38 102 149 38 102 0 0 0 0 0 0 149 38 102 149 38 102 149 38 102 149 38 102 0 0 0 0 0 0 152 39 101 0 0 0 0 0 0 153 40 100 153 40 100 153 40 100 153 40 100 0 0 0 0 0 0 153 40 100 153 40 100 153 40 100 153 40 100 153 40 100 153 40 100 153 40 100 153 40 100 153 40 100 153 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 166 44 95 166 44 95 166 44 95 166 44 95 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 169 46 94 169 46 94 169 46 94 169 46 94 169 46 94 169 46 94 169 46 94 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 175 49 91 175 49 91 175 49 91 175 49 91 175 49 91 175 49 91 175 49 91 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 197 61 77 197 61 77 197 61 77 197 61 77 0 0 0 0 0 0 197 61 77 197 61 77 197 61 77 197 61 77 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 200 62 75 200 62 75 200 62 75 200 62 75 200 62 75 200 62 75 200 62 75 0 0 0 0 0 0 201 63 74 201 63 74 201 63 74 201 63 74 0 0 0 0 0 0 203 64 73 203 64 73 203 64 73 203 64 73 0 0 0 0 0 0 248 135 13 248 135 13 247 133 14 247 133 14 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 135 13 248 135 13 248 135 13 248 135 13 0 0 0 0 0 0 249 144 8 249 144 8 249 144 8 249 144 8 0 0 0 0 0 0 248 136 12 248 136 12 248 136 12 248 136 12 0 0 0 0 0 0 248 136 12 248 136 12 248 136 12 248 136 12 248 136 12 248 136 12 248 136 12 0 0 0 0 0 0 248 136 12 248 136 12 248 136 12 248 136 12 248 136 12 248 136 12 248 136 12 0 0 0 0 0 0 249 144 8 249 144 8 249 144 8 249 144 8 0 0 0 0 0 0 249 144 8 249 144 8 249 144 8 249 144 8 0 0 0 0 0 0 249 142 8 249 142 8 249 142 8 249 142 8 249 142 8 249 142 8 249 142 8 249 142 8 249 142 8 249 142 8 0 0 0 0 0 0 249 140 9 249 140 9 249 140 9 249 140 9 0 0 0 0 0 0 249 140 9 249 140 9 249 140 9 249 140 9 0 0 0 0 0 0 249 140 9 249 140 9 249 140 9 249 140 9 249 140 9 249 140 9 249 140 9 249 140 9 249 140 9 249 140 9 249 140 9 249 140 9 249 140 9 249 140 9 249 140 9 249 140 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65 9 103 0 0 0 0 0 0 65 9 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 67 10 104 0 0 0 0 0 0 67 10 104 0 0 0 0 0 0 67 10 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 67 10 104 0 0 0 0 0 0 67 10 104 0 0 0 0 0 0 69 10 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 69 10 105 0 0 0 0 0 0 69 10 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 69 10 105 0 0 0 0 0 0 70 10 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 70 10 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 70 10 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 74 11 106 0 0 0 0 0 0 74 11 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 74 11 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 74 11 106 0 0 0 0 0 0 74 11 106 0 0 0 0 0 0 74 11 106 0 0 0 0 0 0 72 11 106 0 0 0 0 0 0 72 11 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 72 11 106 0 0 0 0 0 0 114 25 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 114 25 109 0 0 0 0 0 0 114 25 109 0 0 0 0 0 0 114 25 109 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 149 38 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 152 39 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 166 44 95 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 169 46 94 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 201 63 74 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 203 64 73 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 144 8 0 0 0 0 0 0 249 144 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 144 8 0 0 0 0 0 0 249 144 8 0 0 0 0 0 0 249 144 8 0 0 0 0 0 0 249 144 8 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65 9 103 0 0 0 0 0 0 65 9 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 67 10 104 0 0 0 0 0 0 67 10 104 0 0 0 0 0 0 67 10 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 67 10 104 0 0 0 0 0 0 67 10 104 0 0 0 0 0 0 69 10 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 69 10 105 0 0 0 0 0 0 69 10 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 69 10 105 0 0 0 0 0 0 69 10 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 70 10 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 70 10 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 74 11 106 0 0 0 0 0 0 74 11 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 74 11 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 74 11 106 0 0 0 0 0 0 74 11 106 0 0 0 0 0 0 74 11 106 0 0 0 0 0 0 74 11 106 0 0 0 0 0 0 72 11 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 72 11 106 0 0 0 0 0 0 114 25 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 114 25 109 0 0 0 0 0 0 114 25 109 0 0 0 0 0 0 114 25 109 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 149 38 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 152 39 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 166 44 95 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 169 46 94 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 201 63 74 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 203 64 73 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 144 8 0 0 0 0 0 0 249 144 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 144 8 0 0 0 0 0 0 249 144 8 0 0 0 0 0 0 249 144 8 0 0 0 0 0 0 249 144 8 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65 9 103 0 0 0 0 0 0 65 9 103 0 0 0 0 0 0 67 10 104 67 10 104 67 10 104 67 10 104 67 10 104 67 10 104 67 10 104 67 10 104 67 10 104 67 10 104 0 0 0 0 0 0 67 10 104 0 0 0 0 0 0 67 10 104 67 10 104 67 10 104 67 10 104 67 10 104 67 10 104 67 10 104 0 0 0 0 0 0 67 10 104 0 0 0 0 0 0 69 10 105 69 10 105 69 10 105 69 10 105 0 0 0 0 0 0 69 10 105 0 0 0 0 0 0 69 10 105 0 0 0 0 0 0 69 10 105 69 10 105 69 10 105 69 10 105 0 0 0 0 0 0 69 10 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 70 10 105 70 10 105 70 10 105 70 10 105 70 10 105 70 10 105 70 10 105 0 0 0 0 0 0 70 10 105 70 10 105 70 10 105 70 10 105 0 0 0 0 0 0 74 11 106 74 11 106 74 11 106 74 11 106 0 0 0 0 0 0 74 11 106 74 11 106 74 11 106 74 11 106 74 11 106 74 11 106 74 11 106 0 0 0 0 0 0 74 11 106 74 11 106 74 11 106 74 11 106 0 0 0 0 0 0 74 11 106 74 11 106 74 11 106 74 11 106 0 0 0 0 0 0 74 11 106 74 11 106 74 11 106 74 11 106 0 0 0 0 0 0 72 11 106 72 11 106 72 11 106 72 11 106 72 11 106 72 11 106 72 11 106 0 0 0 0 0 0 72 11 106 72 11 106 72 11 106 72 11 106 72 11 106 72 11 106 72 11 106 0 0 0 0 0 0 114 25 109 114 25 109 114 25 109 114 25 109 114 25 109 114 25 109 114 25 109 0 0 0 0 0 0 114 25 109 0 0 0 0 0 0 114 25 109 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 117 27 109 117 27 109 117 27 109 117 27 109 0 0 0 0 0 0 149 38 102 149 38 102 149 38 102 149 38 102 0 0 0 0 0 0 150 38 102 150 38 102 150 38 102 150 38 102 0 0 0 0 0 0 152 39 101 152 39 101 152 39 101 152 39 101 152 39 101 152 39 101 152 39 101 152 39 101 152 39 101 152 39 101 152 39 101 152 39 101 152 39 101 0 0 0 0 0 0 166 44 95 166 44 95 166 44 95 166 44 95 166 44 95 166 44 95 166 44 95 166 44 95 166 44 95 166 44 95 0 0 0 0 0 0 167 45 95 167 45 95 167 45 95 167 45 95 0 0 0 0 0 0 169 46 94 169 46 94 169 46 94 169 46 94 169 46 94 169 46 94 169 46 94 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 175 49 91 175 49 91 175 49 91 175 49 91 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 197 61 77 197 61 77 197 61 77 197 61 77 0 0 0 0 0 0 197 61 77 197 61 77 197 61 77 197 61 77 197 61 77 197 61 77 197 61 77 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 199 62 76 199 62 76 199 62 76 199 62 76 0 0 0 0 0 0 200 62 75 200 62 75 200 62 75 200 62 75 0 0 0 0 0 0 201 63 74 201 63 74 201 63 74 201 63 74 0 0 0 0 0 0 203 64 73 203 64 73 203 64 73 203 64 73 0 0 0 0 0 0 248 135 13 248 135 13 248 135 13 248 135 13 248 135 13 248 135 13 248 135 13 0 0 0 0 0 0 248 135 13 248 135 13 248 135 13 248 135 13 0 0 0 0 0 0 248 135 13 248 135 13 248 135 13 248 135 13 0 0 0 0 0 0 250 145 7 250 145 7 249 144 8 249 144 8 249 144 8 249 144 8 249 144 8 249 144 8 249 144 8 249 144 8 0 0 0 0 0 0 249 144 8 249 144 8 249 144 8 249 144 8 249 144 8 249 144 8 249 144 8 249 144 8 249 144 8 249 144 8 249 144 8 249 144 8 249 144 8 249 144 8 249 144 8 249 144 8 249 144 8 249 144 8 249 144 8 249 144 8 249 144 8 249 144 8 0 0 0 0 0 0 249 144 8 249 144 8 249 144 8 249 144 8 0 0 0 0 0 0 249 144 8 249 144 8 249 144 8 249 144 8 0 0 0 0 0 0 249 144 8 0 0 0 0 0 0 249 142 8 249 142 8 249 142 8 249 142 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 142 8 249 142 8 249 142 8 249 142 8 0 0 0 0 0 0 249 140 9 249 140 9 249 140 9 249 140 9 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 249 142 8 249 142 8 249 142 8 249 142 8 249 142 8 249 142 8 249 142 8 249 142 8 249 140 9 249 140 9 249 140 9 249 140 9 249 140 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65 9 103 0 0 0 0 0 0 65 9 103 0 0 0 0 0 0 67 10 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 67 10 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 67 10 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 69 10 105 0 0 0 0 0 0 69 10 105 0 0 0 0 0 0 69 10 105 0 0 0 0 0 0 69 10 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 69 10 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 70 10 105 0 0 0 0 0 0 70 10 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 74 11 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 74 11 106 0 0 0 0 0 0 74 11 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 72 11 106 0 0 0 0 0 0 72 11 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 114 25 109 0 0 0 0 0 0 114 25 109 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 149 38 102 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 152 39 101 0 0 0 0 0 0 166 44 95 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 169 46 94 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 201 63 74 0 0 0 0 0 0 203 64 73 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 145 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 144 8 0 0 0 0 0 0 249 144 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 144 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65 9 103 0 0 0 0 0 0 65 9 103 0 0 0 0 0 0 67 10 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 67 10 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 67 10 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 69 10 105 0 0 0 0 0 0 69 10 105 0 0 0 0 0 0 69 10 105 0 0 0 0 0 0 69 10 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 69 10 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 70 10 105 0 0 0 0 0 0 70 10 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 74 11 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 74 11 106 0 0 0 0 0 0 74 11 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 72 11 106 0 0 0 0 0 0 72 11 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 114 25 109 0 0 0 0 0 0 114 25 109 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 149 38 102 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 152 39 101 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 169 46 94 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 201 63 74 0 0 0 0 0 0 203 64 73 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 145 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 144 8 0 0 0 0 0 0 249 144 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 144 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65 9 103 0 0 0 0 0 0 65 9 103 0 0 0 0 0 0 67 10 104 67 10 104 67 10 104 67 10 104 67 10 104 67 10 104 67 10 104 67 10 104 67 10 104 67 10 104 0 0 0 0 0 0 67 10 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 15 109 85 15 109 85 15 109 85 15 109 0 0 0 0 0 0 67 10 104 67 10 104 67 10 104 67 10 104 0 0 0 0 0 0 69 10 105 0 0 0 0 0 0 69 10 105 69 10 105 69 10 105 69 10 105 0 0 0 0 0 0 69 10 105 69 10 105 69 10 105 69 10 105 0 0 0 0 0 0 69 10 105 0 0 0 0 0 0 70 10 105 70 10 105 70 10 105 70 10 105 70 10 105 70 10 105 70 10 105 70 10 105 70 10 105 70 10 105 0 0 0 0 0 0 70 10 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 74 11 106 74 11 106 74 11 106 74 11 106 74 11 106 74 11 106 74 11 106 74 11 106 74 11 106 74 11 106 74 11 106 74 11 106 74 11 106 74 11 106 74 11 106 74 11 106 0 0 0 0 0 0 74 11 106 74 11 106 74 11 106 74 11 106 74 11 106 74 11 106 74 11 106 0 0 0 0 0 0 75 12 107 75 12 107 75 12 107 75 12 107 0 0 0 0 0 0 75 12 107 75 12 107 75 12 107 75 12 107 0 0 0 0 0 0 72 11 106 72 11 106 72 11 106 72 11 106 0 0 0 0 0 0 75 12 107 75 12 107 75 12 107 75 12 107 75 12 107 75 12 107 75 12 107 0 0 0 0 0 0 75 12 107 75 12 107 75 12 107 75 12 107 0 0 0 0 0 0 114 25 109 0 0 0 0 0 0 114 25 109 0 0 0 0 0 0 117 27 109 117 27 109 117 27 109 117 27 109 0 0 0 0 0 0 149 38 102 149 38 102 149 38 102 149 38 102 149 38 102 149 38 102 149 38 102 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 152 39 101 152 39 101 152 39 101 152 39 101 0 0 0 0 0 0 152 39 101 152 39 101 152 39 101 152 39 101 0 0 0 0 0 0 152 39 101 0 0 0 0 0 0 167 45 95 167 45 95 167 45 95 167 45 95 0 0 0 0 0 0 167 45 95 167 45 95 167 45 95 167 45 95 167 45 95 167 45 95 167 45 95 0 0 0 0 0 0 169 46 94 169 46 94 169 46 94 169 46 94 169 46 94 169 46 94 169 46 94 169 46 94 169 46 94 169 46 94 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 175 49 91 175 49 91 175 49 91 175 49 91 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 199 62 76 199 62 76 199 62 76 199 62 76 0 0 0 0 0 0 199 62 76 199 62 76 199 62 76 199 62 76 199 62 76 199 62 76 199 62 76 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 201 63 74 201 63 74 201 63 74 201 63 74 201 63 74 201 63 74 201 63 74 0 0 0 0 0 0 203 64 73 203 64 73 203 64 73 203 64 73 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 153 6 251 153 6 251 153 6 251 153 6 0 0 0 0 0 0 250 151 6 250 151 6 250 151 6 250 151 6 0 0 0 0 0 0 250 151 6 250 151 6 250 151 6 250 151 6 0 0 0 0 0 0 250 145 7 250 145 7 250 145 7 250 145 7 250 145 7 250 145 7 250 145 7 250 145 7 250 145 7 250 145 7 250 145 7 250 145 7 250 145 7 250 145 7 250 145 7 250 145 7 250 145 7 250 145 7 250 145 7 250 145 7 250 145 7 250 145 7 250 145 7 250 145 7 250 145 7 250 145 7 250 145 7 250 145 7 250 145 7 250 145 7 250 145 7 0 0 0 0 0 0 249 144 8 249 144 8 249 144 8 249 144 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 145 7 250 145 7 250 145 7 250 145 7 0 0 0 0 0 0 249 144 8 249 144 8 249 144 8 249 144 8 0 0 0 0 0 0 249 142 8 249 142 8 249 142 8 249 142 8 249 142 8 249 144 8 249 144 8 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 249 142 8 249 142 8 249 142 8 249 142 8 0 0 0 0 0 0 249 140 9 249 140 9 249 140 9 249 140 9 0 0 0 0 0 0 249 142 8 249 142 8 249 142 8 249 142 8 249 142 8 249 142 8 249 142 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65 9 103 0 0 0 0 0 0 65 9 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 67 10 104 0 0 0 0 0 0 67 10 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 15 109 0 0 0 0 0 0 85 15 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 67 10 104 0 0 0 0 0 0 69 10 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 69 10 105 0 0 0 0 0 0 69 10 105 0 0 0 0 0 0 70 10 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 70 10 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 74 11 106 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 114 25 109 0 0 0 0 0 0 114 25 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 149 38 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 152 39 101 0 0 0 0 0 0 152 39 101 0 0 0 0 0 0 152 39 101 0 0 0 0 0 0 152 39 101 0 0 0 0 0 0 152 39 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 169 46 94 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 201 63 74 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 203 64 73 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 153 6 0 0 0 0 0 0 251 153 6 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 145 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 145 7 0 0 0 0 0 0 250 145 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 144 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 144 8 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65 9 103 0 0 0 0 0 0 65 9 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 67 10 104 0 0 0 0 0 0 67 10 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 15 109 0 0 0 0 0 0 85 15 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 67 10 104 0 0 0 0 0 0 69 10 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 69 10 105 0 0 0 0 0 0 69 10 105 0 0 0 0 0 0 70 10 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 70 10 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 114 25 109 0 0 0 0 0 0 114 25 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 149 38 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 152 39 101 0 0 0 0 0 0 152 39 101 0 0 0 0 0 0 152 39 101 0 0 0 0 0 0 152 39 101 0 0 0 0 0 0 152 39 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 169 46 94 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 201 63 74 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 203 64 73 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 153 6 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 145 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 145 7 0 0 0 0 0 0 250 145 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 144 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 144 8 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65 9 103 65 9 103 65 9 103 65 9 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 67 10 104 67 10 104 67 10 104 67 10 104 0 0 0 0 0 0 85 15 109 85 15 109 85 15 109 85 15 109 0 0 0 0 0 0 85 15 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 67 10 104 67 10 104 69 10 105 69 10 105 0 0 0 0 0 0 69 10 105 69 10 105 69 10 105 69 10 105 69 10 105 69 10 105 69 10 105 69 10 105 69 10 105 69 10 105 0 0 0 0 0 0 69 10 105 0 0 0 0 0 0 70 10 105 70 10 105 70 10 105 70 10 105 70 10 105 70 10 105 70 10 105 0 0 0 0 0 0 70 10 105 70 10 105 70 10 105 70 10 105 0 0 0 0 0 0 79 13 108 79 13 108 79 13 108 79 13 108 79 13 108 79 13 108 79 13 108 79 13 108 79 13 108 79 13 108 79 13 108 79 13 108 79 13 108 0 0 0 0 0 0 79 13 108 79 13 108 79 13 108 79 13 108 0 0 0 0 0 0 79 13 108 79 13 108 79 13 108 79 13 108 0 0 0 0 0 0 75 12 107 75 12 107 75 12 107 75 12 107 0 0 0 0 0 0 75 12 107 75 12 107 75 12 107 75 12 107 0 0 0 0 0 0 75 12 107 75 12 107 75 12 107 75 12 107 75 12 107 75 12 107 75 12 107 0 0 0 0 0 0 75 12 107 75 12 107 75 12 107 75 12 107 0 0 0 0 0 0 75 12 107 75 12 107 75 12 107 75 12 107 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 114 25 109 0 0 0 0 0 0 114 25 109 114 25 109 114 25 109 114 25 109 114 25 109 114 25 109 114 25 109 0 0 0 0 0 0 149 38 102 149 38 102 149 38 102 149 38 102 0 0 0 0 0 0 150 38 102 150 38 102 150 38 102 150 38 102 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 152 39 101 0 0 0 0 0 0 152 39 101 152 39 101 152 39 101 152 39 101 0 0 0 0 0 0 152 39 101 152 39 101 152 39 101 152 39 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 167 45 95 167 45 95 167 45 95 167 45 95 0 0 0 0 0 0 169 46 94 169 46 94 169 46 94 169 46 94 0 0 0 0 0 0 169 46 94 169 46 94 169 46 94 169 46 94 0 0 0 0 0 0 172 47 92 172 47 92 172 47 92 172 47 92 0 0 0 0 0 0 175 49 91 175 49 91 175 49 91 175 49 91 175 49 91 174 48 91 174 48 91 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 199 62 76 199 62 76 199 62 76 199 62 76 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 199 62 76 199 62 76 199 62 76 199 62 76 0 0 0 0 0 0 199 62 76 199 62 76 199 62 76 199 62 76 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 201 63 74 0 0 0 0 0 0 201 63 74 201 63 74 201 63 74 201 63 74 0 0 0 0 0 0 203 64 73 203 64 73 203 64 73 203 64 73 0 0 0 0 0 0 251 153 6 251 153 6 251 153 6 251 153 6 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 250 151 6 250 151 6 250 151 6 250 151 6 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 250 151 6 250 151 6 250 151 6 250 151 6 0 0 0 0 0 0 250 149 6 250 149 6 250 149 6 250 149 6 250 149 6 250 149 6 250 149 6 250 149 6 250 149 6 250 149 6 250 149 6 250 149 6 250 149 6 0 0 0 0 0 0 250 145 7 250 145 7 250 145 7 250 145 7 250 145 7 250 145 7 250 145 7 250 145 7 250 145 7 250 145 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 145 7 250 145 7 250 145 7 250 145 7 250 145 7 250 145 7 250 145 7 0 0 0 0 0 0 250 145 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 144 8 249 144 8 249 144 8 249 144 8 0 0 0 0 0 0 249 144 8 249 144 8 249 144 8 249 144 8 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 249 142 8 249 142 8 249 142 8 249 142 8 0 0 0 0 0 0 249 142 8 249 142 8 249 142 8 249 142 8 249 142 8 249 142 8 249 142 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 15 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 15 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 69 10 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 69 10 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 70 10 105 0 0 0 0 0 0 70 10 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 114 25 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 114 25 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 149 38 102 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 152 39 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 169 46 94 0 0 0 0 0 0 169 46 94 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 169 46 94 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 201 63 74 0 0 0 0 0 0 201 63 74 0 0 0 0 0 0 201 63 74 0 0 0 0 0 0 203 64 73 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 153 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 250 149 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 149 6 0 0 0 0 0 0 250 145 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 145 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 145 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 144 8 0 0 0 0 0 0 249 144 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 15 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 15 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 69 10 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 69 10 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 70 10 105 0 0 0 0 0 0 70 10 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 114 25 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 114 25 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 149 38 102 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 152 39 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 169 46 94 0 0 0 0 0 0 169 46 94 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 169 46 94 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 201 63 74 0 0 0 0 0 0 201 63 74 0 0 0 0 0 0 201 63 74 0 0 0 0 0 0 203 64 73 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 153 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 149 6 0 0 0 0 0 0 250 145 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 145 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 145 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 144 8 0 0 0 0 0 0 249 144 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 87 15 109 87 15 109 85 15 109 85 15 109 0 0 0 0 0 0 85 15 109 85 15 109 85 15 109 85 15 109 0 0 0 0 0 0 85 15 109 0 0 0 0 0 0 85 15 109 85 15 109 85 15 109 85 15 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 69 10 105 69 10 105 69 10 105 69 10 105 69 10 105 69 10 105 69 10 105 69 10 105 69 10 105 69 10 105 0 0 0 0 0 0 69 10 105 0 0 0 0 0 0 70 10 105 70 10 105 70 10 105 70 10 105 70 10 105 70 10 105 70 10 105 0 0 0 0 0 0 70 10 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 79 13 108 79 13 108 79 13 108 79 13 108 0 0 0 0 0 0 79 13 108 79 13 108 79 13 108 79 13 108 0 0 0 0 0 0 79 13 108 79 13 108 79 13 108 79 13 108 0 0 0 0 0 0 79 13 108 79 13 108 79 13 108 79 13 108 0 0 0 0 0 0 79 13 108 79 13 108 79 13 108 79 13 108 0 0 0 0 0 0 77 12 107 77 12 107 77 12 107 77 12 107 77 12 107 77 12 107 77 12 107 77 12 107 77 12 107 77 12 107 77 12 107 77 12 107 77 12 107 0 0 0 0 0 0 75 12 107 75 12 107 75 12 107 75 12 107 75 12 107 75 12 107 75 12 107 0 0 0 0 0 0 75 12 107 75 12 107 75 12 107 75 12 107 75 12 107 75 12 107 75 12 107 0 0 0 0 0 0 114 25 109 114 25 109 114 25 109 114 25 109 114 25 109 114 25 109 114 25 109 0 0 0 0 0 0 114 25 109 0 0 0 0 0 0 149 38 102 149 38 102 149 38 102 149 38 102 0 0 0 0 0 0 150 38 102 150 38 102 150 38 102 150 38 102 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 152 39 101 152 39 101 152 39 101 152 39 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 171 46 93 171 46 93 171 46 93 171 46 93 171 46 93 169 46 94 169 46 94 169 46 94 169 46 94 169 46 94 0 0 0 0 0 0 169 46 94 169 46 94 169 46 94 169 46 94 169 46 94 169 46 94 169 46 94 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 174 48 91 174 48 91 174 48 91 174 48 91 174 48 91 174 48 91 174 48 91 0 0 0 0 0 0 175 49 91 175 49 91 175 49 91 175 49 91 0 0 0 0 0 0 199 62 76 199 62 76 199 62 76 199 62 76 199 62 76 199 62 76 199 62 76 0 0 0 0 0 0 199 62 76 199 62 76 199 62 76 199 62 76 199 62 76 199 62 76 199 62 76 199 62 76 199 62 76 199 62 76 0 0 0 0 0 0 199 62 76 199 62 76 199 62 76 199 62 76 0 0 0 0 0 0 201 63 74 201 63 74 201 63 74 201 63 74 0 0 0 0 0 0 201 63 74 201 63 74 203 64 73 203 64 73 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 153 6 251 153 6 251 153 6 251 153 6 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 250 151 6 250 151 6 250 151 6 250 151 6 250 151 6 250 151 6 250 151 6 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 250 151 6 250 151 6 250 151 6 250 151 6 250 151 6 250 151 6 250 151 6 250 151 6 250 151 6 250 151 6 0 0 0 0 0 0 250 149 6 0 0 0 0 0 0 250 145 7 250 145 7 250 145 7 250 145 7 250 145 7 250 145 7 250 145 7 250 145 7 250 145 7 250 145 7 250 145 7 250 145 7 250 145 7 250 145 7 250 145 7 250 145 7 0 0 0 0 0 0 250 149 6 250 149 6 250 149 6 250 149 6 0 0 0 0 0 0 250 145 7 0 0 0 0 0 0 250 145 7 250 145 7 250 147 6 250 147 6 0 0 0 0 0 0 249 144 8 249 144 8 249 144 8 249 144 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 142 8 249 142 8 249 142 8 249 142 8 0 0 0 0 0 0 249 142 8 249 142 8 249 142 8 249 142 8 0 0 0 0 0 0 249 142 8 249 142 8 249 142 8 249 142 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 87 15 109 0 0 0 0 0 0 85 15 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 15 109 0 0 0 0 0 0 85 15 109 0 0 0 0 0 0 85 15 109 0 0 0 0 0 0 85 15 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 69 10 105 0 0 0 0 0 0 69 10 105 0 0 0 0 0 0 70 10 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 70 10 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 114 25 109 0 0 0 0 0 0 114 25 109 0 0 0 0 0 0 149 38 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 152 39 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 171 46 93 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 153 6 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 250 149 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 149 6 0 0 0 0 0 0 250 149 6 0 0 0 0 0 0 250 145 7 0 0 0 0 0 0 250 145 7 0 0 0 0 0 0 250 147 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 87 15 109 0 0 0 0 0 0 85 15 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 15 109 0 0 0 0 0 0 85 15 109 0 0 0 0 0 0 85 15 109 0 0 0 0 0 0 85 15 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 69 10 105 0 0 0 0 0 0 69 10 105 0 0 0 0 0 0 70 10 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 70 10 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 114 25 109 0 0 0 0 0 0 114 25 109 0 0 0 0 0 0 149 38 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 152 39 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 171 46 93 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 153 6 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 250 149 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 149 6 0 0 0 0 0 0 250 149 6 0 0 0 0 0 0 250 145 7 0 0 0 0 0 0 250 145 7 0 0 0 0 0 0 250 147 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 87 15 109 87 15 109 87 15 109 87 15 109 0 0 0 0 0 0 85 15 109 85 15 109 85 15 109 85 15 109 85 15 109 85 15 109 85 15 109 0 0 0 0 0 0 85 15 109 85 15 109 85 15 109 85 15 109 0 0 0 0 0 0 85 15 109 0 0 0 0 0 0 85 15 109 85 15 109 85 15 109 85 15 109 0 0 0 0 0 0 85 15 109 85 15 109 85 15 109 85 15 109 0 0 0 0 0 0 69 10 105 69 10 105 69 10 105 69 10 105 0 0 0 0 0 0 70 10 105 70 10 105 70 10 105 70 10 105 70 10 105 70 10 105 70 10 105 70 10 105 70 10 105 70 10 105 0 0 0 0 0 0 83 14 109 83 14 109 83 14 109 83 14 109 0 0 0 0 0 0 79 13 108 79 13 108 79 13 108 79 13 108 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 79 13 108 79 13 108 79 13 108 79 13 108 79 13 108 79 13 108 79 13 108 79 13 108 79 13 108 79 13 108 79 13 108 79 13 108 79 13 108 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 80 13 108 80 13 108 80 13 108 80 13 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 12 107 77 12 107 77 12 107 77 12 107 0 0 0 0 0 0 77 12 107 77 12 107 77 12 107 77 12 107 0 0 0 0 0 0 75 12 107 75 12 107 75 12 107 75 12 107 0 0 0 0 0 0 77 12 107 77 12 107 77 12 107 77 12 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 114 25 109 114 25 109 114 25 109 114 25 109 0 0 0 0 0 0 149 38 102 0 0 0 0 0 0 150 38 102 150 38 102 150 38 102 150 38 102 150 38 102 150 38 102 150 38 102 0 0 0 0 0 0 150 38 102 150 38 102 150 38 102 150 38 102 0 0 0 0 0 0 152 39 101 152 39 101 152 39 101 152 39 101 0 0 0 0 0 0 171 46 93 171 46 93 171 46 93 171 46 93 0 0 0 0 0 0 171 46 93 171 46 93 171 46 93 171 46 93 171 46 93 171 46 93 171 46 93 0 0 0 0 0 0 171 46 93 171 46 93 171 46 93 171 46 93 0 0 0 0 0 0 172 47 92 172 47 92 172 47 92 172 47 92 172 47 92 172 47 92 172 47 92 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 174 48 91 174 48 91 174 48 91 174 48 91 174 48 91 174 48 91 174 48 91 174 48 91 174 48 91 174 48 91 174 48 91 174 48 91 174 48 91 0 0 0 0 0 0 251 162 8 251 162 8 251 162 8 251 162 8 251 162 8 251 162 8 251 162 8 251 162 8 251 162 8 251 162 8 251 162 8 251 162 8 251 162 8 251 162 8 251 162 8 251 162 8 251 162 8 251 162 8 251 162 8 251 162 8 251 162 8 251 162 8 0 0 0 0 0 0 251 162 8 251 162 8 251 162 8 251 162 8 0 0 0 0 0 0 251 162 8 251 162 8 251 162 8 251 162 8 251 162 8 251 162 8 251 162 8 0 0 0 0 0 0 251 153 6 251 153 6 251 153 6 251 153 6 251 153 6 251 153 6 251 153 6 0 0 0 0 0 0 250 151 6 250 151 6 250 151 6 250 151 6 250 151 6 250 151 6 250 151 6 250 151 6 250 151 6 250 151 6 0 0 0 0 0 0 250 151 6 250 151 6 250 151 6 250 151 6 0 0 0 0 0 0 250 151 6 250 151 6 250 151 6 250 151 6 250 151 6 250 151 6 250 151 6 250 151 6 250 151 6 250 151 6 250 151 6 250 151 6 250 151 6 0 0 0 0 0 0 250 149 6 0 0 0 0 0 0 250 149 6 250 149 6 250 149 6 250 149 6 250 149 6 250 149 6 250 149 6 250 149 6 250 149 6 250 149 6 250 149 6 250 149 6 250 149 6 250 149 6 250 149 6 250 149 6 250 149 6 250 149 6 250 149 6 0 0 0 0 0 0 250 149 6 0 0 0 0 0 0 250 145 7 250 145 7 250 145 7 250 145 7 0 0 0 0 0 0 250 147 6 0 0 0 0 0 0 250 147 6 250 147 6 250 147 6 250 147 6 250 147 6 250 147 6 250 147 6 250 147 6 250 147 6 250 147 6 0 0 0 0 0 0 250 147 6 250 147 6 250 147 6 250 147 6 0 0 0 0 0 0 250 147 6 250 147 6 250 147 6 250 147 6 250 147 6 250 147 6 250 147 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 87 15 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 15 109 0 0 0 0 0 0 85 15 109 0 0 0 0 0 0 85 15 109 0 0 0 0 0 0 85 15 109 0 0 0 0 0 0 85 15 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 83 14 109 0 0 0 0 0 0 83 14 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 80 13 108 0 0 0 0 0 0 80 13 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 149 38 102 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 152 39 101 0 0 0 0 0 0 171 46 93 0 0 0 0 0 0 171 46 93 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 171 46 93 0 0 0 0 0 0 171 46 93 0 0 0 0 0 0 171 46 93 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 251 162 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 162 8 0 0 0 0 0 0 251 162 8 0 0 0 0 0 0 251 162 8 0 0 0 0 0 0 251 162 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 162 8 0 0 0 0 0 0 251 153 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 149 6 0 0 0 0 0 0 250 149 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 149 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 147 6 0 0 0 0 0 0 250 147 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 147 6 0 0 0 0 0 0 250 147 6 0 0 0 0 0 0 250 147 6 0 0 0 0 0 0 250 147 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 147 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 87 15 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 15 109 0 0 0 0 0 0 85 15 109 0 0 0 0 0 0 85 15 109 0 0 0 0 0 0 85 15 109 0 0 0 0 0 0 85 15 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 83 14 109 0 0 0 0 0 0 83 14 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 80 13 108 0 0 0 0 0 0 82 14 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 149 38 102 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 152 39 101 0 0 0 0 0 0 171 46 93 0 0 0 0 0 0 171 46 93 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 171 46 93 0 0 0 0 0 0 171 46 93 0 0 0 0 0 0 171 46 93 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 251 162 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 162 8 0 0 0 0 0 0 251 162 8 0 0 0 0 0 0 251 162 8 0 0 0 0 0 0 251 162 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 162 8 0 0 0 0 0 0 251 153 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 149 6 0 0 0 0 0 0 250 149 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 149 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 147 6 0 0 0 0 0 0 250 147 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 147 6 0 0 0 0 0 0 250 147 6 0 0 0 0 0 0 250 147 6 0 0 0 0 0 0 250 147 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 147 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 87 15 109 87 15 109 87 15 109 87 15 109 87 15 109 87 15 109 87 15 109 0 0 0 0 0 0 87 15 109 87 15 109 87 15 109 87 15 109 0 0 0 0 0 0 87 15 109 87 15 109 87 15 109 87 15 109 87 15 109 87 15 109 87 15 109 87 15 109 87 15 109 87 15 109 0 0 0 0 0 0 85 15 109 85 15 109 85 15 109 85 15 109 0 0 0 0 0 0 85 15 109 85 15 109 85 15 109 85 15 109 0 0 0 0 0 0 85 15 109 85 15 109 85 15 109 85 15 109 85 15 109 85 15 109 85 15 109 85 15 109 85 15 109 85 15 109 85 15 109 85 15 109 85 15 109 85 15 109 85 15 109 85 15 109 85 15 109 85 15 109 85 15 109 85 15 109 83 14 109 83 14 109 0 0 0 0 0 0 83 14 109 83 14 109 83 14 109 83 14 109 83 14 109 83 14 109 83 14 109 0 0 0 0 0 0 79 13 108 79 13 108 79 13 108 79 13 108 0 0 0 0 0 0 80 13 108 80 13 108 80 13 108 80 13 108 80 13 108 80 13 108 80 13 108 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 79 13 108 79 13 108 77 12 107 77 12 107 0 0 0 0 0 0 80 13 108 0 0 0 0 0 0 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 75 12 107 75 12 107 75 12 107 75 12 107 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 106 23 110 106 23 110 106 23 110 106 23 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 149 38 102 0 0 0 0 0 0 150 38 102 150 38 102 150 38 102 150 38 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 150 38 102 150 38 102 150 38 102 150 38 102 0 0 0 0 0 0 152 39 101 152 39 101 152 39 101 152 39 101 0 0 0 0 0 0 171 46 93 0 0 0 0 0 0 171 46 93 171 46 93 171 46 93 171 46 93 171 46 93 171 46 93 171 46 93 171 46 93 171 46 93 171 46 93 0 0 0 0 0 0 171 46 93 0 0 0 0 0 0 171 46 93 0 0 0 0 0 0 172 47 92 172 47 92 172 47 92 172 47 92 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 172 47 92 172 47 92 172 47 92 172 47 92 0 0 0 0 0 0 174 48 91 174 48 91 174 48 91 174 48 91 174 48 91 174 48 91 174 48 91 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 251 162 8 0 0 0 0 0 0 251 164 10 251 164 10 251 164 10 251 164 10 0 0 0 0 0 0 251 164 10 251 164 10 251 164 10 251 164 10 0 0 0 0 0 0 251 164 10 251 164 10 251 164 10 251 164 10 0 0 0 0 0 0 251 162 8 251 162 8 251 162 8 251 162 8 0 0 0 0 0 0 251 162 8 251 162 8 251 162 8 251 162 8 0 0 0 0 0 0 251 162 8 251 162 8 251 162 8 251 162 8 0 0 0 0 0 0 251 153 6 251 153 6 251 153 6 251 153 6 0 0 0 0 0 0 251 153 6 251 153 6 251 153 6 251 153 6 0 0 0 0 0 0 251 153 6 251 153 6 251 153 6 251 153 6 251 153 6 251 153 6 251 153 6 0 0 0 0 0 0 251 153 6 251 153 6 251 153 6 251 153 6 251 153 6 251 153 6 251 153 6 251 153 6 251 153 6 251 153 6 251 153 6 251 153 6 251 153 6 0 0 0 0 0 0 251 153 6 251 153 6 251 153 6 251 153 6 0 0 0 0 0 0 250 149 6 250 149 6 250 149 6 250 149 6 0 0 0 0 0 0 251 155 6 251 155 6 251 155 6 251 155 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 155 6 251 155 6 251 155 6 251 155 6 251 155 6 251 155 6 251 155 6 0 0 0 0 0 0 250 149 6 0 0 0 0 0 0 250 149 6 250 149 6 250 149 6 250 149 6 0 0 0 0 0 0 250 147 6 250 147 6 250 147 6 250 147 6 0 0 0 0 0 0 250 149 6 250 149 6 250 149 6 250 149 6 0 0 0 0 0 0 250 147 6 250 147 6 250 147 6 250 147 6 0 0 0 0 0 0 250 147 6 250 147 6 250 147 6 250 147 6 0 0 0 0 0 0 250 147 6 250 147 6 250 147 6 250 147 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 87 15 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 87 15 109 0 0 0 0 0 0 87 15 109 0 0 0 0 0 0 87 15 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 87 15 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 83 14 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 80 13 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 80 13 108 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 80 13 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 82 14 108 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 149 38 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 152 39 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 171 46 93 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 171 46 93 0 0 0 0 0 0 171 46 93 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 251 162 8 0 0 0 0 0 0 251 164 10 0 0 0 0 0 0 251 164 10 0 0 0 0 0 0 251 164 10 0 0 0 0 0 0 251 164 10 0 0 0 0 0 0 251 164 10 0 0 0 0 0 0 251 164 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 162 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 153 6 0 0 0 0 0 0 251 153 6 0 0 0 0 0 0 251 153 6 0 0 0 0 0 0 251 153 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 153 6 0 0 0 0 0 0 251 153 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 153 6 0 0 0 0 0 0 251 153 6 0 0 0 0 0 0 251 153 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 155 6 0 0 0 0 0 0 251 155 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 155 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 155 6 0 0 0 0 0 0 250 149 6 0 0 0 0 0 0 250 149 6 0 0 0 0 0 0 250 149 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 149 6 0 0 0 0 0 0 250 149 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 147 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 87 15 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 87 15 109 0 0 0 0 0 0 87 15 109 0 0 0 0 0 0 87 15 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 87 15 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 83 14 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 80 13 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 80 13 108 0 0 0 0 0 0 79 13 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 80 13 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 82 14 108 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 75 12 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 149 38 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 152 39 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 171 46 93 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 171 46 93 0 0 0 0 0 0 171 46 93 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 251 162 8 0 0 0 0 0 0 251 164 10 0 0 0 0 0 0 251 164 10 0 0 0 0 0 0 251 164 10 0 0 0 0 0 0 251 164 10 0 0 0 0 0 0 251 164 10 0 0 0 0 0 0 251 164 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 162 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 153 6 0 0 0 0 0 0 251 153 6 0 0 0 0 0 0 251 153 6 0 0 0 0 0 0 251 153 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 153 6 0 0 0 0 0 0 251 153 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 153 6 0 0 0 0 0 0 251 153 6 0 0 0 0 0 0 251 153 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 155 6 0 0 0 0 0 0 251 155 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 155 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 155 6 0 0 0 0 0 0 250 149 6 0 0 0 0 0 0 250 149 6 0 0 0 0 0 0 250 149 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 149 6 0 0 0 0 0 0 250 147 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 147 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 87 15 109 87 15 109 87 15 109 87 15 109 87 15 109 87 15 109 87 15 109 87 15 109 87 15 109 87 15 109 0 0 0 0 0 0 87 15 109 87 15 109 87 15 109 87 15 109 0 0 0 0 0 0 90 17 109 90 17 109 90 17 109 90 17 109 0 0 0 0 0 0 87 15 109 87 15 109 87 15 109 87 15 109 87 15 109 87 15 109 87 15 109 87 15 109 87 15 109 87 15 109 87 15 109 87 15 109 87 15 109 87 15 109 87 15 109 87 15 109 87 15 109 87 15 109 87 15 109 87 15 109 87 15 109 87 15 109 87 15 109 87 15 109 87 15 109 87 15 109 87 15 109 87 15 109 87 15 109 87 15 109 87 15 109 87 15 109 87 15 109 87 15 109 87 15 109 87 15 109 87 15 109 87 15 109 87 15 109 87 15 109 0 0 0 0 0 0 83 14 109 83 14 109 83 14 109 83 14 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 80 13 108 80 13 108 80 13 108 80 13 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 80 13 108 80 13 108 79 13 108 79 13 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 80 13 108 80 13 108 80 13 108 80 13 108 0 0 0 0 0 0 82 14 108 82 14 108 82 14 108 82 14 108 0 0 0 0 0 0 82 14 108 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 75 12 107 75 12 107 75 12 107 75 12 107 75 12 107 77 12 107 77 12 107 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 106 23 110 106 23 110 106 23 110 106 23 110 0 0 0 0 0 0 149 38 102 0 0 0 0 0 0 150 38 102 150 38 102 150 38 102 150 38 102 0 0 0 0 0 0 150 38 102 150 38 102 150 38 102 150 38 102 0 0 0 0 0 0 152 39 101 152 39 101 152 39 101 152 39 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 171 46 93 171 46 93 171 46 93 171 46 93 0 0 0 0 0 0 171 46 93 171 46 93 171 46 93 171 46 93 0 0 0 0 0 0 171 46 93 171 46 93 171 46 93 171 46 93 0 0 0 0 0 0 171 46 93 0 0 0 0 0 0 172 47 92 172 47 92 172 47 92 172 47 92 0 0 0 0 0 0 172 47 92 172 47 92 172 47 92 172 47 92 172 47 92 172 47 92 172 47 92 0 0 0 0 0 0 174 48 91 174 48 91 174 48 91 174 48 91 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 251 162 8 0 0 0 0 0 0 251 164 10 0 0 0 0 0 0 251 164 10 251 164 10 251 164 10 251 164 10 0 0 0 0 0 0 251 164 10 251 164 10 251 164 10 251 164 10 0 0 0 0 0 0 251 164 10 251 164 10 251 164 10 251 164 10 251 164 10 251 164 10 251 164 10 251 164 10 251 164 10 251 164 10 251 164 10 251 164 10 251 164 10 0 0 0 0 0 0 251 162 8 251 162 8 251 162 8 251 162 8 251 162 8 251 162 8 251 162 8 0 0 0 0 0 0 251 153 6 251 153 6 251 153 6 251 153 6 0 0 0 0 0 0 251 153 6 251 153 6 251 153 6 251 153 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 153 6 251 153 6 251 153 6 251 153 6 0 0 0 0 0 0 251 158 7 251 158 7 251 158 7 251 158 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 153 6 251 153 6 251 153 6 251 153 6 0 0 0 0 0 0 251 153 6 0 0 0 0 0 0 251 155 6 251 155 6 251 155 6 251 155 6 251 155 6 251 155 6 251 155 6 0 0 0 0 0 0 251 155 6 251 155 6 251 155 6 251 155 6 0 0 0 0 0 0 251 155 6 0 0 0 0 0 0 251 155 6 251 155 6 251 155 6 251 155 6 0 0 0 0 0 0 250 149 6 250 149 6 250 149 6 250 149 6 0 0 0 0 0 0 250 149 6 0 0 0 0 0 0 250 149 6 250 149 6 250 149 6 250 149 6 250 149 6 250 149 6 250 149 6 0 0 0 0 0 0 250 147 6 250 147 6 250 147 6 250 147 6 250 147 6 250 147 6 250 147 6 0 0 0 0 0 0 250 147 6 250 147 6 250 147 6 250 147 6 0 0 0 0 0 0 250 147 6 250 147 6 250 147 6 250 147 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 87 15 109 0 0 0 0 0 0 83 14 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 80 13 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 80 13 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 82 14 108 0 0 0 0 0 0 82 14 108 0 0 0 0 0 0 82 14 108 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 149 38 102 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 152 39 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 171 46 93 0 0 0 0 0 0 171 46 93 0 0 0 0 0 0 171 46 93 0 0 0 0 0 0 171 46 93 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 171 46 93 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 251 162 8 0 0 0 0 0 0 251 164 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 164 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 162 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 153 6 0 0 0 0 0 0 251 155 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 155 6 0 0 0 0 0 0 251 155 6 0 0 0 0 0 0 251 155 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 149 6 0 0 0 0 0 0 250 149 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 147 6 0 0 0 0 0 0 250 147 6 0 0 0 0 0 0 250 147 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 147 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 87 15 109 0 0 0 0 0 0 83 14 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 80 13 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 80 13 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 82 14 108 0 0 0 0 0 0 82 14 108 0 0 0 0 0 0 82 14 108 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 152 39 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 171 46 93 0 0 0 0 0 0 171 46 93 0 0 0 0 0 0 171 46 93 0 0 0 0 0 0 171 46 93 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 171 46 93 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 251 162 8 0 0 0 0 0 0 251 164 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 164 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 162 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 155 6 0 0 0 0 0 0 251 155 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 155 6 0 0 0 0 0 0 251 155 6 0 0 0 0 0 0 251 155 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 149 6 0 0 0 0 0 0 250 149 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 147 6 0 0 0 0 0 0 250 147 6 0 0 0 0 0 0 250 147 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 147 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 90 17 109 90 17 109 90 17 109 90 17 109 90 17 109 90 17 109 90 17 109 90 17 109 90 17 109 90 17 109 90 17 109 90 17 109 90 17 109 90 17 109 90 17 109 90 17 109 90 17 109 90 17 109 90 17 109 0 0 0 0 0 0 90 17 109 90 17 109 90 17 109 90 17 109 0 0 0 0 0 0 90 17 109 90 17 109 90 17 109 90 17 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 88 16 109 88 16 109 88 16 109 88 16 109 88 16 109 88 16 109 88 16 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 88 16 109 88 16 109 88 16 109 88 16 109 0 0 0 0 0 0 88 16 109 88 16 109 88 16 109 88 16 109 0 0 0 0 0 0 88 16 109 88 16 109 87 15 109 87 15 109 0 0 0 0 0 0 83 14 109 83 14 109 83 14 109 83 14 109 83 14 109 83 14 109 83 14 109 0 0 0 0 0 0 80 13 108 80 13 108 80 13 108 80 13 108 80 13 108 80 13 108 80 13 108 80 13 108 80 13 108 80 13 108 0 0 0 0 0 0 80 13 108 80 13 108 80 13 108 80 13 108 0 0 0 0 0 0 80 13 108 80 13 108 80 13 108 80 13 108 0 0 0 0 0 0 82 14 108 0 0 0 0 0 0 82 14 108 82 14 108 82 14 108 82 14 108 0 0 0 0 0 0 77 12 107 77 12 107 77 12 107 77 12 107 0 0 0 0 0 0 77 12 107 77 12 107 77 12 107 77 12 107 0 0 0 0 0 0 77 12 107 77 12 107 77 12 107 77 12 107 77 12 107 77 12 107 77 12 107 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 106 23 110 106 23 110 106 23 110 106 23 110 0 0 0 0 0 0 150 38 102 150 38 102 150 38 102 150 38 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 150 38 102 150 38 102 150 38 102 150 38 102 0 0 0 0 0 0 152 39 101 152 39 101 152 39 101 152 39 101 152 39 101 152 39 101 152 39 101 152 39 101 152 39 101 152 39 101 0 0 0 0 0 0 171 46 93 171 46 93 171 46 93 171 46 93 0 0 0 0 0 0 171 46 93 0 0 0 0 0 0 171 46 93 171 46 93 171 46 93 171 46 93 0 0 0 0 0 0 171 46 93 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 172 47 92 172 47 92 172 47 92 172 47 92 0 0 0 0 0 0 172 47 92 172 47 92 172 47 92 172 47 92 0 0 0 0 0 0 174 48 91 174 48 91 174 48 91 174 48 91 0 0 0 0 0 0 174 48 91 174 48 91 174 48 91 174 48 91 0 0 0 0 0 0 251 162 8 251 162 8 251 164 10 251 164 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 164 10 251 164 10 251 164 10 251 164 10 0 0 0 0 0 0 251 164 10 251 164 10 251 164 10 251 164 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 164 10 251 164 10 251 164 10 251 164 10 251 164 10 251 164 10 251 164 10 0 0 0 0 0 0 251 166 11 251 166 11 251 166 11 251 166 11 0 0 0 0 0 0 251 162 8 251 162 8 251 162 8 251 162 8 0 0 0 0 0 0 251 160 7 251 160 7 251 160 7 251 160 7 251 160 7 251 160 7 251 160 7 0 0 0 0 0 0 251 160 7 251 160 7 251 160 7 251 160 7 0 0 0 0 0 0 251 158 7 251 158 7 251 158 7 251 158 7 0 0 0 0 0 0 251 158 7 251 158 7 251 158 7 251 158 7 251 158 7 251 158 7 251 158 7 251 158 7 251 158 7 251 158 7 0 0 0 0 0 0 251 155 6 251 155 6 251 155 6 251 155 6 0 0 0 0 0 0 251 158 7 251 158 7 251 158 7 251 158 7 251 158 7 251 158 7 251 158 7 0 0 0 0 0 0 251 155 6 251 155 6 251 155 6 251 155 6 0 0 0 0 0 0 251 155 6 251 155 6 251 155 6 251 155 6 251 155 6 251 155 6 251 155 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 149 6 250 149 6 250 149 6 250 149 6 0 0 0 0 0 0 251 157 6 251 157 6 251 157 6 251 157 6 0 0 0 0 0 0 251 157 6 251 157 6 251 157 6 251 157 6 0 0 0 0 0 0 250 147 6 250 147 6 250 147 6 250 147 6 0 0 0 0 0 0 250 147 6 250 147 6 250 147 6 250 147 6 0 0 0 0 0 0 250 147 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 83 14 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 80 13 108 0 0 0 0 0 0 80 13 108 0 0 0 0 0 0 80 13 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 80 13 108 0 0 0 0 0 0 82 14 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 152 39 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 171 46 93 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 171 46 93 0 0 0 0 0 0 171 46 93 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 164 10 0 0 0 0 0 0 251 164 10 0 0 0 0 0 0 251 164 10 0 0 0 0 0 0 251 164 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 164 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 166 11 0 0 0 0 0 0 251 166 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 162 8 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 155 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 157 6 0 0 0 0 0 0 251 157 6 0 0 0 0 0 0 251 157 6 0 0 0 0 0 0 251 157 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 147 6 0 0 0 0 0 0 250 147 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 83 14 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 80 13 108 0 0 0 0 0 0 80 13 108 0 0 0 0 0 0 80 13 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 80 13 108 0 0 0 0 0 0 82 14 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 77 12 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 152 39 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 171 46 93 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 171 46 93 0 0 0 0 0 0 171 46 93 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 164 10 0 0 0 0 0 0 251 164 10 0 0 0 0 0 0 251 164 10 0 0 0 0 0 0 251 164 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 164 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 166 11 0 0 0 0 0 0 251 166 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 162 8 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 155 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 155 6 0 0 0 0 0 0 251 157 6 0 0 0 0 0 0 251 157 6 0 0 0 0 0 0 251 157 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 147 6 0 0 0 0 0 0 250 147 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 90 17 109 90 17 109 90 17 109 90 17 109 0 0 0 0 0 0 90 17 109 90 17 109 90 17 109 90 17 109 90 17 109 90 17 109 90 17 109 90 17 109 90 17 109 90 17 109 90 17 109 90 17 109 90 17 109 90 17 109 90 17 109 90 17 109 0 0 0 0 0 0 90 17 109 90 17 109 90 17 109 90 17 109 0 0 0 0 0 0 90 17 109 90 17 109 90 17 109 90 17 109 0 0 0 0 0 0 88 16 109 88 16 109 88 16 109 88 16 109 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 88 16 109 88 16 109 88 16 109 88 16 109 0 0 0 0 0 0 88 16 109 88 16 109 88 16 109 88 16 109 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 88 16 109 88 16 109 88 16 109 88 16 109 0 0 0 0 0 0 83 14 109 83 14 109 83 14 109 83 14 109 0 0 0 0 0 0 83 14 109 0 0 0 0 0 0 80 13 108 80 13 108 80 13 108 80 13 108 80 13 108 80 13 108 80 13 108 80 13 108 80 13 108 80 13 108 0 0 0 0 0 0 80 13 108 0 0 0 0 0 0 80 13 108 80 13 108 80 13 108 80 13 108 80 13 108 80 13 108 80 13 108 0 0 0 0 0 0 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 0 0 0 0 0 0 77 12 107 77 12 107 77 12 107 77 12 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 106 23 110 106 23 110 106 23 110 106 23 110 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 106 23 110 106 23 110 106 23 110 106 23 110 0 0 0 0 0 0 106 23 110 106 23 110 106 23 110 106 23 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 150 38 102 150 38 102 150 38 102 150 38 102 0 0 0 0 0 0 150 38 102 150 38 102 150 38 102 150 38 102 0 0 0 0 0 0 152 39 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 171 46 93 171 46 93 171 46 93 171 46 93 171 46 93 171 46 93 171 46 93 0 0 0 0 0 0 171 46 93 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 172 47 92 172 47 92 172 47 92 172 47 92 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 174 48 91 174 48 91 174 48 91 174 48 91 174 48 91 174 48 91 174 48 91 0 0 0 0 0 0 251 166 11 251 166 11 251 164 10 251 164 10 251 164 10 251 164 10 251 164 10 251 164 10 251 164 10 251 164 10 251 164 10 251 164 10 251 164 10 0 0 0 0 0 0 251 164 10 251 164 10 251 164 10 251 164 10 0 0 0 0 0 0 251 164 10 251 164 10 251 164 10 251 164 10 251 164 10 251 164 10 251 164 10 0 0 0 0 0 0 251 166 11 251 166 11 251 166 11 251 166 11 0 0 0 0 0 0 251 166 11 0 0 0 0 0 0 251 166 11 251 166 11 251 166 11 251 166 11 0 0 0 0 0 0 251 162 8 0 0 0 0 0 0 251 160 7 251 160 7 251 162 8 251 162 8 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 251 158 7 251 158 7 251 160 7 251 160 7 251 160 7 251 160 7 251 160 7 251 160 7 251 160 7 251 160 7 251 160 7 251 160 7 251 160 7 0 0 0 0 0 0 251 158 7 251 158 7 251 158 7 251 158 7 251 158 7 251 158 7 251 158 7 251 158 7 251 158 7 251 158 7 0 0 0 0 0 0 251 158 7 251 158 7 251 158 7 251 158 7 0 0 0 0 0 0 251 158 7 251 158 7 251 158 7 251 158 7 0 0 0 0 0 0 251 155 6 251 155 6 251 155 6 251 155 6 251 155 6 251 155 6 251 155 6 0 0 0 0 0 0 251 155 6 251 155 6 251 155 6 251 155 6 0 0 0 0 0 0 251 155 6 251 155 6 251 155 6 251 155 6 0 0 0 0 0 0 251 157 6 251 157 6 251 157 6 251 157 6 0 0 0 0 0 0 251 157 6 251 157 6 251 157 6 251 157 6 0 0 0 0 0 0 251 157 6 251 157 6 251 157 6 251 157 6 0 0 0 0 0 0 250 147 6 250 147 6 250 147 6 250 147 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 83 14 109 0 0 0 0 0 0 83 14 109 0 0 0 0 0 0 83 14 109 0 0 0 0 0 0 80 13 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 80 13 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 82 14 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 152 39 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 171 46 93 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 251 166 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 166 11 0 0 0 0 0 0 251 166 11 0 0 0 0 0 0 251 166 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 166 11 0 0 0 0 0 0 251 162 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 162 8 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 251 155 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 155 6 0 0 0 0 0 0 251 155 6 0 0 0 0 0 0 251 155 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 157 6 0 0 0 0 0 0 251 157 6 0 0 0 0 0 0 251 157 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 83 14 109 0 0 0 0 0 0 83 14 109 0 0 0 0 0 0 83 14 109 0 0 0 0 0 0 80 13 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 80 13 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 82 14 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 152 39 101 0 0 0 0 0 0 152 39 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 251 166 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 166 11 0 0 0 0 0 0 251 166 11 0 0 0 0 0 0 251 166 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 166 11 0 0 0 0 0 0 251 162 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 162 8 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 251 155 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 155 6 0 0 0 0 0 0 251 155 6 0 0 0 0 0 0 251 155 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 157 6 0 0 0 0 0 0 251 157 6 0 0 0 0 0 0 251 157 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 90 17 109 90 17 109 90 17 109 90 17 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 91 17 110 91 17 110 91 17 110 91 17 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 90 17 109 90 17 109 90 17 109 90 17 109 90 17 109 90 17 109 90 17 109 90 17 109 90 17 109 90 17 109 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 88 16 109 88 16 109 88 16 109 88 16 109 0 0 0 0 0 0 88 16 109 88 16 109 88 16 109 88 16 109 0 0 0 0 0 0 95 18 110 95 18 110 95 18 110 95 18 110 95 18 110 95 18 110 95 18 110 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 83 14 109 0 0 0 0 0 0 83 14 109 83 14 109 83 14 109 83 14 109 0 0 0 0 0 0 80 13 108 80 13 108 80 13 108 80 13 108 80 13 108 80 13 108 80 13 108 80 13 108 80 13 108 80 13 108 80 13 108 80 13 108 80 13 108 0 0 0 0 0 0 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 104 22 110 104 22 110 104 22 110 104 22 110 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 106 23 110 106 23 110 106 23 110 106 23 110 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 106 23 110 106 23 110 106 23 110 106 23 110 0 0 0 0 0 0 106 23 110 106 23 110 106 23 110 106 23 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 150 38 102 150 38 102 150 38 102 150 38 102 0 0 0 0 0 0 152 39 101 152 39 101 152 39 101 152 39 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 172 47 92 172 47 92 172 47 92 172 47 92 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 172 47 92 172 47 92 172 47 92 172 47 92 0 0 0 0 0 0 172 47 92 172 47 92 172 47 92 172 47 92 0 0 0 0 0 0 174 48 91 174 48 91 174 48 91 174 48 91 0 0 0 0 0 0 251 166 11 0 0 0 0 0 0 251 166 11 251 166 11 251 166 11 251 166 11 251 166 11 251 166 11 251 166 11 251 166 11 251 166 11 251 166 11 251 166 11 251 166 11 251 166 11 251 166 11 251 166 11 251 166 11 251 166 11 251 166 11 251 166 11 251 166 11 251 166 11 251 166 11 251 166 11 251 166 11 251 166 11 251 166 11 251 166 11 251 166 11 0 0 0 0 0 0 251 166 11 251 166 11 251 166 11 251 166 11 0 0 0 0 0 0 251 166 11 251 166 11 251 166 11 251 166 11 0 0 0 0 0 0 251 162 8 251 162 8 251 162 8 251 162 8 251 162 8 251 162 8 251 162 8 0 0 0 0 0 0 251 160 7 251 160 7 251 160 7 251 160 7 0 0 0 0 0 0 251 160 7 251 160 7 251 160 7 251 160 7 251 160 7 251 160 7 251 160 7 251 160 7 251 160 7 251 160 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 160 7 251 160 7 251 160 7 251 160 7 251 160 7 251 160 7 251 160 7 251 160 7 251 160 7 251 160 7 251 160 7 251 160 7 251 160 7 0 0 0 0 0 0 251 158 7 251 158 7 251 158 7 251 158 7 251 158 7 251 158 7 251 158 7 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 251 155 6 251 155 6 251 155 6 251 155 6 251 155 6 251 155 6 251 155 6 251 155 6 251 155 6 251 155 6 0 0 0 0 0 0 251 155 6 251 155 6 251 155 6 251 155 6 0 0 0 0 0 0 251 157 6 251 157 6 251 157 6 251 157 6 251 157 6 251 157 6 251 157 6 251 157 6 251 157 6 251 157 6 0 0 0 0 0 0 251 157 6 251 157 6 251 157 6 251 157 6 0 0 0 0 0 0 251 157 6 251 157 6 251 157 6 251 157 6 251 157 6 251 157 6 251 157 6 251 157 6 251 157 6 251 157 6 251 157 6 251 157 6 251 157 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 91 17 110 0 0 0 0 0 0 91 17 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 95 18 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 95 18 110 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 83 14 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 82 14 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 166 11 0 0 0 0 0 0 251 166 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 166 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 157 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 157 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 157 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 91 17 110 0 0 0 0 0 0 91 17 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 90 17 109 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 95 18 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 95 18 110 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 83 14 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 82 14 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 166 11 0 0 0 0 0 0 251 166 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 166 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 157 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 157 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 157 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 91 17 110 91 17 110 91 17 110 91 17 110 0 0 0 0 0 0 91 17 110 91 17 110 91 17 110 91 17 110 0 0 0 0 0 0 91 17 110 91 17 110 91 17 110 91 17 110 91 17 110 91 17 110 91 17 110 91 17 110 91 17 110 91 17 110 91 17 110 90 17 109 90 17 109 90 17 109 90 17 109 90 17 109 0 0 0 0 0 0 88 16 109 88 16 109 88 16 109 88 16 109 0 0 0 0 0 0 93 18 110 93 18 110 93 18 110 93 18 110 93 18 110 93 18 110 93 18 110 0 0 0 0 0 0 95 18 110 0 0 0 0 0 0 95 18 110 95 18 110 95 18 110 95 18 110 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 88 16 109 88 16 109 88 16 109 88 16 109 0 0 0 0 0 0 83 14 109 83 14 109 83 14 109 83 14 109 83 14 109 83 14 109 83 14 109 83 14 109 83 14 109 83 14 109 83 14 109 83 14 109 83 14 109 83 14 109 83 14 109 83 14 109 83 14 109 83 14 109 83 14 109 83 14 109 83 14 109 83 14 109 0 0 0 0 0 0 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 82 14 108 0 0 0 0 0 0 104 22 110 104 22 110 104 22 110 104 22 110 0 0 0 0 0 0 104 22 110 104 22 110 104 22 110 104 22 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 104 22 110 104 22 110 104 22 110 104 22 110 0 0 0 0 0 0 104 22 110 104 22 110 104 22 110 104 22 110 0 0 0 0 0 0 106 23 110 106 23 110 106 23 110 106 23 110 106 23 110 106 23 110 106 23 110 0 0 0 0 0 0 106 23 110 106 23 110 106 23 110 106 23 110 0 0 0 0 0 0 106 23 110 106 23 110 106 23 110 106 23 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 174 48 91 174 48 91 174 48 91 174 48 91 0 0 0 0 0 0 251 166 11 0 0 0 0 0 0 251 166 11 0 0 0 0 0 0 251 168 13 251 168 13 251 168 13 251 168 13 251 168 13 251 168 13 251 168 13 251 168 13 251 168 13 251 168 13 251 168 13 251 168 13 251 168 13 251 168 13 251 168 13 251 168 13 251 168 13 251 168 13 251 168 13 251 168 13 251 168 13 251 168 13 251 168 13 251 168 13 251 168 13 251 168 13 251 168 13 251 168 13 251 168 13 251 168 13 251 168 13 0 0 0 0 0 0 251 166 11 251 166 11 251 166 11 251 166 11 251 166 11 251 166 11 251 166 11 251 166 11 251 166 11 251 166 11 251 166 11 251 166 11 251 166 11 251 166 11 251 168 13 251 168 13 251 168 13 251 168 13 251 168 13 251 168 13 251 168 13 251 168 13 251 168 13 251 168 13 251 168 13 251 168 13 251 168 13 251 168 13 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 251 160 7 251 160 7 251 160 7 251 160 7 251 160 7 251 160 7 251 160 7 251 160 7 251 160 7 251 160 7 251 160 7 251 160 7 251 160 7 251 160 7 251 160 7 251 160 7 0 0 0 0 0 0 251 174 18 251 174 18 251 174 18 251 174 18 251 174 18 251 174 18 251 174 18 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 251 158 7 251 158 7 251 158 7 251 158 7 0 0 0 0 0 0 251 158 7 251 158 7 251 157 6 251 157 6 251 157 6 251 157 6 251 157 6 251 157 6 251 157 6 251 157 6 251 157 6 251 157 6 251 157 6 0 0 0 0 0 0 251 177 22 251 177 22 251 177 22 251 177 22 0 0 0 0 0 0 251 157 6 251 157 6 251 157 6 251 157 6 251 157 6 251 157 6 251 157 6 251 157 6 251 157 6 251 157 6 251 157 6 251 157 6 251 157 6 251 157 6 251 157 6 251 157 6 251 157 6 251 157 6 251 157 6 251 157 6 251 157 6 251 157 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 91 17 110 0 0 0 0 0 0 91 17 110 0 0 0 0 0 0 91 17 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 93 18 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 93 18 110 0 0 0 0 0 0 95 18 110 0 0 0 0 0 0 95 18 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 83 14 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 82 14 108 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 251 166 11 0 0 0 0 0 0 251 166 11 0 0 0 0 0 0 251 168 13 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 168 13 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 168 13 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 174 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 174 18 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 91 17 110 0 0 0 0 0 0 91 17 110 0 0 0 0 0 0 91 17 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 93 18 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 93 18 110 0 0 0 0 0 0 95 18 110 0 0 0 0 0 0 95 18 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 88 16 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 83 14 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 82 14 108 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 106 23 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 251 166 11 0 0 0 0 0 0 251 166 11 0 0 0 0 0 0 251 168 13 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 168 13 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 168 13 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 174 18 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 91 17 110 91 17 110 91 17 110 91 17 110 0 0 0 0 0 0 91 17 110 91 17 110 91 17 110 91 17 110 0 0 0 0 0 0 91 17 110 91 17 110 91 17 110 91 17 110 91 17 110 91 17 110 91 17 110 91 17 110 91 17 110 91 17 110 91 17 110 91 17 110 91 17 110 91 17 110 91 17 110 91 17 110 91 17 110 91 17 110 91 17 110 91 17 110 91 17 110 91 17 110 91 17 110 91 17 110 91 17 110 0 0 0 0 0 0 93 18 110 93 18 110 93 18 110 93 18 110 0 0 0 0 0 0 93 18 110 93 18 110 95 18 110 95 18 110 0 0 0 0 0 0 95 18 110 95 18 110 95 18 110 95 18 110 0 0 0 0 0 0 88 16 109 88 16 109 88 16 109 88 16 109 0 0 0 0 0 0 95 18 110 95 18 110 95 18 110 95 18 110 0 0 0 0 0 0 95 18 110 95 18 110 95 18 110 95 18 110 95 18 110 95 18 110 95 18 110 95 18 110 95 18 110 95 18 110 95 18 110 95 18 110 95 18 110 95 18 110 95 18 110 95 18 110 0 0 0 0 0 0 83 14 109 0 0 0 0 0 0 83 14 109 83 14 109 83 14 109 83 14 109 0 0 0 0 0 0 82 14 108 82 14 108 82 14 108 82 14 108 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 104 22 110 104 22 110 104 22 110 104 22 110 104 22 110 104 22 110 104 22 110 0 0 0 0 0 0 109 24 110 109 24 110 109 24 110 109 24 110 109 24 110 109 24 110 109 24 110 0 0 0 0 0 0 107 23 110 107 23 110 107 23 110 107 23 110 107 23 110 107 23 110 107 23 110 107 23 110 106 23 110 106 23 110 0 0 0 0 0 0 106 23 110 106 23 110 106 23 110 106 23 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 174 48 91 174 48 91 174 48 91 174 48 91 174 48 91 174 48 91 174 48 91 0 0 0 0 0 0 251 166 11 251 166 11 251 166 11 251 166 11 0 0 0 0 0 0 251 168 13 251 168 13 251 168 13 251 168 13 0 0 0 0 0 0 251 168 13 251 168 13 251 168 13 251 168 13 251 168 13 251 170 14 251 170 14 0 0 0 0 0 0 251 170 14 251 170 14 251 170 14 251 170 14 251 170 14 251 170 14 251 170 14 0 0 0 0 0 0 251 170 14 251 170 14 251 170 14 251 170 14 0 0 0 0 0 0 251 168 13 251 168 13 251 168 13 251 168 13 251 168 13 251 168 13 251 168 13 251 168 13 251 168 13 251 168 13 251 168 13 251 168 13 251 168 13 251 168 13 251 168 13 251 168 13 251 168 13 251 168 13 251 168 13 251 168 13 251 168 13 251 168 13 251 168 13 251 168 13 251 168 13 251 168 13 251 168 13 251 168 13 251 168 13 251 168 13 251 168 13 0 0 0 0 0 0 251 160 7 251 160 7 251 160 7 251 160 7 0 0 0 0 0 0 251 172 16 251 172 16 251 172 16 251 172 16 251 172 16 251 172 16 251 172 16 251 172 16 251 172 16 251 172 16 251 172 16 251 172 16 251 172 16 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 251 174 18 251 174 18 251 174 18 251 174 18 0 0 0 0 0 0 251 158 7 251 158 7 251 158 7 251 158 7 0 0 0 0 0 0 251 158 7 251 158 7 251 158 7 251 158 7 0 0 0 0 0 0 251 177 22 251 177 22 251 177 22 251 177 22 251 177 22 251 177 22 251 177 22 251 177 22 251 177 22 251 177 22 251 177 22 251 177 22 251 177 22 0 0 0 0 0 0 251 177 22 251 177 22 251 177 22 251 177 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 177 22 251 177 22 251 177 22 251 177 22 251 177 22 251 177 22 251 177 22 251 177 22 251 177 22 251 177 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 91 17 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 91 17 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 91 17 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 93 18 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 95 18 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 95 18 110 0 0 0 0 0 0 95 18 110 0 0 0 0 0 0 95 18 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 95 18 110 0 0 0 0 0 0 83 14 109 0 0 0 0 0 0 83 14 109 0 0 0 0 0 0 83 14 109 0 0 0 0 0 0 82 14 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 109 24 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 109 24 110 0 0 0 0 0 0 107 23 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 168 13 0 0 0 0 0 0 251 168 13 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 251 174 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 91 17 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 91 17 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 91 17 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 93 18 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 95 18 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 95 18 110 0 0 0 0 0 0 95 18 110 0 0 0 0 0 0 95 18 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 95 18 110 0 0 0 0 0 0 83 14 109 0 0 0 0 0 0 83 14 109 0 0 0 0 0 0 83 14 109 0 0 0 0 0 0 82 14 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 109 24 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 109 24 110 0 0 0 0 0 0 107 23 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 168 13 0 0 0 0 0 0 251 168 13 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 251 174 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 91 17 110 91 17 110 91 17 110 91 17 110 91 17 110 91 17 110 91 17 110 91 17 110 91 17 110 91 17 110 91 17 110 91 17 110 91 17 110 0 0 0 0 0 0 93 18 110 93 18 110 93 18 110 93 18 110 93 18 110 93 18 110 93 18 110 93 18 110 93 18 110 93 18 110 93 18 110 91 17 110 91 17 110 91 17 110 91 17 110 91 17 110 91 17 110 91 17 110 91 17 110 91 17 110 91 17 110 91 17 110 0 0 0 0 0 0 93 18 110 93 18 110 93 18 110 93 18 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 96 19 110 96 19 110 96 19 110 96 19 110 0 0 0 0 0 0 95 18 110 95 18 110 95 18 110 95 18 110 0 0 0 0 0 0 95 18 110 95 18 110 95 18 110 95 18 110 0 0 0 0 0 0 95 18 110 95 18 110 95 18 110 95 18 110 0 0 0 0 0 0 95 18 110 95 18 110 95 18 110 95 18 110 0 0 0 0 0 0 95 18 110 95 18 110 95 18 110 95 18 110 95 18 110 95 18 110 95 18 110 0 0 0 0 0 0 83 14 109 83 14 109 83 14 109 83 14 109 0 0 0 0 0 0 83 14 109 0 0 0 0 0 0 82 14 108 82 14 108 82 14 108 82 14 108 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 109 24 110 109 24 110 109 24 110 109 24 110 109 24 110 109 24 110 109 24 110 109 24 110 109 24 110 109 24 110 0 0 0 0 0 0 109 24 110 109 24 110 109 24 110 109 24 110 0 0 0 0 0 0 107 23 110 107 23 110 107 23 110 107 23 110 107 23 110 107 23 110 107 23 110 107 23 110 107 23 110 107 23 110 107 23 110 107 23 110 107 23 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 193 40 250 193 40 250 193 40 250 193 40 0 0 0 0 0 0 251 168 13 251 168 13 251 168 13 251 168 13 0 0 0 0 0 0 251 170 14 251 170 14 251 170 14 251 170 14 0 0 0 0 0 0 251 170 14 251 170 14 251 170 14 251 170 14 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 170 14 251 170 14 251 170 14 251 170 14 0 0 0 0 0 0 251 170 14 251 170 14 251 170 14 251 170 14 251 170 14 251 170 14 251 170 14 0 0 0 0 0 0 251 170 14 251 170 14 251 170 14 251 170 14 0 0 0 0 0 0 251 172 16 251 172 16 251 172 16 251 172 16 0 0 0 0 0 0 251 172 16 251 172 16 251 172 16 251 172 16 0 0 0 0 0 0 251 172 16 251 172 16 251 172 16 251 172 16 0 0 0 0 0 0 251 172 16 251 172 16 251 172 16 251 172 16 0 0 0 0 0 0 251 172 16 251 172 16 251 172 16 251 172 16 251 172 16 251 172 16 251 172 16 251 172 16 251 172 16 251 172 16 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 251 174 18 251 174 18 251 174 18 251 174 18 251 174 18 251 174 18 251 174 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 177 22 251 177 22 251 177 22 251 177 22 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 251 179 24 251 179 24 251 179 24 251 179 24 251 179 24 251 179 24 251 179 24 0 0 0 0 0 0 251 179 24 251 179 24 251 179 24 251 179 24 0 0 0 0 0 0 251 177 22 251 177 22 251 177 22 251 177 22 251 177 22 251 177 22 251 177 22 0 0 0 0 0 0 251 177 22 251 177 22 251 177 22 251 177 22 0 0 0 0 0 0 251 177 22 251 177 22 251 177 22 251 177 22 251 177 22 251 177 22 251 177 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 93 18 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 93 18 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 96 19 110 0 0 0 0 0 0 96 19 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 95 18 110 0 0 0 0 0 0 95 18 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 95 18 110 0 0 0 0 0 0 95 18 110 0 0 0 0 0 0 95 18 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 83 14 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 82 14 108 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 109 24 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 109 24 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 107 23 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 193 40 0 0 0 0 0 0 250 193 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 174 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 251 179 24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 179 24 0 0 0 0 0 0 251 179 24 0 0 0 0 0 0 251 179 24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 93 18 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 93 18 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 96 19 110 0 0 0 0 0 0 96 19 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 95 18 110 0 0 0 0 0 0 95 18 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 95 18 110 0 0 0 0 0 0 95 18 110 0 0 0 0 0 0 95 18 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 83 14 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 82 14 108 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 109 24 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 109 24 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 107 23 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 193 40 0 0 0 0 0 0 250 193 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 174 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 176 20 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 251 179 24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 179 24 0 0 0 0 0 0 251 179 24 0 0 0 0 0 0 251 179 24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 98 20 110 98 20 110 98 20 110 98 20 110 98 20 110 98 20 110 98 20 110 98 20 110 98 20 110 98 20 110 0 0 0 0 0 0 93 18 110 93 18 110 93 18 110 93 18 110 93 18 110 93 18 110 93 18 110 93 18 110 93 18 110 93 18 110 93 18 110 93 18 110 93 18 110 0 0 0 0 0 0 93 18 110 93 18 110 93 18 110 93 18 110 0 0 0 0 0 0 93 18 110 93 18 110 93 18 110 93 18 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 96 19 110 96 19 110 96 19 110 96 19 110 0 0 0 0 0 0 96 19 110 96 19 110 96 19 110 96 19 110 0 0 0 0 0 0 95 18 110 95 18 110 95 18 110 95 18 110 0 0 0 0 0 0 96 19 110 96 19 110 96 19 110 96 19 110 96 19 110 96 19 110 96 19 110 96 19 110 95 18 110 95 18 110 0 0 0 0 0 0 95 18 110 95 18 110 95 18 110 95 18 110 0 0 0 0 0 0 102 21 110 102 21 110 102 21 110 102 21 110 0 0 0 0 0 0 102 21 110 102 21 110 102 21 110 102 21 110 0 0 0 0 0 0 83 14 109 83 14 109 83 14 109 83 14 109 83 14 109 82 14 108 82 14 108 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 104 22 110 104 22 110 104 22 110 104 22 110 0 0 0 0 0 0 109 24 110 109 24 110 109 24 110 109 24 110 109 24 110 109 24 110 109 24 110 109 24 110 109 24 110 109 24 110 0 0 0 0 0 0 109 24 110 109 24 110 107 23 110 107 23 110 0 0 0 0 0 0 107 23 110 107 23 110 107 23 110 107 23 110 0 0 0 0 0 0 107 23 110 107 23 110 107 23 110 107 23 110 0 0 0 0 0 0 107 23 110 0 0 0 0 0 0 107 23 110 107 23 110 107 23 110 107 23 110 107 23 110 107 23 110 107 23 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 193 40 250 193 40 250 193 40 250 193 40 0 0 0 0 0 0 250 193 40 0 0 0 0 0 0 250 193 40 250 193 40 250 193 40 250 193 40 0 0 0 0 0 0 251 170 14 251 170 14 251 170 14 251 170 14 251 170 14 251 170 14 251 170 14 251 170 14 251 170 14 251 170 14 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 170 14 251 170 14 251 170 14 251 170 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 170 14 251 170 14 251 170 14 251 170 14 0 0 0 0 0 0 251 170 14 251 170 14 251 170 14 251 170 14 0 0 0 0 0 0 251 172 16 251 172 16 251 172 16 251 172 16 0 0 0 0 0 0 251 172 16 251 172 16 251 172 16 251 172 16 0 0 0 0 0 0 251 172 16 251 172 16 251 172 16 251 172 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 172 16 251 172 16 251 172 16 251 172 16 251 172 16 251 172 16 251 172 16 251 172 16 251 172 16 251 172 16 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 251 174 18 251 174 18 251 174 18 251 174 18 0 0 0 0 0 0 251 174 18 251 174 18 251 174 18 251 174 18 0 0 0 0 0 0 251 176 20 0 0 0 0 0 0 251 177 22 251 177 22 251 177 22 251 177 22 0 0 0 0 0 0 251 179 24 251 179 24 251 179 24 251 179 24 0 0 0 0 0 0 251 179 24 251 179 24 251 179 24 251 179 24 0 0 0 0 0 0 251 179 24 251 179 24 251 179 24 251 179 24 251 179 24 251 179 24 251 179 24 251 179 24 251 179 24 251 179 24 251 179 24 251 177 22 251 177 22 0 0 0 0 0 0 251 177 22 251 177 22 251 177 22 251 177 22 251 177 22 251 177 22 251 177 22 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 93 18 110 0 0 0 0 0 0 93 18 110 0 0 0 0 0 0 93 18 110 0 0 0 0 0 0 93 18 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 96 19 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 96 19 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 96 19 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 21 110 0 0 0 0 0 0 102 21 110 0 0 0 0 0 0 102 21 110 0 0 0 0 0 0 102 21 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 109 24 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 107 23 110 0 0 0 0 0 0 107 23 110 0 0 0 0 0 0 107 23 110 0 0 0 0 0 0 107 23 110 0 0 0 0 0 0 107 23 110 0 0 0 0 0 0 107 23 110 0 0 0 0 0 0 107 23 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 107 23 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 193 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 193 40 0 0 0 0 0 0 250 193 40 0 0 0 0 0 0 250 193 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 251 174 18 0 0 0 0 0 0 251 174 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 174 18 0 0 0 0 0 0 251 176 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 179 24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 93 18 110 0 0 0 0 0 0 93 18 110 0 0 0 0 0 0 93 18 110 0 0 0 0 0 0 93 18 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 96 19 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 96 19 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 96 19 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 21 110 0 0 0 0 0 0 102 21 110 0 0 0 0 0 0 102 21 110 0 0 0 0 0 0 102 21 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 109 24 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 107 23 110 0 0 0 0 0 0 107 23 110 0 0 0 0 0 0 107 23 110 0 0 0 0 0 0 107 23 110 0 0 0 0 0 0 107 23 110 0 0 0 0 0 0 107 23 110 0 0 0 0 0 0 107 23 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 107 23 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 193 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 193 40 0 0 0 0 0 0 250 193 40 0 0 0 0 0 0 250 193 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 251 174 18 0 0 0 0 0 0 251 174 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 174 18 0 0 0 0 0 0 251 176 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 179 24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 98 20 110 98 20 110 98 20 110 98 20 110 98 20 110 98 20 110 98 20 110 0 0 0 0 0 0 98 20 110 98 20 110 98 20 110 98 20 110 98 20 110 98 20 110 98 20 110 0 0 0 0 0 0 93 18 110 93 18 110 93 18 110 93 18 110 93 18 110 93 18 110 93 18 110 0 0 0 0 0 0 93 18 110 0 0 0 0 0 0 93 18 110 0 0 0 0 0 0 93 18 110 0 0 0 0 0 0 96 19 110 96 19 110 96 19 110 96 19 110 96 19 110 96 19 110 96 19 110 0 0 0 0 0 0 96 19 110 96 19 110 96 19 110 96 19 110 0 0 0 0 0 0 96 19 110 96 19 110 96 19 110 96 19 110 96 19 110 96 19 110 96 19 110 96 19 110 96 19 110 96 19 110 0 0 0 0 0 0 101 21 110 101 21 110 101 21 110 101 21 110 0 0 0 0 0 0 102 21 110 102 21 110 102 21 110 102 21 110 102 21 110 102 21 110 102 21 110 102 21 110 102 21 110 102 21 110 0 0 0 0 0 0 102 21 110 102 21 110 102 21 110 102 21 110 0 0 0 0 0 0 102 21 110 102 21 110 102 21 110 102 21 110 0 0 0 0 0 0 104 22 110 104 22 110 104 22 110 104 22 110 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 110 24 110 110 24 110 110 24 110 110 24 110 110 24 110 110 24 110 110 24 110 0 0 0 0 0 0 110 24 110 110 24 110 110 24 110 110 24 110 0 0 0 0 0 0 109 24 110 109 24 110 109 24 110 109 24 110 0 0 0 0 0 0 107 23 110 107 23 110 107 23 110 107 23 110 0 0 0 0 0 0 107 23 110 107 23 110 107 23 110 107 23 110 0 0 0 0 0 0 107 23 110 0 0 0 0 0 0 107 23 110 107 23 110 107 23 110 107 23 110 0 0 0 0 0 0 107 23 110 107 23 110 107 23 110 107 23 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 193 40 250 193 40 250 193 40 250 193 40 0 0 0 0 0 0 250 193 40 0 0 0 0 0 0 250 193 40 0 0 0 0 0 0 250 193 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 193 40 250 193 40 250 193 40 250 193 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 170 14 251 170 14 251 170 14 251 170 14 0 0 0 0 0 0 250 191 37 250 191 37 250 191 37 250 191 37 250 191 37 250 191 37 250 191 37 0 0 0 0 0 0 250 189 35 250 189 35 250 189 35 250 189 35 250 189 35 250 189 35 250 189 35 0 0 0 0 0 0 250 189 35 250 189 35 250 189 35 250 189 35 0 0 0 0 0 0 250 189 35 250 189 35 250 189 35 250 189 35 250 189 35 250 189 35 250 189 35 0 0 0 0 0 0 250 189 35 250 189 35 250 189 35 250 189 35 0 0 0 0 0 0 251 174 18 251 174 18 251 174 18 251 174 18 251 174 18 251 174 18 251 174 18 0 0 0 0 0 0 251 174 18 251 174 18 251 174 18 251 174 18 0 0 0 0 0 0 251 172 16 251 172 16 251 172 16 251 172 16 0 0 0 0 0 0 251 174 18 0 0 0 0 0 0 251 174 18 251 174 18 251 174 18 251 174 18 251 174 18 251 174 18 251 174 18 0 0 0 0 0 0 251 176 20 0 0 0 0 0 0 251 179 24 251 179 24 251 179 24 251 179 24 251 179 24 251 179 24 251 179 24 251 179 24 251 179 24 251 179 24 0 0 0 0 0 0 251 179 24 251 179 24 251 179 24 251 179 24 251 179 24 251 179 24 251 179 24 251 179 24 251 179 24 251 179 24 251 179 24 251 179 24 251 179 24 251 179 24 251 179 24 251 179 24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 179 24 251 179 24 251 181 26 251 181 26 0 0 0 0 0 0 251 177 22 251 177 22 251 177 22 251 177 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 93 18 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 93 18 110 0 0 0 0 0 0 93 18 110 0 0 0 0 0 0 93 18 110 0 0 0 0 0 0 96 19 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 96 19 110 0 0 0 0 0 0 96 19 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 101 21 110 0 0 0 0 0 0 101 21 110 0 0 0 0 0 0 102 21 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 21 110 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 109 24 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 107 23 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 107 23 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 193 40 0 0 0 0 0 0 250 193 40 0 0 0 0 0 0 250 193 40 0 0 0 0 0 0 250 193 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 193 40 0 0 0 0 0 0 250 193 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 250 189 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 189 35 0 0 0 0 0 0 250 189 35 0 0 0 0 0 0 250 189 35 0 0 0 0 0 0 250 189 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 189 35 0 0 0 0 0 0 250 189 35 0 0 0 0 0 0 250 189 35 0 0 0 0 0 0 251 174 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 174 18 0 0 0 0 0 0 251 174 18 0 0 0 0 0 0 251 174 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 174 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 176 20 0 0 0 0 0 0 251 179 24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 179 24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 179 24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 179 24 0 0 0 0 0 0 251 181 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 93 18 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 93 18 110 0 0 0 0 0 0 93 18 110 0 0 0 0 0 0 93 18 110 0 0 0 0 0 0 96 19 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 96 19 110 0 0 0 0 0 0 96 19 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 101 21 110 0 0 0 0 0 0 102 21 110 0 0 0 0 0 0 102 21 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 21 110 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 109 24 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 107 23 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 107 23 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 193 40 0 0 0 0 0 0 250 193 40 0 0 0 0 0 0 250 193 40 0 0 0 0 0 0 250 193 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 193 40 0 0 0 0 0 0 250 193 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 189 35 0 0 0 0 0 0 250 189 35 0 0 0 0 0 0 250 189 35 0 0 0 0 0 0 250 189 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 189 35 0 0 0 0 0 0 250 189 35 0 0 0 0 0 0 250 189 35 0 0 0 0 0 0 251 174 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 174 18 0 0 0 0 0 0 251 174 18 0 0 0 0 0 0 251 174 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 174 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 176 20 0 0 0 0 0 0 251 179 24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 179 24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 179 24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 179 24 0 0 0 0 0 0 251 181 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 99 20 110 99 20 110 99 20 110 99 20 110 0 0 0 0 0 0 98 20 110 98 20 110 98 20 110 98 20 110 98 20 110 98 20 110 98 20 110 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 93 18 110 93 18 110 93 18 110 93 18 110 93 18 110 93 18 110 93 18 110 93 18 110 93 18 110 93 18 110 0 0 0 0 0 0 93 18 110 93 18 110 93 18 110 93 18 110 0 0 0 0 0 0 96 19 110 96 19 110 96 19 110 96 19 110 96 19 110 96 19 110 96 19 110 96 19 110 96 19 110 96 19 110 0 0 0 0 0 0 96 19 110 96 19 110 96 19 110 96 19 110 96 19 110 96 19 110 96 19 110 96 19 110 96 19 110 96 19 110 0 0 0 0 0 0 101 21 110 101 21 110 101 21 110 101 21 110 0 0 0 0 0 0 102 21 110 0 0 0 0 0 0 102 21 110 0 0 0 0 0 0 102 21 110 102 21 110 102 21 110 102 21 110 102 21 110 102 21 110 102 21 110 102 21 110 102 21 110 102 21 110 102 21 110 102 21 110 102 21 110 102 21 110 102 21 110 102 21 110 102 21 110 102 21 110 102 21 110 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 109 24 110 109 24 110 109 24 110 109 24 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 109 24 110 109 24 110 109 24 110 109 24 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 107 23 110 0 0 0 0 0 0 107 23 110 107 23 110 107 23 110 107 23 110 107 23 110 107 23 110 107 23 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 193 40 250 193 40 250 193 40 250 193 40 0 0 0 0 0 0 250 193 40 250 193 40 250 193 40 250 193 40 0 0 0 0 0 0 250 193 40 250 193 40 250 193 40 250 193 40 250 193 40 250 193 40 250 193 40 0 0 0 0 0 0 250 193 40 250 193 40 250 191 37 250 191 37 0 0 0 0 0 0 250 191 37 250 191 37 250 191 37 250 191 37 0 0 0 0 0 0 250 191 37 250 191 37 250 191 37 250 191 37 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 250 191 37 250 191 37 250 191 37 250 191 37 0 0 0 0 0 0 250 189 35 250 189 35 250 189 35 250 189 35 0 0 0 0 0 0 250 189 35 0 0 0 0 0 0 250 189 35 250 189 35 250 189 35 250 189 35 0 0 0 0 0 0 250 189 35 0 0 0 0 0 0 250 189 35 0 0 0 0 0 0 250 189 35 0 0 0 0 0 0 251 174 18 251 174 18 251 174 18 251 174 18 0 0 0 0 0 0 251 174 18 251 174 18 251 174 18 251 174 18 0 0 0 0 0 0 251 174 18 251 174 18 251 174 18 251 174 18 0 0 0 0 0 0 251 174 18 251 174 18 251 174 18 251 174 18 0 0 0 0 0 0 251 176 20 251 176 20 251 176 20 251 176 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 176 20 0 0 0 0 0 0 251 179 24 251 179 24 251 179 24 251 179 24 251 179 24 251 179 24 251 179 24 251 179 24 251 179 24 251 179 24 251 179 24 251 179 24 251 179 24 0 0 0 0 0 0 251 181 26 251 181 26 251 181 26 251 181 26 251 181 26 251 181 26 251 181 26 251 181 26 251 181 26 251 181 26 0 0 0 0 0 0 251 179 24 251 179 24 251 179 24 251 179 24 251 179 24 251 179 24 251 179 24 0 0 0 0 0 0 251 181 26 251 181 26 251 181 26 251 181 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 99 20 110 0 0 0 0 0 0 99 20 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 96 19 110 0 0 0 0 0 0 101 21 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 21 110 0 0 0 0 0 0 102 21 110 0 0 0 0 0 0 102 21 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 109 24 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 109 24 110 0 0 0 0 0 0 109 24 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 107 23 110 0 0 0 0 0 0 107 23 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 193 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 189 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 189 35 0 0 0 0 0 0 250 189 35 0 0 0 0 0 0 250 189 35 0 0 0 0 0 0 250 189 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 174 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 174 18 0 0 0 0 0 0 251 174 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 176 20 0 0 0 0 0 0 251 176 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 176 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 181 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 181 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 181 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 99 20 110 0 0 0 0 0 0 99 20 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 99 20 110 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 96 19 110 0 0 0 0 0 0 101 21 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 21 110 0 0 0 0 0 0 102 21 110 0 0 0 0 0 0 102 21 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 104 22 110 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 109 24 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 109 24 110 0 0 0 0 0 0 109 24 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 107 23 110 0 0 0 0 0 0 107 23 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 193 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 189 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 189 35 0 0 0 0 0 0 250 189 35 0 0 0 0 0 0 250 189 35 0 0 0 0 0 0 250 189 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 176 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 174 18 0 0 0 0 0 0 251 174 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 176 20 0 0 0 0 0 0 251 176 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 176 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 181 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 181 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 181 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 99 20 110 99 20 110 99 20 110 99 20 110 0 0 0 0 0 0 99 20 110 99 20 110 99 20 110 99 20 110 0 0 0 0 0 0 99 20 110 99 20 110 99 20 110 99 20 110 99 20 110 99 20 110 99 20 110 99 20 110 99 20 110 99 20 110 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 98 20 110 98 20 110 98 20 110 98 20 110 0 0 0 0 0 0 98 20 110 98 20 110 98 20 110 98 20 110 0 0 0 0 0 0 98 20 110 98 20 110 98 20 110 98 20 110 0 0 0 0 0 0 98 20 110 98 20 110 98 20 110 98 20 110 0 0 0 0 0 0 96 19 110 96 19 110 96 19 110 96 19 110 96 19 110 96 19 110 96 19 110 96 19 110 96 19 110 96 19 110 96 19 110 96 19 110 96 19 110 96 19 110 96 19 110 96 19 110 0 0 0 0 0 0 101 21 110 0 0 0 0 0 0 102 21 110 102 21 110 102 21 110 102 21 110 0 0 0 0 0 0 102 21 110 0 0 0 0 0 0 102 21 110 102 21 110 102 21 110 102 21 110 102 21 110 102 21 110 102 21 110 102 21 110 102 21 110 102 21 110 102 21 110 102 21 110 102 21 110 102 21 110 104 22 110 104 22 110 104 22 110 104 22 110 104 22 110 104 22 110 104 22 110 104 22 110 0 0 0 0 0 0 104 22 110 104 22 110 104 22 110 104 22 110 0 0 0 0 0 0 110 24 110 110 24 110 110 24 110 110 24 110 0 0 0 0 0 0 110 24 110 110 24 110 110 24 110 110 24 110 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 109 24 110 109 24 110 109 24 110 109 24 110 109 24 110 109 24 110 109 24 110 109 24 110 109 24 110 109 24 110 0 0 0 0 0 0 109 24 110 109 24 110 109 24 110 109 24 110 0 0 0 0 0 0 107 23 110 107 23 110 107 23 110 107 23 110 0 0 0 0 0 0 117 27 109 117 27 109 117 27 109 117 27 109 0 0 0 0 0 0 118 27 109 118 27 109 118 27 109 118 27 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 193 40 250 193 40 250 193 40 250 193 40 250 193 40 250 193 40 250 193 40 0 0 0 0 0 0 250 193 40 250 193 40 250 193 40 250 193 40 0 0 0 0 0 0 249 195 42 249 195 42 249 195 42 249 195 42 0 0 0 0 0 0 249 195 42 249 195 42 249 195 42 249 195 42 249 195 42 249 195 42 249 195 42 0 0 0 0 0 0 250 191 37 250 191 37 250 191 37 250 191 37 0 0 0 0 0 0 250 191 37 250 191 37 250 191 37 250 191 37 250 191 37 250 191 37 250 191 37 0 0 0 0 0 0 250 191 37 250 191 37 250 191 37 250 191 37 0 0 0 0 0 0 250 191 37 250 191 37 250 191 37 250 191 37 250 191 37 250 191 37 250 191 37 0 0 0 0 0 0 250 189 35 0 0 0 0 0 0 250 189 35 250 189 35 250 189 35 250 189 35 0 0 0 0 0 0 250 189 35 250 189 35 250 189 35 250 189 35 0 0 0 0 0 0 250 189 35 250 189 35 250 189 35 250 189 35 0 0 0 0 0 0 251 176 20 251 176 20 251 176 20 251 176 20 251 176 20 251 176 20 251 176 20 251 176 20 251 176 20 251 176 20 0 0 0 0 0 0 251 174 18 0 0 0 0 0 0 251 174 18 0 0 0 0 0 0 251 176 20 251 176 20 251 176 20 251 176 20 0 0 0 0 0 0 251 176 20 251 176 20 251 176 20 251 176 20 0 0 0 0 0 0 251 176 20 0 0 0 0 0 0 251 181 26 251 181 26 251 181 26 251 181 26 251 181 26 251 181 26 251 181 26 251 181 26 251 181 26 251 181 26 251 181 26 251 181 26 251 181 26 251 181 26 251 181 26 251 181 26 0 0 0 0 0 0 251 181 26 251 181 26 251 181 26 251 181 26 0 0 0 0 0 0 251 181 26 251 181 26 251 181 26 251 181 26 251 181 26 251 181 26 251 181 26 251 181 26 251 181 26 251 181 26 251 181 26 251 181 26 251 181 26 0 0 0 0 0 0 251 181 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 99 20 110 0 0 0 0 0 0 99 20 110 0 0 0 0 0 0 99 20 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 96 19 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 101 21 110 0 0 0 0 0 0 102 21 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 21 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 109 24 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 193 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 193 40 0 0 0 0 0 0 250 193 40 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 250 189 35 0 0 0 0 0 0 250 189 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 189 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 176 20 0 0 0 0 0 0 251 174 18 0 0 0 0 0 0 251 174 18 0 0 0 0 0 0 251 176 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 176 20 0 0 0 0 0 0 251 176 20 0 0 0 0 0 0 251 181 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 181 26 0 0 0 0 0 0 251 181 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 181 26 0 0 0 0 0 0 251 181 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 99 20 110 0 0 0 0 0 0 99 20 110 0 0 0 0 0 0 99 20 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 98 20 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 101 21 110 0 0 0 0 0 0 102 21 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 102 21 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 109 24 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 193 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 193 40 0 0 0 0 0 0 250 193 40 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 250 189 35 0 0 0 0 0 0 250 189 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 189 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 176 20 0 0 0 0 0 0 251 174 18 0 0 0 0 0 0 251 174 18 0 0 0 0 0 0 251 176 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 176 20 0 0 0 0 0 0 251 176 20 0 0 0 0 0 0 251 181 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 181 26 0 0 0 0 0 0 251 181 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 181 26 0 0 0 0 0 0 251 181 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 99 20 110 0 0 0 0 0 0 99 20 110 99 20 110 99 20 110 99 20 110 0 0 0 0 0 0 99 20 110 99 20 110 99 20 110 99 20 110 99 20 110 99 20 110 99 20 110 99 20 110 99 20 110 99 20 110 99 20 110 99 20 110 99 20 110 0 0 0 0 0 0 98 20 110 98 20 110 98 20 110 98 20 110 0 0 0 0 0 0 98 20 110 98 20 110 98 20 110 98 20 110 0 0 0 0 0 0 98 20 110 98 20 110 98 20 110 98 20 110 0 0 0 0 0 0 98 20 110 98 20 110 98 20 110 98 20 110 0 0 0 0 0 0 98 20 110 98 20 110 98 20 110 98 20 110 0 0 0 0 0 0 101 21 110 101 21 110 101 21 110 101 21 110 101 21 110 101 21 110 101 21 110 101 21 110 101 21 110 101 21 110 101 21 110 101 21 110 101 21 110 101 21 110 101 21 110 101 21 110 0 0 0 0 0 0 102 21 110 102 21 110 102 21 110 102 21 110 102 21 110 102 21 110 102 21 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 112 25 110 112 25 110 112 25 110 112 25 110 0 0 0 0 0 0 112 25 110 112 25 110 112 25 110 112 25 110 0 0 0 0 0 0 112 25 110 112 25 110 112 25 110 112 25 110 0 0 0 0 0 0 112 25 110 112 25 110 112 25 110 112 25 110 0 0 0 0 0 0 112 25 110 112 25 110 112 25 110 112 25 110 0 0 0 0 0 0 110 24 110 110 24 110 110 24 110 110 24 110 110 24 110 110 24 110 110 24 110 0 0 0 0 0 0 110 24 110 110 24 110 110 24 110 110 24 110 0 0 0 0 0 0 110 24 110 110 24 110 110 24 110 110 24 110 0 0 0 0 0 0 109 24 110 109 24 110 109 24 110 109 24 110 0 0 0 0 0 0 109 24 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 118 27 109 118 27 109 118 27 109 118 27 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 193 40 250 193 40 250 193 40 250 193 40 250 193 40 250 193 40 250 193 40 250 193 40 250 193 40 250 193 40 0 0 0 0 0 0 250 193 40 250 193 40 249 195 42 249 195 42 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 249 195 42 249 195 42 249 195 42 249 195 42 0 0 0 0 0 0 249 195 42 249 195 42 249 195 42 249 195 42 0 0 0 0 0 0 249 195 42 249 195 42 249 195 42 249 195 42 249 195 42 249 195 42 249 195 42 0 0 0 0 0 0 250 191 37 250 191 37 250 191 37 250 191 37 0 0 0 0 0 0 250 191 37 250 191 37 250 191 37 250 191 37 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 250 189 35 250 189 35 250 189 35 250 189 35 0 0 0 0 0 0 247 207 58 247 207 58 247 207 58 247 207 58 247 207 58 247 207 58 247 207 58 247 207 58 247 207 58 247 207 58 0 0 0 0 0 0 250 189 35 250 189 35 250 189 35 250 189 35 0 0 0 0 0 0 251 176 20 251 176 20 251 176 20 251 176 20 251 176 20 251 176 20 251 176 20 0 0 0 0 0 0 251 174 18 251 174 18 251 174 18 251 174 18 0 0 0 0 0 0 251 176 20 0 0 0 0 0 0 251 176 20 251 176 20 251 176 20 251 176 20 251 176 20 251 176 20 251 176 20 0 0 0 0 0 0 251 176 20 0 0 0 0 0 0 251 181 26 0 0 0 0 0 0 251 181 26 251 181 26 251 181 26 251 181 26 251 181 26 251 181 26 251 181 26 251 181 26 251 181 26 251 181 26 251 181 26 251 181 26 251 181 26 251 181 26 251 181 26 251 181 26 0 0 0 0 0 0 251 181 26 251 181 26 251 183 28 251 183 28 0 0 0 0 0 0 251 185 30 251 185 30 251 185 30 251 185 30 251 185 30 251 185 30 251 185 30 0 0 0 0 0 0 251 181 26 251 181 26 251 181 26 251 181 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 99 20 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 99 20 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 99 20 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 101 21 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 109 24 110 0 0 0 0 0 0 109 24 110 0 0 0 0 0 0 109 24 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 189 35 0 0 0 0 0 0 251 176 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 176 20 0 0 0 0 0 0 251 176 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 176 20 0 0 0 0 0 0 251 181 26 0 0 0 0 0 0 251 181 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 99 20 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 99 20 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 99 20 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 101 21 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 109 24 110 0 0 0 0 0 0 109 24 110 0 0 0 0 0 0 109 24 110 0 0 0 0 0 0 109 24 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 189 35 0 0 0 0 0 0 251 176 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 176 20 0 0 0 0 0 0 251 176 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 176 20 0 0 0 0 0 0 251 181 26 0 0 0 0 0 0 251 181 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 99 20 110 99 20 110 99 20 110 99 20 110 99 20 110 99 20 110 99 20 110 0 0 0 0 0 0 99 20 110 0 0 0 0 0 0 101 21 110 101 21 110 101 21 110 101 21 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 99 20 110 99 20 110 99 20 110 99 20 110 99 20 110 99 20 110 99 20 110 0 0 0 0 0 0 101 21 110 101 21 110 101 21 110 101 21 110 101 21 110 101 21 110 101 21 110 101 21 110 101 21 110 101 21 110 101 21 110 101 21 110 101 21 110 101 21 110 101 21 110 101 21 110 101 21 110 101 21 110 101 21 110 101 21 110 101 21 110 101 21 110 101 21 110 101 21 110 101 21 110 0 0 0 0 0 0 114 25 109 114 25 109 114 25 109 114 25 109 0 0 0 0 0 0 112 25 110 112 25 110 112 25 110 112 25 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 112 25 110 112 25 110 112 25 110 112 25 110 0 0 0 0 0 0 112 25 110 112 25 110 112 25 110 112 25 110 112 25 110 112 25 110 112 25 110 0 0 0 0 0 0 112 25 110 112 25 110 112 25 110 112 25 110 0 0 0 0 0 0 112 25 110 112 25 110 112 25 110 112 25 110 0 0 0 0 0 0 112 25 110 112 25 110 112 25 110 112 25 110 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 110 24 110 110 24 110 110 24 110 110 24 110 0 0 0 0 0 0 110 24 110 110 24 110 110 24 110 110 24 110 0 0 0 0 0 0 110 24 110 110 24 110 110 24 110 110 24 110 0 0 0 0 0 0 109 24 110 109 24 110 109 24 110 109 24 110 0 0 0 0 0 0 109 24 110 109 24 110 109 24 110 109 24 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 117 27 109 117 27 109 117 27 109 117 27 109 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 118 27 109 118 27 109 118 27 109 118 27 109 118 27 109 118 27 109 118 27 109 0 0 0 0 0 0 118 27 109 118 27 109 118 27 109 118 27 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 199 47 249 199 47 249 199 47 249 199 47 249 199 47 249 199 47 249 199 47 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 195 42 249 195 42 249 195 42 249 195 42 0 0 0 0 0 0 249 195 42 249 195 42 249 195 42 249 195 42 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 249 195 42 249 195 42 249 195 42 249 195 42 0 0 0 0 0 0 249 195 42 249 195 42 249 195 42 249 195 42 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 250 191 37 250 191 37 250 191 37 250 191 37 0 0 0 0 0 0 250 191 37 250 191 37 250 191 37 250 191 37 0 0 0 0 0 0 247 207 58 247 207 58 247 207 58 247 207 58 247 207 58 247 207 58 247 207 58 0 0 0 0 0 0 247 207 58 247 207 58 247 207 58 247 207 58 247 207 58 247 207 58 247 207 58 0 0 0 0 0 0 250 189 35 250 189 35 250 189 35 250 189 35 0 0 0 0 0 0 251 176 20 251 176 20 251 176 20 251 176 20 251 176 20 251 176 20 251 176 20 251 176 20 251 176 20 251 176 20 251 176 20 251 176 20 251 176 20 251 176 20 251 176 20 251 176 20 0 0 0 0 0 0 251 176 20 251 176 20 251 176 20 251 176 20 251 176 20 251 176 20 251 176 20 251 176 20 251 176 20 251 176 20 0 0 0 0 0 0 251 181 26 251 181 26 251 181 26 251 181 26 0 0 0 0 0 0 251 183 28 251 183 28 251 183 28 251 183 28 251 183 28 251 183 28 251 183 28 251 183 28 251 183 28 251 183 28 251 183 28 251 183 28 251 183 28 251 183 28 251 183 28 251 183 28 251 183 28 251 183 28 251 183 28 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 251 185 30 251 185 30 251 185 30 251 185 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 99 20 110 0 0 0 0 0 0 99 20 110 0 0 0 0 0 0 101 21 110 0 0 0 0 0 0 101 21 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 99 20 110 0 0 0 0 0 0 101 21 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 114 25 109 0 0 0 0 0 0 114 25 109 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 199 47 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 199 47 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 189 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 99 20 110 0 0 0 0 0 0 99 20 110 0 0 0 0 0 0 101 21 110 0 0 0 0 0 0 99 20 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 99 20 110 0 0 0 0 0 0 101 21 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 114 25 109 0 0 0 0 0 0 114 25 109 0 0 0 0 0 0 114 25 109 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 112 25 110 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 110 24 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 199 47 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 199 47 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 189 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 99 20 110 99 20 110 99 20 110 99 20 110 0 0 0 0 0 0 101 21 110 0 0 0 0 0 0 99 20 110 99 20 110 99 20 110 99 20 110 99 20 110 99 20 110 99 20 110 99 20 110 99 20 110 99 20 110 99 20 110 99 20 110 99 20 110 0 0 0 0 0 0 101 21 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 123 29 108 123 29 108 123 29 108 123 29 108 123 29 108 123 29 108 123 29 108 123 29 108 123 29 108 123 29 108 123 29 108 123 29 108 123 29 108 0 0 0 0 0 0 114 25 109 114 25 109 114 25 109 114 25 109 114 25 109 114 25 109 114 25 109 0 0 0 0 0 0 114 25 109 114 25 109 114 25 109 114 25 109 0 0 0 0 0 0 112 25 110 112 25 110 112 25 110 112 25 110 112 25 110 112 25 110 112 25 110 0 0 0 0 0 0 112 25 110 112 25 110 112 25 110 112 25 110 0 0 0 0 0 0 114 25 109 114 25 109 114 25 109 114 25 109 114 25 109 114 25 109 114 25 109 114 25 109 114 25 109 114 25 109 114 25 109 114 25 109 114 25 109 114 25 109 114 25 109 114 25 109 114 25 109 114 25 109 114 25 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 112 25 110 112 25 110 112 25 110 112 25 110 0 0 0 0 0 0 110 24 110 110 24 110 110 24 110 110 24 110 0 0 0 0 0 0 110 24 110 110 24 110 110 24 110 110 24 110 110 24 110 110 24 110 110 24 110 0 0 0 0 0 0 117 27 109 117 27 109 117 27 109 117 27 109 0 0 0 0 0 0 117 27 109 117 27 109 117 27 109 117 27 109 117 27 109 117 27 109 117 27 109 0 0 0 0 0 0 117 27 109 117 27 109 117 27 109 117 27 109 0 0 0 0 0 0 117 27 109 117 27 109 117 27 109 117 27 109 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 118 27 109 118 27 109 118 27 109 118 27 109 118 27 109 118 27 109 118 27 109 0 0 0 0 0 0 118 27 109 118 27 109 118 27 109 118 27 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 199 47 249 199 47 249 199 47 249 199 47 249 199 47 249 199 47 249 199 47 0 0 0 0 0 0 249 199 47 249 199 47 249 199 47 249 199 47 0 0 0 0 0 0 249 199 47 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 199 47 249 199 47 249 197 44 249 197 44 0 0 0 0 0 0 249 197 44 249 197 44 249 197 44 249 197 44 0 0 0 0 0 0 249 195 42 249 195 42 249 195 42 249 195 42 0 0 0 0 0 0 249 197 44 249 197 44 249 197 44 249 197 44 0 0 0 0 0 0 249 195 42 249 195 42 249 195 42 249 195 42 0 0 0 0 0 0 250 191 37 250 191 37 250 191 37 250 191 37 0 0 0 0 0 0 247 207 58 247 207 58 247 207 58 247 207 58 247 207 58 247 207 58 247 207 58 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 247 209 60 247 209 60 247 207 58 247 207 58 247 207 58 247 207 58 247 207 58 0 0 0 0 0 0 247 209 60 247 209 60 247 209 60 247 209 60 0 0 0 0 0 0 250 189 35 250 189 35 250 187 33 250 187 33 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 187 33 250 187 33 250 187 33 250 187 33 0 0 0 0 0 0 250 187 33 250 187 33 250 187 33 250 187 33 250 187 33 250 187 33 250 187 33 0 0 0 0 0 0 250 187 33 250 187 33 250 187 33 250 187 33 0 0 0 0 0 0 250 187 33 250 187 33 250 187 33 250 187 33 250 187 33 250 187 33 250 187 33 0 0 0 0 0 0 251 183 28 251 183 28 251 183 28 251 183 28 0 0 0 0 0 0 251 183 28 251 183 28 251 183 28 251 183 28 0 0 0 0 0 0 251 183 28 251 183 28 251 183 28 251 183 28 251 183 28 251 183 28 251 183 28 251 183 28 251 183 28 251 183 28 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 251 185 30 251 185 30 251 185 30 251 185 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 101 21 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 101 21 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 114 25 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 114 25 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 114 25 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 199 47 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 199 47 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 199 47 0 0 0 0 0 0 249 199 47 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 199 47 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 247 209 60 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 209 60 0 0 0 0 0 0 247 209 60 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 187 33 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 187 33 0 0 0 0 0 0 250 187 33 0 0 0 0 0 0 250 187 33 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 187 33 0 0 0 0 0 0 250 187 33 0 0 0 0 0 0 250 187 33 0 0 0 0 0 0 250 187 33 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 187 33 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 101 21 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 101 21 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 114 25 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 114 25 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 114 25 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 201 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 199 47 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 199 47 0 0 0 0 0 0 249 199 47 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 199 47 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 247 209 60 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 209 60 0 0 0 0 0 0 247 209 60 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 187 33 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 187 33 0 0 0 0 0 0 250 187 33 0 0 0 0 0 0 250 187 33 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 187 33 0 0 0 0 0 0 250 187 33 0 0 0 0 0 0 250 187 33 0 0 0 0 0 0 250 187 33 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 187 33 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 101 21 110 101 21 110 101 21 110 101 21 110 0 0 0 0 0 0 101 21 110 101 21 110 101 21 110 101 21 110 101 21 110 101 21 110 101 21 110 101 21 110 101 21 110 101 21 110 101 21 110 101 21 110 101 21 110 0 0 0 0 0 0 123 29 108 123 29 108 123 29 108 123 29 108 0 0 0 0 0 0 125 29 108 125 29 108 125 29 108 125 29 108 125 29 108 125 29 108 125 29 108 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 114 25 109 114 25 109 114 25 109 114 25 109 114 25 109 114 25 109 114 25 109 114 25 109 114 25 109 114 25 109 0 0 0 0 0 0 114 25 109 114 25 109 114 25 109 114 25 109 114 25 109 114 25 109 114 25 109 114 25 109 114 25 109 114 25 109 0 0 0 0 0 0 114 25 109 114 25 109 114 25 109 114 25 109 114 25 109 114 25 109 114 25 109 0 0 0 0 0 0 115 26 109 115 26 109 115 26 109 115 26 109 0 0 0 0 0 0 115 26 109 115 26 109 115 26 109 115 26 109 115 26 109 115 26 109 115 26 109 115 26 109 114 25 109 114 25 109 0 0 0 0 0 0 115 26 109 115 26 109 115 26 109 115 26 109 0 0 0 0 0 0 115 26 109 115 26 109 115 26 109 115 26 109 115 26 109 115 26 109 115 26 109 115 26 109 115 26 109 115 26 109 115 26 109 115 26 109 115 26 109 115 26 109 115 26 109 115 26 109 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 117 27 109 117 27 109 117 27 109 117 27 109 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 117 27 109 117 27 109 117 27 109 117 27 109 0 0 0 0 0 0 118 27 109 118 27 109 118 27 109 118 27 109 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 118 27 109 118 27 109 118 27 109 118 27 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 201 49 248 201 49 248 201 49 248 201 49 0 0 0 0 0 0 249 199 47 0 0 0 0 0 0 249 199 47 249 199 47 249 199 47 249 199 47 0 0 0 0 0 0 249 199 47 249 199 47 249 199 47 249 199 47 249 199 47 249 199 47 249 199 47 0 0 0 0 0 0 249 197 44 249 197 44 249 197 44 249 197 44 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 249 197 44 249 197 44 249 197 44 249 197 44 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 249 195 42 249 195 42 249 195 42 249 195 42 0 0 0 0 0 0 249 197 44 249 197 44 249 197 44 249 197 44 0 0 0 0 0 0 247 207 58 247 207 58 247 207 58 247 207 58 0 0 0 0 0 0 247 207 58 247 207 58 247 207 58 247 207 58 0 0 0 0 0 0 247 209 60 247 209 60 247 209 60 247 209 60 0 0 0 0 0 0 247 209 60 247 209 60 247 209 60 247 209 60 0 0 0 0 0 0 247 209 60 247 209 60 247 209 60 247 209 60 0 0 0 0 0 0 250 187 33 250 187 33 250 187 33 250 187 33 250 187 33 250 187 33 250 187 33 0 0 0 0 0 0 250 187 33 250 187 33 250 187 33 250 187 33 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 187 33 250 187 33 250 187 33 250 187 33 0 0 0 0 0 0 250 187 33 250 187 33 250 187 33 250 187 33 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 187 33 0 0 0 0 0 0 251 183 28 251 183 28 251 183 28 251 183 28 251 183 28 251 183 28 251 183 28 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 251 183 28 251 183 28 251 183 28 251 183 28 251 183 28 251 183 28 251 183 28 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 251 185 30 251 185 30 251 185 30 251 185 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 101 21 110 0 0 0 0 0 0 101 21 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 125 29 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 125 29 108 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 114 25 109 0 0 0 0 0 0 114 25 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 114 25 109 0 0 0 0 0 0 114 25 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 201 49 0 0 0 0 0 0 249 199 47 0 0 0 0 0 0 249 199 47 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 209 60 0 0 0 0 0 0 247 209 60 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 209 60 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 187 33 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 101 21 110 0 0 0 0 0 0 101 21 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 125 29 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 125 29 108 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 114 25 109 0 0 0 0 0 0 114 25 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 114 25 109 0 0 0 0 0 0 114 25 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 201 49 0 0 0 0 0 0 249 199 47 0 0 0 0 0 0 249 199 47 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 209 60 0 0 0 0 0 0 247 209 60 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 209 60 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 187 33 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 101 21 110 101 21 110 101 21 110 101 21 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 123 29 108 123 29 108 123 29 108 123 29 108 123 29 108 123 29 108 123 29 108 123 29 108 123 29 108 123 29 108 0 0 0 0 0 0 125 29 108 125 29 108 125 29 108 125 29 108 0 0 0 0 0 0 125 29 108 125 29 108 125 29 108 125 29 108 0 0 0 0 0 0 123 29 108 123 29 108 123 29 108 123 29 108 0 0 0 0 0 0 123 29 108 123 29 108 122 28 109 122 28 109 0 0 0 0 0 0 114 25 109 114 25 109 114 25 109 114 25 109 0 0 0 0 0 0 122 28 109 122 28 109 122 28 109 122 28 109 0 0 0 0 0 0 114 25 109 0 0 0 0 0 0 114 25 109 0 0 0 0 0 0 115 26 109 115 26 109 115 26 109 115 26 109 115 26 109 115 26 109 115 26 109 0 0 0 0 0 0 115 26 109 115 26 109 115 26 109 115 26 109 0 0 0 0 0 0 115 26 109 115 26 109 115 26 109 115 26 109 0 0 0 0 0 0 115 26 109 115 26 109 115 26 109 115 26 109 0 0 0 0 0 0 115 26 109 115 26 109 115 26 109 115 26 109 0 0 0 0 0 0 120 28 109 120 28 109 120 28 109 120 28 109 0 0 0 0 0 0 120 28 109 120 28 109 120 28 109 120 28 109 0 0 0 0 0 0 115 26 109 115 26 109 117 27 109 117 27 109 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 117 27 109 117 27 109 117 27 109 117 27 109 117 27 109 117 27 109 117 27 109 0 0 0 0 0 0 117 27 109 117 27 109 117 27 109 117 27 109 0 0 0 0 0 0 120 28 109 120 28 109 120 28 109 120 28 109 0 0 0 0 0 0 118 27 109 118 27 109 118 27 109 118 27 109 0 0 0 0 0 0 152 39 101 152 39 101 152 39 101 152 39 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 201 49 0 0 0 0 0 0 249 199 47 0 0 0 0 0 0 249 199 47 249 199 47 249 199 47 249 199 47 249 199 47 249 199 47 249 199 47 249 199 47 249 199 47 249 199 47 249 199 47 249 199 47 249 199 47 249 199 47 249 199 47 249 199 47 249 199 47 249 199 47 249 199 47 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 249 195 42 249 195 42 249 195 42 249 195 42 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 247 207 58 247 207 58 247 207 58 247 207 58 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 211 63 246 211 63 246 211 63 246 211 63 0 0 0 0 0 0 247 209 60 247 209 60 247 209 60 247 209 60 0 0 0 0 0 0 246 211 63 246 211 63 247 209 60 247 209 60 0 0 0 0 0 0 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 0 0 0 0 0 0 246 213 66 246 213 66 246 213 66 246 213 66 0 0 0 0 0 0 250 187 33 0 0 0 0 0 0 250 187 33 250 187 33 250 187 33 250 187 33 0 0 0 0 0 0 251 183 28 251 183 28 251 183 28 251 183 28 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 251 183 28 251 183 28 251 183 28 251 183 28 251 183 28 251 183 28 251 183 28 251 183 28 251 185 30 251 185 30 0 0 0 0 0 0 251 185 30 251 185 30 251 185 30 251 185 30 251 185 30 251 185 30 251 185 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 125 29 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 125 29 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 122 28 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 122 28 109 0 0 0 0 0 0 122 28 109 0 0 0 0 0 0 114 25 109 0 0 0 0 0 0 114 25 109 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 120 28 109 0 0 0 0 0 0 120 28 109 0 0 0 0 0 0 120 28 109 0 0 0 0 0 0 120 28 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 120 28 109 0 0 0 0 0 0 120 28 109 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 152 39 101 0 0 0 0 0 0 152 39 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 201 49 0 0 0 0 0 0 249 199 47 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 199 47 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 211 63 0 0 0 0 0 0 246 211 63 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 211 63 0 0 0 0 0 0 247 209 60 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 209 60 0 0 0 0 0 0 246 213 66 0 0 0 0 0 0 246 213 66 0 0 0 0 0 0 250 187 33 0 0 0 0 0 0 250 187 33 0 0 0 0 0 0 250 187 33 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 125 29 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 125 29 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 122 28 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 122 28 109 0 0 0 0 0 0 122 28 109 0 0 0 0 0 0 114 25 109 0 0 0 0 0 0 114 25 109 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 115 26 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 120 28 109 0 0 0 0 0 0 120 28 109 0 0 0 0 0 0 120 28 109 0 0 0 0 0 0 120 28 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 117 27 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 120 28 109 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 152 39 101 0 0 0 0 0 0 152 39 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 201 49 0 0 0 0 0 0 249 199 47 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 199 47 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 211 63 0 0 0 0 0 0 246 211 63 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 211 63 0 0 0 0 0 0 247 209 60 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 209 60 0 0 0 0 0 0 246 213 66 0 0 0 0 0 0 246 213 66 0 0 0 0 0 0 250 187 33 0 0 0 0 0 0 250 187 33 0 0 0 0 0 0 250 187 33 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 123 29 108 123 29 108 123 29 108 123 29 108 123 29 108 123 29 108 123 29 108 123 29 108 123 29 108 123 29 108 123 29 108 123 29 108 123 29 108 0 0 0 0 0 0 125 29 108 125 29 108 125 29 108 125 29 108 125 29 108 125 29 108 125 29 108 125 29 108 125 29 108 125 29 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 125 29 108 0 0 0 0 0 0 125 29 108 125 29 108 125 29 108 125 29 108 0 0 0 0 0 0 123 29 108 123 29 108 123 29 108 123 29 108 0 0 0 0 0 0 122 28 109 0 0 0 0 0 0 122 28 109 122 28 109 122 28 109 122 28 109 0 0 0 0 0 0 122 28 109 0 0 0 0 0 0 122 28 109 0 0 0 0 0 0 114 25 109 114 25 109 114 25 109 114 25 109 0 0 0 0 0 0 115 26 109 115 26 109 115 26 109 115 26 109 115 26 109 115 26 109 115 26 109 115 26 109 115 26 109 115 26 109 115 26 109 115 26 109 115 26 109 115 26 109 115 26 109 115 26 109 0 0 0 0 0 0 115 26 109 115 26 109 115 26 109 115 26 109 0 0 0 0 0 0 120 28 109 120 28 109 120 28 109 120 28 109 120 28 109 120 28 109 120 28 109 120 28 109 120 28 109 120 28 109 0 0 0 0 0 0 120 28 109 120 28 109 120 28 109 120 28 109 0 0 0 0 0 0 120 28 109 0 0 0 0 0 0 120 28 109 120 28 109 120 28 109 120 28 109 0 0 0 0 0 0 117 27 109 117 27 109 117 27 109 117 27 109 0 0 0 0 0 0 120 28 109 120 28 109 120 28 109 120 28 109 120 28 109 120 28 109 120 28 109 0 0 0 0 0 0 120 28 109 120 28 109 120 28 109 120 28 109 0 0 0 0 0 0 120 28 109 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 152 39 101 0 0 0 0 0 0 152 39 101 152 39 101 152 39 101 152 39 101 152 39 101 152 39 101 152 39 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 201 49 0 0 0 0 0 0 249 199 47 249 199 47 249 199 47 249 199 47 249 199 47 249 199 47 249 199 47 249 199 47 249 199 47 249 199 47 249 199 47 249 199 47 249 199 47 249 199 47 249 199 47 249 199 47 249 199 47 249 199 47 249 199 47 249 199 47 249 199 47 249 199 47 0 0 0 0 0 0 249 197 44 249 197 44 249 197 44 249 197 44 0 0 0 0 0 0 249 197 44 249 197 44 249 197 44 249 197 44 0 0 0 0 0 0 249 197 44 249 197 44 249 197 44 249 197 44 0 0 0 0 0 0 249 195 42 249 195 42 249 197 44 249 197 44 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 246 211 63 246 211 63 246 211 63 246 211 63 246 211 63 246 211 63 246 211 63 0 0 0 0 0 0 246 211 63 246 211 63 246 211 63 246 211 63 246 211 63 246 211 63 246 211 63 246 211 63 246 211 63 246 211 63 0 0 0 0 0 0 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 0 0 0 0 0 0 246 213 66 0 0 0 0 0 0 246 213 66 0 0 0 0 0 0 250 187 33 250 187 33 250 187 33 250 187 33 0 0 0 0 0 0 250 187 33 0 0 0 0 0 0 251 183 28 251 183 28 251 183 28 251 183 28 251 183 28 251 183 28 251 183 28 0 0 0 0 0 0 251 185 30 251 185 30 251 185 30 251 185 30 0 0 0 0 0 0 251 185 30 251 185 30 251 185 30 251 185 30 0 0 0 0 0 0 251 185 30 251 185 30 251 185 30 251 185 30 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 241 235 108 241 235 108 241 235 108 241 235 108 0 0 0 0 0 0 241 235 108 241 235 108 241 235 108 241 235 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 125 29 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 125 29 108 0 0 0 0 0 0 125 29 108 0 0 0 0 0 0 125 29 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 122 28 109 0 0 0 0 0 0 122 28 109 0 0 0 0 0 0 122 28 109 0 0 0 0 0 0 122 28 109 0 0 0 0 0 0 122 28 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 120 28 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 120 28 109 0 0 0 0 0 0 120 28 109 0 0 0 0 0 0 120 28 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 120 28 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 120 28 109 0 0 0 0 0 0 120 28 109 0 0 0 0 0 0 120 28 109 0 0 0 0 0 0 120 28 109 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 152 39 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 152 39 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 201 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 246 211 63 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 213 66 0 0 0 0 0 0 246 213 66 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 187 33 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 241 235 108 0 0 0 0 0 0 241 235 108 0 0 0 0 0 0 241 235 108 0 0 0 0 0 0 241 235 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 125 29 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 125 29 108 0 0 0 0 0 0 125 29 108 0 0 0 0 0 0 125 29 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 122 28 109 0 0 0 0 0 0 122 28 109 0 0 0 0 0 0 122 28 109 0 0 0 0 0 0 122 28 109 0 0 0 0 0 0 122 28 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 120 28 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 120 28 109 0 0 0 0 0 0 120 28 109 0 0 0 0 0 0 120 28 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 120 28 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 120 28 109 0 0 0 0 0 0 120 28 109 0 0 0 0 0 0 120 28 109 0 0 0 0 0 0 120 28 109 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 118 27 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 152 39 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 152 39 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 201 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 246 211 63 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 213 66 0 0 0 0 0 0 246 213 66 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 187 33 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 241 235 108 0 0 0 0 0 0 241 235 108 0 0 0 0 0 0 241 235 108 0 0 0 0 0 0 241 235 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 123 29 108 123 29 108 123 29 108 123 29 108 123 29 108 123 29 108 123 29 108 0 0 0 0 0 0 125 29 108 125 29 108 125 29 108 125 29 108 125 29 108 125 29 108 125 29 108 125 29 108 125 29 108 125 29 108 125 29 108 125 29 108 125 29 108 0 0 0 0 0 0 125 29 108 125 29 108 125 29 108 125 29 108 125 29 108 125 29 108 125 29 108 125 29 108 125 29 108 125 29 108 125 29 108 125 29 108 125 29 108 0 0 0 0 0 0 125 29 108 0 0 0 0 0 0 125 29 108 0 0 0 0 0 0 126 30 108 126 30 108 126 30 108 126 30 108 0 0 0 0 0 0 122 28 109 122 28 109 122 28 109 122 28 109 0 0 0 0 0 0 122 28 109 122 28 109 122 28 109 122 28 109 0 0 0 0 0 0 122 28 109 122 28 109 122 28 109 122 28 109 0 0 0 0 0 0 122 28 109 122 28 109 122 28 109 122 28 109 0 0 0 0 0 0 122 28 109 122 28 109 122 28 109 122 28 109 122 28 109 122 28 109 122 28 109 122 28 109 122 28 109 122 28 109 122 28 109 122 28 109 122 28 109 122 28 109 122 28 109 122 28 109 122 28 109 120 28 109 120 28 109 120 28 109 120 28 109 120 28 109 0 0 0 0 0 0 141 35 105 141 35 105 141 35 105 141 35 105 0 0 0 0 0 0 141 35 105 141 35 105 141 35 105 141 35 105 141 35 105 142 36 104 142 36 104 0 0 0 0 0 0 120 28 109 120 28 109 120 28 109 120 28 109 0 0 0 0 0 0 120 28 109 120 28 109 120 28 109 120 28 109 120 28 109 120 28 109 120 28 109 120 28 109 120 28 109 120 28 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 120 28 109 120 28 109 120 28 109 120 28 109 0 0 0 0 0 0 120 28 109 120 28 109 120 28 109 120 28 109 0 0 0 0 0 0 118 27 109 118 27 109 118 27 109 118 27 109 0 0 0 0 0 0 152 39 101 152 39 101 152 39 101 152 39 101 0 0 0 0 0 0 152 39 101 152 39 101 152 39 101 152 39 101 152 39 101 152 39 101 152 39 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 201 49 248 201 49 248 201 49 248 201 49 0 0 0 0 0 0 248 201 49 248 201 49 248 201 49 248 201 49 0 0 0 0 0 0 248 201 49 248 201 49 248 201 49 248 201 49 248 201 49 248 201 49 248 201 49 248 201 49 248 201 49 248 201 49 248 201 49 248 201 49 248 201 49 248 201 49 248 201 49 248 201 49 248 201 49 248 201 49 248 201 49 248 201 49 248 201 49 248 201 49 248 201 49 248 201 49 248 201 49 248 201 49 248 201 49 248 201 49 248 201 49 248 201 49 248 201 49 0 0 0 0 0 0 249 197 44 249 197 44 249 197 44 249 197 44 249 197 44 249 197 44 249 197 44 249 197 44 249 197 44 249 197 44 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 246 211 63 246 211 63 246 211 63 246 211 63 246 211 63 246 211 63 246 211 63 246 211 63 246 211 63 246 211 63 246 211 63 246 211 63 246 211 63 246 211 63 246 211 63 246 211 63 0 0 0 0 0 0 246 213 66 246 213 66 246 213 66 246 213 66 0 0 0 0 0 0 246 213 66 246 213 66 246 213 66 246 213 66 0 0 0 0 0 0 246 213 66 246 213 66 246 213 66 246 213 66 246 213 66 246 213 66 246 213 66 246 213 66 246 213 66 246 213 66 246 213 66 246 213 66 246 213 66 246 213 66 246 213 66 246 213 66 246 213 66 246 213 66 246 213 66 246 213 66 246 213 66 246 213 66 246 213 66 246 213 66 246 213 66 0 0 0 0 0 0 246 213 66 246 213 66 246 213 66 246 213 66 246 213 66 246 213 66 246 213 66 0 0 0 0 0 0 250 187 33 250 187 33 250 187 33 250 187 33 0 0 0 0 0 0 250 187 33 250 187 33 250 187 33 250 187 33 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 251 185 30 251 185 30 251 185 30 251 185 30 0 0 0 0 0 0 251 185 30 251 185 30 251 185 30 251 185 30 0 0 0 0 0 0 251 185 30 251 185 30 251 185 30 251 185 30 0 0 0 0 0 0 241 235 108 0 0 0 0 0 0 241 235 108 0 0 0 0 0 0 241 235 108 0 0 0 0 0 0 241 235 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 125 29 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 125 29 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 125 29 108 0 0 0 0 0 0 125 29 108 0 0 0 0 0 0 126 30 108 0 0 0 0 0 0 126 30 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 122 28 109 0 0 0 0 0 0 122 28 109 0 0 0 0 0 0 122 28 109 0 0 0 0 0 0 122 28 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 141 35 105 0 0 0 0 0 0 141 35 105 0 0 0 0 0 0 141 35 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 142 36 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 152 39 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 152 39 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 201 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 201 49 0 0 0 0 0 0 248 201 49 0 0 0 0 0 0 248 201 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 201 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 211 63 0 0 0 0 0 0 246 213 66 0 0 0 0 0 0 246 213 66 0 0 0 0 0 0 246 213 66 0 0 0 0 0 0 246 213 66 0 0 0 0 0 0 246 213 66 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 213 66 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 187 33 0 0 0 0 0 0 250 187 33 0 0 0 0 0 0 250 187 33 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 235 108 0 0 0 0 0 0 241 235 108 0 0 0 0 0 0 241 235 108 0 0 0 0 0 0 241 235 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 125 29 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 125 29 108 0 0 0 0 0 0 126 30 108 0 0 0 0 0 0 126 30 108 0 0 0 0 0 0 126 30 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 122 28 109 0 0 0 0 0 0 122 28 109 0 0 0 0 0 0 122 28 109 0 0 0 0 0 0 122 28 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 141 35 105 0 0 0 0 0 0 141 35 105 0 0 0 0 0 0 141 35 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 142 36 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 152 39 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 152 39 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 201 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 201 49 0 0 0 0 0 0 248 201 49 0 0 0 0 0 0 248 201 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 201 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 211 63 0 0 0 0 0 0 246 213 66 0 0 0 0 0 0 246 213 66 0 0 0 0 0 0 246 213 66 0 0 0 0 0 0 246 213 66 0 0 0 0 0 0 246 213 66 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 213 66 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 187 33 0 0 0 0 0 0 250 187 33 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 235 108 0 0 0 0 0 0 241 235 108 0 0 0 0 0 0 241 235 108 0 0 0 0 0 0 241 235 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 123 29 108 123 29 108 123 29 108 123 29 108 0 0 0 0 0 0 123 29 108 123 29 108 123 29 108 123 29 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 31 107 128 31 107 128 31 107 128 31 107 128 31 107 128 31 107 128 31 107 0 0 0 0 0 0 125 29 108 125 29 108 125 29 108 125 29 108 125 29 108 125 29 108 125 29 108 125 29 108 125 29 108 125 29 108 125 29 108 125 29 108 125 29 108 125 29 108 125 29 108 125 29 108 0 0 0 0 0 0 126 30 108 126 30 108 126 30 108 126 30 108 0 0 0 0 0 0 126 30 108 0 0 0 0 0 0 129 31 107 129 31 107 129 31 107 129 31 107 0 0 0 0 0 0 129 31 107 129 31 107 129 31 107 129 31 107 129 31 107 129 31 107 129 31 107 0 0 0 0 0 0 122 28 109 122 28 109 122 28 109 122 28 109 0 0 0 0 0 0 122 28 109 0 0 0 0 0 0 122 28 109 122 28 109 122 28 109 122 28 109 122 28 109 122 28 109 122 28 109 0 0 0 0 0 0 141 35 105 141 35 105 141 35 105 141 35 105 0 0 0 0 0 0 141 35 105 141 35 105 141 35 105 141 35 105 141 35 105 141 35 105 141 35 105 141 35 105 141 35 105 141 35 105 0 0 0 0 0 0 141 35 105 141 35 105 141 35 105 141 35 105 0 0 0 0 0 0 142 36 104 142 36 104 142 36 104 142 36 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 149 38 102 149 38 102 149 38 102 149 38 102 149 38 102 149 38 102 149 38 102 149 38 102 149 38 102 149 38 102 149 38 102 149 38 102 149 38 102 149 38 102 149 38 102 149 38 102 149 38 102 149 38 102 149 38 102 0 0 0 0 0 0 152 39 101 152 39 101 152 39 101 152 39 101 0 0 0 0 0 0 152 39 101 152 39 101 152 39 101 152 39 101 152 39 101 152 39 101 152 39 101 152 39 101 152 39 101 152 39 101 0 0 0 0 0 0 152 39 101 152 39 101 152 39 101 152 39 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 201 49 248 201 49 248 201 49 248 201 49 248 201 49 248 201 49 248 201 49 0 0 0 0 0 0 248 201 49 0 0 0 0 0 0 248 201 49 0 0 0 0 0 0 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 201 49 248 201 49 248 201 49 248 201 49 248 201 49 248 201 49 248 201 49 248 201 49 248 201 49 248 201 49 248 201 49 0 0 0 0 0 0 248 201 49 0 0 0 0 0 0 248 205 55 248 205 55 248 205 55 248 205 55 0 0 0 0 0 0 247 207 58 247 207 58 247 207 58 247 207 58 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 246 211 63 246 211 63 246 211 63 246 211 63 246 211 63 246 211 63 246 211 63 246 211 63 246 211 63 246 211 63 246 211 63 246 211 63 246 211 63 246 211 63 246 211 63 246 211 63 0 0 0 0 0 0 246 213 66 0 0 0 0 0 0 246 213 66 246 213 66 246 213 66 246 213 66 0 0 0 0 0 0 246 213 66 246 213 66 246 213 66 246 213 66 0 0 0 0 0 0 245 215 69 245 215 69 245 215 69 245 215 69 0 0 0 0 0 0 245 215 69 245 215 69 245 215 69 245 215 69 245 215 69 245 215 69 245 215 69 245 215 69 245 215 69 245 215 69 245 215 69 245 215 69 245 215 69 245 215 69 245 215 69 245 215 69 245 215 69 245 215 69 245 215 69 245 215 69 245 215 69 245 215 69 0 0 0 0 0 0 246 213 66 246 213 66 246 213 66 246 213 66 0 0 0 0 0 0 250 187 33 250 187 33 250 187 33 250 187 33 0 0 0 0 0 0 251 185 30 251 185 30 251 185 30 251 185 30 0 0 0 0 0 0 241 232 100 241 232 100 241 232 100 241 232 100 0 0 0 0 0 0 241 233 104 241 233 104 241 233 104 241 233 104 0 0 0 0 0 0 241 233 104 241 233 104 241 233 104 241 233 104 0 0 0 0 0 0 241 235 108 0 0 0 0 0 0 241 235 108 241 235 108 241 235 108 241 235 108 0 0 0 0 0 0 241 235 108 241 235 108 241 235 108 241 235 108 241 235 108 241 235 108 241 235 108 241 235 108 241 235 108 241 235 108 241 235 108 241 235 108 241 235 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 126 30 108 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 122 28 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 122 28 109 0 0 0 0 0 0 141 35 105 0 0 0 0 0 0 141 35 105 0 0 0 0 0 0 141 35 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 142 36 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 149 38 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 149 38 102 0 0 0 0 0 0 152 39 101 0 0 0 0 0 0 152 39 101 0 0 0 0 0 0 152 39 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 152 39 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 201 49 0 0 0 0 0 0 248 201 49 0 0 0 0 0 0 248 203 52 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 201 49 0 0 0 0 0 0 248 201 49 0 0 0 0 0 0 248 205 55 0 0 0 0 0 0 248 205 55 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 246 211 63 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 213 66 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 215 69 0 0 0 0 0 0 245 215 69 0 0 0 0 0 0 245 215 69 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 215 69 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 213 66 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 232 100 0 0 0 0 0 0 241 232 100 0 0 0 0 0 0 241 233 104 0 0 0 0 0 0 241 233 104 0 0 0 0 0 0 241 233 104 0 0 0 0 0 0 241 233 104 0 0 0 0 0 0 241 235 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 235 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 126 30 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 126 30 108 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 122 28 109 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 122 28 109 0 0 0 0 0 0 141 35 105 0 0 0 0 0 0 141 35 105 0 0 0 0 0 0 141 35 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 142 36 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 149 38 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 149 38 102 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 152 39 101 0 0 0 0 0 0 152 39 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 152 39 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 201 49 0 0 0 0 0 0 248 201 49 0 0 0 0 0 0 248 203 52 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 201 49 0 0 0 0 0 0 248 201 49 0 0 0 0 0 0 248 205 55 0 0 0 0 0 0 248 205 55 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 246 211 63 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 213 66 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 215 69 0 0 0 0 0 0 245 215 69 0 0 0 0 0 0 245 215 69 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 215 69 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 213 66 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 232 100 0 0 0 0 0 0 241 232 100 0 0 0 0 0 0 241 233 104 0 0 0 0 0 0 241 233 104 0 0 0 0 0 0 241 233 104 0 0 0 0 0 0 241 233 104 0 0 0 0 0 0 241 235 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 235 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 128 31 107 128 31 107 128 31 107 128 31 107 128 31 107 128 31 107 128 31 107 0 0 0 0 0 0 126 30 108 126 30 108 126 30 108 126 30 108 0 0 0 0 0 0 126 30 108 126 30 108 126 30 108 126 30 108 126 30 108 126 30 108 126 30 108 126 30 108 126 30 108 126 30 108 126 30 108 126 30 108 126 30 108 126 30 108 126 30 108 126 30 108 126 30 108 126 30 108 126 30 108 126 30 108 126 30 108 126 30 108 126 30 108 126 30 108 126 30 108 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 129 31 107 129 31 107 129 31 107 129 31 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 141 35 105 141 35 105 141 35 105 141 35 105 0 0 0 0 0 0 122 28 109 122 28 109 122 28 109 122 28 109 122 28 109 122 28 109 122 28 109 122 28 109 122 28 109 122 28 109 0 0 0 0 0 0 141 35 105 0 0 0 0 0 0 141 35 105 141 35 105 141 35 105 141 35 105 0 0 0 0 0 0 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 149 38 102 149 38 102 149 38 102 149 38 102 0 0 0 0 0 0 150 38 102 150 38 102 150 38 102 150 38 102 150 38 102 150 38 102 150 38 102 150 38 102 149 38 102 149 38 102 149 38 102 149 38 102 149 38 102 149 38 102 149 38 102 149 38 102 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 152 39 101 152 39 101 152 39 101 152 39 101 0 0 0 0 0 0 152 39 101 152 39 101 152 39 101 152 39 101 0 0 0 0 0 0 152 39 101 152 39 101 152 39 101 152 39 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 201 49 248 201 49 248 201 49 248 201 49 0 0 0 0 0 0 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 0 0 0 0 0 0 248 201 49 248 201 49 248 201 49 248 201 49 0 0 0 0 0 0 248 205 55 0 0 0 0 0 0 248 205 55 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 246 211 63 246 211 63 246 211 63 246 211 63 246 211 63 246 211 63 246 211 63 246 211 63 246 211 63 246 211 63 0 0 0 0 0 0 246 211 63 246 211 63 246 211 63 246 211 63 0 0 0 0 0 0 246 213 66 246 213 66 246 213 66 246 213 66 0 0 0 0 0 0 245 217 72 245 217 72 245 215 69 245 215 69 245 215 69 245 215 69 245 215 69 245 215 69 245 215 69 245 215 69 0 0 0 0 0 0 245 215 69 245 215 69 245 215 69 245 215 69 0 0 0 0 0 0 245 217 72 245 217 72 245 217 72 245 217 72 0 0 0 0 0 0 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 0 0 0 0 0 0 245 215 69 245 215 69 245 215 69 245 215 69 0 0 0 0 0 0 246 213 66 246 213 66 245 215 69 245 215 69 245 215 69 245 215 69 245 215 69 245 215 69 245 215 69 245 215 69 0 0 0 0 0 0 241 232 100 241 232 100 241 232 100 241 232 100 0 0 0 0 0 0 241 232 100 241 232 100 241 233 104 241 233 104 0 0 0 0 0 0 241 233 104 241 233 104 241 233 104 241 233 104 0 0 0 0 0 0 241 233 104 0 0 0 0 0 0 241 235 108 241 235 108 241 235 108 241 235 108 241 235 108 241 235 108 241 235 108 0 0 0 0 0 0 241 237 112 241 237 112 241 235 108 241 235 108 241 235 108 241 235 108 241 235 108 241 235 108 241 235 108 241 235 108 241 235 108 241 235 108 241 235 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 126 30 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 126 30 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 141 35 105 0 0 0 0 0 0 141 35 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 141 35 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 142 36 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 149 38 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 152 39 101 0 0 0 0 0 0 152 39 101 0 0 0 0 0 0 152 39 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 203 52 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 205 55 0 0 0 0 0 0 248 205 55 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 211 63 0 0 0 0 0 0 246 211 63 0 0 0 0 0 0 246 211 63 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 213 66 0 0 0 0 0 0 245 217 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 217 72 0 0 0 0 0 0 245 217 72 0 0 0 0 0 0 245 217 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 217 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 215 69 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 215 69 0 0 0 0 0 0 241 232 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 233 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 235 108 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 123 29 108 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 126 30 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 126 30 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 141 35 105 0 0 0 0 0 0 141 35 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 141 35 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 142 36 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 149 38 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 152 39 101 0 0 0 0 0 0 152 39 101 0 0 0 0 0 0 152 39 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 203 52 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 205 55 0 0 0 0 0 0 248 205 55 0 0 0 0 0 0 248 205 55 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 211 63 0 0 0 0 0 0 246 211 63 0 0 0 0 0 0 246 211 63 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 213 66 0 0 0 0 0 0 245 217 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 217 72 0 0 0 0 0 0 245 217 72 0 0 0 0 0 0 245 217 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 217 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 215 69 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 215 69 0 0 0 0 0 0 241 232 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 233 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 235 108 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 123 29 108 123 29 108 123 29 108 123 29 108 0 0 0 0 0 0 128 31 107 128 31 107 128 31 107 128 31 107 128 31 107 128 31 107 128 31 107 0 0 0 0 0 0 126 30 108 126 30 108 126 30 108 126 30 108 0 0 0 0 0 0 126 30 108 126 30 108 126 30 108 126 30 108 126 30 108 126 30 108 126 30 108 126 30 108 126 30 108 126 30 108 126 30 108 126 30 108 126 30 108 126 30 108 126 30 108 126 30 108 0 0 0 0 0 0 129 31 107 129 31 107 129 31 107 129 31 107 129 31 107 129 31 107 129 31 107 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 129 31 107 129 31 107 129 31 107 129 31 107 129 31 107 129 31 107 129 31 107 129 31 107 129 31 107 129 31 107 0 0 0 0 0 0 141 35 105 0 0 0 0 0 0 141 35 105 141 35 105 141 35 105 141 35 105 141 35 105 141 35 105 141 35 105 141 35 105 141 35 105 141 35 105 141 35 105 141 35 105 141 35 105 141 35 105 141 35 105 141 35 105 0 0 0 0 0 0 142 36 104 142 36 104 142 36 104 142 36 104 0 0 0 0 0 0 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 0 0 0 0 0 0 149 38 102 149 38 102 149 38 102 149 38 102 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 150 38 102 150 38 102 150 38 102 150 38 102 150 38 102 150 38 102 150 38 102 0 0 0 0 0 0 150 38 102 150 38 102 150 38 102 150 38 102 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 152 39 101 152 39 101 152 39 101 152 39 101 152 39 101 152 39 101 152 39 101 0 0 0 0 0 0 152 39 101 152 39 101 152 39 101 152 39 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 0 0 0 0 0 0 248 205 55 248 205 55 248 205 55 248 205 55 0 0 0 0 0 0 248 205 55 0 0 0 0 0 0 248 205 55 248 205 55 248 205 55 248 205 55 0 0 0 0 0 0 247 207 58 247 207 58 247 207 58 247 207 58 0 0 0 0 0 0 244 220 79 244 220 79 244 220 79 244 220 79 244 220 79 244 220 79 244 220 79 0 0 0 0 0 0 246 211 63 246 211 63 246 211 63 246 211 63 0 0 0 0 0 0 246 211 63 0 0 0 0 0 0 246 213 66 246 213 66 246 213 66 246 213 66 0 0 0 0 0 0 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 217 72 0 0 0 0 0 0 245 217 72 245 217 72 245 217 72 245 217 72 0 0 0 0 0 0 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 215 69 245 215 69 245 215 69 245 215 69 0 0 0 0 0 0 245 215 69 245 215 69 245 215 69 245 215 69 245 215 69 245 215 69 245 215 69 0 0 0 0 0 0 241 232 100 0 0 0 0 0 0 241 233 104 241 233 104 241 233 104 241 233 104 0 0 0 0 0 0 241 233 104 241 233 104 241 233 104 241 233 104 0 0 0 0 0 0 241 233 104 241 233 104 241 233 104 241 233 104 0 0 0 0 0 0 241 235 108 241 235 108 241 235 108 241 235 108 241 235 108 241 235 108 241 235 108 0 0 0 0 0 0 241 237 112 241 237 112 241 237 112 241 237 112 241 237 112 241 237 112 241 237 112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 126 30 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 126 30 108 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 141 35 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 142 36 104 0 0 0 0 0 0 142 36 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 142 36 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 149 38 102 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 152 39 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 203 52 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 205 55 0 0 0 0 0 0 248 205 55 0 0 0 0 0 0 248 205 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 211 63 0 0 0 0 0 0 246 213 66 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 217 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 217 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 217 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 215 69 0 0 0 0 0 0 245 215 69 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 232 100 0 0 0 0 0 0 241 233 104 0 0 0 0 0 0 241 233 104 0 0 0 0 0 0 241 233 104 0 0 0 0 0 0 241 233 104 0 0 0 0 0 0 241 233 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 235 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 126 30 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 126 30 108 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 141 35 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 142 36 104 0 0 0 0 0 0 142 36 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 142 36 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 149 38 102 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 152 39 101 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 203 52 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 205 55 0 0 0 0 0 0 248 205 55 0 0 0 0 0 0 248 205 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 211 63 0 0 0 0 0 0 246 211 63 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 217 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 217 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 217 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 215 69 0 0 0 0 0 0 245 215 69 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 232 100 0 0 0 0 0 0 241 233 104 0 0 0 0 0 0 241 233 104 0 0 0 0 0 0 241 233 104 0 0 0 0 0 0 241 233 104 0 0 0 0 0 0 241 233 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 235 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 31 107 128 31 107 128 31 107 128 31 107 0 0 0 0 0 0 128 31 107 128 31 107 128 31 107 128 31 107 0 0 0 0 0 0 126 30 108 126 30 108 126 30 108 126 30 108 126 30 108 126 30 108 126 30 108 126 30 108 126 30 108 126 30 108 126 30 108 126 30 108 126 30 108 126 30 108 126 30 108 126 30 108 0 0 0 0 0 0 126 30 108 0 0 0 0 0 0 129 31 107 129 31 107 129 31 107 129 31 107 0 0 0 0 0 0 129 31 107 129 31 107 129 31 107 129 31 107 0 0 0 0 0 0 129 31 107 129 31 107 131 32 107 131 32 107 0 0 0 0 0 0 141 35 105 141 35 105 141 35 105 141 35 105 0 0 0 0 0 0 141 35 105 141 35 105 141 35 105 141 35 105 0 0 0 0 0 0 144 36 104 144 36 104 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 0 0 0 0 0 0 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 142 36 104 0 0 0 0 0 0 142 36 104 142 36 104 142 36 104 142 36 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 149 38 102 0 0 0 0 0 0 150 38 102 150 38 102 150 38 102 150 38 102 0 0 0 0 0 0 150 38 102 150 38 102 150 38 102 150 38 102 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 152 39 101 152 39 101 152 39 101 152 39 101 0 0 0 0 0 0 153 40 100 153 40 100 153 40 100 153 40 100 0 0 0 0 0 0 153 40 100 153 40 100 153 40 100 153 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 0 0 0 0 0 0 248 205 55 248 205 55 248 205 55 248 205 55 0 0 0 0 0 0 248 205 55 248 205 55 248 205 55 248 205 55 0 0 0 0 0 0 248 205 55 0 0 0 0 0 0 248 205 55 248 205 55 248 205 55 248 205 55 0 0 0 0 0 0 243 222 82 243 222 82 243 222 82 243 222 82 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 220 79 244 220 79 244 220 79 244 220 79 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 244 220 79 244 220 79 244 220 79 244 220 79 0 0 0 0 0 0 246 211 63 246 211 63 246 211 63 246 211 63 0 0 0 0 0 0 244 220 79 244 220 79 244 220 79 244 220 79 0 0 0 0 0 0 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 0 0 0 0 0 0 245 217 72 245 217 72 245 217 72 245 217 72 0 0 0 0 0 0 244 219 75 244 219 75 244 219 75 244 219 75 0 0 0 0 0 0 245 217 72 0 0 0 0 0 0 242 230 96 242 230 96 242 230 96 242 230 96 0 0 0 0 0 0 242 230 96 242 230 96 242 230 96 242 230 96 0 0 0 0 0 0 245 215 69 0 0 0 0 0 0 245 215 69 245 215 69 245 215 69 245 215 69 0 0 0 0 0 0 241 232 100 241 232 100 241 232 100 241 232 100 0 0 0 0 0 0 241 233 104 0 0 0 0 0 0 241 233 104 241 233 104 241 233 104 241 233 104 0 0 0 0 0 0 241 233 104 241 233 104 241 233 104 241 233 104 0 0 0 0 0 0 241 235 108 241 235 108 241 235 108 241 235 108 0 0 0 0 0 0 241 237 112 241 237 112 241 237 112 241 237 112 241 237 112 241 237 112 241 237 112 241 237 112 241 237 112 241 237 112 241 237 112 241 237 112 241 237 112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 126 30 108 0 0 0 0 0 0 126 30 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 131 32 107 0 0 0 0 0 0 141 35 105 0 0 0 0 0 0 141 35 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 141 35 105 0 0 0 0 0 0 144 36 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 142 36 104 0 0 0 0 0 0 142 36 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 149 38 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 152 39 101 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 203 52 0 0 0 0 0 0 248 205 55 0 0 0 0 0 0 248 205 55 0 0 0 0 0 0 248 205 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 205 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 205 55 0 0 0 0 0 0 243 222 82 0 0 0 0 0 0 243 222 82 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 245 217 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 217 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 219 75 0 0 0 0 0 0 244 219 75 0 0 0 0 0 0 245 217 72 0 0 0 0 0 0 242 230 96 0 0 0 0 0 0 242 230 96 0 0 0 0 0 0 242 230 96 0 0 0 0 0 0 242 230 96 0 0 0 0 0 0 245 215 69 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 215 69 0 0 0 0 0 0 241 232 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 233 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 235 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 126 30 108 0 0 0 0 0 0 126 30 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 131 32 107 0 0 0 0 0 0 141 35 105 0 0 0 0 0 0 141 35 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 141 35 105 0 0 0 0 0 0 144 36 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 142 36 104 0 0 0 0 0 0 142 36 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 149 38 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 203 52 0 0 0 0 0 0 248 205 55 0 0 0 0 0 0 248 205 55 0 0 0 0 0 0 248 205 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 205 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 205 55 0 0 0 0 0 0 243 222 82 0 0 0 0 0 0 243 222 82 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 245 217 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 217 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 219 75 0 0 0 0 0 0 245 217 72 0 0 0 0 0 0 245 217 72 0 0 0 0 0 0 242 230 96 0 0 0 0 0 0 242 230 96 0 0 0 0 0 0 242 230 96 0 0 0 0 0 0 242 230 96 0 0 0 0 0 0 245 215 69 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 215 69 0 0 0 0 0 0 241 232 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 233 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 235 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 31 107 128 31 107 128 31 107 128 31 107 128 31 107 128 31 107 128 31 107 0 0 0 0 0 0 128 31 107 128 31 107 129 31 107 129 31 107 129 31 107 129 31 107 129 31 107 0 0 0 0 0 0 126 30 108 126 30 108 126 30 108 126 30 108 0 0 0 0 0 0 129 31 107 129 31 107 129 31 107 129 31 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 131 32 107 131 32 107 131 32 107 131 32 107 0 0 0 0 0 0 131 32 107 0 0 0 0 0 0 141 35 105 0 0 0 0 0 0 141 35 105 141 35 105 141 35 105 141 35 105 141 35 105 141 35 105 141 35 105 0 0 0 0 0 0 144 36 104 144 36 104 144 36 104 144 36 104 144 36 104 144 36 104 144 36 104 144 36 104 144 36 104 144 36 104 144 36 104 144 36 104 144 36 104 144 36 104 144 36 104 144 36 104 144 36 104 144 36 104 144 36 104 144 36 104 144 36 104 144 36 104 144 36 104 144 36 104 144 36 104 144 36 104 144 36 104 144 36 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 142 36 104 142 36 104 142 36 104 142 36 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 149 38 102 149 38 102 149 38 102 149 38 102 0 0 0 0 0 0 150 38 102 150 38 102 150 38 102 150 38 102 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 150 38 102 150 38 102 150 38 102 150 38 102 0 0 0 0 0 0 150 38 102 150 38 102 150 38 102 150 38 102 0 0 0 0 0 0 153 40 100 153 40 100 153 40 100 153 40 100 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 153 40 100 153 40 100 153 40 100 153 40 100 0 0 0 0 0 0 153 40 100 153 40 100 153 40 100 153 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 0 0 0 0 0 0 248 205 55 0 0 0 0 0 0 248 205 55 248 205 55 248 205 55 248 205 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 205 55 248 205 55 248 205 55 248 205 55 248 205 55 248 205 55 248 205 55 0 0 0 0 0 0 243 222 82 0 0 0 0 0 0 243 222 82 0 0 0 0 0 0 243 222 82 243 222 82 243 222 82 243 222 82 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 244 220 79 244 220 79 244 220 79 244 220 79 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 0 0 0 0 0 0 244 219 75 244 219 75 244 219 75 244 219 75 0 0 0 0 0 0 245 217 72 245 217 72 245 217 72 245 217 72 0 0 0 0 0 0 242 230 96 0 0 0 0 0 0 242 230 96 242 230 96 242 230 96 242 230 96 0 0 0 0 0 0 242 230 96 0 0 0 0 0 0 245 215 69 0 0 0 0 0 0 245 215 69 245 215 69 245 215 69 245 215 69 0 0 0 0 0 0 241 232 100 241 232 100 241 232 100 241 232 100 0 0 0 0 0 0 241 233 104 241 233 104 241 233 104 241 233 104 0 0 0 0 0 0 241 233 104 241 233 104 241 233 104 241 233 104 241 233 104 241 233 104 241 233 104 0 0 0 0 0 0 241 235 108 241 235 108 241 235 108 241 235 108 0 0 0 0 0 0 241 237 112 241 237 112 241 237 112 241 237 112 241 237 112 241 237 112 241 237 112 241 237 112 241 237 112 241 237 112 241 237 112 241 237 112 241 237 112 241 237 112 241 237 112 241 237 112 241 237 112 241 237 112 241 237 112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 131 32 107 0 0 0 0 0 0 131 32 107 0 0 0 0 0 0 131 32 107 0 0 0 0 0 0 141 35 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 144 36 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 149 38 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 203 52 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 205 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 222 82 0 0 0 0 0 0 243 222 82 0 0 0 0 0 0 243 222 82 0 0 0 0 0 0 243 222 82 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 219 75 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 230 96 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 230 96 0 0 0 0 0 0 245 215 69 0 0 0 0 0 0 245 215 69 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 232 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 233 104 0 0 0 0 0 0 241 233 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 233 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 235 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 131 32 107 0 0 0 0 0 0 131 32 107 0 0 0 0 0 0 131 32 107 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 144 36 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 149 38 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 203 52 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 205 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 222 82 0 0 0 0 0 0 243 222 82 0 0 0 0 0 0 243 222 82 0 0 0 0 0 0 243 222 82 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 219 75 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 230 96 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 230 96 0 0 0 0 0 0 245 215 69 0 0 0 0 0 0 245 215 69 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 232 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 233 104 0 0 0 0 0 0 241 233 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 235 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 235 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 128 31 107 128 31 107 128 31 107 128 31 107 128 31 107 128 31 107 128 31 107 128 31 107 128 31 107 128 31 107 128 31 107 128 31 107 128 31 107 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 129 31 107 129 31 107 129 31 107 129 31 107 129 31 107 129 31 107 129 31 107 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 131 32 107 131 32 107 131 32 107 131 32 107 0 0 0 0 0 0 131 32 107 0 0 0 0 0 0 131 32 107 131 32 107 131 32 107 131 32 107 0 0 0 0 0 0 139 34 105 139 34 105 139 34 105 139 34 105 0 0 0 0 0 0 144 36 104 144 36 104 144 36 104 144 36 104 144 36 104 144 36 104 144 36 104 144 36 104 144 36 104 144 36 104 144 36 104 144 36 104 144 36 104 144 36 104 144 36 104 144 36 104 144 36 104 144 36 104 144 36 104 144 36 104 144 36 104 144 36 104 144 36 104 144 36 104 144 36 104 144 36 104 144 36 104 144 36 104 144 36 104 144 36 104 144 36 104 144 36 104 144 36 104 144 36 104 0 0 0 0 0 0 149 38 102 149 38 102 149 38 102 149 38 102 0 0 0 0 0 0 149 38 102 149 38 102 149 38 102 149 38 102 0 0 0 0 0 0 149 38 102 149 38 102 149 38 102 149 38 102 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 150 38 102 150 38 102 150 38 102 150 38 102 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 155 40 100 155 40 100 155 40 100 155 40 100 155 40 100 155 40 100 155 40 100 0 0 0 0 0 0 153 40 100 153 40 100 153 40 100 153 40 100 153 40 100 153 40 100 153 40 100 0 0 0 0 0 0 153 40 100 153 40 100 153 40 100 153 40 100 0 0 0 0 0 0 153 40 100 153 40 100 153 40 100 153 40 100 0 0 0 0 0 0 238 108 34 238 108 34 238 108 34 238 108 34 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 203 52 248 203 52 248 203 52 248 203 52 0 0 0 0 0 0 248 205 55 248 205 55 248 205 55 248 205 55 0 0 0 0 0 0 248 205 55 248 205 55 248 205 55 248 205 55 0 0 0 0 0 0 243 222 82 243 222 82 243 222 82 243 222 82 0 0 0 0 0 0 243 222 82 243 222 82 243 222 82 243 222 82 243 222 82 243 222 82 243 222 82 243 222 82 243 222 82 243 222 82 0 0 0 0 0 0 243 222 82 0 0 0 0 0 0 243 222 82 0 0 0 0 0 0 243 222 82 0 0 0 0 0 0 243 222 82 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 244 220 79 244 220 79 244 220 79 244 220 79 0 0 0 0 0 0 244 220 79 244 220 79 244 220 79 244 220 79 0 0 0 0 0 0 244 220 79 244 220 79 244 220 79 244 220 79 0 0 0 0 0 0 244 220 79 244 220 79 244 220 79 244 220 79 0 0 0 0 0 0 244 219 75 244 219 75 244 219 75 244 219 75 244 219 75 244 219 75 244 219 75 244 219 75 244 219 75 244 219 75 244 219 75 244 219 75 244 219 75 0 0 0 0 0 0 244 219 75 244 219 75 244 219 75 244 219 75 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 230 96 0 0 0 0 0 0 242 230 96 242 230 96 242 230 96 242 230 96 242 230 96 242 230 96 242 230 96 0 0 0 0 0 0 245 215 69 245 215 69 245 215 69 245 215 69 0 0 0 0 0 0 241 232 100 241 232 100 241 232 100 241 232 100 241 232 100 241 232 100 241 232 100 0 0 0 0 0 0 241 233 104 241 233 104 241 233 104 241 233 104 0 0 0 0 0 0 241 233 104 241 233 104 241 233 104 241 233 104 0 0 0 0 0 0 241 235 108 241 235 108 241 235 108 241 235 108 241 235 108 241 235 108 241 235 108 0 0 0 0 0 0 241 237 112 241 237 112 241 237 112 241 237 112 241 237 112 241 237 112 241 237 112 241 237 112 241 237 112 241 237 112 241 237 112 241 237 112 241 237 112 241 237 112 241 237 112 241 237 112 241 237 112 241 237 112 241 237 112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 131 32 107 0 0 0 0 0 0 131 32 107 0 0 0 0 0 0 131 32 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 144 36 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 149 38 102 0 0 0 0 0 0 149 38 102 0 0 0 0 0 0 149 38 102 0 0 0 0 0 0 149 38 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 149 38 102 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 238 108 34 0 0 0 0 0 0 238 108 34 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 203 52 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 205 55 0 0 0 0 0 0 248 205 55 0 0 0 0 0 0 248 205 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 222 82 0 0 0 0 0 0 243 222 82 0 0 0 0 0 0 243 222 82 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 222 82 0 0 0 0 0 0 243 222 82 0 0 0 0 0 0 243 222 82 0 0 0 0 0 0 243 222 82 0 0 0 0 0 0 243 222 82 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 244 219 75 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 219 75 0 0 0 0 0 0 244 219 75 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 230 96 0 0 0 0 0 0 242 230 96 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 232 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 233 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 233 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 128 31 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 129 31 107 0 0 0 0 0 0 131 32 107 0 0 0 0 0 0 131 32 107 0 0 0 0 0 0 131 32 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 144 36 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 149 38 102 0 0 0 0 0 0 149 38 102 0 0 0 0 0 0 149 38 102 0 0 0 0 0 0 149 38 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 149 38 102 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 150 38 102 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 238 108 34 0 0 0 0 0 0 238 108 34 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 205 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 205 55 0 0 0 0 0 0 248 205 55 0 0 0 0 0 0 248 205 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 222 82 0 0 0 0 0 0 243 222 82 0 0 0 0 0 0 243 222 82 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 222 82 0 0 0 0 0 0 243 222 82 0 0 0 0 0 0 243 222 82 0 0 0 0 0 0 243 222 82 0 0 0 0 0 0 243 222 82 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 244 219 75 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 219 75 0 0 0 0 0 0 244 219 75 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 230 96 0 0 0 0 0 0 242 230 96 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 232 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 233 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 233 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 131 32 107 131 32 107 131 32 107 131 32 107 0 0 0 0 0 0 128 31 107 128 31 107 128 31 107 128 31 107 128 31 107 128 31 107 128 31 107 128 31 107 128 31 107 128 31 107 128 31 107 128 31 107 128 31 107 128 31 107 128 31 107 128 31 107 128 31 107 128 31 107 128 31 107 0 0 0 0 0 0 131 32 107 131 32 107 131 32 107 131 32 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 129 31 107 129 31 107 129 31 107 129 31 107 0 0 0 0 0 0 131 32 107 0 0 0 0 0 0 131 32 107 131 32 107 131 32 107 131 32 107 0 0 0 0 0 0 139 34 105 139 34 105 139 34 105 139 34 105 0 0 0 0 0 0 139 34 105 139 34 105 139 34 105 139 34 105 0 0 0 0 0 0 144 36 104 144 36 104 144 36 104 144 36 104 144 36 104 144 36 104 144 36 104 0 0 0 0 0 0 145 37 103 145 37 103 145 37 103 145 37 103 145 37 103 145 37 103 145 37 103 145 37 103 145 37 103 145 37 103 145 37 103 145 37 103 145 37 103 145 37 103 145 37 103 145 37 103 145 37 103 145 37 103 145 37 103 145 37 103 145 37 103 145 37 103 145 37 103 145 37 103 145 37 103 0 0 0 0 0 0 149 38 102 0 0 0 0 0 0 149 38 102 149 38 102 149 38 102 149 38 102 0 0 0 0 0 0 149 38 102 0 0 0 0 0 0 149 38 102 149 38 102 149 38 102 149 38 102 0 0 0 0 0 0 150 38 102 150 38 102 150 38 102 150 38 102 150 38 102 150 38 102 150 38 102 150 38 102 150 38 102 150 38 102 0 0 0 0 0 0 155 40 100 155 40 100 155 40 100 155 40 100 0 0 0 0 0 0 155 40 100 155 40 100 155 40 100 155 40 100 0 0 0 0 0 0 153 40 100 153 40 100 153 40 100 153 40 100 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 153 40 100 153 40 100 153 40 100 153 40 100 0 0 0 0 0 0 238 108 34 238 108 34 238 108 34 238 108 34 0 0 0 0 0 0 238 108 34 238 108 34 238 108 34 238 108 34 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 164 10 251 164 10 251 164 10 251 164 10 251 164 10 251 164 10 251 164 10 251 164 10 251 164 10 251 164 10 251 164 10 251 164 10 251 164 10 0 0 0 0 0 0 248 205 55 248 205 55 248 205 55 248 205 55 248 205 55 248 205 55 248 205 55 0 0 0 0 0 0 248 205 55 0 0 0 0 0 0 248 205 55 0 0 0 0 0 0 243 222 82 243 222 82 243 222 82 243 222 82 0 0 0 0 0 0 243 222 82 243 222 82 243 222 82 243 222 82 0 0 0 0 0 0 243 224 86 243 224 86 243 224 86 243 224 86 0 0 0 0 0 0 243 222 82 243 222 82 243 222 82 243 222 82 0 0 0 0 0 0 243 222 82 243 222 82 243 222 82 243 222 82 0 0 0 0 0 0 243 222 82 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 243 226 89 243 226 89 243 226 89 243 226 89 243 226 89 243 226 89 243 226 89 0 0 0 0 0 0 243 226 89 243 226 89 243 226 89 243 226 89 243 226 89 243 226 89 243 226 89 243 226 89 243 226 89 243 226 89 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 244 219 75 244 219 75 244 219 75 244 219 75 244 219 75 244 219 75 244 219 75 244 219 75 244 219 75 244 219 75 244 219 75 244 219 75 244 219 75 244 219 75 244 219 75 244 219 75 0 0 0 0 0 0 244 219 75 244 219 75 244 219 75 244 219 75 0 0 0 0 0 0 242 230 96 0 0 0 0 0 0 242 230 96 242 230 96 242 230 96 242 230 96 242 230 96 242 230 96 242 230 96 242 230 96 242 230 96 242 230 96 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 232 100 241 232 100 241 232 100 241 232 100 241 232 100 241 232 100 241 232 100 0 0 0 0 0 0 241 233 104 241 233 104 241 233 104 241 233 104 241 233 104 241 233 104 241 233 104 241 233 104 241 233 104 241 233 104 0 0 0 0 0 0 241 237 112 241 237 112 241 237 112 241 237 112 241 237 112 241 237 112 241 237 112 241 237 112 241 237 112 241 237 112 0 0 0 0 0 0 241 238 116 241 238 116 241 238 116 241 238 116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 131 32 107 0 0 0 0 0 0 131 32 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 131 32 107 0 0 0 0 0 0 131 32 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 131 32 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 144 36 104 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 149 38 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 149 38 102 0 0 0 0 0 0 149 38 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 238 108 34 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 238 108 34 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 164 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 164 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 205 55 0 0 0 0 0 0 248 205 55 0 0 0 0 0 0 243 222 82 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 224 86 0 0 0 0 0 0 243 224 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 222 82 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 243 226 89 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 226 89 0 0 0 0 0 0 243 226 89 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 226 89 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 219 75 0 0 0 0 0 0 242 230 96 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 230 96 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 232 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 131 32 107 0 0 0 0 0 0 131 32 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 131 32 107 0 0 0 0 0 0 131 32 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 131 32 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 144 36 104 0 0 0 0 0 0 144 36 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 149 38 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 149 38 102 0 0 0 0 0 0 149 38 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 238 108 34 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 239 109 33 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 164 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 164 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 205 55 0 0 0 0 0 0 248 205 55 0 0 0 0 0 0 243 222 82 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 224 86 0 0 0 0 0 0 243 224 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 243 226 89 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 226 89 0 0 0 0 0 0 243 226 89 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 226 89 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 219 75 0 0 0 0 0 0 242 230 96 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 230 96 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 232 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 131 32 107 0 0 0 0 0 0 131 32 107 131 32 107 131 32 107 131 32 107 131 32 107 131 32 107 131 32 107 131 32 107 131 32 107 131 32 107 131 32 107 131 32 107 131 32 107 131 32 107 131 32 107 131 32 107 131 32 107 131 32 107 131 32 107 131 32 107 131 32 107 131 32 107 131 32 107 131 32 107 131 32 107 0 0 0 0 0 0 131 32 107 131 32 107 131 32 107 131 32 107 131 32 107 131 32 107 131 32 107 131 32 107 131 32 107 131 32 107 131 32 107 131 32 107 131 32 107 0 0 0 0 0 0 139 34 105 139 34 105 139 34 105 139 34 105 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 145 37 103 145 37 103 145 37 103 145 37 103 0 0 0 0 0 0 144 36 104 144 36 104 144 36 104 144 36 104 0 0 0 0 0 0 144 36 104 0 0 0 0 0 0 145 37 103 145 37 103 145 37 103 145 37 103 145 37 103 145 37 103 145 37 103 145 37 103 145 37 103 145 37 103 145 37 103 145 37 103 145 37 103 145 37 103 145 37 103 145 37 103 145 37 103 145 37 103 145 37 103 145 37 103 145 37 103 145 37 103 0 0 0 0 0 0 149 38 102 149 38 102 149 38 102 149 38 102 149 38 102 147 37 103 147 37 103 0 0 0 0 0 0 149 38 102 149 38 102 149 38 102 149 38 102 0 0 0 0 0 0 156 41 99 156 41 99 156 41 99 156 41 99 0 0 0 0 0 0 155 40 100 155 40 100 155 40 100 155 40 100 155 40 100 155 40 100 155 40 100 0 0 0 0 0 0 155 40 100 155 40 100 155 40 100 155 40 100 0 0 0 0 0 0 155 40 100 155 40 100 155 40 100 155 40 100 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 238 108 34 238 108 34 238 108 34 238 108 34 0 0 0 0 0 0 238 108 34 238 108 34 238 108 34 238 108 34 0 0 0 0 0 0 239 109 33 239 109 33 239 109 33 239 109 33 0 0 0 0 0 0 248 138 11 248 138 11 248 138 11 248 138 11 0 0 0 0 0 0 248 138 11 248 138 11 248 138 11 248 138 11 0 0 0 0 0 0 249 140 9 249 140 9 249 140 9 249 140 9 0 0 0 0 0 0 249 140 9 249 140 9 249 140 9 249 140 9 0 0 0 0 0 0 251 164 10 251 164 10 251 164 10 251 164 10 251 164 10 251 164 10 251 164 10 251 164 10 251 164 10 251 164 10 0 0 0 0 0 0 251 164 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 205 55 248 205 55 248 205 55 248 205 55 0 0 0 0 0 0 243 222 82 243 222 82 243 222 82 243 222 82 243 222 82 243 222 82 243 222 82 0 0 0 0 0 0 243 224 86 243 224 86 243 224 86 243 224 86 0 0 0 0 0 0 243 224 86 243 224 86 243 224 86 243 224 86 243 224 86 243 224 86 243 224 86 243 224 86 243 224 86 243 224 86 243 224 86 243 224 86 243 224 86 0 0 0 0 0 0 244 220 79 244 220 79 244 220 79 244 220 79 0 0 0 0 0 0 243 226 89 243 226 89 243 226 89 243 226 89 0 0 0 0 0 0 243 226 89 243 226 89 243 226 89 243 226 89 0 0 0 0 0 0 243 226 89 243 226 89 243 226 89 243 226 89 0 0 0 0 0 0 243 226 89 0 0 0 0 0 0 244 220 79 244 220 79 244 219 75 244 219 75 244 219 75 244 219 75 244 219 75 244 219 75 244 219 75 244 219 75 0 0 0 0 0 0 244 219 75 244 219 75 244 219 75 244 219 75 0 0 0 0 0 0 244 219 75 244 219 75 244 219 75 244 219 75 0 0 0 0 0 0 244 219 75 0 0 0 0 0 0 242 230 96 0 0 0 0 0 0 242 230 96 242 230 96 242 230 96 242 230 96 242 230 96 242 230 96 242 230 96 242 230 96 242 230 96 242 230 96 0 0 0 0 0 0 241 232 100 241 232 100 241 232 100 241 232 100 0 0 0 0 0 0 241 232 100 241 232 100 241 232 100 241 232 100 0 0 0 0 0 0 241 237 112 241 237 112 241 237 112 241 237 112 241 237 112 241 237 112 241 237 112 241 237 112 241 237 112 241 237 112 241 237 112 241 237 112 241 237 112 0 0 0 0 0 0 241 238 116 241 238 116 241 238 116 241 238 116 241 238 116 241 238 116 241 238 116 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 241 238 116 241 238 116 241 238 116 241 238 116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 131 32 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 144 36 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 144 36 104 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 156 41 99 0 0 0 0 0 0 156 41 99 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 238 108 34 0 0 0 0 0 0 238 108 34 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 238 108 34 0 0 0 0 0 0 239 109 33 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 164 10 0 0 0 0 0 0 251 164 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 222 82 0 0 0 0 0 0 243 224 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 224 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 226 89 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 226 89 0 0 0 0 0 0 243 226 89 0 0 0 0 0 0 243 226 89 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 219 75 0 0 0 0 0 0 244 219 75 0 0 0 0 0 0 244 219 75 0 0 0 0 0 0 244 219 75 0 0 0 0 0 0 244 219 75 0 0 0 0 0 0 244 219 75 0 0 0 0 0 0 242 230 96 0 0 0 0 0 0 242 230 96 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 232 100 0 0 0 0 0 0 241 232 100 0 0 0 0 0 0 241 232 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 131 32 107 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 144 36 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 144 36 104 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 156 41 99 0 0 0 0 0 0 156 41 99 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 238 108 34 0 0 0 0 0 0 238 108 34 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 238 108 34 0 0 0 0 0 0 239 109 33 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 164 10 0 0 0 0 0 0 251 164 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 222 82 0 0 0 0 0 0 243 224 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 224 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 226 89 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 226 89 0 0 0 0 0 0 243 226 89 0 0 0 0 0 0 243 226 89 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 219 75 0 0 0 0 0 0 244 219 75 0 0 0 0 0 0 244 219 75 0 0 0 0 0 0 244 219 75 0 0 0 0 0 0 244 219 75 0 0 0 0 0 0 244 219 75 0 0 0 0 0 0 242 230 96 0 0 0 0 0 0 242 230 96 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 232 100 0 0 0 0 0 0 241 232 100 0 0 0 0 0 0 241 232 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 131 32 107 131 32 107 131 32 107 131 32 107 131 32 107 133 32 106 133 32 106 133 32 106 133 32 106 133 32 106 133 32 106 133 32 106 133 32 106 133 32 106 133 32 106 133 32 106 133 32 106 133 32 106 133 32 106 133 32 106 133 32 106 133 32 106 133 32 106 133 32 106 133 32 106 133 32 106 133 32 106 133 32 106 133 32 106 133 32 106 133 32 106 133 32 106 133 32 106 133 32 106 0 0 0 0 0 0 133 32 106 133 32 106 133 32 106 133 32 106 133 32 106 133 32 106 133 32 106 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 139 34 105 139 34 105 139 34 105 139 34 105 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 144 36 104 144 36 104 144 36 104 144 36 104 144 36 104 144 36 104 144 36 104 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 147 37 103 147 37 103 147 37 103 147 37 103 147 37 103 147 37 103 147 37 103 147 37 103 147 37 103 147 37 103 147 37 103 147 37 103 147 37 103 147 37 103 147 37 103 147 37 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 147 37 103 147 37 103 147 37 103 147 37 103 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 156 41 99 156 41 99 156 41 99 156 41 99 156 41 99 156 41 99 156 41 99 0 0 0 0 0 0 156 41 99 0 0 0 0 0 0 155 40 100 155 40 100 155 40 100 155 40 100 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 155 40 100 155 40 100 155 40 100 155 40 100 0 0 0 0 0 0 153 40 100 153 40 100 153 40 100 153 40 100 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 153 40 100 153 40 100 153 40 100 153 40 100 0 0 0 0 0 0 238 108 34 0 0 0 0 0 0 238 108 34 238 108 34 238 108 34 238 108 34 0 0 0 0 0 0 238 108 34 0 0 0 0 0 0 239 109 33 0 0 0 0 0 0 248 138 11 248 138 11 248 138 11 248 138 11 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 164 10 251 164 10 251 164 10 251 164 10 251 164 10 251 164 10 251 164 10 0 0 0 0 0 0 251 164 10 251 164 10 251 164 10 251 164 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 174 18 251 174 18 251 174 18 251 174 18 251 174 18 251 174 18 251 174 18 251 174 18 251 174 18 251 174 18 251 174 18 251 174 18 251 174 18 0 0 0 0 0 0 243 222 82 0 0 0 0 0 0 243 224 86 243 224 86 243 222 82 243 222 82 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 224 86 243 224 86 243 224 86 243 224 86 0 0 0 0 0 0 243 224 86 243 224 86 243 224 86 243 224 86 0 0 0 0 0 0 243 226 89 243 226 89 243 226 89 243 226 89 243 226 89 243 226 89 243 226 89 243 226 89 243 226 89 243 226 89 0 0 0 0 0 0 243 226 89 243 226 89 243 226 89 243 226 89 243 226 89 243 226 89 243 226 89 0 0 0 0 0 0 243 226 89 243 226 89 243 226 89 243 226 89 0 0 0 0 0 0 242 228 93 242 228 93 242 228 93 242 228 93 242 228 93 242 228 93 242 228 93 0 0 0 0 0 0 244 219 75 244 219 75 244 219 75 244 219 75 0 0 0 0 0 0 244 219 75 244 219 75 244 219 75 244 219 75 0 0 0 0 0 0 244 219 75 244 219 75 244 219 75 244 219 75 0 0 0 0 0 0 242 230 96 0 0 0 0 0 0 242 230 96 0 0 0 0 0 0 241 232 100 241 232 100 241 232 100 241 232 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 232 100 0 0 0 0 0 0 241 232 100 0 0 0 0 0 0 241 232 100 241 232 100 241 232 100 241 232 100 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 238 116 241 238 116 241 238 116 241 238 116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 238 116 241 238 116 241 238 116 241 238 116 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 241 238 116 241 238 116 241 238 116 241 238 116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 133 32 106 0 0 0 0 0 0 133 32 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 133 32 106 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 156 41 99 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 156 41 99 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 238 108 34 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 238 108 34 0 0 0 0 0 0 238 108 34 0 0 0 0 0 0 239 109 33 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 164 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 164 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 174 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 174 18 0 0 0 0 0 0 243 222 82 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 222 82 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 224 86 0 0 0 0 0 0 243 224 86 0 0 0 0 0 0 243 224 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 226 89 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 226 89 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 230 96 0 0 0 0 0 0 242 230 96 0 0 0 0 0 0 241 232 100 0 0 0 0 0 0 241 232 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 232 100 0 0 0 0 0 0 241 232 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 232 100 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 133 32 106 0 0 0 0 0 0 133 32 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 133 32 106 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 156 41 99 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 156 41 99 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 156 41 99 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 153 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 238 108 34 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 238 108 34 0 0 0 0 0 0 238 108 34 0 0 0 0 0 0 239 109 33 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 164 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 164 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 174 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 174 18 0 0 0 0 0 0 243 222 82 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 222 82 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 224 86 0 0 0 0 0 0 243 224 86 0 0 0 0 0 0 243 224 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 226 89 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 226 89 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 230 96 0 0 0 0 0 0 242 230 96 0 0 0 0 0 0 241 232 100 0 0 0 0 0 0 241 232 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 232 100 0 0 0 0 0 0 241 232 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 232 100 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 134 33 106 134 33 106 134 33 106 134 33 106 134 33 106 134 33 106 134 33 106 134 33 106 134 33 106 134 33 106 0 0 0 0 0 0 133 32 106 133 32 106 133 32 106 133 32 106 133 32 106 133 32 106 133 32 106 133 32 106 133 32 106 133 32 106 133 32 106 133 32 106 133 32 106 133 32 106 133 32 106 133 32 106 133 32 106 133 32 106 133 32 106 133 32 106 133 32 106 133 32 106 0 0 0 0 0 0 133 32 106 133 32 106 133 32 106 133 32 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 133 32 106 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 145 37 103 145 37 103 145 37 103 145 37 103 145 37 103 145 37 103 145 37 103 0 0 0 0 0 0 145 37 103 145 37 103 145 37 103 145 37 103 145 37 103 145 37 103 145 37 103 145 37 103 145 37 103 145 37 103 145 37 103 145 37 103 145 37 103 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 147 37 103 147 37 103 147 37 103 147 37 103 147 37 103 147 37 103 147 37 103 147 37 103 147 37 103 147 37 103 147 37 103 147 37 103 147 37 103 0 0 0 0 0 0 147 37 103 147 37 103 147 37 103 147 37 103 0 0 0 0 0 0 147 37 103 147 37 103 147 37 103 147 37 103 0 0 0 0 0 0 156 41 99 156 41 99 156 41 99 156 41 99 156 41 99 156 41 99 156 41 99 0 0 0 0 0 0 156 41 99 156 41 99 156 41 99 156 41 99 156 41 99 156 41 99 156 41 99 0 0 0 0 0 0 155 40 100 155 40 100 155 40 100 155 40 100 0 0 0 0 0 0 155 40 100 155 40 100 155 40 100 155 40 100 0 0 0 0 0 0 153 40 100 153 40 100 153 40 100 153 40 100 0 0 0 0 0 0 238 108 34 238 108 34 238 108 34 238 108 34 238 108 34 238 108 34 238 108 34 0 0 0 0 0 0 238 108 34 238 108 34 238 108 34 238 108 34 0 0 0 0 0 0 238 108 34 0 0 0 0 0 0 239 109 33 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 248 138 11 248 138 11 248 138 11 248 138 11 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 164 10 251 164 10 251 164 10 251 164 10 251 164 10 251 164 10 251 164 10 251 164 10 251 164 10 251 164 10 0 0 0 0 0 0 251 164 10 251 164 10 251 164 10 251 164 10 0 0 0 0 0 0 251 174 18 251 174 18 251 174 18 251 174 18 251 174 18 251 174 18 251 174 18 251 174 18 251 174 18 251 174 18 0 0 0 0 0 0 251 174 18 0 0 0 0 0 0 243 222 82 243 222 82 243 222 82 243 222 82 243 222 82 243 222 82 243 222 82 0 0 0 0 0 0 243 224 86 243 224 86 243 224 86 243 224 86 0 0 0 0 0 0 243 224 86 243 224 86 243 224 86 243 224 86 0 0 0 0 0 0 243 226 89 243 226 89 243 226 89 243 226 89 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 228 93 242 228 93 242 228 93 242 228 93 242 228 93 243 226 89 243 226 89 0 0 0 0 0 0 242 228 93 242 228 93 242 228 93 242 228 93 0 0 0 0 0 0 242 228 93 242 228 93 242 228 93 242 228 93 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 242 228 93 242 228 93 242 228 93 242 228 93 0 0 0 0 0 0 242 228 93 242 228 93 242 228 93 242 228 93 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 230 96 242 230 96 242 230 96 242 230 96 0 0 0 0 0 0 242 230 96 242 230 96 242 230 96 242 230 96 0 0 0 0 0 0 242 230 96 242 230 96 241 232 100 241 232 100 0 0 0 0 0 0 241 232 100 241 232 100 241 232 100 241 232 100 241 232 100 241 232 100 241 232 100 0 0 0 0 0 0 241 232 100 241 232 100 241 232 100 241 232 100 241 232 100 241 232 100 241 232 100 0 0 0 0 0 0 241 238 116 241 238 116 241 238 116 241 238 116 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 241 238 116 241 238 116 241 238 116 241 238 116 241 238 116 241 238 116 241 238 116 0 0 0 0 0 0 241 238 116 241 238 116 241 238 116 241 238 116 0 0 0 0 0 0 241 238 116 241 238 116 241 240 121 241 240 121 241 240 121 241 240 121 241 240 121 0 0 0 0 0 0 241 240 121 241 240 121 241 240 121 241 240 121 241 240 121 241 240 121 241 240 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 134 33 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 134 33 106 0 0 0 0 0 0 133 32 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 133 32 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 133 32 106 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 156 41 99 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 238 108 34 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 238 108 34 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 238 108 34 0 0 0 0 0 0 239 109 33 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 164 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 164 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 174 18 0 0 0 0 0 0 251 174 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 224 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 226 89 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 230 96 0 0 0 0 0 0 242 230 96 0 0 0 0 0 0 242 230 96 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 240 121 0 0 0 0 0 0 241 240 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 240 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 134 33 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 134 33 106 0 0 0 0 0 0 133 32 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 133 32 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 133 32 106 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 145 37 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 147 37 103 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 156 41 99 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 238 108 34 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 238 108 34 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 238 108 34 0 0 0 0 0 0 239 109 33 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 162 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 164 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 174 18 0 0 0 0 0 0 251 174 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 224 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 226 89 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 230 96 0 0 0 0 0 0 242 230 96 0 0 0 0 0 0 242 230 96 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 240 121 0 0 0 0 0 0 241 240 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 240 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 134 33 106 134 33 106 134 33 106 134 33 106 134 33 106 134 33 106 134 33 106 0 0 0 0 0 0 134 33 106 0 0 0 0 0 0 133 32 106 133 32 106 133 32 106 133 32 106 133 32 106 133 32 106 133 32 106 133 32 106 134 33 106 134 33 106 134 33 106 134 33 106 134 33 106 134 33 106 134 33 106 134 33 106 134 33 106 134 33 106 134 33 106 0 0 0 0 0 0 133 32 106 133 32 106 133 32 106 133 32 106 133 32 106 133 32 106 133 32 106 133 32 106 133 32 106 133 32 106 133 32 106 133 32 106 133 32 106 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 145 37 103 145 37 103 145 37 103 145 37 103 145 37 103 145 37 103 145 37 103 145 37 103 147 37 103 147 37 103 147 37 103 147 37 103 147 37 103 147 37 103 147 37 103 147 37 103 147 37 103 147 37 103 147 37 103 147 37 103 147 37 103 147 37 103 147 37 103 147 37 103 147 37 103 0 0 0 0 0 0 147 37 103 147 37 103 147 37 103 147 37 103 147 37 103 147 37 103 147 37 103 147 37 103 147 37 103 147 37 103 147 37 103 147 37 103 147 37 103 147 37 103 147 37 103 147 37 103 0 0 0 0 0 0 156 41 99 156 41 99 156 41 99 156 41 99 156 41 99 156 41 99 156 41 99 156 41 99 156 41 99 156 41 99 156 41 99 156 41 99 156 41 99 0 0 0 0 0 0 156 41 99 156 41 99 156 41 99 156 41 99 156 41 99 156 41 99 156 41 99 156 41 99 156 41 99 156 41 99 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 155 40 100 155 40 100 155 40 100 155 40 100 0 0 0 0 0 0 226 87 51 226 87 51 226 87 51 226 87 51 0 0 0 0 0 0 238 108 34 238 108 34 238 108 34 238 108 34 238 108 34 238 108 34 238 108 34 0 0 0 0 0 0 238 108 34 238 108 34 238 108 34 238 108 34 238 108 34 238 108 34 238 108 34 0 0 0 0 0 0 239 109 33 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 248 138 11 248 138 11 248 138 11 248 138 11 248 138 11 248 138 11 248 138 11 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 249 140 9 249 140 9 249 140 9 249 140 9 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 251 162 8 251 162 8 251 162 8 251 162 8 251 162 8 251 162 8 251 162 8 251 162 8 251 162 8 251 162 8 251 162 8 251 162 8 251 162 8 0 0 0 0 0 0 251 164 10 251 164 10 251 164 10 251 164 10 0 0 0 0 0 0 251 164 10 251 164 10 251 164 10 251 164 10 251 164 10 251 164 10 251 164 10 0 0 0 0 0 0 251 174 18 0 0 0 0 0 0 251 174 18 251 174 18 251 174 18 251 174 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 224 86 243 224 86 243 224 86 243 224 86 0 0 0 0 0 0 243 224 86 243 224 86 243 224 86 243 224 86 0 0 0 0 0 0 243 226 89 243 226 89 243 226 89 243 226 89 0 0 0 0 0 0 244 247 141 244 247 141 244 247 141 244 247 141 0 0 0 0 0 0 242 228 93 242 228 93 242 228 93 242 228 93 0 0 0 0 0 0 242 228 93 242 228 93 242 228 93 242 228 93 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 242 228 93 242 228 93 242 228 93 242 228 93 0 0 0 0 0 0 242 228 93 242 228 93 242 228 93 242 228 93 242 228 93 242 228 93 242 228 93 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 242 228 93 242 228 93 242 230 96 242 230 96 0 0 0 0 0 0 242 230 96 242 230 96 242 230 96 242 230 96 0 0 0 0 0 0 242 244 133 242 244 133 242 244 133 242 244 133 0 0 0 0 0 0 242 244 133 242 244 133 242 244 133 242 244 133 0 0 0 0 0 0 242 244 133 242 244 133 242 244 133 242 244 133 242 244 133 242 244 133 242 244 133 242 244 133 242 244 133 242 244 133 242 244 133 242 244 133 242 244 133 242 244 133 242 244 133 242 244 133 0 0 0 0 0 0 241 238 116 241 238 116 241 238 116 241 238 116 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 241 240 121 241 240 121 241 240 121 241 240 121 241 240 121 241 240 121 241 240 121 241 240 121 241 240 121 241 240 121 241 240 121 241 240 121 241 240 121 241 240 121 241 240 121 241 240 121 241 240 121 241 240 121 241 240 121 0 0 0 0 0 0 241 240 121 0 0 0 0 0 0 241 240 121 241 240 121 241 240 121 241 240 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 134 33 106 0 0 0 0 0 0 134 33 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 134 33 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 156 41 99 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 156 41 99 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 156 41 99 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 238 108 34 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 239 109 33 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 251 162 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 164 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 164 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 164 10 0 0 0 0 0 0 251 174 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 174 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 224 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 224 86 0 0 0 0 0 0 243 224 86 0 0 0 0 0 0 243 226 89 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 247 141 0 0 0 0 0 0 244 247 141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 244 133 0 0 0 0 0 0 242 244 133 0 0 0 0 0 0 242 244 133 0 0 0 0 0 0 242 244 133 0 0 0 0 0 0 242 244 133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 244 133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 241 240 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 240 121 0 0 0 0 0 0 241 240 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 134 33 106 0 0 0 0 0 0 134 33 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 134 33 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 156 41 99 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 156 41 99 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 156 41 99 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 238 108 34 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 239 109 33 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 251 162 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 164 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 164 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 166 11 0 0 0 0 0 0 251 174 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 174 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 224 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 224 86 0 0 0 0 0 0 243 226 89 0 0 0 0 0 0 243 226 89 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 247 141 0 0 0 0 0 0 244 247 141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 244 133 0 0 0 0 0 0 242 244 133 0 0 0 0 0 0 242 244 133 0 0 0 0 0 0 242 244 133 0 0 0 0 0 0 242 244 133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 244 133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 241 240 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 240 121 0 0 0 0 0 0 241 240 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 134 33 106 134 33 106 134 33 106 134 33 106 134 33 106 134 33 106 134 33 106 0 0 0 0 0 0 134 33 106 134 33 106 134 33 106 134 33 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 134 33 106 134 33 106 134 33 106 134 33 106 0 0 0 0 0 0 134 33 106 134 33 106 134 33 106 134 33 106 134 33 106 134 33 106 134 33 106 0 0 0 0 0 0 137 34 105 137 34 105 137 34 105 137 34 105 0 0 0 0 0 0 137 34 105 137 34 105 137 34 105 137 34 105 0 0 0 0 0 0 139 34 105 139 34 105 139 34 105 139 34 105 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 160 42 98 160 42 98 160 42 98 160 42 98 160 42 98 160 42 98 160 42 98 160 42 98 160 42 98 160 42 98 160 42 98 160 42 98 160 42 98 0 0 0 0 0 0 158 41 99 158 41 99 158 41 99 158 41 99 158 41 99 158 41 99 158 41 99 158 41 99 158 41 99 158 41 99 158 41 99 158 41 99 158 41 99 0 0 0 0 0 0 158 41 99 158 41 99 158 41 99 158 41 99 158 41 99 158 41 99 158 41 99 0 0 0 0 0 0 158 41 99 158 41 99 158 41 99 158 41 99 0 0 0 0 0 0 156 41 99 156 41 99 156 41 99 156 41 99 156 41 99 156 41 99 156 41 99 0 0 0 0 0 0 156 41 99 156 41 99 156 41 99 156 41 99 0 0 0 0 0 0 156 41 99 156 41 99 156 41 99 156 41 99 156 41 99 156 41 99 156 41 99 156 41 99 156 41 99 156 41 99 0 0 0 0 0 0 155 40 100 155 40 100 155 40 100 155 40 100 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 237 106 35 237 106 35 237 106 35 237 106 35 0 0 0 0 0 0 238 108 34 238 108 34 238 108 34 238 108 34 238 108 34 238 108 34 238 108 34 0 0 0 0 0 0 239 109 33 239 109 33 239 109 33 239 109 33 0 0 0 0 0 0 248 138 11 248 138 11 248 138 11 248 138 11 0 0 0 0 0 0 248 138 11 248 138 11 248 138 11 248 138 11 248 138 11 248 138 11 248 138 11 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 249 140 9 249 140 9 249 140 9 249 140 9 249 140 9 249 140 9 249 140 9 0 0 0 0 0 0 251 162 8 251 162 8 251 162 8 251 162 8 251 162 8 251 162 8 251 162 8 0 0 0 0 0 0 251 162 8 251 162 8 251 162 8 251 162 8 0 0 0 0 0 0 251 164 10 0 0 0 0 0 0 251 164 10 251 164 10 251 164 10 251 164 10 0 0 0 0 0 0 251 166 11 251 166 11 251 166 11 251 166 11 0 0 0 0 0 0 251 174 18 0 0 0 0 0 0 251 174 18 251 174 18 251 174 18 251 174 18 0 0 0 0 0 0 243 224 86 243 224 86 243 224 86 243 224 86 0 0 0 0 0 0 243 224 86 243 224 86 243 224 86 243 224 86 0 0 0 0 0 0 243 226 89 0 0 0 0 0 0 243 226 89 0 0 0 0 0 0 244 247 141 244 247 141 244 247 141 244 247 141 0 0 0 0 0 0 244 247 141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 228 93 242 228 93 242 228 93 242 228 93 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 228 93 242 228 93 242 228 93 242 228 93 0 0 0 0 0 0 244 247 141 244 247 141 244 247 141 244 247 141 244 247 141 244 247 141 244 247 141 244 247 141 244 247 141 244 247 141 244 247 141 244 247 141 244 247 141 0 0 0 0 0 0 242 228 93 242 228 93 242 228 93 242 228 93 0 0 0 0 0 0 243 246 137 243 246 137 243 246 137 243 246 137 243 246 137 243 246 137 243 246 137 0 0 0 0 0 0 242 244 133 0 0 0 0 0 0 242 244 133 242 244 133 242 244 133 242 244 133 0 0 0 0 0 0 242 244 133 242 244 133 242 244 133 242 244 133 0 0 0 0 0 0 242 244 133 242 244 133 242 244 133 242 244 133 242 244 133 243 246 137 243 246 137 0 0 0 0 0 0 242 244 133 242 244 133 242 244 133 242 244 133 0 0 0 0 0 0 242 243 129 242 243 129 242 243 129 242 243 129 0 0 0 0 0 0 241 238 116 241 238 116 241 238 116 241 238 116 0 0 0 0 0 0 241 240 121 241 240 121 241 240 121 241 240 121 241 240 121 241 240 121 241 240 121 241 240 121 241 240 121 241 240 121 241 240 121 241 240 121 241 240 121 241 240 121 241 240 121 241 240 121 0 0 0 0 0 0 241 240 121 241 240 121 241 240 121 241 240 121 0 0 0 0 0 0 241 240 121 241 240 121 241 240 121 241 240 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 134 33 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 134 33 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 134 33 106 0 0 0 0 0 0 134 33 106 0 0 0 0 0 0 134 33 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 137 34 105 0 0 0 0 0 0 137 34 105 0 0 0 0 0 0 137 34 105 0 0 0 0 0 0 137 34 105 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 160 42 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 160 42 98 0 0 0 0 0 0 158 41 99 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 158 41 99 0 0 0 0 0 0 158 41 99 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 158 41 99 0 0 0 0 0 0 158 41 99 0 0 0 0 0 0 158 41 99 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 156 41 99 0 0 0 0 0 0 156 41 99 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 156 41 99 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 237 106 35 0 0 0 0 0 0 237 106 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 238 108 34 0 0 0 0 0 0 239 109 33 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 162 8 0 0 0 0 0 0 251 162 8 0 0 0 0 0 0 251 162 8 0 0 0 0 0 0 251 164 10 0 0 0 0 0 0 251 164 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 166 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 174 18 0 0 0 0 0 0 251 174 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 224 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 224 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 226 89 0 0 0 0 0 0 243 226 89 0 0 0 0 0 0 244 247 141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 247 141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 247 141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 247 141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 246 137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 246 137 0 0 0 0 0 0 242 244 133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 244 133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 246 137 0 0 0 0 0 0 242 244 133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 243 129 0 0 0 0 0 0 242 243 129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 240 121 0 0 0 0 0 0 241 240 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 240 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 134 33 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 134 33 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 134 33 106 0 0 0 0 0 0 134 33 106 0 0 0 0 0 0 134 33 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 137 34 105 0 0 0 0 0 0 137 34 105 0 0 0 0 0 0 137 34 105 0 0 0 0 0 0 137 34 105 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 160 42 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 160 42 98 0 0 0 0 0 0 158 41 99 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 158 41 99 0 0 0 0 0 0 158 41 99 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 158 41 99 0 0 0 0 0 0 158 41 99 0 0 0 0 0 0 158 41 99 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 158 41 99 0 0 0 0 0 0 156 41 99 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 156 41 99 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 155 40 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 237 106 35 0 0 0 0 0 0 238 108 34 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 238 108 34 0 0 0 0 0 0 239 109 33 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 162 8 0 0 0 0 0 0 251 162 8 0 0 0 0 0 0 251 162 8 0 0 0 0 0 0 251 164 10 0 0 0 0 0 0 251 164 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 166 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 174 18 0 0 0 0 0 0 251 174 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 224 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 224 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 226 89 0 0 0 0 0 0 243 226 89 0 0 0 0 0 0 244 247 141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 247 141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 247 141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 247 141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 246 137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 246 137 0 0 0 0 0 0 242 244 133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 244 133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 246 137 0 0 0 0 0 0 242 244 133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 243 129 0 0 0 0 0 0 242 243 129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 240 121 0 0 0 0 0 0 241 240 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 240 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 134 33 106 134 33 106 134 33 106 134 33 106 0 0 0 0 0 0 136 33 106 136 33 106 136 33 106 136 33 106 0 0 0 0 0 0 134 33 106 0 0 0 0 0 0 134 33 106 134 33 106 134 33 106 134 33 106 0 0 0 0 0 0 134 33 106 134 33 106 134 33 106 134 33 106 0 0 0 0 0 0 136 33 106 136 33 106 136 33 106 136 33 106 0 0 0 0 0 0 137 34 105 0 0 0 0 0 0 137 34 105 137 34 105 137 34 105 137 34 105 0 0 0 0 0 0 137 34 105 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 160 42 98 160 42 98 160 42 98 160 42 98 160 42 98 160 42 98 160 42 98 160 42 98 160 42 98 160 42 98 0 0 0 0 0 0 160 42 98 0 0 0 0 0 0 158 41 99 158 41 99 158 41 99 158 41 99 158 41 99 158 41 99 158 41 99 158 41 99 158 41 99 158 41 99 0 0 0 0 0 0 158 41 99 0 0 0 0 0 0 158 41 99 158 41 99 158 41 99 158 41 99 0 0 0 0 0 0 158 41 99 0 0 0 0 0 0 158 41 99 0 0 0 0 0 0 158 41 99 0 0 0 0 0 0 158 41 99 158 41 99 158 41 99 158 41 99 158 41 99 158 41 99 158 41 99 0 0 0 0 0 0 156 41 99 156 41 99 156 41 99 156 41 99 156 41 99 156 41 99 156 41 99 0 0 0 0 0 0 163 43 97 163 43 97 163 43 97 163 43 97 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 155 40 100 155 40 100 155 40 100 155 40 100 155 40 100 155 40 100 155 40 100 0 0 0 0 0 0 226 87 51 226 87 51 226 87 51 226 87 51 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 237 106 35 0 0 0 0 0 0 238 108 34 238 108 34 238 108 34 238 108 34 238 108 34 238 108 34 238 108 34 238 108 34 238 108 34 238 108 34 0 0 0 0 0 0 239 109 33 0 0 0 0 0 0 239 109 33 239 109 33 239 109 33 239 109 33 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 248 138 11 248 138 11 248 138 11 248 138 11 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 249 140 9 249 140 9 249 140 9 249 140 9 0 0 0 0 0 0 249 144 8 249 144 8 249 144 8 249 144 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 162 8 251 162 8 251 162 8 251 162 8 0 0 0 0 0 0 251 162 8 0 0 0 0 0 0 251 164 10 0 0 0 0 0 0 251 164 10 0 0 0 0 0 0 251 166 11 251 166 11 251 166 11 251 166 11 0 0 0 0 0 0 251 174 18 251 174 18 251 174 18 251 174 18 0 0 0 0 0 0 251 174 18 251 174 18 251 174 18 251 174 18 0 0 0 0 0 0 243 224 86 243 224 86 243 224 86 243 224 86 0 0 0 0 0 0 243 224 86 243 224 86 243 224 86 243 224 86 0 0 0 0 0 0 243 226 89 243 226 89 243 226 89 243 226 89 0 0 0 0 0 0 244 247 141 244 247 141 244 247 141 244 247 141 0 0 0 0 0 0 244 247 141 244 247 141 244 247 141 244 247 141 244 247 141 244 247 141 244 247 141 244 247 141 244 247 141 244 247 141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 247 141 244 247 141 244 247 141 244 247 141 0 0 0 0 0 0 244 247 141 244 247 141 244 247 141 244 247 141 244 247 141 244 247 141 244 247 141 244 247 141 244 247 141 244 247 141 0 0 0 0 0 0 244 247 141 244 247 141 244 247 141 244 247 141 244 247 141 243 246 137 243 246 137 0 0 0 0 0 0 243 246 137 243 246 137 243 246 137 243 246 137 0 0 0 0 0 0 243 246 137 0 0 0 0 0 0 242 244 133 242 244 133 242 244 133 242 244 133 0 0 0 0 0 0 242 244 133 242 244 133 242 244 133 242 244 133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 244 133 0 0 0 0 0 0 243 246 137 243 246 137 243 246 137 243 246 137 0 0 0 0 0 0 242 244 133 242 244 133 242 244 133 242 244 133 0 0 0 0 0 0 242 243 129 0 0 0 0 0 0 242 243 129 0 0 0 0 0 0 242 243 129 242 243 129 242 243 129 242 243 129 242 243 129 242 243 129 242 243 129 0 0 0 0 0 0 241 242 125 241 242 125 241 242 125 241 242 125 241 242 125 241 242 125 241 242 125 241 242 125 241 242 125 241 242 125 0 0 0 0 0 0 241 240 121 241 240 121 241 240 121 241 240 121 0 0 0 0 0 0 241 240 121 241 240 121 241 240 121 241 240 121 241 240 121 241 240 121 241 240 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 134 33 106 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 134 33 106 0 0 0 0 0 0 134 33 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 137 34 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 137 34 105 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 160 42 98 0 0 0 0 0 0 160 42 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 158 41 99 0 0 0 0 0 0 158 41 99 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 158 41 99 0 0 0 0 0 0 158 41 99 0 0 0 0 0 0 158 41 99 0 0 0 0 0 0 158 41 99 0 0 0 0 0 0 158 41 99 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 163 43 97 0 0 0 0 0 0 163 43 97 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 237 106 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 239 109 33 0 0 0 0 0 0 239 109 33 0 0 0 0 0 0 239 109 33 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 249 144 8 0 0 0 0 0 0 249 144 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 162 8 0 0 0 0 0 0 251 164 10 0 0 0 0 0 0 251 164 10 0 0 0 0 0 0 251 166 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 174 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 174 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 224 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 224 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 247 141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 247 141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 247 141 0 0 0 0 0 0 244 247 141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 247 141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 246 137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 246 137 0 0 0 0 0 0 243 246 137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 244 133 0 0 0 0 0 0 242 244 133 0 0 0 0 0 0 242 244 133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 244 133 0 0 0 0 0 0 243 246 137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 244 133 0 0 0 0 0 0 242 243 129 0 0 0 0 0 0 242 243 129 0 0 0 0 0 0 242 243 129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 243 129 0 0 0 0 0 0 241 242 125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 242 125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 240 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 134 33 106 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 134 33 106 0 0 0 0 0 0 134 33 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 137 34 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 137 34 105 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 160 42 98 0 0 0 0 0 0 160 42 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 160 42 98 0 0 0 0 0 0 158 41 99 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 158 41 99 0 0 0 0 0 0 158 41 99 0 0 0 0 0 0 158 41 99 0 0 0 0 0 0 158 41 99 0 0 0 0 0 0 158 41 99 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 163 43 97 0 0 0 0 0 0 163 43 97 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 237 106 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 239 109 33 0 0 0 0 0 0 239 109 33 0 0 0 0 0 0 239 109 33 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 249 144 8 0 0 0 0 0 0 249 144 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 162 8 0 0 0 0 0 0 251 164 10 0 0 0 0 0 0 251 164 10 0 0 0 0 0 0 251 166 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 174 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 174 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 224 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 224 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 247 141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 247 141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 247 141 0 0 0 0 0 0 244 247 141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 247 141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 246 137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 246 137 0 0 0 0 0 0 243 246 137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 244 133 0 0 0 0 0 0 242 244 133 0 0 0 0 0 0 242 244 133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 244 133 0 0 0 0 0 0 243 246 137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 244 133 0 0 0 0 0 0 242 243 129 0 0 0 0 0 0 242 243 129 0 0 0 0 0 0 242 243 129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 243 129 0 0 0 0 0 0 241 242 125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 242 125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 240 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 134 33 106 134 33 106 134 33 106 134 33 106 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 134 33 106 134 33 106 134 33 106 134 33 106 0 0 0 0 0 0 136 33 106 136 33 106 136 33 106 136 33 106 136 33 106 136 33 106 136 33 106 136 33 106 136 33 106 136 33 106 0 0 0 0 0 0 136 33 106 136 33 106 137 34 105 137 34 105 0 0 0 0 0 0 137 34 105 137 34 105 137 34 105 137 34 105 137 34 105 137 34 105 137 34 105 0 0 0 0 0 0 139 34 105 139 34 105 139 34 105 139 34 105 0 0 0 0 0 0 139 34 105 139 34 105 139 34 105 139 34 105 0 0 0 0 0 0 160 42 98 160 42 98 160 42 98 160 42 98 160 42 98 160 42 98 160 42 98 160 42 98 160 42 98 160 42 98 0 0 0 0 0 0 160 42 98 160 42 98 160 42 98 160 42 98 160 42 98 160 42 98 160 42 98 160 42 98 160 42 98 160 42 98 160 42 98 160 42 98 160 42 98 0 0 0 0 0 0 158 41 99 158 41 99 158 41 99 158 41 99 0 0 0 0 0 0 158 41 99 0 0 0 0 0 0 158 41 99 158 41 99 158 41 99 158 41 99 0 0 0 0 0 0 158 41 99 158 41 99 158 41 99 158 41 99 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 163 43 97 163 43 97 163 43 97 163 43 97 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 163 43 97 163 43 97 163 43 97 163 43 97 0 0 0 0 0 0 163 43 97 163 43 97 163 43 97 163 43 97 163 43 97 163 43 97 163 43 97 0 0 0 0 0 0 224 86 52 224 86 52 224 86 52 224 86 52 0 0 0 0 0 0 226 87 51 226 87 51 226 87 51 226 87 51 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 237 106 35 237 106 35 237 106 35 237 106 35 237 106 35 237 106 35 237 106 35 0 0 0 0 0 0 237 106 35 237 106 35 237 106 35 237 106 35 0 0 0 0 0 0 239 109 33 239 109 33 239 109 33 239 109 33 0 0 0 0 0 0 239 109 33 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 248 138 11 248 138 11 248 138 11 248 138 11 0 0 0 0 0 0 248 138 11 248 138 11 248 138 11 248 138 11 0 0 0 0 0 0 249 140 9 249 140 9 249 140 9 249 140 9 0 0 0 0 0 0 249 144 8 0 0 0 0 0 0 249 144 8 249 144 8 249 144 8 249 144 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 162 8 251 162 8 251 162 8 251 162 8 0 0 0 0 0 0 251 164 10 251 164 10 251 164 10 251 164 10 0 0 0 0 0 0 251 166 11 251 166 11 251 166 11 251 166 11 0 0 0 0 0 0 251 174 18 251 174 18 251 174 18 251 174 18 251 174 18 251 174 18 251 174 18 0 0 0 0 0 0 251 174 18 251 174 18 251 174 18 251 174 18 0 0 0 0 0 0 243 224 86 243 224 86 243 224 86 243 224 86 243 224 86 243 224 86 243 224 86 0 0 0 0 0 0 251 177 22 251 177 22 251 177 22 251 177 22 251 177 22 251 177 22 251 177 22 0 0 0 0 0 0 244 247 141 244 247 141 245 248 145 245 248 145 0 0 0 0 0 0 245 248 145 245 248 145 245 248 145 245 248 145 0 0 0 0 0 0 244 247 141 244 247 141 244 247 141 244 247 141 244 247 141 244 247 141 244 247 141 0 0 0 0 0 0 244 247 141 244 247 141 244 247 141 244 247 141 244 247 141 244 247 141 244 247 141 244 247 141 244 247 141 244 247 141 244 247 141 244 247 141 244 247 141 0 0 0 0 0 0 245 248 145 245 248 145 245 248 145 245 248 145 0 0 0 0 0 0 243 246 137 0 0 0 0 0 0 243 246 137 243 246 137 243 246 137 243 246 137 0 0 0 0 0 0 243 246 137 243 246 137 243 246 137 243 246 137 0 0 0 0 0 0 242 244 133 242 244 133 242 244 133 242 244 133 0 0 0 0 0 0 242 244 133 242 244 133 242 244 133 242 244 133 242 244 133 242 244 133 242 244 133 0 0 0 0 0 0 243 246 137 243 246 137 243 246 137 243 246 137 243 246 137 243 246 137 243 246 137 0 0 0 0 0 0 242 244 133 0 0 0 0 0 0 242 243 129 0 0 0 0 0 0 242 243 129 0 0 0 0 0 0 242 243 129 0 0 0 0 0 0 242 243 129 242 243 129 242 243 129 242 243 129 0 0 0 0 0 0 241 242 125 241 242 125 241 242 125 241 242 125 241 242 125 241 242 125 241 242 125 0 0 0 0 0 0 241 242 125 241 242 125 241 240 121 241 240 121 241 240 121 241 240 121 241 240 121 241 240 121 241 240 121 241 240 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 134 33 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 137 34 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 139 34 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 160 42 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 158 41 99 0 0 0 0 0 0 158 41 99 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 163 43 97 0 0 0 0 0 0 163 43 97 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 163 43 97 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 163 43 97 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 237 106 35 0 0 0 0 0 0 237 106 35 0 0 0 0 0 0 237 106 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 239 109 33 0 0 0 0 0 0 248 138 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 144 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 144 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 162 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 166 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 174 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 174 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 248 145 0 0 0 0 0 0 245 248 145 0 0 0 0 0 0 245 248 145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 248 145 0 0 0 0 0 0 245 248 145 0 0 0 0 0 0 243 246 137 0 0 0 0 0 0 243 246 137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 246 137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 246 137 0 0 0 0 0 0 242 244 133 0 0 0 0 0 0 242 243 129 0 0 0 0 0 0 242 243 129 0 0 0 0 0 0 242 243 129 0 0 0 0 0 0 242 243 129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 242 125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 137 34 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 137 34 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 160 42 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 158 41 99 0 0 0 0 0 0 158 41 99 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 163 43 97 0 0 0 0 0 0 163 43 97 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 163 43 97 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 163 43 97 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 237 106 35 0 0 0 0 0 0 237 106 35 0 0 0 0 0 0 237 106 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 239 109 33 0 0 0 0 0 0 248 136 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 144 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 144 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 162 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 166 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 174 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 176 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 248 145 0 0 0 0 0 0 245 248 145 0 0 0 0 0 0 245 248 145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 248 145 0 0 0 0 0 0 245 248 145 0 0 0 0 0 0 243 246 137 0 0 0 0 0 0 243 246 137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 246 137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 246 137 0 0 0 0 0 0 242 243 129 0 0 0 0 0 0 242 243 129 0 0 0 0 0 0 242 243 129 0 0 0 0 0 0 242 243 129 0 0 0 0 0 0 242 243 129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 242 125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 136 33 106 136 33 106 136 33 106 136 33 106 136 33 106 136 33 106 136 33 106 0 0 0 0 0 0 136 33 106 136 33 106 136 33 106 136 33 106 136 33 106 136 33 106 136 33 106 0 0 0 0 0 0 136 33 106 136 33 106 136 33 106 136 33 106 0 0 0 0 0 0 137 34 105 137 34 105 137 34 105 137 34 105 137 34 105 137 34 105 137 34 105 137 34 105 137 34 105 137 34 105 137 34 105 137 34 105 137 34 105 0 0 0 0 0 0 137 34 105 137 34 105 137 34 105 137 34 105 137 34 105 137 34 105 137 34 105 0 0 0 0 0 0 137 34 105 137 34 105 137 34 105 137 34 105 0 0 0 0 0 0 160 42 98 160 42 98 160 42 98 160 42 98 0 0 0 0 0 0 160 42 98 160 42 98 160 42 98 160 42 98 0 0 0 0 0 0 161 43 97 161 43 97 161 43 97 161 43 97 161 43 97 161 43 97 161 43 97 161 43 97 161 43 97 161 43 97 161 43 97 161 43 97 161 43 97 161 43 97 161 43 97 161 43 97 161 43 97 161 43 97 161 43 97 0 0 0 0 0 0 158 41 99 158 41 99 158 41 99 158 41 99 0 0 0 0 0 0 161 43 97 161 43 97 161 43 97 161 43 97 0 0 0 0 0 0 163 43 97 163 43 97 163 43 97 163 43 97 0 0 0 0 0 0 163 43 97 163 43 97 163 43 97 163 43 97 0 0 0 0 0 0 163 43 97 163 43 97 163 43 97 163 43 97 163 43 97 163 43 97 163 43 97 0 0 0 0 0 0 163 43 97 163 43 97 163 43 97 163 43 97 163 43 97 163 43 97 163 43 97 163 43 97 163 43 97 163 43 97 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 226 87 51 226 87 51 226 87 51 226 87 51 0 0 0 0 0 0 226 87 51 226 87 51 226 87 51 226 87 51 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 237 106 35 237 106 35 237 106 35 237 106 35 0 0 0 0 0 0 237 106 35 0 0 0 0 0 0 239 109 33 239 109 33 239 109 33 239 109 33 239 109 33 239 109 33 239 109 33 0 0 0 0 0 0 248 136 12 248 136 12 248 136 12 248 136 12 248 136 12 248 136 12 248 136 12 0 0 0 0 0 0 249 140 9 249 140 9 249 140 9 249 140 9 249 140 9 249 140 9 249 140 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 144 8 249 144 8 249 144 8 249 144 8 0 0 0 0 0 0 249 144 8 249 144 8 249 144 8 249 144 8 0 0 0 0 0 0 251 162 8 251 162 8 251 162 8 251 162 8 0 0 0 0 0 0 251 166 11 251 166 11 251 166 11 251 166 11 251 166 11 251 166 11 251 166 11 251 166 11 251 166 11 251 166 11 0 0 0 0 0 0 251 174 18 251 174 18 251 174 18 251 174 18 0 0 0 0 0 0 251 174 18 251 174 18 251 174 18 251 174 18 0 0 0 0 0 0 251 176 20 251 176 20 251 176 20 251 176 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 177 22 251 177 22 251 177 22 251 177 22 0 0 0 0 0 0 251 177 22 251 177 22 251 177 22 251 177 22 0 0 0 0 0 0 245 248 145 245 248 145 245 248 145 245 248 145 0 0 0 0 0 0 245 248 145 0 0 0 0 0 0 245 248 145 245 248 145 245 248 145 245 248 145 0 0 0 0 0 0 245 248 145 245 248 145 245 248 145 245 248 145 0 0 0 0 0 0 245 248 145 245 248 145 245 248 145 245 248 145 0 0 0 0 0 0 245 248 145 245 248 145 245 248 145 245 248 145 245 248 145 245 248 145 245 248 145 0 0 0 0 0 0 245 248 145 0 0 0 0 0 0 245 248 145 0 0 0 0 0 0 243 246 137 243 246 137 243 246 137 243 246 137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 246 137 243 246 137 243 246 137 243 246 137 243 246 137 243 246 137 243 246 137 243 246 137 243 246 137 243 246 137 243 246 137 243 246 137 243 246 137 243 246 137 243 246 137 243 246 137 0 0 0 0 0 0 243 246 137 243 246 137 243 246 137 243 246 137 0 0 0 0 0 0 243 246 137 0 0 0 0 0 0 242 243 129 242 243 129 242 243 129 242 243 129 0 0 0 0 0 0 242 243 129 242 243 129 242 243 129 242 243 129 0 0 0 0 0 0 242 243 129 242 243 129 242 243 129 242 243 129 242 243 129 242 243 129 242 243 129 0 0 0 0 0 0 241 242 125 241 242 125 241 242 125 241 242 125 0 0 0 0 0 0 241 242 125 241 242 125 241 242 125 241 242 125 241 242 125 241 242 125 241 242 125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 137 34 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 137 34 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 137 34 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 137 34 105 0 0 0 0 0 0 160 42 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 160 42 98 0 0 0 0 0 0 160 42 98 0 0 0 0 0 0 161 43 97 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 161 43 97 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 161 43 97 0 0 0 0 0 0 161 43 97 0 0 0 0 0 0 163 43 97 0 0 0 0 0 0 163 43 97 0 0 0 0 0 0 163 43 97 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 163 43 97 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 237 106 35 0 0 0 0 0 0 239 109 33 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 136 12 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 144 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 144 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 162 8 0 0 0 0 0 0 251 166 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 174 18 0 0 0 0 0 0 251 174 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 174 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 176 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 248 145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 248 145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 248 145 0 0 0 0 0 0 245 248 145 0 0 0 0 0 0 245 248 145 0 0 0 0 0 0 245 248 145 0 0 0 0 0 0 245 248 145 0 0 0 0 0 0 245 248 145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 248 145 0 0 0 0 0 0 245 248 145 0 0 0 0 0 0 245 248 145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 246 137 0 0 0 0 0 0 243 246 137 0 0 0 0 0 0 243 246 137 0 0 0 0 0 0 243 246 137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 243 129 0 0 0 0 0 0 241 242 125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 242 125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 242 125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 137 34 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 137 34 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 137 34 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 137 34 105 0 0 0 0 0 0 160 42 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 160 42 98 0 0 0 0 0 0 160 42 98 0 0 0 0 0 0 161 43 97 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 161 43 97 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 161 43 97 0 0 0 0 0 0 161 43 97 0 0 0 0 0 0 163 43 97 0 0 0 0 0 0 163 43 97 0 0 0 0 0 0 163 43 97 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 163 43 97 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 237 106 35 0 0 0 0 0 0 239 109 33 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 136 12 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 144 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 144 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 162 8 0 0 0 0 0 0 251 166 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 174 18 0 0 0 0 0 0 251 174 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 174 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 176 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 248 145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 248 145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 248 145 0 0 0 0 0 0 245 248 145 0 0 0 0 0 0 245 248 145 0 0 0 0 0 0 245 248 145 0 0 0 0 0 0 245 248 145 0 0 0 0 0 0 245 248 145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 248 145 0 0 0 0 0 0 245 248 145 0 0 0 0 0 0 245 248 145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 246 137 0 0 0 0 0 0 243 246 137 0 0 0 0 0 0 243 246 137 0 0 0 0 0 0 243 246 137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 243 129 0 0 0 0 0 0 241 242 125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 242 125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 242 125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 136 33 106 136 33 106 136 33 106 136 33 106 0 0 0 0 0 0 136 33 106 136 33 106 136 33 106 136 33 106 0 0 0 0 0 0 137 34 105 137 34 105 137 34 105 137 34 105 137 34 105 137 34 105 137 34 105 137 34 105 137 34 105 137 34 105 137 34 105 137 34 105 137 34 105 0 0 0 0 0 0 137 34 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 137 34 105 137 34 105 137 34 105 137 34 105 137 34 105 137 34 105 137 34 105 0 0 0 0 0 0 160 42 98 160 42 98 160 42 98 160 42 98 160 42 98 160 42 98 160 42 98 0 0 0 0 0 0 160 42 98 0 0 0 0 0 0 161 43 97 0 0 0 0 0 0 161 43 97 161 43 97 161 43 97 161 43 97 161 43 97 161 43 97 161 43 97 161 43 97 161 43 97 161 43 97 161 43 97 161 43 97 161 43 97 161 43 97 161 43 97 161 43 97 0 0 0 0 0 0 161 43 97 161 43 97 161 43 97 161 43 97 0 0 0 0 0 0 161 43 97 0 0 0 0 0 0 161 43 97 161 43 97 163 43 97 163 43 97 0 0 0 0 0 0 163 43 97 163 43 97 163 43 97 163 43 97 0 0 0 0 0 0 164 44 96 164 44 96 164 44 96 164 44 96 164 44 96 164 44 96 164 44 96 164 44 96 164 44 96 164 44 96 0 0 0 0 0 0 163 43 97 163 43 97 163 43 97 163 43 97 163 43 97 163 43 97 163 43 97 163 43 97 163 43 97 163 43 97 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 226 87 51 226 87 51 226 87 51 226 87 51 226 87 51 226 87 51 226 87 51 0 0 0 0 0 0 237 106 35 237 106 35 237 106 35 237 106 35 0 0 0 0 0 0 237 106 35 237 106 35 237 106 35 237 106 35 0 0 0 0 0 0 239 109 33 239 109 33 239 109 33 239 109 33 0 0 0 0 0 0 248 136 12 248 136 12 248 136 12 248 136 12 0 0 0 0 0 0 248 136 12 248 136 12 248 136 12 248 136 12 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 249 142 8 249 142 8 249 142 8 249 142 8 0 0 0 0 0 0 249 144 8 249 144 8 249 144 8 249 144 8 0 0 0 0 0 0 249 144 8 249 144 8 249 144 8 249 144 8 0 0 0 0 0 0 249 144 8 249 144 8 249 144 8 249 144 8 0 0 0 0 0 0 251 162 8 0 0 0 0 0 0 251 166 11 251 166 11 251 166 11 251 166 11 251 166 11 251 166 11 251 166 11 251 166 11 251 166 11 251 166 11 0 0 0 0 0 0 251 174 18 0 0 0 0 0 0 251 174 18 251 174 18 251 174 18 251 174 18 251 174 18 251 174 18 251 174 18 0 0 0 0 0 0 251 176 20 251 176 20 251 176 20 251 176 20 0 0 0 0 0 0 251 177 22 251 177 22 251 177 22 251 177 22 0 0 0 0 0 0 251 177 22 251 177 22 251 177 22 251 177 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 248 145 245 248 145 245 248 145 245 248 145 245 248 145 245 248 145 245 248 145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 248 145 245 248 145 245 248 145 245 248 145 0 0 0 0 0 0 245 248 145 245 248 145 245 248 145 245 248 145 0 0 0 0 0 0 245 248 145 245 248 145 245 248 145 245 248 145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 248 145 245 248 145 245 248 145 245 248 145 0 0 0 0 0 0 245 248 145 245 248 145 245 248 145 245 248 145 245 248 145 246 250 149 246 250 149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 250 149 246 250 149 246 250 149 246 250 149 0 0 0 0 0 0 246 250 149 246 250 149 246 250 149 246 250 149 0 0 0 0 0 0 246 250 149 246 250 149 246 250 149 246 250 149 0 0 0 0 0 0 243 246 137 243 246 137 243 246 137 243 246 137 0 0 0 0 0 0 243 246 137 243 246 137 243 246 137 243 246 137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 251 153 247 251 153 247 251 153 247 251 153 0 0 0 0 0 0 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 0 0 0 0 0 0 242 243 129 0 0 0 0 0 0 241 242 125 241 242 125 241 242 125 241 242 125 241 242 125 241 242 125 241 242 125 0 0 0 0 0 0 241 242 125 241 242 125 241 242 125 241 242 125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 137 34 105 0 0 0 0 0 0 137 34 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 160 42 98 0 0 0 0 0 0 161 43 97 0 0 0 0 0 0 161 43 97 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 161 43 97 0 0 0 0 0 0 161 43 97 0 0 0 0 0 0 161 43 97 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 164 44 96 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 164 44 96 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 163 43 97 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 237 106 35 0 0 0 0 0 0 237 106 35 0 0 0 0 0 0 237 106 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 239 109 33 0 0 0 0 0 0 248 136 12 0 0 0 0 0 0 248 136 12 0 0 0 0 0 0 248 136 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 249 144 8 0 0 0 0 0 0 249 144 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 144 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 144 8 0 0 0 0 0 0 251 162 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 166 11 0 0 0 0 0 0 251 174 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 176 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 250 149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 250 149 0 0 0 0 0 0 246 250 149 0 0 0 0 0 0 246 250 149 0 0 0 0 0 0 246 250 149 0 0 0 0 0 0 246 250 149 0 0 0 0 0 0 246 250 149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 251 153 0 0 0 0 0 0 247 251 153 0 0 0 0 0 0 247 251 153 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 251 153 0 0 0 0 0 0 242 243 129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 242 125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 137 34 105 0 0 0 0 0 0 137 34 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 160 42 98 0 0 0 0 0 0 161 43 97 0 0 0 0 0 0 161 43 97 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 161 43 97 0 0 0 0 0 0 161 43 97 0 0 0 0 0 0 161 43 97 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 164 44 96 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 163 43 97 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 163 43 97 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 237 106 35 0 0 0 0 0 0 237 106 35 0 0 0 0 0 0 237 106 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 239 109 33 0 0 0 0 0 0 248 136 12 0 0 0 0 0 0 248 136 12 0 0 0 0 0 0 248 136 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 249 144 8 0 0 0 0 0 0 249 144 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 144 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 144 8 0 0 0 0 0 0 251 162 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 166 11 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 176 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 250 149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 250 149 0 0 0 0 0 0 246 250 149 0 0 0 0 0 0 246 250 149 0 0 0 0 0 0 246 250 149 0 0 0 0 0 0 246 250 149 0 0 0 0 0 0 246 250 149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 251 153 0 0 0 0 0 0 247 251 153 0 0 0 0 0 0 247 251 153 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 251 153 0 0 0 0 0 0 242 243 129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 242 125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 175 49 91 175 49 91 175 49 91 175 49 91 0 0 0 0 0 0 175 49 91 175 49 91 175 49 91 175 49 91 0 0 0 0 0 0 136 33 106 136 33 106 136 33 106 136 33 106 0 0 0 0 0 0 136 33 106 136 33 106 136 33 106 136 33 106 136 33 106 136 33 106 136 33 106 0 0 0 0 0 0 169 46 94 169 46 94 169 46 94 169 46 94 169 46 94 169 46 94 169 46 94 0 0 0 0 0 0 137 34 105 137 34 105 137 34 105 137 34 105 0 0 0 0 0 0 167 45 95 167 45 95 167 45 95 167 45 95 0 0 0 0 0 0 167 45 95 167 45 95 167 45 95 167 45 95 0 0 0 0 0 0 160 42 98 160 42 98 160 42 98 160 42 98 160 42 98 160 42 98 160 42 98 160 42 98 160 42 98 160 42 98 0 0 0 0 0 0 161 43 97 0 0 0 0 0 0 161 43 97 161 43 97 161 43 97 161 43 97 161 43 97 161 43 97 161 43 97 161 43 97 161 43 97 161 43 97 161 43 97 161 43 97 161 43 97 161 43 97 161 43 97 161 43 97 161 43 97 161 43 97 161 43 97 0 0 0 0 0 0 161 43 97 161 43 97 161 43 97 161 43 97 0 0 0 0 0 0 164 44 96 164 44 96 164 44 96 164 44 96 0 0 0 0 0 0 164 44 96 164 44 96 164 44 96 164 44 96 0 0 0 0 0 0 164 44 96 0 0 0 0 0 0 220 80 57 220 80 57 220 80 57 220 80 57 0 0 0 0 0 0 163 43 97 163 43 97 163 43 97 163 43 97 163 43 97 163 43 97 163 43 97 163 43 97 163 43 97 163 43 97 163 43 97 163 43 97 163 43 97 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 237 106 35 237 106 35 237 106 35 237 106 35 0 0 0 0 0 0 237 106 35 0 0 0 0 0 0 237 106 35 0 0 0 0 0 0 237 106 35 237 106 35 237 106 35 237 106 35 0 0 0 0 0 0 239 109 33 239 109 33 239 109 33 239 109 33 0 0 0 0 0 0 248 136 12 0 0 0 0 0 0 248 136 12 0 0 0 0 0 0 248 136 12 248 136 12 248 136 12 248 136 12 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 249 144 8 0 0 0 0 0 0 249 144 8 0 0 0 0 0 0 249 144 8 249 144 8 249 144 8 249 144 8 0 0 0 0 0 0 249 144 8 249 144 8 249 144 8 249 144 8 0 0 0 0 0 0 251 162 8 0 0 0 0 0 0 251 166 11 251 166 11 251 166 11 251 166 11 251 166 11 251 166 11 251 166 11 251 166 11 251 166 11 251 166 11 0 0 0 0 0 0 251 172 16 251 172 16 251 172 16 251 172 16 0 0 0 0 0 0 251 176 20 251 176 20 251 176 20 251 176 20 251 176 20 251 176 20 251 176 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 177 22 251 177 22 251 177 22 251 177 22 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 251 183 28 251 183 28 251 183 28 251 183 28 0 0 0 0 0 0 241 237 112 241 237 112 241 237 112 241 237 112 0 0 0 0 0 0 241 237 112 241 237 112 241 237 112 241 237 112 0 0 0 0 0 0 241 237 112 241 237 112 241 237 112 241 237 112 0 0 0 0 0 0 250 253 160 250 253 160 250 253 160 250 253 160 250 253 160 250 253 160 250 253 160 250 253 160 250 253 160 250 253 160 250 253 160 250 253 160 250 253 160 250 253 160 250 253 160 250 253 160 250 253 160 250 253 160 250 253 160 250 253 160 250 253 160 250 253 160 250 253 160 250 253 160 250 253 160 0 0 0 0 0 0 246 250 149 246 250 149 246 250 149 246 250 149 0 0 0 0 0 0 246 250 149 0 0 0 0 0 0 246 250 149 0 0 0 0 0 0 246 250 149 0 0 0 0 0 0 246 250 149 246 250 149 246 250 149 246 250 149 0 0 0 0 0 0 246 250 149 246 250 149 246 250 149 246 250 149 246 250 149 246 250 149 246 250 149 0 0 0 0 0 0 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 0 0 0 0 0 0 247 251 153 247 251 153 247 251 153 247 251 153 0 0 0 0 0 0 247 251 153 247 251 153 247 251 153 247 251 153 0 0 0 0 0 0 242 243 129 0 0 0 0 0 0 241 242 125 241 242 125 241 242 125 241 242 125 241 242 125 241 242 125 241 242 125 0 0 0 0 0 0 241 242 125 241 242 125 241 242 125 241 242 125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 169 46 94 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 169 46 94 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 160 42 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 161 43 97 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 164 44 96 0 0 0 0 0 0 164 44 96 0 0 0 0 0 0 164 44 96 0 0 0 0 0 0 164 44 96 0 0 0 0 0 0 164 44 96 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 237 106 35 0 0 0 0 0 0 237 106 35 0 0 0 0 0 0 237 106 35 0 0 0 0 0 0 237 106 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 237 106 35 0 0 0 0 0 0 239 109 33 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 136 12 0 0 0 0 0 0 248 136 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 136 12 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 249 144 8 0 0 0 0 0 0 249 144 8 0 0 0 0 0 0 249 144 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 144 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 162 8 0 0 0 0 0 0 251 166 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 251 176 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 250 253 160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 253 160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 250 149 0 0 0 0 0 0 246 250 149 0 0 0 0 0 0 246 250 149 0 0 0 0 0 0 246 250 149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 250 149 0 0 0 0 0 0 247 251 153 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 251 153 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 243 129 0 0 0 0 0 0 241 242 125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 242 125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 242 125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 136 33 106 0 0 0 0 0 0 169 46 94 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 169 46 94 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 160 42 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 161 43 97 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 164 44 96 0 0 0 0 0 0 164 44 96 0 0 0 0 0 0 164 44 96 0 0 0 0 0 0 164 44 96 0 0 0 0 0 0 164 44 96 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 237 106 35 0 0 0 0 0 0 237 106 35 0 0 0 0 0 0 237 106 35 0 0 0 0 0 0 237 106 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 237 106 35 0 0 0 0 0 0 239 109 33 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 136 12 0 0 0 0 0 0 248 136 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 136 12 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 249 140 9 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 249 144 8 0 0 0 0 0 0 249 144 8 0 0 0 0 0 0 249 144 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 144 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 162 8 0 0 0 0 0 0 251 166 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 251 176 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 250 253 160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 253 160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 250 149 0 0 0 0 0 0 246 250 149 0 0 0 0 0 0 246 250 149 0 0 0 0 0 0 246 250 149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 250 149 0 0 0 0 0 0 246 250 149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 251 153 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 243 129 0 0 0 0 0 0 241 242 125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 242 125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 242 125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 175 49 91 175 49 91 175 49 91 175 49 91 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 136 33 106 136 33 106 136 33 106 136 33 106 136 33 106 136 33 106 136 33 106 136 33 106 136 33 106 136 33 106 0 0 0 0 0 0 169 46 94 169 46 94 169 46 94 169 46 94 0 0 0 0 0 0 169 46 94 0 0 0 0 0 0 169 46 94 169 46 94 169 46 94 169 46 94 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 160 42 98 160 42 98 160 42 98 160 42 98 160 42 98 161 43 97 161 43 97 161 43 97 161 43 97 161 43 97 161 43 97 161 43 97 161 43 97 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 164 44 96 164 44 96 164 44 96 164 44 96 164 44 96 164 44 96 164 44 96 164 44 96 164 44 96 164 44 96 164 44 96 164 44 96 164 44 96 164 44 96 164 44 96 164 44 96 164 44 96 164 44 96 164 44 96 164 44 96 164 44 96 164 44 96 164 44 96 164 44 96 164 44 96 0 0 0 0 0 0 164 44 96 164 44 96 164 44 96 164 44 96 0 0 0 0 0 0 164 44 96 164 44 96 164 44 96 164 44 96 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 220 80 57 220 80 57 220 80 57 220 80 57 0 0 0 0 0 0 221 82 56 221 82 56 221 82 56 221 82 56 0 0 0 0 0 0 223 84 54 223 84 54 223 84 54 223 84 54 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 237 106 35 0 0 0 0 0 0 237 106 35 0 0 0 0 0 0 237 106 35 0 0 0 0 0 0 237 106 35 0 0 0 0 0 0 237 106 35 237 106 35 237 106 35 237 106 35 0 0 0 0 0 0 239 109 33 0 0 0 0 0 0 248 136 12 248 136 12 248 136 12 248 136 12 0 0 0 0 0 0 248 136 12 248 136 12 248 136 12 248 136 12 248 136 12 248 136 12 248 136 12 0 0 0 0 0 0 249 140 9 249 140 9 249 140 9 249 140 9 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 249 144 8 0 0 0 0 0 0 249 144 8 0 0 0 0 0 0 249 144 8 0 0 0 0 0 0 249 144 8 249 144 8 249 144 8 249 144 8 0 0 0 0 0 0 251 162 8 251 162 8 251 162 8 251 162 8 0 0 0 0 0 0 251 166 11 251 166 11 251 166 11 251 166 11 0 0 0 0 0 0 251 166 11 251 166 11 251 166 11 251 166 11 0 0 0 0 0 0 251 172 16 251 172 16 251 172 16 251 172 16 0 0 0 0 0 0 251 176 20 251 176 20 251 176 20 251 176 20 0 0 0 0 0 0 251 176 20 251 176 20 251 176 20 251 176 20 251 176 20 251 176 20 251 176 20 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 250 253 160 0 0 0 0 0 0 250 253 160 250 253 160 250 253 160 250 253 160 0 0 0 0 0 0 250 253 160 250 253 160 250 253 160 250 253 160 250 253 160 250 253 160 250 253 160 250 253 160 250 253 160 250 253 160 250 253 160 250 253 160 250 253 160 0 0 0 0 0 0 250 253 160 250 253 160 250 253 160 250 253 160 0 0 0 0 0 0 246 250 149 246 250 149 246 250 149 246 250 149 0 0 0 0 0 0 246 250 149 246 250 149 246 250 149 246 250 149 0 0 0 0 0 0 249 252 157 249 252 157 249 252 157 249 252 157 0 0 0 0 0 0 246 250 149 246 250 149 246 250 149 246 250 149 246 250 149 246 250 149 246 250 149 0 0 0 0 0 0 246 250 149 246 250 149 246 250 149 246 250 149 0 0 0 0 0 0 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 0 0 0 0 0 0 242 243 129 242 243 129 242 243 129 242 243 129 0 0 0 0 0 0 241 242 125 0 0 0 0 0 0 241 242 125 241 242 125 241 242 125 241 242 125 0 0 0 0 0 0 241 242 125 241 242 125 241 242 125 241 242 125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 169 46 94 0 0 0 0 0 0 169 46 94 0 0 0 0 0 0 169 46 94 0 0 0 0 0 0 169 46 94 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 164 44 96 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 237 106 35 0 0 0 0 0 0 237 106 35 0 0 0 0 0 0 237 106 35 0 0 0 0 0 0 237 106 35 0 0 0 0 0 0 237 106 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 239 109 33 0 0 0 0 0 0 248 136 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 249 144 8 0 0 0 0 0 0 249 144 8 0 0 0 0 0 0 249 144 8 0 0 0 0 0 0 249 144 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 162 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 166 11 0 0 0 0 0 0 251 166 11 0 0 0 0 0 0 251 166 11 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 176 20 0 0 0 0 0 0 251 176 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 176 20 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 250 253 160 0 0 0 0 0 0 250 253 160 0 0 0 0 0 0 250 253 160 0 0 0 0 0 0 250 253 160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 253 160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 253 160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 246 250 149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 250 149 0 0 0 0 0 0 247 251 153 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 243 129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 242 125 0 0 0 0 0 0 241 242 125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 242 125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 169 46 94 0 0 0 0 0 0 169 46 94 0 0 0 0 0 0 169 46 94 0 0 0 0 0 0 169 46 94 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 164 44 96 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 237 106 35 0 0 0 0 0 0 237 106 35 0 0 0 0 0 0 237 106 35 0 0 0 0 0 0 237 106 35 0 0 0 0 0 0 237 106 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 239 109 33 0 0 0 0 0 0 248 136 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 249 144 8 0 0 0 0 0 0 249 144 8 0 0 0 0 0 0 249 144 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 162 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 166 11 0 0 0 0 0 0 251 166 11 0 0 0 0 0 0 251 168 13 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 176 20 0 0 0 0 0 0 251 176 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 176 20 0 0 0 0 0 0 251 176 20 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 250 253 160 0 0 0 0 0 0 250 253 160 0 0 0 0 0 0 250 253 160 0 0 0 0 0 0 250 253 160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 253 160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 253 160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 246 250 149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 250 149 0 0 0 0 0 0 247 251 153 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 243 129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 242 125 0 0 0 0 0 0 241 242 125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 242 125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 175 49 91 175 49 91 175 49 91 175 49 91 0 0 0 0 0 0 175 49 91 175 49 91 175 49 91 175 49 91 0 0 0 0 0 0 175 49 91 175 49 91 175 49 91 175 49 91 175 49 91 175 49 91 175 49 91 0 0 0 0 0 0 174 48 91 174 48 91 174 48 91 174 48 91 174 48 91 174 48 91 174 48 91 0 0 0 0 0 0 169 46 94 169 46 94 169 46 94 169 46 94 0 0 0 0 0 0 169 46 94 169 46 94 169 46 94 169 46 94 0 0 0 0 0 0 169 46 94 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 167 45 95 167 45 95 167 45 95 167 45 95 0 0 0 0 0 0 167 45 95 167 45 95 167 45 95 167 45 95 0 0 0 0 0 0 167 45 95 167 45 95 167 45 95 167 45 95 0 0 0 0 0 0 164 44 96 164 44 96 164 44 96 164 44 96 164 44 96 164 44 96 164 44 96 164 44 96 164 44 96 164 44 96 164 44 96 164 44 96 164 44 96 164 44 96 164 44 96 164 44 96 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 164 44 96 164 44 96 164 44 96 164 44 96 0 0 0 0 0 0 166 44 95 166 44 95 166 44 95 166 44 95 166 44 95 166 44 95 166 44 95 0 0 0 0 0 0 220 80 57 220 80 57 220 80 57 220 80 57 0 0 0 0 0 0 220 80 57 220 80 57 220 80 57 220 80 57 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 237 106 35 0 0 0 0 0 0 237 106 35 237 106 35 237 106 35 237 106 35 0 0 0 0 0 0 237 106 35 237 106 35 237 106 35 237 106 35 0 0 0 0 0 0 239 109 33 239 109 33 239 109 33 239 109 33 0 0 0 0 0 0 248 136 12 248 136 12 248 136 12 248 136 12 248 136 12 248 136 12 248 136 12 248 136 12 248 136 12 248 136 12 248 136 12 248 136 12 248 136 12 248 136 12 248 136 12 248 136 12 248 136 12 248 136 12 248 136 12 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 249 144 8 249 144 8 249 144 8 249 144 8 0 0 0 0 0 0 249 144 8 249 144 8 249 144 8 249 144 8 0 0 0 0 0 0 251 162 8 251 162 8 251 162 8 251 162 8 0 0 0 0 0 0 251 166 11 251 166 11 251 166 11 251 166 11 0 0 0 0 0 0 251 166 11 0 0 0 0 0 0 251 168 13 0 0 0 0 0 0 251 172 16 251 172 16 251 172 16 251 172 16 0 0 0 0 0 0 251 176 20 251 176 20 251 176 20 251 176 20 0 0 0 0 0 0 251 176 20 251 176 20 251 176 20 251 176 20 0 0 0 0 0 0 251 176 20 0 0 0 0 0 0 251 176 20 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 250 253 160 250 253 160 250 253 160 250 253 160 0 0 0 0 0 0 250 253 160 250 253 160 250 253 160 250 253 160 0 0 0 0 0 0 250 253 160 250 253 160 250 253 160 250 253 160 250 253 160 250 253 160 250 253 160 250 253 160 250 253 160 250 253 160 0 0 0 0 0 0 250 253 160 250 253 160 250 253 160 250 253 160 0 0 0 0 0 0 249 252 157 249 252 157 249 252 157 249 252 157 0 0 0 0 0 0 249 252 157 249 252 157 249 252 157 249 252 157 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 246 250 149 246 250 149 246 250 149 246 250 149 246 250 149 246 250 149 246 250 149 0 0 0 0 0 0 246 250 149 246 250 149 246 250 149 246 250 149 0 0 0 0 0 0 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 0 0 0 0 0 0 242 243 129 242 243 129 242 243 129 242 243 129 0 0 0 0 0 0 241 242 125 0 0 0 0 0 0 241 242 125 241 242 125 241 242 125 241 242 125 241 242 125 241 242 125 241 242 125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 169 46 94 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 169 46 94 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 164 44 96 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 164 44 96 0 0 0 0 0 0 164 44 96 0 0 0 0 0 0 166 44 95 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 166 44 95 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 237 106 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 239 109 33 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 136 12 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 144 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 162 8 0 0 0 0 0 0 251 166 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 166 11 0 0 0 0 0 0 251 168 13 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 251 176 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 176 20 0 0 0 0 0 0 251 176 20 0 0 0 0 0 0 251 176 20 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 253 160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 253 160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 250 149 0 0 0 0 0 0 246 250 149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 251 153 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 243 129 0 0 0 0 0 0 241 242 125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 169 46 94 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 169 46 94 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 164 44 96 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 164 44 96 0 0 0 0 0 0 166 44 95 0 0 0 0 0 0 166 44 95 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 166 44 95 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 237 106 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 239 109 33 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 136 12 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 144 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 162 8 0 0 0 0 0 0 251 166 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 166 11 0 0 0 0 0 0 251 168 13 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 251 176 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 176 20 0 0 0 0 0 0 251 176 20 0 0 0 0 0 0 251 176 20 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 253 160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 253 160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 250 149 0 0 0 0 0 0 246 250 149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 251 153 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 243 129 0 0 0 0 0 0 242 243 129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 175 49 91 175 49 91 175 49 91 175 49 91 175 49 91 175 49 91 175 49 91 175 49 91 175 49 91 175 49 91 175 49 91 175 49 91 175 49 91 175 49 91 175 49 91 175 49 91 175 49 91 175 49 91 175 49 91 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 174 48 91 174 48 91 174 48 91 174 48 91 0 0 0 0 0 0 169 46 94 169 46 94 169 46 94 169 46 94 0 0 0 0 0 0 169 46 94 169 46 94 169 46 94 169 46 94 0 0 0 0 0 0 169 46 94 169 46 94 167 45 95 167 45 95 0 0 0 0 0 0 167 45 95 167 45 95 167 45 95 167 45 95 0 0 0 0 0 0 167 45 95 167 45 95 167 45 95 167 45 95 0 0 0 0 0 0 167 45 95 167 45 95 167 45 95 167 45 95 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 167 45 95 167 45 95 166 44 95 166 44 95 0 0 0 0 0 0 166 44 95 166 44 95 166 44 95 166 44 95 166 44 95 166 44 95 166 44 95 0 0 0 0 0 0 164 44 96 164 44 96 164 44 96 164 44 96 164 44 96 164 44 96 164 44 96 0 0 0 0 0 0 166 44 95 166 44 95 166 44 95 166 44 95 0 0 0 0 0 0 166 44 95 166 44 95 166 44 95 166 44 95 0 0 0 0 0 0 220 80 57 220 80 57 220 80 57 220 80 57 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 220 80 57 220 80 57 220 80 57 220 80 57 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 226 87 51 226 87 51 226 87 51 226 87 51 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 237 106 35 237 106 35 237 104 37 237 104 37 237 104 37 237 104 37 237 104 37 0 0 0 0 0 0 239 109 33 239 109 33 239 109 33 239 109 33 239 109 33 239 109 33 239 109 33 0 0 0 0 0 0 240 111 31 240 111 31 240 111 31 240 111 31 240 111 31 240 111 31 240 111 31 0 0 0 0 0 0 248 136 12 248 136 12 248 136 12 248 136 12 248 136 12 248 136 12 248 136 12 248 136 12 248 136 12 248 136 12 0 0 0 0 0 0 248 136 12 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 249 142 8 249 142 8 249 142 8 249 142 8 249 142 8 249 142 8 249 142 8 0 0 0 0 0 0 249 144 8 249 144 8 249 144 8 249 144 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 162 8 0 0 0 0 0 0 251 166 11 251 166 11 251 166 11 251 166 11 0 0 0 0 0 0 251 166 11 0 0 0 0 0 0 251 168 13 251 168 13 251 168 13 251 168 13 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 251 176 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 176 20 251 176 20 251 176 20 251 176 20 0 0 0 0 0 0 251 176 20 251 176 20 251 176 20 251 176 20 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 241 237 112 241 237 112 241 237 112 241 237 112 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 241 237 112 241 237 112 241 237 112 241 237 112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 252 254 164 252 254 164 252 254 164 252 254 164 0 0 0 0 0 0 250 253 160 250 253 160 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 0 0 0 0 0 0 250 253 160 250 253 160 250 253 160 250 253 160 250 253 160 249 252 157 249 252 157 0 0 0 0 0 0 249 252 157 249 252 157 249 252 157 249 252 157 0 0 0 0 0 0 249 252 157 249 252 157 249 252 157 249 252 157 0 0 0 0 0 0 249 252 157 249 252 157 249 252 157 249 252 157 249 252 157 249 252 157 249 252 157 0 0 0 0 0 0 246 250 149 246 250 149 246 250 149 246 250 149 0 0 0 0 0 0 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 243 129 0 0 0 0 0 0 242 243 129 242 243 129 242 243 129 242 243 129 0 0 0 0 0 0 246 250 149 246 250 149 246 250 149 246 250 149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 169 46 94 0 0 0 0 0 0 169 46 94 0 0 0 0 0 0 169 46 94 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 166 44 95 0 0 0 0 0 0 166 44 95 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 166 44 95 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 166 44 95 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 239 109 33 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 240 111 31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 240 111 31 0 0 0 0 0 0 248 136 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 136 12 0 0 0 0 0 0 248 136 12 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 249 144 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 162 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 166 11 0 0 0 0 0 0 251 166 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 168 13 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 251 176 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 176 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 252 254 164 0 0 0 0 0 0 252 254 164 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 252 254 164 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 251 153 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 243 129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 243 129 0 0 0 0 0 0 246 250 149 0 0 0 0 0 0 246 250 149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 169 46 94 0 0 0 0 0 0 169 46 94 0 0 0 0 0 0 169 46 94 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 167 45 95 0 0 0 0 0 0 166 44 95 0 0 0 0 0 0 166 44 95 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 166 44 95 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 166 44 95 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 239 109 33 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 240 111 31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 240 111 31 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 136 12 0 0 0 0 0 0 248 136 12 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 249 144 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 162 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 166 11 0 0 0 0 0 0 251 166 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 168 13 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 251 176 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 176 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 252 254 164 0 0 0 0 0 0 252 254 164 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 252 254 164 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 251 153 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 243 129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 243 129 0 0 0 0 0 0 246 250 149 0 0 0 0 0 0 246 250 149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 178 50 89 178 50 89 178 50 89 178 50 89 0 0 0 0 0 0 175 49 91 175 49 91 175 49 91 175 49 91 0 0 0 0 0 0 174 48 91 174 48 91 174 48 91 174 48 91 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 174 48 91 174 48 91 174 48 91 174 48 91 0 0 0 0 0 0 169 46 94 169 46 94 169 46 94 169 46 94 0 0 0 0 0 0 169 46 94 0 0 0 0 0 0 169 46 94 169 46 94 169 46 94 169 46 94 169 46 94 169 46 94 169 46 94 169 46 94 169 46 94 169 46 94 169 46 94 169 46 94 169 46 94 169 46 94 169 46 94 169 46 94 169 46 94 169 46 94 169 46 94 169 46 94 169 46 94 169 46 94 0 0 0 0 0 0 167 45 95 167 45 95 167 45 95 167 45 95 0 0 0 0 0 0 167 45 95 167 45 95 167 45 95 167 45 95 0 0 0 0 0 0 166 44 95 0 0 0 0 0 0 166 44 95 166 44 95 166 44 95 166 44 95 0 0 0 0 0 0 166 44 95 0 0 0 0 0 0 166 44 95 166 44 95 166 44 95 166 44 95 0 0 0 0 0 0 166 44 95 166 44 95 166 44 95 166 44 95 0 0 0 0 0 0 166 44 95 166 44 95 166 44 95 166 44 95 0 0 0 0 0 0 220 80 57 220 80 57 220 80 57 220 80 57 220 80 57 220 80 57 220 80 57 0 0 0 0 0 0 220 80 57 220 80 57 220 80 57 220 80 57 0 0 0 0 0 0 221 82 56 221 82 56 221 82 56 221 82 56 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 226 87 51 226 87 51 226 87 51 226 87 51 226 87 51 226 87 51 226 87 51 0 0 0 0 0 0 237 104 37 237 104 37 237 104 37 237 104 37 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 239 109 33 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 240 111 31 240 111 31 240 111 31 240 111 31 0 0 0 0 0 0 240 111 31 240 111 31 240 111 31 240 111 31 0 0 0 0 0 0 248 135 13 248 135 13 248 135 13 248 135 13 248 135 13 248 135 13 248 135 13 0 0 0 0 0 0 248 136 12 0 0 0 0 0 0 248 136 12 0 0 0 0 0 0 249 142 8 249 142 8 249 142 8 249 142 8 249 142 8 249 142 8 249 142 8 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 249 144 8 0 0 0 0 0 0 250 145 7 250 145 7 250 145 7 250 145 7 0 0 0 0 0 0 251 162 8 251 162 8 251 162 8 251 162 8 0 0 0 0 0 0 251 166 11 0 0 0 0 0 0 251 166 11 0 0 0 0 0 0 251 168 13 251 168 13 251 168 13 251 168 13 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 251 176 20 251 176 20 251 176 20 251 176 20 0 0 0 0 0 0 251 176 20 251 176 20 251 176 20 251 176 20 251 176 20 251 176 20 251 176 20 0 0 0 0 0 0 251 177 22 251 177 22 251 177 22 251 177 22 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 241 237 112 241 237 112 241 235 108 241 235 108 0 0 0 0 0 0 241 237 112 241 237 112 241 237 112 241 237 112 0 0 0 0 0 0 241 237 112 241 237 112 241 237 112 241 237 112 0 0 0 0 0 0 252 254 164 252 254 164 252 254 164 252 254 164 0 0 0 0 0 0 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 249 252 157 249 252 157 249 252 157 249 252 157 0 0 0 0 0 0 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 249 252 157 249 252 157 249 252 157 249 252 157 249 252 157 249 252 157 249 252 157 249 252 157 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 243 129 242 243 129 242 243 129 242 243 129 0 0 0 0 0 0 242 243 129 0 0 0 0 0 0 246 250 149 0 0 0 0 0 0 246 250 149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 250 149 246 250 149 246 250 149 246 250 149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 169 46 94 0 0 0 0 0 0 169 46 94 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 169 46 94 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 166 44 95 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 166 44 95 0 0 0 0 0 0 166 44 95 0 0 0 0 0 0 166 44 95 0 0 0 0 0 0 166 44 95 0 0 0 0 0 0 166 44 95 0 0 0 0 0 0 166 44 95 0 0 0 0 0 0 166 44 95 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 226 87 51 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 239 109 33 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 240 111 31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 240 111 31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 248 136 12 0 0 0 0 0 0 248 136 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 249 144 8 0 0 0 0 0 0 250 145 7 0 0 0 0 0 0 250 145 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 162 8 0 0 0 0 0 0 251 166 11 0 0 0 0 0 0 251 166 11 0 0 0 0 0 0 251 168 13 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 176 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 176 20 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 241 235 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 252 254 164 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 252 254 164 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 252 254 164 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 243 129 0 0 0 0 0 0 242 243 129 0 0 0 0 0 0 246 250 149 0 0 0 0 0 0 246 250 149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 250 149 0 0 0 0 0 0 246 250 149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 169 46 94 0 0 0 0 0 0 169 46 94 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 169 46 94 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 166 44 95 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 166 44 95 0 0 0 0 0 0 166 44 95 0 0 0 0 0 0 166 44 95 0 0 0 0 0 0 166 44 95 0 0 0 0 0 0 166 44 95 0 0 0 0 0 0 166 44 95 0 0 0 0 0 0 166 44 95 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 239 109 33 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 240 111 31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 240 111 31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 248 136 12 0 0 0 0 0 0 248 136 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 250 145 7 0 0 0 0 0 0 250 145 7 0 0 0 0 0 0 250 145 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 162 8 0 0 0 0 0 0 251 166 11 0 0 0 0 0 0 251 166 11 0 0 0 0 0 0 251 168 13 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 176 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 176 20 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 241 237 112 0 0 0 0 0 0 241 235 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 252 254 164 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 252 254 164 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 252 254 164 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 243 129 0 0 0 0 0 0 242 243 129 0 0 0 0 0 0 247 251 153 0 0 0 0 0 0 246 250 149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 250 149 0 0 0 0 0 0 246 250 149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 180 51 88 180 51 88 180 51 88 180 51 88 0 0 0 0 0 0 178 50 89 178 50 89 178 50 89 178 50 89 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 175 49 91 175 49 91 175 49 91 175 49 91 175 49 91 175 49 91 175 49 91 0 0 0 0 0 0 174 48 91 174 48 91 174 48 91 174 48 91 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 174 48 91 174 48 91 174 48 91 174 48 91 0 0 0 0 0 0 169 46 94 169 46 94 169 46 94 169 46 94 0 0 0 0 0 0 172 47 92 172 47 92 172 47 92 172 47 92 0 0 0 0 0 0 172 47 92 172 47 92 172 47 92 172 47 92 0 0 0 0 0 0 171 46 93 171 46 93 171 46 93 171 46 93 171 46 93 169 46 94 169 46 94 0 0 0 0 0 0 171 46 93 171 46 93 171 46 93 171 46 93 0 0 0 0 0 0 171 46 93 171 46 93 171 46 93 171 46 93 0 0 0 0 0 0 166 44 95 166 44 95 166 44 95 166 44 95 166 44 95 166 44 95 166 44 95 0 0 0 0 0 0 166 44 95 0 0 0 0 0 0 166 44 95 0 0 0 0 0 0 166 44 95 166 44 95 166 44 95 166 44 95 0 0 0 0 0 0 166 44 95 166 44 95 166 44 95 166 44 95 0 0 0 0 0 0 220 80 57 220 80 57 220 80 57 220 80 57 0 0 0 0 0 0 221 82 56 221 82 56 221 82 56 221 82 56 221 82 56 221 82 56 221 82 56 221 82 56 221 82 56 221 82 56 221 82 56 221 82 56 221 82 56 0 0 0 0 0 0 223 84 54 223 84 54 223 84 54 223 84 54 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 227 88 50 227 88 50 227 88 50 227 88 50 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 237 104 37 237 104 37 237 104 37 237 104 37 0 0 0 0 0 0 239 109 33 239 109 33 239 109 33 239 109 33 0 0 0 0 0 0 240 111 31 240 111 31 240 111 31 240 111 31 0 0 0 0 0 0 240 111 31 0 0 0 0 0 0 248 135 13 248 135 13 248 135 13 248 135 13 248 135 13 248 135 13 248 135 13 248 135 13 248 135 13 248 135 13 0 0 0 0 0 0 248 136 12 248 136 12 248 136 12 248 136 12 0 0 0 0 0 0 249 142 8 249 142 8 249 142 8 249 142 8 249 142 8 249 142 8 249 142 8 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 250 145 7 250 145 7 250 145 7 250 145 7 0 0 0 0 0 0 250 145 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 162 8 0 0 0 0 0 0 251 166 11 251 166 11 251 166 11 251 166 11 0 0 0 0 0 0 251 168 13 251 168 13 251 168 13 251 168 13 0 0 0 0 0 0 251 172 16 251 172 16 251 172 16 251 172 16 0 0 0 0 0 0 251 176 20 251 176 20 251 176 20 251 176 20 251 176 20 251 176 20 251 176 20 251 176 20 251 176 20 251 176 20 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 241 237 112 241 237 112 241 237 112 241 237 112 0 0 0 0 0 0 241 235 108 241 235 108 241 235 108 241 235 108 0 0 0 0 0 0 241 238 116 241 238 116 241 238 116 241 238 116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 0 0 0 0 0 0 252 254 164 252 254 164 252 254 164 252 254 164 0 0 0 0 0 0 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 0 0 0 0 0 0 252 254 164 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 249 252 157 249 252 157 249 252 157 249 252 157 249 252 157 249 252 157 249 252 157 249 252 157 249 252 157 249 252 157 249 252 157 249 252 157 249 252 157 249 252 157 249 252 157 249 252 157 249 252 157 249 252 157 249 252 157 0 0 0 0 0 0 247 251 153 247 251 153 247 251 153 247 251 153 0 0 0 0 0 0 242 243 129 242 243 129 242 243 129 242 243 129 0 0 0 0 0 0 247 251 153 0 0 0 0 0 0 246 250 149 246 250 149 246 250 149 246 250 149 246 250 149 246 250 149 246 250 149 0 0 0 0 0 0 246 250 149 246 250 149 246 250 149 246 250 149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 180 51 88 0 0 0 0 0 0 180 51 88 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 171 46 93 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 171 46 93 0 0 0 0 0 0 171 46 93 0 0 0 0 0 0 171 46 93 0 0 0 0 0 0 171 46 93 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 166 44 95 0 0 0 0 0 0 166 44 95 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 239 109 33 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 240 111 31 0 0 0 0 0 0 240 111 31 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 145 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 162 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 168 13 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 235 108 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 252 254 164 0 0 0 0 0 0 252 254 164 0 0 0 0 0 0 252 254 164 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 252 254 164 0 0 0 0 0 0 252 254 164 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 251 153 0 0 0 0 0 0 247 251 153 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 251 153 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 250 149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 180 51 88 0 0 0 0 0 0 180 51 88 0 0 0 0 0 0 180 51 88 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 175 49 91 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 171 46 93 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 171 46 93 0 0 0 0 0 0 171 46 93 0 0 0 0 0 0 171 46 93 0 0 0 0 0 0 171 46 93 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 166 44 95 0 0 0 0 0 0 166 44 95 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 239 109 33 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 239 109 33 0 0 0 0 0 0 240 111 31 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 145 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 162 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 168 13 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 235 108 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 252 254 164 0 0 0 0 0 0 252 254 164 0 0 0 0 0 0 252 254 164 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 252 254 164 0 0 0 0 0 0 252 254 164 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 251 153 0 0 0 0 0 0 247 251 153 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 251 153 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 250 149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 180 51 88 180 51 88 180 51 88 180 51 88 0 0 0 0 0 0 180 51 88 0 0 0 0 0 0 180 51 88 180 51 88 180 51 88 180 51 88 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 177 49 90 177 49 90 175 49 91 175 49 91 175 49 91 175 49 91 175 49 91 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 172 47 92 172 47 92 172 47 92 172 47 92 0 0 0 0 0 0 172 47 92 172 47 92 172 47 92 172 47 92 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 171 46 93 171 46 93 171 46 93 171 46 93 171 46 93 171 46 93 171 46 93 171 46 93 171 46 93 171 46 93 0 0 0 0 0 0 171 46 93 171 46 93 171 46 93 171 46 93 0 0 0 0 0 0 171 46 93 171 46 93 171 46 93 171 46 93 171 46 93 171 46 93 171 46 93 171 46 93 171 46 93 171 46 93 0 0 0 0 0 0 166 44 95 166 44 95 166 44 95 166 44 95 0 0 0 0 0 0 209 70 67 209 70 67 209 70 67 209 70 67 0 0 0 0 0 0 209 70 67 209 70 67 209 70 67 209 70 67 0 0 0 0 0 0 220 80 57 220 80 57 220 80 57 220 80 57 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 221 82 56 221 82 56 221 82 56 221 82 56 221 82 56 221 82 56 221 82 56 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 223 84 54 223 84 54 223 84 54 223 84 54 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 237 104 37 237 104 37 237 104 37 237 104 37 237 104 37 237 104 37 237 104 37 237 104 37 237 104 37 237 104 37 0 0 0 0 0 0 239 109 33 239 109 33 239 109 33 239 109 33 239 109 33 239 109 33 239 109 33 0 0 0 0 0 0 240 111 31 0 0 0 0 0 0 248 135 13 248 135 13 248 135 13 248 135 13 248 135 13 248 135 13 248 135 13 248 135 13 248 135 13 248 135 13 248 135 13 248 135 13 248 135 13 248 135 13 248 135 13 248 135 13 0 0 0 0 0 0 249 142 8 249 142 8 249 142 8 249 142 8 249 142 8 249 142 8 249 142 8 0 0 0 0 0 0 249 142 8 249 142 8 249 142 8 249 142 8 0 0 0 0 0 0 250 145 7 250 145 7 250 145 7 250 145 7 0 0 0 0 0 0 251 162 8 251 162 8 251 162 8 251 162 8 0 0 0 0 0 0 251 168 13 251 168 13 251 168 13 251 168 13 251 168 13 251 168 13 251 168 13 251 168 13 251 168 13 251 168 13 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 172 16 251 172 16 251 172 16 251 172 16 251 172 16 251 172 16 251 172 16 251 172 16 251 172 16 251 172 16 0 0 0 0 0 0 251 177 22 251 177 22 251 177 22 251 177 22 0 0 0 0 0 0 251 183 28 251 183 28 251 183 28 251 183 28 0 0 0 0 0 0 251 183 28 251 183 28 251 183 28 251 183 28 251 183 28 251 183 28 251 183 28 251 183 28 251 183 28 251 183 28 0 0 0 0 0 0 241 235 108 0 0 0 0 0 0 241 238 116 241 238 116 241 238 116 241 238 116 241 238 116 241 238 116 241 238 116 0 0 0 0 0 0 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 0 0 0 0 0 0 252 254 164 252 254 164 252 254 164 252 254 164 0 0 0 0 0 0 252 254 164 0 0 0 0 0 0 252 254 164 0 0 0 0 0 0 252 254 164 0 0 0 0 0 0 249 252 157 249 252 157 249 252 157 249 252 157 0 0 0 0 0 0 252 254 164 252 254 164 252 254 164 252 254 164 0 0 0 0 0 0 249 252 157 249 252 157 249 252 157 249 252 157 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 252 157 249 252 157 249 252 157 249 252 157 249 252 157 249 252 157 249 252 157 249 252 157 249 252 157 249 252 157 249 252 157 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 0 0 0 0 0 0 247 251 153 0 0 0 0 0 0 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 0 0 0 0 0 0 246 250 149 246 250 149 246 250 149 246 250 149 246 250 149 246 250 149 246 250 149 246 250 149 246 250 149 246 250 149 246 250 149 246 250 149 246 250 149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 180 51 88 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 180 51 88 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 180 51 88 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 177 49 90 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 171 46 93 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 240 111 31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 250 145 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 162 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 168 13 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 241 235 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 252 254 164 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 252 254 164 0 0 0 0 0 0 252 254 164 0 0 0 0 0 0 252 254 164 0 0 0 0 0 0 252 254 164 0 0 0 0 0 0 252 254 164 0 0 0 0 0 0 252 254 164 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 251 153 0 0 0 0 0 0 247 251 153 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 250 149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 180 51 88 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 180 51 88 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 180 51 88 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 177 49 90 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 171 46 93 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 240 111 31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 250 145 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 162 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 168 13 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 241 235 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 252 254 164 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 252 254 164 0 0 0 0 0 0 252 254 164 0 0 0 0 0 0 252 254 164 0 0 0 0 0 0 252 254 164 0 0 0 0 0 0 252 254 164 0 0 0 0 0 0 252 254 164 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 251 153 0 0 0 0 0 0 247 251 153 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 250 149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 180 51 88 180 51 88 180 51 88 180 51 88 0 0 0 0 0 0 180 51 88 180 51 88 180 51 88 180 51 88 180 51 88 180 51 88 180 51 88 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 177 49 90 177 49 90 177 49 90 177 49 90 177 49 90 177 49 90 177 49 90 0 0 0 0 0 0 174 48 91 174 48 91 174 48 91 174 48 91 174 48 91 174 48 91 174 48 91 0 0 0 0 0 0 174 48 91 174 48 91 174 48 91 174 48 91 0 0 0 0 0 0 174 48 91 174 48 91 174 48 91 174 48 91 0 0 0 0 0 0 172 47 92 172 47 92 172 47 92 172 47 92 172 47 92 172 47 92 172 47 92 172 47 92 172 47 92 172 47 92 0 0 0 0 0 0 172 47 92 172 47 92 172 47 92 172 47 92 0 0 0 0 0 0 172 47 92 172 47 92 172 47 92 172 47 92 0 0 0 0 0 0 171 46 93 171 46 93 171 46 93 171 46 93 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 171 46 93 171 46 93 171 46 93 171 46 93 171 46 93 171 46 93 171 46 93 171 46 93 171 46 93 171 46 93 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 209 70 67 209 70 67 209 70 67 209 70 67 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 209 70 67 209 70 67 209 70 67 209 70 67 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 221 82 56 221 82 56 221 82 56 221 82 56 0 0 0 0 0 0 223 84 54 223 84 54 223 84 54 223 84 54 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 224 86 52 224 86 52 224 86 52 224 86 52 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 237 104 37 237 104 37 237 104 37 237 104 37 237 104 37 237 104 37 237 104 37 0 0 0 0 0 0 240 111 31 240 111 31 240 111 31 240 111 31 240 111 31 240 111 31 240 111 31 240 111 31 240 111 31 240 111 31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 133 14 247 133 14 247 133 14 247 133 14 247 133 14 247 133 14 247 133 14 247 133 14 247 133 14 247 133 14 0 0 0 0 0 0 248 135 13 248 135 13 248 135 13 248 135 13 248 135 13 248 135 13 248 135 13 0 0 0 0 0 0 249 142 8 249 142 8 249 142 8 249 142 8 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 250 145 7 250 145 7 250 145 7 250 145 7 0 0 0 0 0 0 251 162 8 251 162 8 251 162 8 251 162 8 0 0 0 0 0 0 251 168 13 0 0 0 0 0 0 251 168 13 251 168 13 251 168 13 251 168 13 0 0 0 0 0 0 251 168 13 251 168 13 251 168 13 251 168 13 0 0 0 0 0 0 251 168 13 251 168 13 251 168 13 251 168 13 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 251 177 22 251 177 22 251 177 22 251 177 22 0 0 0 0 0 0 251 183 28 251 183 28 251 183 28 251 183 28 0 0 0 0 0 0 251 183 28 251 183 28 251 183 28 251 183 28 251 183 28 251 183 28 251 183 28 251 183 28 251 183 28 251 183 28 0 0 0 0 0 0 241 235 108 241 235 108 241 235 108 241 235 108 0 0 0 0 0 0 241 238 116 241 238 116 241 238 116 241 238 116 0 0 0 0 0 0 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 252 254 164 0 0 0 0 0 0 252 254 164 0 0 0 0 0 0 252 254 164 0 0 0 0 0 0 252 254 164 252 254 164 252 254 164 252 254 164 0 0 0 0 0 0 252 254 164 252 254 164 252 254 164 252 254 164 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 252 157 249 252 157 249 252 157 249 252 157 0 0 0 0 0 0 249 252 157 249 252 157 249 252 157 249 252 157 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 0 0 0 0 0 0 247 251 153 0 0 0 0 0 0 246 250 149 246 250 149 246 250 149 246 250 149 246 250 149 246 250 149 246 250 149 246 250 149 246 250 149 246 250 149 246 250 149 246 250 149 246 250 149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 180 51 88 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 177 49 90 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 171 46 93 0 0 0 0 0 0 171 46 93 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 171 46 93 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 240 111 31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 133 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 133 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 145 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 162 8 0 0 0 0 0 0 251 168 13 0 0 0 0 0 0 251 168 13 0 0 0 0 0 0 251 168 13 0 0 0 0 0 0 251 168 13 0 0 0 0 0 0 251 168 13 0 0 0 0 0 0 251 168 13 0 0 0 0 0 0 251 168 13 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 235 108 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 252 254 164 0 0 0 0 0 0 252 254 164 0 0 0 0 0 0 252 254 164 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 247 251 153 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 251 153 0 0 0 0 0 0 246 250 149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 180 51 88 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 177 49 90 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 171 46 93 0 0 0 0 0 0 171 46 93 0 0 0 0 0 0 171 46 93 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 171 46 93 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 240 111 31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 133 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 133 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 145 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 162 8 0 0 0 0 0 0 251 168 13 0 0 0 0 0 0 251 168 13 0 0 0 0 0 0 251 168 13 0 0 0 0 0 0 251 168 13 0 0 0 0 0 0 251 168 13 0 0 0 0 0 0 251 168 13 0 0 0 0 0 0 251 168 13 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 235 108 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 252 254 164 0 0 0 0 0 0 252 254 164 0 0 0 0 0 0 252 254 164 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 247 251 153 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 251 153 0 0 0 0 0 0 246 250 149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 180 51 88 180 51 88 180 51 88 180 51 88 180 51 88 180 51 88 180 51 88 180 51 88 180 51 88 180 51 88 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 178 50 89 178 50 89 178 50 89 178 50 89 0 0 0 0 0 0 177 49 90 177 49 90 177 49 90 177 49 90 177 49 90 177 49 90 177 49 90 0 0 0 0 0 0 177 49 90 177 49 90 177 49 90 177 49 90 0 0 0 0 0 0 177 49 90 177 49 90 177 49 90 177 49 90 0 0 0 0 0 0 174 48 91 174 48 91 174 48 91 174 48 91 174 48 91 174 48 91 174 48 91 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 172 47 92 172 47 92 172 47 92 172 47 92 0 0 0 0 0 0 172 47 92 172 47 92 172 47 92 172 47 92 0 0 0 0 0 0 171 46 93 171 46 93 171 46 93 171 46 93 0 0 0 0 0 0 171 46 93 171 46 93 171 46 93 171 46 93 0 0 0 0 0 0 171 46 93 171 46 93 171 46 93 171 46 93 171 46 93 171 46 93 171 46 93 0 0 0 0 0 0 208 69 68 208 69 68 208 69 68 208 69 68 208 69 68 208 69 68 208 69 68 0 0 0 0 0 0 209 70 67 209 70 67 209 70 67 209 70 67 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 209 70 67 209 70 67 209 70 67 209 70 67 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 223 84 54 223 84 54 223 84 54 223 84 54 0 0 0 0 0 0 224 86 52 224 86 52 224 86 52 224 86 52 0 0 0 0 0 0 227 88 50 227 88 50 227 88 50 227 88 50 0 0 0 0 0 0 227 88 50 227 88 50 227 88 50 227 88 50 0 0 0 0 0 0 237 104 37 237 104 37 237 104 37 237 104 37 237 104 37 237 104 37 237 104 37 0 0 0 0 0 0 240 111 31 240 111 31 240 111 31 240 111 31 240 111 31 240 111 31 240 111 31 240 111 31 240 111 31 240 111 31 240 111 31 240 111 31 240 111 31 0 0 0 0 0 0 247 133 14 247 133 14 247 133 14 247 133 14 247 133 14 247 133 14 247 133 14 0 0 0 0 0 0 247 133 14 0 0 0 0 0 0 248 135 13 248 135 13 248 135 13 248 135 13 0 0 0 0 0 0 248 135 13 248 135 13 248 135 13 248 135 13 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 250 145 7 250 145 7 250 145 7 250 145 7 0 0 0 0 0 0 251 160 7 251 160 7 251 162 8 251 162 8 0 0 0 0 0 0 251 168 13 251 168 13 251 168 13 251 168 13 0 0 0 0 0 0 251 168 13 0 0 0 0 0 0 251 168 13 0 0 0 0 0 0 251 168 13 0 0 0 0 0 0 251 168 13 0 0 0 0 0 0 251 168 13 0 0 0 0 0 0 251 172 16 251 172 16 251 172 16 251 172 16 0 0 0 0 0 0 251 177 22 251 177 22 251 177 22 251 177 22 0 0 0 0 0 0 251 183 28 251 183 28 251 183 28 251 183 28 0 0 0 0 0 0 251 183 28 251 183 28 251 183 28 251 183 28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 195 42 249 195 42 249 195 42 249 195 42 0 0 0 0 0 0 241 235 108 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 241 238 116 241 238 116 241 238 116 241 238 116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 253 160 250 253 160 250 253 160 250 253 160 0 0 0 0 0 0 250 253 160 250 253 160 252 254 164 252 254 164 0 0 0 0 0 0 252 254 164 252 254 164 252 254 164 252 254 164 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 253 160 250 253 160 250 253 160 250 253 160 250 253 160 250 253 160 250 253 160 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 249 252 157 249 252 157 249 252 157 249 252 157 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 249 252 157 249 252 157 249 252 157 249 252 157 0 0 0 0 0 0 247 251 153 247 251 153 247 251 153 247 251 153 0 0 0 0 0 0 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 0 0 0 0 0 0 246 250 149 246 250 149 246 250 149 246 250 149 246 250 149 246 250 149 246 250 149 246 250 149 246 250 149 246 250 149 246 250 149 246 250 149 246 250 149 246 250 149 246 250 149 246 250 149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 180 51 88 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 177 49 90 0 0 0 0 0 0 177 49 90 0 0 0 0 0 0 177 49 90 0 0 0 0 0 0 177 49 90 0 0 0 0 0 0 177 49 90 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 174 48 91 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 171 46 93 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 171 46 93 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 240 111 31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 133 14 0 0 0 0 0 0 247 133 14 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 250 145 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 168 13 0 0 0 0 0 0 251 168 13 0 0 0 0 0 0 251 168 13 0 0 0 0 0 0 251 168 13 0 0 0 0 0 0 251 168 13 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 241 235 108 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 253 160 0 0 0 0 0 0 250 253 160 0 0 0 0 0 0 250 253 160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 253 160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 253 160 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 251 153 0 0 0 0 0 0 247 251 153 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 250 149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 180 51 88 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 177 49 90 0 0 0 0 0 0 177 49 90 0 0 0 0 0 0 177 49 90 0 0 0 0 0 0 177 49 90 0 0 0 0 0 0 177 49 90 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 171 46 93 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 171 46 93 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 240 111 31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 133 14 0 0 0 0 0 0 247 133 14 0 0 0 0 0 0 247 133 14 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 250 145 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 168 13 0 0 0 0 0 0 251 168 13 0 0 0 0 0 0 251 168 13 0 0 0 0 0 0 251 168 13 0 0 0 0 0 0 251 168 13 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 181 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 241 235 108 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 253 160 0 0 0 0 0 0 250 253 160 0 0 0 0 0 0 250 253 160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 253 160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 253 160 0 0 0 0 0 0 250 253 160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 251 153 0 0 0 0 0 0 247 251 153 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 250 149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 180 51 88 180 51 88 180 51 88 180 51 88 0 0 0 0 0 0 180 51 88 180 51 88 180 51 88 180 51 88 180 51 88 180 51 88 180 51 88 180 51 88 180 51 88 180 51 88 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 177 49 90 177 49 90 177 49 90 177 49 90 177 49 90 177 49 90 177 49 90 0 0 0 0 0 0 177 49 90 0 0 0 0 0 0 177 49 90 177 49 90 177 49 90 177 49 90 0 0 0 0 0 0 177 49 90 177 49 90 177 49 90 177 49 90 177 49 90 177 49 90 177 49 90 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 172 47 92 172 47 92 172 47 92 172 47 92 172 47 92 172 47 92 172 47 92 0 0 0 0 0 0 190 56 82 190 56 82 190 56 82 190 56 82 190 56 82 190 56 82 190 56 82 0 0 0 0 0 0 190 56 82 190 56 82 190 56 82 190 56 82 0 0 0 0 0 0 171 46 93 171 46 93 171 46 93 171 46 93 171 46 93 171 46 93 171 46 93 171 46 93 171 46 93 171 46 93 0 0 0 0 0 0 208 69 68 208 69 68 208 69 68 208 69 68 208 69 68 208 69 68 208 69 68 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 209 70 67 209 70 67 209 70 67 209 70 67 0 0 0 0 0 0 209 70 67 209 70 67 209 70 67 209 70 67 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 223 84 54 223 84 54 223 84 54 223 84 54 0 0 0 0 0 0 223 84 54 223 84 54 223 84 54 223 84 54 0 0 0 0 0 0 224 86 52 224 86 52 224 86 52 224 86 52 0 0 0 0 0 0 227 88 50 227 88 50 227 88 50 227 88 50 227 88 50 227 88 50 227 88 50 227 88 50 227 88 50 227 88 50 0 0 0 0 0 0 236 103 38 236 103 38 236 103 38 236 103 38 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 240 111 31 240 111 31 240 111 31 240 111 31 240 111 31 240 111 31 240 111 31 240 111 31 240 111 31 240 111 31 240 111 31 240 111 31 240 111 31 0 0 0 0 0 0 247 133 14 247 133 14 247 133 14 247 133 14 247 133 14 247 133 14 247 133 14 0 0 0 0 0 0 247 133 14 247 133 14 247 133 14 247 133 14 0 0 0 0 0 0 248 135 13 248 135 13 248 135 13 248 135 13 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 250 145 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 160 7 251 160 7 251 160 7 251 160 7 0 0 0 0 0 0 251 160 7 251 160 7 251 160 7 251 160 7 0 0 0 0 0 0 251 168 13 251 168 13 251 168 13 251 168 13 0 0 0 0 0 0 251 168 13 251 168 13 251 168 13 251 168 13 0 0 0 0 0 0 251 168 13 0 0 0 0 0 0 251 172 16 251 172 16 251 172 16 251 172 16 0 0 0 0 0 0 251 177 22 251 177 22 251 177 22 251 177 22 0 0 0 0 0 0 251 181 26 251 181 26 251 181 26 251 181 26 251 181 26 251 181 26 251 181 26 0 0 0 0 0 0 251 183 28 251 183 28 251 183 28 251 183 28 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 241 235 108 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 250 253 160 250 253 160 250 253 160 250 253 160 0 0 0 0 0 0 250 253 160 250 253 160 250 253 160 250 253 160 0 0 0 0 0 0 250 253 160 250 253 160 250 253 160 250 253 160 0 0 0 0 0 0 250 253 160 250 253 160 250 253 160 250 253 160 0 0 0 0 0 0 250 253 160 0 0 0 0 0 0 250 253 160 250 253 160 250 253 160 250 253 160 0 0 0 0 0 0 250 253 160 0 0 0 0 0 0 249 252 157 249 252 157 249 252 157 249 252 157 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 0 0 0 0 0 0 247 251 153 0 0 0 0 0 0 245 248 145 245 248 145 245 248 145 245 248 145 245 248 145 245 248 145 245 248 145 245 248 145 245 248 145 245 248 145 0 0 0 0 0 0 246 250 149 246 250 149 246 250 149 246 250 149 246 250 149 246 250 149 246 250 149 246 250 149 246 250 149 246 250 149 246 250 149 246 250 149 246 250 149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 180 51 88 0 0 0 0 0 0 180 51 88 0 0 0 0 0 0 180 51 88 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 177 49 90 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 177 49 90 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 177 49 90 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 240 111 31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 133 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 250 145 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 168 13 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 181 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 241 235 108 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 250 253 160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 253 160 0 0 0 0 0 0 250 253 160 0 0 0 0 0 0 250 253 160 0 0 0 0 0 0 250 253 160 0 0 0 0 0 0 250 253 160 0 0 0 0 0 0 250 253 160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 253 160 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 247 251 153 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 251 153 0 0 0 0 0 0 245 248 145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 248 145 0 0 0 0 0 0 246 250 149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 180 51 88 0 0 0 0 0 0 180 51 88 0 0 0 0 0 0 180 51 88 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 177 49 90 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 177 49 90 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 177 49 90 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 191 57 81 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 240 111 31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 133 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 249 142 8 0 0 0 0 0 0 250 145 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 168 13 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 181 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 241 235 108 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 250 253 160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 253 160 0 0 0 0 0 0 250 253 160 0 0 0 0 0 0 250 253 160 0 0 0 0 0 0 250 253 160 0 0 0 0 0 0 250 253 160 0 0 0 0 0 0 250 253 160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 253 160 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 247 251 153 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 251 153 0 0 0 0 0 0 245 248 145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 248 145 0 0 0 0 0 0 246 250 149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 180 51 88 180 51 88 180 51 88 180 51 88 180 51 88 180 51 88 180 51 88 0 0 0 0 0 0 180 51 88 180 51 88 180 51 88 180 51 88 0 0 0 0 0 0 181 51 87 181 51 87 181 51 87 181 51 87 181 51 87 181 51 87 181 51 87 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 177 49 90 177 49 90 177 49 90 177 49 90 177 49 90 177 49 90 177 49 90 0 0 0 0 0 0 177 49 90 0 0 0 0 0 0 178 50 89 178 50 89 177 49 90 177 49 90 0 0 0 0 0 0 177 49 90 177 49 90 177 49 90 177 49 90 177 49 90 177 49 90 177 49 90 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 172 47 92 172 47 92 172 47 92 172 47 92 172 47 92 172 47 92 172 47 92 0 0 0 0 0 0 190 56 82 190 56 82 190 56 82 190 56 82 0 0 0 0 0 0 190 56 82 190 56 82 190 56 82 190 56 82 0 0 0 0 0 0 191 57 81 191 57 81 191 57 81 191 57 81 0 0 0 0 0 0 191 57 81 191 57 81 191 57 81 191 57 81 191 57 81 191 57 81 191 57 81 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 208 69 68 208 69 68 208 69 68 208 69 68 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 209 70 67 209 70 67 209 70 67 209 70 67 209 70 67 209 70 67 209 70 67 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 221 82 56 221 82 56 221 82 56 221 82 56 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 223 84 54 223 84 54 223 84 54 223 84 54 223 84 54 223 84 54 223 84 54 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 224 86 52 224 86 52 224 86 52 224 86 52 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 236 103 38 236 103 38 236 103 38 236 103 38 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 240 111 31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 128 18 246 128 18 246 128 18 246 128 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 133 14 247 133 14 247 133 14 247 133 14 247 133 14 247 133 14 247 133 14 247 133 14 247 133 14 247 133 14 247 133 14 247 133 14 247 133 14 247 133 14 247 133 14 247 133 14 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 249 142 8 249 142 8 249 142 8 249 142 8 0 0 0 0 0 0 250 145 7 250 145 7 250 145 7 250 145 7 0 0 0 0 0 0 251 160 7 251 160 7 251 160 7 251 160 7 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 251 160 7 251 160 7 251 160 7 251 160 7 0 0 0 0 0 0 251 170 14 251 170 14 251 168 13 251 168 13 251 168 13 251 168 13 251 168 13 251 168 13 251 168 13 251 168 13 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 172 16 251 172 16 251 172 16 251 172 16 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 251 181 26 251 181 26 251 181 26 251 181 26 0 0 0 0 0 0 251 181 26 0 0 0 0 0 0 251 183 28 251 183 28 251 183 28 251 183 28 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 241 235 108 0 0 0 0 0 0 241 238 116 241 238 116 241 238 116 241 238 116 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 250 253 160 250 253 160 250 253 160 250 253 160 250 253 160 250 253 160 250 253 160 250 253 160 250 253 160 250 253 160 250 253 160 250 253 160 250 253 160 0 0 0 0 0 0 250 253 160 250 253 160 250 253 160 250 253 160 0 0 0 0 0 0 250 253 160 250 253 160 250 253 160 250 253 160 0 0 0 0 0 0 250 253 160 250 253 160 250 253 160 250 253 160 0 0 0 0 0 0 250 253 160 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 249 252 157 249 252 157 249 252 157 249 252 157 0 0 0 0 0 0 249 252 157 249 252 157 249 252 157 249 252 157 0 0 0 0 0 0 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 247 251 153 0 0 0 0 0 0 245 248 145 245 248 145 245 248 145 245 248 145 245 248 145 245 248 145 245 248 145 0 0 0 0 0 0 245 248 145 0 0 0 0 0 0 246 250 149 246 250 149 245 248 145 245 248 145 245 248 145 245 248 145 245 248 145 245 248 145 245 248 145 245 248 145 245 248 145 245 248 145 245 248 145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 180 51 88 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 181 51 87 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 181 51 87 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 177 49 90 0 0 0 0 0 0 177 49 90 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 177 49 90 0 0 0 0 0 0 177 49 90 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 191 57 81 0 0 0 0 0 0 191 57 81 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 191 57 81 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 240 111 31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 128 18 0 0 0 0 0 0 246 128 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 133 14 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 145 7 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 251 181 26 0 0 0 0 0 0 251 181 26 0 0 0 0 0 0 251 181 26 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 241 235 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 253 160 0 0 0 0 0 0 250 253 160 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 248 145 0 0 0 0 0 0 245 248 145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 248 145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 180 51 88 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 181 51 87 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 181 51 87 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 177 49 90 0 0 0 0 0 0 177 49 90 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 177 49 90 0 0 0 0 0 0 177 49 90 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 172 47 92 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 191 57 81 0 0 0 0 0 0 191 57 81 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 191 57 81 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 240 111 31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 128 18 0 0 0 0 0 0 246 128 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 133 14 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 145 7 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 251 181 26 0 0 0 0 0 0 251 181 26 0 0 0 0 0 0 251 181 26 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 241 235 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 253 160 0 0 0 0 0 0 250 253 160 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 249 252 157 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 248 145 0 0 0 0 0 0 245 248 145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 248 145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 180 51 88 180 51 88 180 51 88 180 51 88 180 51 88 180 51 88 180 51 88 0 0 0 0 0 0 181 51 87 181 51 87 181 51 87 181 51 87 0 0 0 0 0 0 181 51 87 0 0 0 0 0 0 181 51 87 181 51 87 181 51 87 181 51 87 0 0 0 0 0 0 178 50 89 178 50 89 178 50 89 178 50 89 0 0 0 0 0 0 178 50 89 178 50 89 178 50 89 178 50 89 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 177 49 90 177 49 90 177 49 90 177 49 90 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 177 49 90 177 49 90 177 49 90 177 49 90 0 0 0 0 0 0 190 56 82 190 56 82 190 56 82 190 56 82 0 0 0 0 0 0 172 47 92 172 47 92 172 47 92 172 47 92 172 47 92 172 47 92 172 47 92 172 47 92 172 47 92 172 47 92 0 0 0 0 0 0 190 56 82 190 56 82 190 56 82 190 56 82 0 0 0 0 0 0 191 57 81 191 57 81 191 57 81 191 57 81 191 57 81 191 57 81 191 57 81 191 57 81 191 57 81 191 57 81 0 0 0 0 0 0 191 57 81 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 191 57 81 191 57 81 191 57 81 191 57 81 0 0 0 0 0 0 208 69 68 208 69 68 208 69 68 208 69 68 0 0 0 0 0 0 209 70 67 209 70 67 209 70 67 209 70 67 0 0 0 0 0 0 209 70 67 209 70 67 209 70 67 209 70 67 0 0 0 0 0 0 220 80 57 220 80 57 220 80 57 220 80 57 0 0 0 0 0 0 221 82 56 221 82 56 221 82 56 221 82 56 221 82 56 221 82 56 221 82 56 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 223 84 54 223 84 54 223 84 54 223 84 54 0 0 0 0 0 0 224 86 52 224 86 52 224 86 52 224 86 52 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 236 103 38 236 103 38 236 103 38 236 103 38 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 240 111 31 240 111 31 240 111 31 240 111 31 0 0 0 0 0 0 246 128 18 0 0 0 0 0 0 246 128 18 246 128 18 246 129 17 246 129 17 246 129 17 246 129 17 246 129 17 0 0 0 0 0 0 246 129 17 246 129 17 246 129 17 246 129 17 246 129 17 246 129 17 246 129 17 246 129 17 246 129 17 246 129 17 0 0 0 0 0 0 247 133 14 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 250 145 7 250 145 7 250 145 7 250 145 7 250 145 7 250 145 7 250 145 7 250 145 7 250 145 7 250 145 7 0 0 0 0 0 0 251 160 7 251 160 7 251 160 7 251 160 7 251 160 7 251 160 7 251 160 7 0 0 0 0 0 0 251 160 7 251 160 7 251 160 7 251 160 7 0 0 0 0 0 0 251 170 14 251 170 14 251 170 14 251 170 14 0 0 0 0 0 0 251 170 14 251 170 14 251 170 14 251 170 14 0 0 0 0 0 0 251 172 16 251 172 16 251 172 16 251 172 16 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 251 181 26 0 0 0 0 0 0 251 181 26 0 0 0 0 0 0 251 181 26 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 249 195 42 249 195 42 249 195 42 249 195 42 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 241 235 108 241 235 108 241 235 108 241 235 108 241 235 108 241 235 108 241 235 108 0 0 0 0 0 0 241 238 116 241 238 116 241 238 116 241 238 116 0 0 0 0 0 0 241 238 116 241 238 116 241 238 116 241 238 116 0 0 0 0 0 0 241 240 121 241 240 121 241 240 121 241 240 121 241 240 121 241 240 121 241 240 121 241 240 121 241 240 121 241 240 121 0 0 0 0 0 0 241 240 121 241 240 121 241 240 121 241 240 121 241 240 121 241 240 121 241 240 121 0 0 0 0 0 0 250 253 160 250 253 160 250 253 160 250 253 160 0 0 0 0 0 0 249 252 157 249 252 157 249 252 157 249 252 157 0 0 0 0 0 0 242 244 133 242 244 133 242 244 133 242 244 133 0 0 0 0 0 0 242 244 133 242 244 133 242 244 133 242 244 133 242 244 133 242 244 133 242 244 133 0 0 0 0 0 0 244 247 141 244 247 141 244 247 141 244 247 141 244 247 141 245 248 145 245 248 145 245 248 145 245 248 145 245 248 145 245 248 145 245 248 145 245 248 145 245 248 145 245 248 145 245 248 145 0 0 0 0 0 0 245 248 145 0 0 0 0 0 0 245 248 145 245 248 145 245 248 145 245 248 145 245 248 145 245 248 145 245 248 145 245 248 145 245 248 145 245 248 145 245 248 145 245 248 145 245 248 145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 180 51 88 0 0 0 0 0 0 181 51 87 0 0 0 0 0 0 181 51 87 0 0 0 0 0 0 181 51 87 0 0 0 0 0 0 181 51 87 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 191 57 81 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 191 57 81 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 191 57 81 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 221 82 56 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 240 111 31 0 0 0 0 0 0 246 128 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 129 17 0 0 0 0 0 0 246 129 17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 129 17 0 0 0 0 0 0 247 133 14 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 250 145 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 251 181 26 0 0 0 0 0 0 251 181 26 0 0 0 0 0 0 251 181 26 0 0 0 0 0 0 251 183 28 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 235 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 241 240 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 240 121 0 0 0 0 0 0 241 240 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 240 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 244 133 0 0 0 0 0 0 242 244 133 0 0 0 0 0 0 242 244 133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 244 133 0 0 0 0 0 0 244 247 141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 248 145 0 0 0 0 0 0 245 248 145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 180 51 88 0 0 0 0 0 0 180 51 88 0 0 0 0 0 0 181 51 87 0 0 0 0 0 0 181 51 87 0 0 0 0 0 0 181 51 87 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 191 57 81 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 191 57 81 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 191 57 81 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 240 111 31 0 0 0 0 0 0 246 128 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 129 17 0 0 0 0 0 0 246 129 17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 129 17 0 0 0 0 0 0 247 133 14 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 250 145 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 251 181 26 0 0 0 0 0 0 251 181 26 0 0 0 0 0 0 251 181 26 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 235 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 241 240 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 240 121 0 0 0 0 0 0 241 240 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 240 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 244 133 0 0 0 0 0 0 242 244 133 0 0 0 0 0 0 242 244 133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 244 133 0 0 0 0 0 0 244 247 141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 248 145 0 0 0 0 0 0 245 248 145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 180 51 88 180 51 88 180 51 88 180 51 88 0 0 0 0 0 0 181 51 87 181 51 87 181 51 87 181 51 87 0 0 0 0 0 0 181 51 87 181 51 87 181 51 87 181 51 87 181 51 87 181 51 87 181 51 87 0 0 0 0 0 0 178 50 89 178 50 89 178 50 89 178 50 89 178 50 89 178 50 89 178 50 89 0 0 0 0 0 0 178 50 89 178 50 89 178 50 89 178 50 89 178 50 89 178 50 89 178 50 89 178 50 89 178 50 89 178 50 89 0 0 0 0 0 0 187 55 84 187 55 84 187 55 84 187 55 84 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 190 56 82 190 56 82 190 56 82 190 56 82 190 56 82 190 56 82 190 56 82 190 56 82 190 56 82 190 56 82 190 56 82 190 56 82 190 56 82 190 56 82 190 56 82 190 56 82 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 191 57 81 0 0 0 0 0 0 191 57 81 191 57 81 191 57 81 191 57 81 0 0 0 0 0 0 191 57 81 191 57 81 191 57 81 191 57 81 0 0 0 0 0 0 191 57 81 191 57 81 191 57 81 191 57 81 191 57 81 191 57 81 191 57 81 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 208 69 68 208 69 68 208 69 68 208 69 68 208 69 68 208 69 68 208 69 68 0 0 0 0 0 0 209 70 67 209 70 67 209 70 67 209 70 67 0 0 0 0 0 0 220 80 57 220 80 57 220 80 57 220 80 57 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 222 83 55 222 83 55 222 83 55 222 83 55 0 0 0 0 0 0 223 84 54 223 84 54 223 84 54 223 84 54 0 0 0 0 0 0 224 86 52 224 86 52 224 86 52 224 86 52 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 236 103 38 236 103 38 236 103 38 236 103 38 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 240 111 31 240 111 31 240 111 31 240 111 31 0 0 0 0 0 0 246 128 18 246 128 18 246 128 18 246 128 18 0 0 0 0 0 0 246 129 17 246 129 17 246 129 17 246 129 17 0 0 0 0 0 0 246 129 17 246 129 17 246 129 17 246 129 17 0 0 0 0 0 0 246 129 17 246 129 17 246 129 17 246 129 17 0 0 0 0 0 0 247 133 14 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 250 145 7 0 0 0 0 0 0 251 157 6 251 157 6 251 157 6 251 157 6 0 0 0 0 0 0 251 157 6 251 157 6 251 157 6 251 157 6 0 0 0 0 0 0 251 158 7 251 158 7 251 158 7 251 158 7 0 0 0 0 0 0 251 160 7 251 160 7 251 160 7 251 160 7 0 0 0 0 0 0 251 170 14 251 170 14 251 170 14 251 170 14 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 251 181 26 0 0 0 0 0 0 251 181 26 0 0 0 0 0 0 251 181 26 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 249 195 42 249 195 42 249 195 42 249 195 42 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 249 197 44 249 197 44 249 197 44 249 197 44 0 0 0 0 0 0 241 235 108 0 0 0 0 0 0 241 238 116 241 238 116 241 238 116 241 238 116 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 241 240 121 241 240 121 241 240 121 241 240 121 241 240 121 241 240 121 241 240 121 0 0 0 0 0 0 241 240 121 0 0 0 0 0 0 241 240 121 241 240 121 241 240 121 241 240 121 0 0 0 0 0 0 241 240 121 0 0 0 0 0 0 241 240 121 241 240 121 241 240 121 241 240 121 0 0 0 0 0 0 242 244 133 242 244 133 242 244 133 242 244 133 242 244 133 242 244 133 242 244 133 0 0 0 0 0 0 242 244 133 242 244 133 242 244 133 242 244 133 0 0 0 0 0 0 242 244 133 242 244 133 242 244 133 242 244 133 0 0 0 0 0 0 244 247 141 244 247 141 244 247 141 244 247 141 244 247 141 244 247 141 244 247 141 244 247 141 244 247 141 244 247 141 244 247 141 244 247 141 244 247 141 244 247 141 244 247 141 244 247 141 0 0 0 0 0 0 245 248 145 0 0 0 0 0 0 245 248 145 245 248 145 245 248 145 245 248 145 245 248 145 245 248 145 245 248 145 245 248 145 245 248 145 245 248 145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 181 51 87 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 191 57 81 0 0 0 0 0 0 191 57 81 0 0 0 0 0 0 191 57 81 0 0 0 0 0 0 191 57 81 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 191 57 81 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 223 84 54 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 240 111 31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 128 18 0 0 0 0 0 0 246 129 17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 129 17 0 0 0 0 0 0 246 129 17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 133 14 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 250 145 7 0 0 0 0 0 0 251 157 6 0 0 0 0 0 0 251 157 6 0 0 0 0 0 0 251 157 6 0 0 0 0 0 0 251 157 6 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 251 181 26 0 0 0 0 0 0 251 181 26 0 0 0 0 0 0 251 181 26 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 241 235 108 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 240 121 0 0 0 0 0 0 241 240 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 240 121 0 0 0 0 0 0 241 240 121 0 0 0 0 0 0 241 240 121 0 0 0 0 0 0 241 240 121 0 0 0 0 0 0 242 244 133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 244 133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 247 141 0 0 0 0 0 0 245 248 145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 248 145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 181 51 87 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 178 50 89 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 191 57 81 0 0 0 0 0 0 191 57 81 0 0 0 0 0 0 191 57 81 0 0 0 0 0 0 191 57 81 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 191 57 81 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 209 70 67 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 240 111 31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 128 18 0 0 0 0 0 0 246 129 17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 129 17 0 0 0 0 0 0 246 129 17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 133 14 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 250 145 7 0 0 0 0 0 0 251 157 6 0 0 0 0 0 0 251 157 6 0 0 0 0 0 0 251 157 6 0 0 0 0 0 0 251 157 6 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 251 181 26 0 0 0 0 0 0 251 181 26 0 0 0 0 0 0 251 181 26 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 241 235 108 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 240 121 0 0 0 0 0 0 241 240 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 240 121 0 0 0 0 0 0 241 240 121 0 0 0 0 0 0 241 240 121 0 0 0 0 0 0 241 240 121 0 0 0 0 0 0 242 244 133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 244 133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 247 141 0 0 0 0 0 0 245 248 145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 248 145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 181 51 87 181 51 87 181 51 87 181 51 87 0 0 0 0 0 0 181 51 87 181 51 87 181 51 87 181 51 87 0 0 0 0 0 0 181 51 87 181 51 87 181 51 87 181 51 87 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 181 51 87 181 51 87 181 51 87 181 51 87 181 51 87 181 51 87 181 51 87 0 0 0 0 0 0 178 50 89 178 50 89 178 50 89 178 50 89 178 50 89 178 50 89 178 50 89 178 50 89 178 50 89 178 50 89 0 0 0 0 0 0 187 55 84 187 55 84 187 55 84 187 55 84 0 0 0 0 0 0 187 55 84 187 55 84 187 55 84 187 55 84 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 193 58 80 193 58 80 193 58 80 193 58 80 193 58 80 193 58 80 193 58 80 193 58 80 193 58 80 193 58 80 193 58 80 193 58 80 193 58 80 193 58 80 193 58 80 193 58 80 193 58 80 193 58 80 193 58 80 0 0 0 0 0 0 191 57 81 191 57 81 191 57 81 191 57 81 0 0 0 0 0 0 191 57 81 191 57 81 191 57 81 191 57 81 0 0 0 0 0 0 191 57 81 191 57 81 191 57 81 191 57 81 0 0 0 0 0 0 207 68 70 207 68 70 207 68 70 207 68 70 0 0 0 0 0 0 208 69 68 208 69 68 208 69 68 208 69 68 0 0 0 0 0 0 208 69 68 208 69 68 208 69 68 208 69 68 0 0 0 0 0 0 209 70 67 209 70 67 210 71 66 210 71 66 0 0 0 0 0 0 220 80 57 220 80 57 220 80 57 220 80 57 0 0 0 0 0 0 222 83 55 222 83 55 222 83 55 222 83 55 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 222 83 55 222 83 55 222 83 55 222 83 55 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 224 86 52 224 86 52 224 86 52 224 86 52 0 0 0 0 0 0 227 88 50 227 88 50 227 88 50 227 88 50 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 240 111 31 240 111 31 240 111 31 240 111 31 0 0 0 0 0 0 246 128 18 246 128 18 246 128 18 246 128 18 0 0 0 0 0 0 246 129 17 246 129 17 246 129 17 246 129 17 0 0 0 0 0 0 246 129 17 246 129 17 246 129 17 246 129 17 0 0 0 0 0 0 246 129 17 0 0 0 0 0 0 247 133 14 247 133 14 247 133 14 247 133 14 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 250 145 7 0 0 0 0 0 0 251 157 6 0 0 0 0 0 0 251 157 6 0 0 0 0 0 0 251 157 6 0 0 0 0 0 0 251 157 6 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 251 158 7 251 158 7 251 158 7 251 158 7 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 251 170 14 251 170 14 251 170 14 251 170 14 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 251 172 16 251 172 16 251 172 16 251 172 16 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 251 181 26 0 0 0 0 0 0 251 181 26 0 0 0 0 0 0 251 181 26 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 249 195 42 249 195 42 249 195 42 249 195 42 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 241 235 108 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 241 238 116 241 238 116 241 238 116 241 238 116 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 241 240 121 241 240 121 241 240 121 241 240 121 0 0 0 0 0 0 241 240 121 0 0 0 0 0 0 241 240 121 241 240 121 241 240 121 241 240 121 0 0 0 0 0 0 241 240 121 0 0 0 0 0 0 241 240 121 241 240 121 241 240 121 241 240 121 0 0 0 0 0 0 241 240 121 0 0 0 0 0 0 242 244 133 242 244 133 242 244 133 242 244 133 242 244 133 242 244 133 242 244 133 242 244 133 242 244 133 242 244 133 242 244 133 242 244 133 242 244 133 0 0 0 0 0 0 242 244 133 242 244 133 242 244 133 242 244 133 0 0 0 0 0 0 243 246 137 243 246 137 243 246 137 243 246 137 0 0 0 0 0 0 244 247 141 244 247 141 244 247 141 244 247 141 244 247 141 244 247 141 244 247 141 244 247 141 244 247 141 244 247 141 0 0 0 0 0 0 245 248 145 245 248 145 245 248 145 245 248 145 245 248 145 245 248 145 245 248 145 245 248 145 245 248 145 245 248 145 245 248 145 245 248 145 245 248 145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 181 51 87 0 0 0 0 0 0 181 51 87 0 0 0 0 0 0 181 51 87 0 0 0 0 0 0 181 51 87 0 0 0 0 0 0 181 51 87 0 0 0 0 0 0 181 51 87 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 181 51 87 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 191 57 81 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 220 80 57 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 240 111 31 0 0 0 0 0 0 246 128 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 129 17 0 0 0 0 0 0 246 129 17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 129 17 0 0 0 0 0 0 247 133 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 250 145 7 0 0 0 0 0 0 251 157 6 0 0 0 0 0 0 251 157 6 0 0 0 0 0 0 251 157 6 0 0 0 0 0 0 251 157 6 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 177 22 0 0 0 0 0 0 251 181 26 0 0 0 0 0 0 251 181 26 0 0 0 0 0 0 251 181 26 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 241 235 108 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 241 240 121 0 0 0 0 0 0 241 240 121 0 0 0 0 0 0 241 240 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 240 121 0 0 0 0 0 0 241 240 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 240 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 244 133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 244 133 0 0 0 0 0 0 243 246 137 0 0 0 0 0 0 243 246 137 0 0 0 0 0 0 244 247 141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 181 51 87 0 0 0 0 0 0 181 51 87 0 0 0 0 0 0 181 51 87 0 0 0 0 0 0 181 51 87 0 0 0 0 0 0 181 51 87 0 0 0 0 0 0 181 51 87 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 181 51 87 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 191 57 81 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 224 86 52 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 240 111 31 0 0 0 0 0 0 246 128 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 129 17 0 0 0 0 0 0 246 129 17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 129 17 0 0 0 0 0 0 247 133 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 248 135 13 0 0 0 0 0 0 250 145 7 0 0 0 0 0 0 251 157 6 0 0 0 0 0 0 251 157 6 0 0 0 0 0 0 251 157 6 0 0 0 0 0 0 251 157 6 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 179 24 0 0 0 0 0 0 251 181 26 0 0 0 0 0 0 251 181 26 0 0 0 0 0 0 251 181 26 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 241 235 108 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 241 238 116 0 0 0 0 0 0 241 240 121 0 0 0 0 0 0 241 240 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 240 121 0 0 0 0 0 0 241 240 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 242 125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 244 133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 244 133 0 0 0 0 0 0 243 246 137 0 0 0 0 0 0 243 246 137 0 0 0 0 0 0 244 247 141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 181 51 87 0 0 0 0 0 0 181 51 87 181 51 87 181 51 87 181 51 87 0 0 0 0 0 0 181 51 87 181 51 87 181 51 87 181 51 87 0 0 0 0 0 0 181 51 87 181 51 87 181 51 87 181 51 87 181 51 87 181 51 87 181 51 87 0 0 0 0 0 0 186 54 85 186 54 85 186 54 85 186 54 85 0 0 0 0 0 0 187 55 84 187 55 84 187 55 84 187 55 84 187 55 84 187 55 84 187 55 84 0 0 0 0 0 0 187 55 84 187 55 84 187 55 84 187 55 84 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 193 58 80 193 58 80 193 58 80 193 58 80 193 58 80 193 58 80 193 58 80 193 58 80 193 58 80 193 58 80 193 58 80 193 58 80 193 58 80 193 58 80 193 58 80 193 58 80 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 191 57 81 191 57 81 191 57 81 191 57 81 191 57 81 191 57 81 191 57 81 191 57 81 191 57 81 191 57 81 0 0 0 0 0 0 207 68 70 207 68 70 207 68 70 207 68 70 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 208 69 68 208 69 68 208 69 68 208 69 68 0 0 0 0 0 0 210 71 66 210 71 66 210 71 66 210 71 66 210 71 66 210 71 66 210 71 66 0 0 0 0 0 0 219 79 58 219 79 58 219 79 58 219 79 58 219 79 58 219 79 58 219 79 58 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 222 83 55 222 83 55 222 83 55 222 83 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 224 86 52 224 86 52 224 86 52 224 86 52 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 227 88 50 227 88 50 227 88 50 227 88 50 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 240 112 30 240 112 30 240 111 31 240 111 31 0 0 0 0 0 0 246 128 18 0 0 0 0 0 0 246 128 18 246 128 18 246 128 18 246 128 18 0 0 0 0 0 0 246 129 17 0 0 0 0 0 0 246 129 17 0 0 0 0 0 0 246 129 17 246 129 17 246 129 17 246 129 17 0 0 0 0 0 0 247 133 14 247 133 14 247 133 14 247 133 14 0 0 0 0 0 0 248 135 13 248 135 13 248 135 13 248 135 13 0 0 0 0 0 0 250 145 7 0 0 0 0 0 0 251 157 6 0 0 0 0 0 0 251 157 6 251 157 6 251 157 6 251 157 6 0 0 0 0 0 0 251 157 6 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 251 158 7 251 158 7 251 158 7 251 158 7 0 0 0 0 0 0 251 160 7 251 160 7 251 160 7 251 160 7 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 179 24 251 179 24 251 179 24 251 179 24 0 0 0 0 0 0 251 181 26 0 0 0 0 0 0 251 181 26 251 181 26 251 181 26 251 181 26 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 249 197 44 249 197 44 249 197 44 249 197 44 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 241 235 108 0 0 0 0 0 0 241 238 116 241 238 116 241 238 116 241 238 116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 238 116 241 238 116 241 238 116 241 238 116 0 0 0 0 0 0 241 240 121 0 0 0 0 0 0 241 240 121 241 240 121 241 240 121 241 240 121 0 0 0 0 0 0 241 240 121 241 240 121 241 240 121 241 240 121 0 0 0 0 0 0 241 233 104 241 233 104 241 233 104 241 233 104 0 0 0 0 0 0 241 242 125 241 242 125 241 242 125 241 242 125 0 0 0 0 0 0 242 244 133 242 244 133 242 244 133 242 244 133 242 244 133 242 244 133 242 244 133 242 244 133 242 244 133 242 244 133 0 0 0 0 0 0 242 244 133 242 244 133 242 244 133 242 244 133 0 0 0 0 0 0 243 246 137 0 0 0 0 0 0 243 246 137 0 0 0 0 0 0 244 247 141 244 247 141 244 247 141 244 247 141 244 247 141 244 247 141 244 247 141 244 247 141 244 247 141 244 247 141 244 247 141 244 247 141 244 247 141 244 247 141 244 247 141 244 247 141 244 247 141 244 247 141 244 247 141 244 247 141 244 247 141 244 247 141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 181 51 87 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 191 57 81 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 240 112 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 128 18 0 0 0 0 0 0 246 128 18 0 0 0 0 0 0 246 128 18 0 0 0 0 0 0 246 129 17 0 0 0 0 0 0 246 129 17 0 0 0 0 0 0 246 129 17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 133 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 145 7 0 0 0 0 0 0 251 157 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 157 6 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 179 24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 181 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 241 235 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 240 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 240 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 233 104 0 0 0 0 0 0 241 233 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 242 125 0 0 0 0 0 0 242 244 133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 244 133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 246 137 0 0 0 0 0 0 243 246 137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 247 141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 181 51 87 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 191 57 81 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 191 57 81 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 240 112 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 128 18 0 0 0 0 0 0 246 128 18 0 0 0 0 0 0 246 128 18 0 0 0 0 0 0 246 129 17 0 0 0 0 0 0 246 129 17 0 0 0 0 0 0 246 129 17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 133 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 145 7 0 0 0 0 0 0 251 157 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 157 6 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 179 24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 181 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 241 235 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 240 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 240 121 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 233 104 0 0 0 0 0 0 241 233 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 242 125 0 0 0 0 0 0 242 244 133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 246 137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 246 137 0 0 0 0 0 0 243 246 137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 247 141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 181 51 87 181 51 87 181 51 87 181 51 87 181 51 87 181 51 87 181 51 87 181 51 87 183 52 86 183 52 86 0 0 0 0 0 0 183 52 86 183 52 86 183 52 86 183 52 86 0 0 0 0 0 0 183 52 86 183 52 86 183 52 86 183 52 86 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 186 54 85 186 54 85 186 54 85 186 54 85 0 0 0 0 0 0 187 55 84 187 55 84 187 55 84 187 55 84 0 0 0 0 0 0 187 55 84 187 55 84 187 55 84 187 55 84 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 187 55 84 187 55 84 187 55 84 187 55 84 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 193 58 80 193 58 80 193 58 80 193 58 80 193 58 80 193 58 80 193 58 80 193 58 80 193 58 80 193 58 80 0 0 0 0 0 0 193 58 80 193 58 80 193 58 80 193 58 80 0 0 0 0 0 0 191 57 81 191 57 81 191 57 81 191 57 81 191 57 81 191 57 81 191 57 81 0 0 0 0 0 0 207 68 70 207 68 70 207 68 70 207 68 70 0 0 0 0 0 0 207 68 70 207 68 70 207 68 70 207 68 70 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 208 69 68 208 69 68 208 69 68 208 69 68 208 69 68 208 69 68 208 69 68 0 0 0 0 0 0 210 71 66 210 71 66 210 71 66 210 71 66 0 0 0 0 0 0 218 78 59 218 78 59 218 78 59 218 78 59 0 0 0 0 0 0 219 79 58 219 79 58 219 79 58 219 79 58 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 222 83 55 222 83 55 222 83 55 222 83 55 222 83 55 222 83 55 222 83 55 222 83 55 222 83 55 222 83 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 227 88 50 227 88 50 227 88 50 227 88 50 0 0 0 0 0 0 227 88 50 227 88 50 227 88 50 227 88 50 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 236 103 38 236 103 38 236 103 38 236 103 38 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 240 112 30 240 112 30 240 112 30 240 112 30 0 0 0 0 0 0 246 128 18 246 128 18 246 128 18 246 128 18 0 0 0 0 0 0 246 128 18 0 0 0 0 0 0 246 129 17 246 129 17 246 129 17 246 129 17 0 0 0 0 0 0 246 129 17 246 129 17 246 129 17 246 129 17 246 129 17 246 129 17 246 129 17 0 0 0 0 0 0 247 133 14 247 133 14 247 133 14 247 133 14 0 0 0 0 0 0 250 145 7 250 145 7 250 145 7 250 145 7 0 0 0 0 0 0 251 157 6 251 157 6 251 157 6 251 157 6 251 157 6 251 157 6 251 157 6 0 0 0 0 0 0 251 157 6 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 251 158 7 251 158 7 251 158 7 251 158 7 0 0 0 0 0 0 251 160 7 251 160 7 251 160 7 251 160 7 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 251 179 24 251 179 24 251 179 24 251 179 24 0 0 0 0 0 0 251 181 26 251 181 26 251 181 26 251 181 26 0 0 0 0 0 0 251 185 30 251 185 30 251 185 30 251 185 30 251 185 30 251 185 30 251 185 30 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 249 197 44 249 197 44 249 197 44 249 197 44 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 241 235 108 241 235 108 241 235 108 241 235 108 241 235 108 241 235 108 241 235 108 241 235 108 241 235 108 241 235 108 241 235 108 241 235 108 241 235 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 240 121 241 240 121 241 240 121 241 240 121 241 240 121 241 240 121 241 240 121 0 0 0 0 0 0 241 235 108 241 235 108 241 233 104 241 233 104 241 233 104 241 233 104 241 233 104 0 0 0 0 0 0 241 233 104 0 0 0 0 0 0 241 242 125 241 242 125 241 242 125 241 242 125 0 0 0 0 0 0 242 244 133 242 244 133 242 244 133 242 244 133 242 244 133 242 244 133 242 244 133 242 244 133 242 244 133 242 244 133 0 0 0 0 0 0 243 246 137 243 246 137 243 246 137 243 246 137 0 0 0 0 0 0 243 246 137 0 0 0 0 0 0 243 246 137 0 0 0 0 0 0 243 246 137 243 246 137 244 247 141 244 247 141 0 0 0 0 0 0 244 247 141 244 247 141 244 247 141 244 247 141 0 0 0 0 0 0 244 247 141 244 247 141 244 247 141 244 247 141 0 0 0 0 0 0 244 247 141 244 247 141 244 247 141 244 247 141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 240 112 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 128 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 129 17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 133 14 0 0 0 0 0 0 250 145 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 157 6 0 0 0 0 0 0 251 157 6 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 172 16 0 0 0 0 0 0 251 179 24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 181 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 235 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 235 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 233 104 0 0 0 0 0 0 241 242 125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 244 133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 246 137 0 0 0 0 0 0 243 246 137 0 0 0 0 0 0 243 246 137 0 0 0 0 0 0 243 246 137 0 0 0 0 0 0 244 247 141 0 0 0 0 0 0 244 247 141 0 0 0 0 0 0 244 247 141 0 0 0 0 0 0 244 247 141 0 0 0 0 0 0 244 247 141 0 0 0 0 0 0 244 247 141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 237 104 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 240 112 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 128 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 129 17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 133 14 0 0 0 0 0 0 250 145 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 157 6 0 0 0 0 0 0 251 157 6 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 179 24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 181 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 235 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 235 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 233 104 0 0 0 0 0 0 241 242 125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 244 133 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 246 137 0 0 0 0 0 0 243 246 137 0 0 0 0 0 0 243 246 137 0 0 0 0 0 0 243 246 137 0 0 0 0 0 0 244 247 141 0 0 0 0 0 0 244 247 141 0 0 0 0 0 0 244 247 141 0 0 0 0 0 0 244 247 141 0 0 0 0 0 0 244 247 141 0 0 0 0 0 0 244 247 141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 183 52 86 183 52 86 183 52 86 183 52 86 0 0 0 0 0 0 183 52 86 183 52 86 183 52 86 183 52 86 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 183 52 86 183 52 86 183 52 86 183 52 86 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 186 54 85 186 54 85 186 54 85 186 54 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 187 55 84 187 55 84 187 55 84 187 55 84 187 55 84 187 55 84 187 55 84 187 55 84 187 55 84 187 55 84 0 0 0 0 0 0 187 55 84 187 55 84 187 55 84 187 55 84 0 0 0 0 0 0 187 55 84 187 55 84 187 55 84 187 55 84 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 193 58 80 193 58 80 193 58 80 193 58 80 0 0 0 0 0 0 193 58 80 193 58 80 193 58 80 193 58 80 0 0 0 0 0 0 193 58 80 193 58 80 193 58 80 193 58 80 193 58 80 194 59 79 194 59 79 0 0 0 0 0 0 207 68 70 207 68 70 207 68 70 207 68 70 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 207 68 70 207 68 70 207 68 70 207 68 70 207 68 70 207 68 70 207 68 70 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 208 69 68 208 69 68 208 69 68 208 69 68 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 210 71 66 210 71 66 210 71 66 210 71 66 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 219 79 58 219 79 58 219 79 58 219 79 58 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 222 83 55 222 83 55 222 83 55 222 83 55 222 83 55 222 83 55 222 83 55 222 83 55 222 83 55 222 83 55 0 0 0 0 0 0 227 88 50 227 88 50 227 88 50 227 88 50 0 0 0 0 0 0 227 88 50 227 88 50 227 88 50 227 88 50 227 88 50 227 88 50 227 88 50 0 0 0 0 0 0 236 103 38 236 103 38 236 103 38 236 103 38 236 103 38 236 103 38 236 103 38 0 0 0 0 0 0 237 104 37 237 104 37 237 104 37 237 104 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 240 112 30 0 0 0 0 0 0 246 128 18 246 128 18 246 128 18 246 128 18 0 0 0 0 0 0 246 128 18 246 128 18 246 128 18 246 128 18 246 128 18 246 128 18 246 128 18 0 0 0 0 0 0 246 129 17 246 129 17 246 129 17 246 129 17 0 0 0 0 0 0 246 129 17 0 0 0 0 0 0 247 133 14 247 133 14 247 133 14 247 133 14 0 0 0 0 0 0 250 145 7 250 145 7 250 145 7 250 145 7 0 0 0 0 0 0 251 157 6 251 157 6 251 157 6 251 157 6 0 0 0 0 0 0 251 157 6 0 0 0 0 0 0 251 157 6 0 0 0 0 0 0 251 158 7 251 158 7 251 158 7 251 158 7 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 251 170 14 251 170 14 251 170 14 251 170 14 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 179 24 0 0 0 0 0 0 251 181 26 251 181 26 251 181 26 251 181 26 0 0 0 0 0 0 251 185 30 251 185 30 251 185 30 251 185 30 0 0 0 0 0 0 251 185 30 251 185 30 251 185 30 251 185 30 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 249 197 44 249 197 44 249 197 44 249 197 44 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 249 197 44 249 197 44 249 197 44 249 197 44 249 197 44 249 197 44 249 197 44 0 0 0 0 0 0 241 235 108 241 235 108 241 235 108 241 235 108 241 235 108 241 235 108 241 235 108 0 0 0 0 0 0 241 235 108 241 235 108 241 235 108 241 235 108 241 235 108 241 235 108 241 235 108 241 235 108 241 235 108 241 235 108 241 235 108 241 235 108 241 235 108 0 0 0 0 0 0 241 233 104 241 233 104 241 233 104 241 233 104 241 233 104 241 233 104 241 233 104 0 0 0 0 0 0 241 242 125 241 242 125 241 242 125 241 242 125 0 0 0 0 0 0 242 243 129 242 243 129 242 243 129 242 243 129 242 243 129 242 243 129 242 243 129 0 0 0 0 0 0 242 244 133 242 244 133 242 244 133 242 244 133 0 0 0 0 0 0 243 246 137 0 0 0 0 0 0 243 246 137 0 0 0 0 0 0 243 246 137 243 246 137 243 246 137 243 246 137 0 0 0 0 0 0 244 247 141 244 247 141 244 247 141 244 247 141 0 0 0 0 0 0 244 247 141 244 247 141 244 247 141 244 247 141 0 0 0 0 0 0 244 247 141 244 247 141 244 247 141 244 247 141 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 194 59 79 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 227 88 50 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 240 112 30 0 0 0 0 0 0 246 128 18 0 0 0 0 0 0 246 128 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 128 18 0 0 0 0 0 0 246 129 17 0 0 0 0 0 0 246 129 17 0 0 0 0 0 0 246 129 17 0 0 0 0 0 0 247 133 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 145 7 0 0 0 0 0 0 251 157 6 0 0 0 0 0 0 251 157 6 0 0 0 0 0 0 251 157 6 0 0 0 0 0 0 251 157 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 179 24 0 0 0 0 0 0 251 181 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 241 235 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 235 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 233 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 242 125 0 0 0 0 0 0 242 243 129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 243 129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 244 133 0 0 0 0 0 0 243 246 137 0 0 0 0 0 0 243 246 137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 187 55 84 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 193 58 80 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 194 59 79 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 240 112 30 0 0 0 0 0 0 246 128 18 0 0 0 0 0 0 246 128 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 128 18 0 0 0 0 0 0 246 129 17 0 0 0 0 0 0 246 129 17 0 0 0 0 0 0 246 129 17 0 0 0 0 0 0 247 133 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 145 7 0 0 0 0 0 0 251 157 6 0 0 0 0 0 0 251 157 6 0 0 0 0 0 0 251 157 6 0 0 0 0 0 0 251 157 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 179 24 0 0 0 0 0 0 251 181 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 241 235 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 235 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 233 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 242 125 0 0 0 0 0 0 242 243 129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 243 129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 244 133 0 0 0 0 0 0 243 246 137 0 0 0 0 0 0 243 246 137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 183 52 86 183 52 86 183 52 86 183 52 86 183 52 86 183 52 86 183 52 86 0 0 0 0 0 0 183 52 86 183 52 86 183 52 86 183 52 86 0 0 0 0 0 0 183 52 86 183 52 86 183 52 86 183 52 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 183 52 86 183 52 86 183 52 86 183 52 86 0 0 0 0 0 0 186 54 85 186 54 85 186 54 85 186 54 85 0 0 0 0 0 0 189 55 83 189 55 83 189 55 83 189 55 83 189 55 83 189 55 83 189 55 83 189 55 83 189 55 83 189 55 83 189 55 83 189 55 83 189 55 83 189 55 83 189 55 83 189 55 83 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 189 55 83 189 55 83 187 55 84 187 55 84 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 193 58 80 193 58 80 193 58 80 193 58 80 0 0 0 0 0 0 193 58 80 193 58 80 193 58 80 193 58 80 193 58 80 193 58 80 193 58 80 193 58 80 193 58 80 193 58 80 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 194 59 79 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 207 68 70 207 68 70 207 68 70 207 68 70 207 68 70 207 68 70 207 68 70 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 210 71 66 210 71 66 210 71 66 210 71 66 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 219 79 58 219 79 58 219 79 58 219 79 58 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 222 83 55 222 83 55 222 83 55 222 83 55 222 83 55 222 83 55 222 83 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 228 90 49 228 90 49 228 90 49 228 90 49 0 0 0 0 0 0 231 95 44 231 95 44 231 95 44 231 95 44 0 0 0 0 0 0 235 101 39 235 101 39 235 101 39 235 101 39 0 0 0 0 0 0 236 103 38 236 103 38 236 103 38 236 103 38 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 240 112 30 240 112 30 240 112 30 240 112 30 240 112 30 240 112 30 240 112 30 0 0 0 0 0 0 246 128 18 0 0 0 0 0 0 246 128 18 0 0 0 0 0 0 246 128 18 246 128 18 246 128 18 246 128 18 0 0 0 0 0 0 246 128 18 0 0 0 0 0 0 246 129 17 0 0 0 0 0 0 246 129 17 246 129 17 246 129 17 246 129 17 0 0 0 0 0 0 247 133 14 247 133 14 247 133 14 247 133 14 247 133 14 247 133 14 247 133 14 0 0 0 0 0 0 250 145 7 0 0 0 0 0 0 251 157 6 0 0 0 0 0 0 251 157 6 251 157 6 251 157 6 251 157 6 0 0 0 0 0 0 251 157 6 251 157 6 251 158 7 251 158 7 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 251 170 14 251 170 14 251 170 14 251 170 14 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 179 24 0 0 0 0 0 0 251 181 26 251 181 26 251 181 26 251 181 26 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 251 185 30 251 185 30 251 185 30 251 185 30 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 249 197 44 249 197 44 249 197 44 249 197 44 0 0 0 0 0 0 249 199 47 249 199 47 249 197 44 249 197 44 249 197 44 249 197 44 249 197 44 0 0 0 0 0 0 241 235 108 241 235 108 241 235 108 241 235 108 241 235 108 241 235 108 241 235 108 241 235 108 241 235 108 241 235 108 0 0 0 0 0 0 241 233 104 241 233 104 241 233 104 241 233 104 241 233 104 241 233 104 241 233 104 241 233 104 241 233 104 241 233 104 241 233 104 241 233 104 241 233 104 0 0 0 0 0 0 241 233 104 241 233 104 241 233 104 241 233 104 0 0 0 0 0 0 241 242 125 241 242 125 241 242 125 241 242 125 0 0 0 0 0 0 242 243 129 242 243 129 242 243 129 242 243 129 0 0 0 0 0 0 242 243 129 0 0 0 0 0 0 242 243 129 242 243 129 242 244 133 242 244 133 0 0 0 0 0 0 243 246 137 0 0 0 0 0 0 243 246 137 243 246 137 243 246 137 243 246 137 243 246 137 243 246 137 243 246 137 243 246 137 243 246 137 243 246 137 243 246 137 243 246 137 243 246 137 243 246 137 243 246 137 243 246 137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 189 55 83 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 189 55 83 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 189 55 83 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 194 59 79 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 240 112 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 128 18 0 0 0 0 0 0 246 128 18 0 0 0 0 0 0 246 128 18 0 0 0 0 0 0 246 128 18 0 0 0 0 0 0 246 128 18 0 0 0 0 0 0 246 129 17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 133 14 0 0 0 0 0 0 250 145 7 0 0 0 0 0 0 251 157 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 179 24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 181 26 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 199 47 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 233 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 233 104 0 0 0 0 0 0 241 233 104 0 0 0 0 0 0 241 242 125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 243 129 0 0 0 0 0 0 242 243 129 0 0 0 0 0 0 242 243 129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 246 137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 246 137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 189 55 83 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 189 55 83 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 189 55 83 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 194 59 79 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 240 112 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 128 18 0 0 0 0 0 0 246 128 18 0 0 0 0 0 0 246 128 18 0 0 0 0 0 0 246 128 18 0 0 0 0 0 0 246 128 18 0 0 0 0 0 0 246 129 17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 250 145 7 0 0 0 0 0 0 251 157 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 170 14 0 0 0 0 0 0 251 179 24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 181 26 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 199 47 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 233 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 233 104 0 0 0 0 0 0 241 233 104 0 0 0 0 0 0 241 242 125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 243 129 0 0 0 0 0 0 242 243 129 0 0 0 0 0 0 242 243 129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 246 137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 246 137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 183 52 86 183 52 86 183 52 86 183 52 86 0 0 0 0 0 0 183 52 86 183 52 86 183 52 86 183 52 86 183 52 86 183 52 86 183 52 86 183 52 86 183 52 86 183 52 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 186 54 85 186 54 85 186 54 85 186 54 85 0 0 0 0 0 0 189 55 83 189 55 83 189 55 83 189 55 83 0 0 0 0 0 0 189 55 83 189 55 83 189 55 83 189 55 83 0 0 0 0 0 0 189 55 83 189 55 83 189 55 83 189 55 83 0 0 0 0 0 0 189 55 83 189 55 83 189 55 83 189 55 83 189 55 83 189 55 83 189 55 83 0 0 0 0 0 0 190 56 82 190 56 82 190 56 82 190 56 82 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 194 59 79 194 59 79 194 59 79 194 59 79 194 59 79 194 59 79 194 59 79 194 59 79 194 59 79 194 59 79 194 59 79 194 59 79 194 59 79 194 59 79 194 59 79 194 59 79 194 59 79 194 59 79 194 59 79 0 0 0 0 0 0 205 66 71 205 66 71 205 66 71 205 66 71 205 66 71 205 66 71 205 66 71 205 66 71 205 66 71 205 66 71 0 0 0 0 0 0 207 68 70 207 68 70 207 68 70 207 68 70 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 208 69 68 208 69 68 208 69 68 208 69 68 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 222 83 55 222 83 55 222 83 55 222 83 55 222 83 55 222 83 55 222 83 55 0 0 0 0 0 0 228 90 49 228 90 49 228 90 49 228 90 49 228 90 49 228 90 49 228 90 49 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 236 103 38 236 103 38 236 103 38 236 103 38 0 0 0 0 0 0 240 112 30 240 112 30 240 112 30 240 112 30 0 0 0 0 0 0 242 116 28 242 116 28 242 116 28 242 116 28 0 0 0 0 0 0 246 128 18 0 0 0 0 0 0 246 128 18 246 128 18 246 128 18 246 128 18 0 0 0 0 0 0 246 128 18 246 128 18 246 128 18 246 128 18 0 0 0 0 0 0 246 129 17 246 129 17 247 131 16 247 131 16 0 0 0 0 0 0 247 131 16 247 131 16 247 131 16 247 131 16 247 131 16 247 131 16 247 131 16 247 131 16 247 131 16 247 131 16 0 0 0 0 0 0 250 145 7 0 0 0 0 0 0 251 157 6 251 157 6 251 157 6 251 157 6 251 157 6 251 157 6 251 157 6 251 157 6 251 157 6 251 157 6 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 251 160 7 251 160 7 251 160 7 251 160 7 0 0 0 0 0 0 251 170 14 251 170 14 251 170 14 251 170 14 0 0 0 0 0 0 251 170 14 251 170 14 251 170 14 251 170 14 0 0 0 0 0 0 251 179 24 0 0 0 0 0 0 251 181 26 251 181 26 251 181 26 251 181 26 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 251 185 30 251 185 30 251 185 30 251 185 30 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 249 197 44 249 197 44 249 197 44 249 197 44 0 0 0 0 0 0 249 199 47 249 199 47 249 199 47 249 199 47 0 0 0 0 0 0 243 222 82 243 222 82 243 222 82 243 222 82 243 222 82 243 222 82 243 222 82 0 0 0 0 0 0 243 224 86 243 224 86 243 224 86 243 224 86 0 0 0 0 0 0 241 233 104 241 233 104 241 233 104 241 233 104 241 233 104 241 233 104 241 233 104 241 233 104 241 233 104 241 233 104 241 233 104 241 233 104 241 233 104 241 233 104 241 233 104 241 233 104 0 0 0 0 0 0 241 233 104 0 0 0 0 0 0 241 242 125 241 242 125 241 242 125 241 242 125 0 0 0 0 0 0 242 243 129 242 243 129 242 243 129 242 243 129 0 0 0 0 0 0 242 243 129 242 243 129 242 243 129 242 243 129 0 0 0 0 0 0 243 246 137 243 246 137 243 246 137 243 246 137 0 0 0 0 0 0 243 246 137 243 246 137 243 246 137 243 246 137 0 0 0 0 0 0 243 246 137 243 246 137 243 246 137 243 246 137 243 246 137 243 246 137 243 246 137 243 246 137 243 246 137 243 246 137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 189 55 83 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 189 55 83 0 0 0 0 0 0 189 55 83 0 0 0 0 0 0 189 55 83 0 0 0 0 0 0 189 55 83 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 194 59 79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 240 112 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 116 28 0 0 0 0 0 0 242 116 28 0 0 0 0 0 0 246 128 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 145 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 157 6 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 179 24 0 0 0 0 0 0 251 181 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 199 47 0 0 0 0 0 0 243 222 82 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 222 82 0 0 0 0 0 0 243 224 86 0 0 0 0 0 0 243 224 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 233 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 242 125 0 0 0 0 0 0 242 243 129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 246 137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 246 137 0 0 0 0 0 0 243 246 137 0 0 0 0 0 0 243 246 137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 189 55 83 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 189 55 83 0 0 0 0 0 0 189 55 83 0 0 0 0 0 0 189 55 83 0 0 0 0 0 0 189 55 83 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 194 59 79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 222 83 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 240 112 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 116 28 0 0 0 0 0 0 242 116 28 0 0 0 0 0 0 246 128 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 145 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 157 6 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 179 24 0 0 0 0 0 0 251 181 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 199 47 0 0 0 0 0 0 243 222 82 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 222 82 0 0 0 0 0 0 243 224 86 0 0 0 0 0 0 243 224 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 233 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 242 125 0 0 0 0 0 0 242 243 129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 246 137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 246 137 0 0 0 0 0 0 243 246 137 0 0 0 0 0 0 243 246 137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 184 53 86 184 53 86 184 53 86 184 53 86 0 0 0 0 0 0 184 53 86 184 53 86 184 53 86 184 53 86 0 0 0 0 0 0 186 54 85 186 54 85 186 54 85 186 54 85 0 0 0 0 0 0 189 55 83 189 55 83 189 55 83 189 55 83 0 0 0 0 0 0 189 55 83 0 0 0 0 0 0 189 55 83 0 0 0 0 0 0 189 55 83 0 0 0 0 0 0 189 55 83 0 0 0 0 0 0 189 55 83 189 55 83 190 56 82 190 56 82 0 0 0 0 0 0 190 56 82 190 56 82 190 56 82 190 56 82 0 0 0 0 0 0 194 59 79 194 59 79 194 59 79 194 59 79 0 0 0 0 0 0 194 59 79 194 59 79 194 59 79 194 59 79 194 59 79 194 59 79 194 59 79 0 0 0 0 0 0 194 59 79 194 59 79 194 59 79 194 59 79 0 0 0 0 0 0 204 65 72 204 65 72 204 65 72 204 65 72 0 0 0 0 0 0 205 66 71 205 66 71 205 66 71 205 66 71 0 0 0 0 0 0 205 66 71 205 66 71 205 66 71 205 66 71 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 207 68 70 207 68 70 207 68 70 207 68 70 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 210 71 66 210 71 66 210 71 66 210 71 66 210 71 66 210 71 66 210 71 66 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 219 79 58 219 79 58 219 79 58 219 79 58 0 0 0 0 0 0 222 83 55 222 83 55 222 83 55 222 83 55 0 0 0 0 0 0 228 90 49 228 90 49 228 90 49 228 90 49 228 90 49 228 90 49 228 90 49 0 0 0 0 0 0 231 95 44 231 95 44 231 95 44 231 95 44 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 236 103 38 236 103 38 236 103 38 236 103 38 0 0 0 0 0 0 240 112 30 0 0 0 0 0 0 242 116 28 242 116 28 242 116 28 242 116 28 0 0 0 0 0 0 242 116 28 0 0 0 0 0 0 246 128 18 246 128 18 246 128 18 246 128 18 246 128 18 246 128 18 246 128 18 246 128 18 245 126 20 245 126 20 0 0 0 0 0 0 247 131 16 247 131 16 247 131 16 247 131 16 247 131 16 247 131 16 247 131 16 0 0 0 0 0 0 247 131 16 247 131 16 247 131 16 247 131 16 247 131 16 247 131 16 247 131 16 0 0 0 0 0 0 250 145 7 250 145 7 250 145 7 250 145 7 0 0 0 0 0 0 251 155 6 251 155 6 251 157 6 251 157 6 0 0 0 0 0 0 251 157 6 251 157 6 251 157 6 251 157 6 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 251 158 7 251 158 7 251 158 7 251 158 7 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 251 179 24 251 179 24 251 179 24 251 179 24 251 179 24 251 179 24 251 179 24 251 179 24 251 179 24 251 179 24 251 179 24 251 179 24 251 179 24 0 0 0 0 0 0 251 181 26 251 181 26 251 181 26 251 181 26 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 251 185 30 251 185 30 251 185 30 251 185 30 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 249 197 44 249 197 44 249 197 44 249 197 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 199 47 0 0 0 0 0 0 243 222 82 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 222 82 243 222 82 243 224 86 243 224 86 0 0 0 0 0 0 243 224 86 243 224 86 243 224 86 243 224 86 0 0 0 0 0 0 241 233 104 241 233 104 241 233 104 241 233 104 0 0 0 0 0 0 241 233 104 241 233 104 241 233 104 241 233 104 0 0 0 0 0 0 241 233 104 241 233 104 241 233 104 241 233 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 242 125 0 0 0 0 0 0 242 243 129 242 243 129 242 243 129 242 243 129 242 243 129 242 243 129 242 243 129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 246 137 243 246 137 243 246 137 243 246 137 243 246 137 243 246 137 243 246 137 0 0 0 0 0 0 243 246 137 243 246 137 243 246 137 243 246 137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 189 55 83 0 0 0 0 0 0 189 55 83 0 0 0 0 0 0 189 55 83 0 0 0 0 0 0 189 55 83 0 0 0 0 0 0 189 55 83 0 0 0 0 0 0 189 55 83 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 194 59 79 0 0 0 0 0 0 194 59 79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 194 59 79 0 0 0 0 0 0 194 59 79 0 0 0 0 0 0 194 59 79 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 208 69 68 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 240 112 30 0 0 0 0 0 0 242 116 28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 116 28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 126 20 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 250 145 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 155 6 0 0 0 0 0 0 251 157 6 0 0 0 0 0 0 251 157 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 251 179 24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 181 26 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 199 47 0 0 0 0 0 0 243 222 82 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 224 86 0 0 0 0 0 0 241 233 104 0 0 0 0 0 0 241 233 104 0 0 0 0 0 0 241 233 104 0 0 0 0 0 0 241 233 104 0 0 0 0 0 0 241 233 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 242 125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 243 129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 183 52 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 189 55 83 0 0 0 0 0 0 189 55 83 0 0 0 0 0 0 189 55 83 0 0 0 0 0 0 189 55 83 0 0 0 0 0 0 189 55 83 0 0 0 0 0 0 189 55 83 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 190 56 82 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 194 59 79 0 0 0 0 0 0 194 59 79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 194 59 79 0 0 0 0 0 0 194 59 79 0 0 0 0 0 0 194 59 79 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 236 103 38 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 240 112 30 0 0 0 0 0 0 242 116 28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 116 28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 126 20 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 250 145 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 155 6 0 0 0 0 0 0 251 157 6 0 0 0 0 0 0 251 157 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 251 179 24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 181 26 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 249 197 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 199 47 0 0 0 0 0 0 243 222 82 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 224 86 0 0 0 0 0 0 241 232 100 0 0 0 0 0 0 241 233 104 0 0 0 0 0 0 241 233 104 0 0 0 0 0 0 241 233 104 0 0 0 0 0 0 241 233 104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 242 125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 243 129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 183 52 86 183 52 86 183 52 86 183 52 86 0 0 0 0 0 0 184 53 86 184 53 86 184 53 86 184 53 86 184 53 86 184 53 86 184 53 86 0 0 0 0 0 0 184 53 86 184 53 86 184 53 86 184 53 86 0 0 0 0 0 0 186 54 85 186 54 85 186 54 85 186 54 85 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 189 55 83 189 55 83 189 55 83 189 55 83 0 0 0 0 0 0 189 55 83 0 0 0 0 0 0 189 55 83 189 55 83 189 55 83 189 55 83 0 0 0 0 0 0 189 55 83 189 55 83 189 55 83 189 55 83 0 0 0 0 0 0 190 56 82 190 56 82 190 56 82 190 56 82 0 0 0 0 0 0 194 59 79 194 59 79 194 59 79 194 59 79 0 0 0 0 0 0 194 59 79 194 59 79 194 59 79 194 59 79 194 59 79 194 59 79 194 59 79 0 0 0 0 0 0 194 59 79 194 59 79 194 59 79 194 59 79 0 0 0 0 0 0 194 59 79 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 205 66 71 205 66 71 205 66 71 205 66 71 205 66 71 205 66 71 205 66 71 0 0 0 0 0 0 207 68 70 207 68 70 207 68 70 207 68 70 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 210 71 66 210 71 66 210 71 66 210 71 66 0 0 0 0 0 0 218 78 59 218 78 59 218 78 59 218 78 59 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 218 78 59 218 78 59 218 78 59 218 78 59 0 0 0 0 0 0 219 79 58 219 79 58 219 79 58 219 79 58 219 79 58 219 79 58 219 79 58 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 228 90 49 228 90 49 228 90 49 228 90 49 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 236 103 38 236 103 38 235 101 39 235 101 39 0 0 0 0 0 0 240 112 30 0 0 0 0 0 0 242 116 28 242 116 28 242 116 28 242 116 28 0 0 0 0 0 0 242 116 28 242 116 28 242 116 28 242 116 28 0 0 0 0 0 0 245 126 20 245 126 20 245 126 20 245 126 20 245 126 20 245 126 20 245 126 20 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 247 131 16 247 131 16 247 131 16 247 131 16 0 0 0 0 0 0 247 131 16 247 131 16 247 131 16 247 131 16 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 250 145 7 0 0 0 0 0 0 251 155 6 251 155 6 251 155 6 251 155 6 0 0 0 0 0 0 251 157 6 251 157 6 251 157 6 251 157 6 0 0 0 0 0 0 251 158 7 251 158 7 251 158 7 251 158 7 0 0 0 0 0 0 251 158 7 251 158 7 251 158 7 251 158 7 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 251 179 24 0 0 0 0 0 0 251 179 24 251 179 24 251 179 24 251 179 24 251 179 24 251 179 24 251 179 24 251 179 24 251 179 24 251 179 24 0 0 0 0 0 0 251 181 26 251 181 26 251 181 26 251 181 26 0 0 0 0 0 0 251 185 30 251 185 30 251 185 30 251 185 30 0 0 0 0 0 0 251 185 30 251 185 30 251 185 30 251 185 30 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 249 197 44 249 197 44 249 197 44 249 197 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 199 47 249 199 47 249 199 47 249 199 47 0 0 0 0 0 0 243 222 82 243 222 82 243 222 82 243 222 82 0 0 0 0 0 0 243 222 82 243 222 82 243 222 82 243 222 82 0 0 0 0 0 0 243 224 86 243 224 86 243 224 86 243 224 86 0 0 0 0 0 0 241 232 100 0 0 0 0 0 0 241 233 104 241 233 104 241 233 104 241 233 104 0 0 0 0 0 0 241 233 104 241 233 104 241 233 104 241 233 104 0 0 0 0 0 0 241 232 100 241 232 100 241 232 100 241 232 100 0 0 0 0 0 0 241 242 125 0 0 0 0 0 0 241 242 125 241 242 125 241 242 125 241 242 125 0 0 0 0 0 0 242 243 129 242 243 129 242 243 129 242 243 129 242 243 129 242 243 129 242 243 129 242 243 129 242 243 129 242 243 129 242 243 129 242 243 129 242 243 129 242 243 129 242 243 129 242 243 129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 189 55 83 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 189 55 83 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 194 59 79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 194 59 79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 194 59 79 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 240 112 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 116 28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 116 28 0 0 0 0 0 0 245 126 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 250 145 7 0 0 0 0 0 0 251 155 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 251 179 24 0 0 0 0 0 0 251 179 24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 179 24 0 0 0 0 0 0 251 181 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 199 47 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 222 82 0 0 0 0 0 0 243 222 82 0 0 0 0 0 0 243 222 82 0 0 0 0 0 0 243 224 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 232 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 232 100 0 0 0 0 0 0 241 232 100 0 0 0 0 0 0 241 242 125 0 0 0 0 0 0 241 242 125 0 0 0 0 0 0 241 242 125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 243 129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 189 55 83 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 189 55 83 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 194 59 79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 194 59 79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 194 59 79 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 207 68 70 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 240 112 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 116 28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 116 28 0 0 0 0 0 0 245 126 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 250 145 7 0 0 0 0 0 0 251 155 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 158 7 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 251 179 24 0 0 0 0 0 0 251 179 24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 179 24 0 0 0 0 0 0 251 181 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 199 47 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 222 82 0 0 0 0 0 0 243 222 82 0 0 0 0 0 0 243 222 82 0 0 0 0 0 0 243 224 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 232 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 232 100 0 0 0 0 0 0 241 232 100 0 0 0 0 0 0 241 242 125 0 0 0 0 0 0 241 242 125 0 0 0 0 0 0 241 242 125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 243 129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 184 53 86 184 53 86 184 53 86 184 53 86 184 53 86 184 53 86 184 53 86 184 53 86 184 53 86 184 53 86 184 53 86 184 53 86 184 53 86 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 186 54 85 186 54 85 186 54 85 186 54 85 0 0 0 0 0 0 189 55 83 189 55 83 189 55 83 189 55 83 189 55 83 189 55 83 189 55 83 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 196 60 78 196 60 78 196 60 78 196 60 78 0 0 0 0 0 0 194 59 79 194 59 79 194 59 79 194 59 79 194 59 79 194 59 79 194 59 79 194 59 79 194 59 79 194 59 79 0 0 0 0 0 0 197 61 77 197 61 77 197 61 77 197 61 77 197 61 77 197 61 77 197 61 77 0 0 0 0 0 0 194 59 79 194 59 79 194 59 79 194 59 79 194 59 79 194 59 79 194 59 79 194 59 79 194 59 79 194 59 79 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 205 66 71 205 66 71 205 66 71 205 66 71 205 66 71 205 66 71 205 66 71 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 207 68 70 207 68 70 207 68 70 207 68 70 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 217 77 61 217 77 61 218 78 59 218 78 59 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 219 79 58 219 79 58 219 79 58 219 79 58 219 79 58 219 79 58 219 79 58 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 231 95 44 231 95 44 231 95 44 231 95 44 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 235 101 39 235 101 39 235 101 39 235 101 39 0 0 0 0 0 0 240 112 30 0 0 0 0 0 0 242 116 28 242 116 28 242 116 28 242 116 28 0 0 0 0 0 0 242 116 28 242 116 28 242 116 28 242 116 28 0 0 0 0 0 0 245 126 20 245 126 20 245 126 20 245 126 20 245 126 20 245 126 20 245 126 20 0 0 0 0 0 0 247 131 16 247 131 16 247 131 16 247 131 16 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 250 145 7 0 0 0 0 0 0 251 155 6 251 155 6 251 155 6 251 155 6 251 155 6 251 155 6 251 155 6 251 155 6 251 155 6 251 155 6 0 0 0 0 0 0 251 158 7 251 158 7 251 158 7 251 158 7 251 158 7 251 158 7 251 158 7 251 158 7 251 158 7 251 158 7 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 251 179 24 0 0 0 0 0 0 251 179 24 0 0 0 0 0 0 251 179 24 251 179 24 251 179 24 251 179 24 251 179 24 251 179 24 251 179 24 0 0 0 0 0 0 251 181 26 251 181 26 251 181 26 251 181 26 251 181 26 251 181 26 251 181 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 185 30 251 185 30 251 185 30 251 185 30 0 0 0 0 0 0 249 195 42 249 195 42 249 195 42 249 195 42 249 195 42 249 195 42 249 195 42 0 0 0 0 0 0 249 199 47 249 199 47 249 199 47 249 199 47 0 0 0 0 0 0 249 199 47 249 199 47 249 199 47 249 199 47 0 0 0 0 0 0 243 222 82 243 222 82 243 222 82 243 222 82 0 0 0 0 0 0 243 222 82 0 0 0 0 0 0 243 224 86 243 224 86 243 224 86 243 224 86 0 0 0 0 0 0 241 232 100 241 232 100 241 232 100 241 232 100 241 232 100 241 232 100 241 232 100 0 0 0 0 0 0 241 232 100 241 232 100 241 232 100 241 232 100 0 0 0 0 0 0 241 232 100 0 0 0 0 0 0 241 232 100 0 0 0 0 0 0 241 242 125 241 242 125 241 242 125 241 242 125 0 0 0 0 0 0 241 242 125 241 242 125 241 242 125 241 242 125 0 0 0 0 0 0 241 242 125 241 242 125 241 242 125 241 242 125 241 242 125 241 242 125 241 242 125 0 0 0 0 0 0 242 243 129 242 243 129 242 243 129 242 243 129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 194 59 79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 240 112 30 0 0 0 0 0 0 242 116 28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 116 28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 126 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 250 145 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 155 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 251 179 24 0 0 0 0 0 0 251 179 24 0 0 0 0 0 0 251 179 24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 181 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 249 199 47 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 199 47 0 0 0 0 0 0 249 199 47 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 222 82 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 224 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 232 100 0 0 0 0 0 0 241 232 100 0 0 0 0 0 0 241 232 100 0 0 0 0 0 0 241 232 100 0 0 0 0 0 0 241 232 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 242 125 0 0 0 0 0 0 241 242 125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 242 125 0 0 0 0 0 0 242 243 129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 240 112 30 0 0 0 0 0 0 242 116 28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 126 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 250 145 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 155 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 251 160 7 0 0 0 0 0 0 251 179 24 0 0 0 0 0 0 251 179 24 0 0 0 0 0 0 251 179 24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 179 24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 249 199 47 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 199 47 0 0 0 0 0 0 249 199 47 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 222 82 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 224 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 232 100 0 0 0 0 0 0 241 232 100 0 0 0 0 0 0 241 232 100 0 0 0 0 0 0 241 232 100 0 0 0 0 0 0 241 232 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 242 125 0 0 0 0 0 0 241 242 125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 242 125 0 0 0 0 0 0 242 243 129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 184 53 86 184 53 86 184 53 86 184 53 86 184 53 86 184 53 86 184 53 86 184 53 86 184 53 86 184 53 86 0 0 0 0 0 0 186 54 85 186 54 85 186 54 85 186 54 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 196 60 78 196 60 78 196 60 78 196 60 78 196 60 78 196 60 78 196 60 78 196 60 78 196 60 78 196 60 78 196 60 78 196 60 78 196 60 78 0 0 0 0 0 0 196 60 78 196 60 78 196 60 78 196 60 78 0 0 0 0 0 0 197 61 77 197 61 77 197 61 77 197 61 77 197 61 77 197 61 77 197 61 77 0 0 0 0 0 0 197 61 77 197 61 77 197 61 77 197 61 77 0 0 0 0 0 0 197 61 77 197 61 77 197 61 77 197 61 77 0 0 0 0 0 0 199 62 76 199 62 76 199 62 76 199 62 76 0 0 0 0 0 0 204 65 72 204 65 72 204 65 72 204 65 72 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 205 66 71 205 66 71 205 66 71 205 66 71 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 210 71 66 210 71 66 210 71 66 210 71 66 210 71 66 210 71 66 210 71 66 210 71 66 210 71 66 210 71 66 210 71 66 210 71 66 210 71 66 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 218 78 59 218 78 59 218 78 59 218 78 59 0 0 0 0 0 0 218 78 59 218 78 59 218 78 59 218 78 59 0 0 0 0 0 0 219 79 58 219 79 58 219 79 58 219 79 58 219 79 58 219 79 58 219 79 58 0 0 0 0 0 0 228 90 49 228 90 49 228 90 49 228 90 49 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 230 94 45 230 94 45 230 94 45 230 94 45 0 0 0 0 0 0 231 95 44 231 95 44 231 95 44 231 95 44 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 240 112 30 240 112 30 240 112 30 240 112 30 0 0 0 0 0 0 242 116 28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 242 117 26 242 117 26 242 117 26 242 117 26 242 117 26 242 117 26 242 117 26 0 0 0 0 0 0 245 126 20 245 126 20 245 126 20 245 126 20 245 126 20 245 126 20 245 126 20 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 250 145 7 250 145 7 250 147 6 250 147 6 0 0 0 0 0 0 251 155 6 251 155 6 251 155 6 251 155 6 251 155 6 251 155 6 251 155 6 0 0 0 0 0 0 251 155 6 251 155 6 251 155 6 251 155 6 251 155 6 251 155 6 251 155 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 160 7 251 160 7 251 160 7 251 160 7 0 0 0 0 0 0 251 179 24 0 0 0 0 0 0 251 179 24 0 0 0 0 0 0 251 179 24 251 179 24 251 179 24 251 179 24 251 179 24 251 179 24 251 179 24 251 179 24 251 179 24 251 179 24 251 179 24 251 179 24 251 179 24 251 179 24 251 179 24 251 179 24 0 0 0 0 0 0 250 187 33 250 187 33 251 185 30 251 185 30 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 250 193 40 250 193 40 250 193 40 250 193 40 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 249 199 47 249 199 47 249 199 47 249 199 47 249 199 47 249 199 47 249 199 47 0 0 0 0 0 0 249 199 47 0 0 0 0 0 0 243 222 82 243 222 82 243 222 82 243 222 82 243 222 82 243 222 82 243 222 82 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 224 86 0 0 0 0 0 0 243 224 86 243 224 86 243 224 86 243 224 86 0 0 0 0 0 0 241 232 100 241 232 100 241 232 100 241 232 100 0 0 0 0 0 0 241 232 100 241 232 100 241 232 100 241 232 100 0 0 0 0 0 0 241 232 100 241 232 100 241 232 100 241 232 100 241 232 100 241 232 100 241 232 100 241 232 100 241 232 100 241 232 100 0 0 0 0 0 0 241 242 125 241 242 125 241 242 125 241 242 125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 242 125 0 0 0 0 0 0 242 243 129 242 243 129 242 243 129 242 243 129 242 243 129 242 243 129 242 243 129 242 243 129 242 243 129 242 243 129 242 243 129 242 243 129 242 243 129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 240 112 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 116 28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 126 20 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 147 6 0 0 0 0 0 0 251 155 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 155 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 155 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 179 24 0 0 0 0 0 0 251 179 24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 187 33 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 250 193 40 0 0 0 0 0 0 250 193 40 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 199 47 0 0 0 0 0 0 243 222 82 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 224 86 0 0 0 0 0 0 243 224 86 0 0 0 0 0 0 243 224 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 232 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 242 125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 243 129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 240 112 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 116 28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 126 20 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 147 6 0 0 0 0 0 0 251 155 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 155 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 155 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 179 24 0 0 0 0 0 0 251 179 24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 187 33 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 251 185 30 0 0 0 0 0 0 250 193 40 0 0 0 0 0 0 250 193 40 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 199 47 0 0 0 0 0 0 243 222 82 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 224 86 0 0 0 0 0 0 243 224 86 0 0 0 0 0 0 243 224 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 232 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 242 125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 243 129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 184 53 86 184 53 86 184 53 86 184 53 86 0 0 0 0 0 0 184 53 86 184 53 86 184 53 86 184 53 86 0 0 0 0 0 0 186 54 85 186 54 85 186 54 85 186 54 85 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 196 60 78 196 60 78 196 60 78 196 60 78 196 60 78 196 60 78 196 60 78 0 0 0 0 0 0 197 61 77 197 61 77 197 61 77 197 61 77 0 0 0 0 0 0 197 61 77 197 61 77 197 61 77 197 61 77 0 0 0 0 0 0 197 61 77 197 61 77 197 61 77 197 61 77 0 0 0 0 0 0 197 61 77 197 61 77 197 61 77 197 61 77 0 0 0 0 0 0 197 61 77 197 61 77 197 61 77 197 61 77 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 204 65 72 204 65 72 204 65 72 204 65 72 0 0 0 0 0 0 205 66 71 205 66 71 205 66 71 205 66 71 205 66 71 205 66 71 205 66 71 205 66 71 205 66 71 205 66 71 0 0 0 0 0 0 210 71 66 210 71 66 210 71 66 210 71 66 210 71 66 210 71 66 210 71 66 0 0 0 0 0 0 215 75 62 215 75 62 215 75 62 215 75 62 0 0 0 0 0 0 217 77 61 217 77 61 217 77 61 217 77 61 217 77 61 217 77 61 217 77 61 0 0 0 0 0 0 218 78 59 218 78 59 218 78 59 218 78 59 0 0 0 0 0 0 219 79 58 219 79 58 219 79 58 219 79 58 219 79 58 219 79 58 219 79 58 219 79 58 219 79 58 219 79 58 0 0 0 0 0 0 228 90 49 228 90 49 228 90 49 228 90 49 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 230 94 45 230 94 45 230 94 45 230 94 45 0 0 0 0 0 0 231 95 44 231 95 44 231 95 44 231 95 44 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 240 112 30 240 112 30 240 112 30 240 112 30 0 0 0 0 0 0 242 116 28 242 116 28 242 116 28 242 116 28 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 242 117 26 242 117 26 242 117 26 242 117 26 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 245 126 20 245 126 20 245 126 20 245 126 20 0 0 0 0 0 0 245 126 20 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 247 131 16 247 131 16 247 131 16 247 131 16 0 0 0 0 0 0 250 147 6 250 147 6 250 147 6 250 147 6 0 0 0 0 0 0 251 155 6 251 155 6 251 155 6 251 155 6 251 155 6 251 155 6 251 155 6 251 155 6 251 155 6 251 155 6 0 0 0 0 0 0 251 155 6 251 155 6 251 155 6 251 155 6 0 0 0 0 0 0 251 155 6 251 155 6 251 155 6 251 155 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 179 24 251 179 24 251 179 24 251 179 24 0 0 0 0 0 0 250 187 33 250 187 33 250 187 33 250 187 33 250 187 33 250 187 33 250 187 33 250 187 33 250 187 33 250 187 33 250 187 33 250 187 33 250 187 33 250 187 33 250 187 33 250 187 33 250 187 33 250 187 33 250 187 33 0 0 0 0 0 0 251 185 30 251 185 30 251 185 30 251 185 30 0 0 0 0 0 0 250 193 40 0 0 0 0 0 0 250 193 40 0 0 0 0 0 0 249 195 42 249 195 42 249 195 42 249 195 42 249 195 42 249 195 42 249 195 42 0 0 0 0 0 0 249 199 47 249 199 47 249 199 47 249 199 47 0 0 0 0 0 0 243 222 82 243 222 82 243 222 82 243 222 82 243 222 82 243 222 82 243 222 82 243 222 82 243 222 82 243 222 82 0 0 0 0 0 0 243 224 86 243 224 86 243 224 86 243 224 86 0 0 0 0 0 0 243 224 86 0 0 0 0 0 0 242 228 93 242 228 93 242 228 93 242 228 93 242 228 93 242 228 93 242 228 93 242 228 93 242 228 93 242 228 93 0 0 0 0 0 0 241 232 100 241 232 100 241 232 100 241 232 100 241 232 100 241 232 100 241 232 100 241 232 100 241 232 100 241 232 100 0 0 0 0 0 0 241 232 100 241 232 100 241 232 100 241 232 100 0 0 0 0 0 0 241 242 125 241 242 125 241 242 125 241 242 125 0 0 0 0 0 0 241 242 125 241 242 125 242 243 129 242 243 129 0 0 0 0 0 0 242 243 129 242 243 129 242 243 129 242 243 129 242 243 129 242 243 129 242 243 129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 240 112 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 116 28 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 245 126 20 0 0 0 0 0 0 245 126 20 0 0 0 0 0 0 245 126 20 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 147 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 155 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 155 6 0 0 0 0 0 0 251 155 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 187 33 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 193 40 0 0 0 0 0 0 250 193 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 249 199 47 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 222 82 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 224 86 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 241 232 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 232 100 0 0 0 0 0 0 241 232 100 0 0 0 0 0 0 241 242 125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 242 125 0 0 0 0 0 0 242 243 129 0 0 0 0 0 0 242 243 129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 240 112 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 116 28 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 245 126 20 0 0 0 0 0 0 245 126 20 0 0 0 0 0 0 245 126 20 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 247 131 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 147 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 155 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 155 6 0 0 0 0 0 0 251 155 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 187 33 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 193 40 0 0 0 0 0 0 250 193 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 249 199 47 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 222 82 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 224 86 0 0 0 0 0 0 243 226 89 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 241 232 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 232 100 0 0 0 0 0 0 241 232 100 0 0 0 0 0 0 241 242 125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 242 125 0 0 0 0 0 0 242 243 129 0 0 0 0 0 0 242 243 129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 184 53 86 184 53 86 184 53 86 184 53 86 0 0 0 0 0 0 184 53 86 184 53 86 184 53 86 184 53 86 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 186 54 85 186 54 85 186 54 85 186 54 85 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 196 60 78 196 60 78 196 60 78 196 60 78 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 197 61 77 197 61 77 197 61 77 197 61 77 0 0 0 0 0 0 197 61 77 197 61 77 197 61 77 197 61 77 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 197 61 77 197 61 77 199 62 76 199 62 76 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 204 65 72 204 65 72 204 65 72 204 65 72 0 0 0 0 0 0 204 65 72 204 65 72 204 65 72 204 65 72 204 65 72 204 65 72 204 65 72 0 0 0 0 0 0 205 66 71 205 66 71 205 66 71 205 66 71 0 0 0 0 0 0 210 71 66 210 71 66 210 71 66 210 71 66 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 217 77 61 217 77 61 217 77 61 217 77 61 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 218 78 59 218 78 59 218 78 59 218 78 59 0 0 0 0 0 0 219 79 58 219 79 58 219 79 58 219 79 58 219 79 58 219 79 58 219 79 58 0 0 0 0 0 0 228 90 49 228 90 49 228 90 49 228 90 49 0 0 0 0 0 0 228 90 49 228 90 49 228 90 49 228 90 49 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 231 95 44 231 95 44 231 95 44 231 95 44 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 240 112 30 240 112 30 240 112 30 240 112 30 0 0 0 0 0 0 242 116 28 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 242 117 26 242 117 26 242 117 26 242 117 26 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 245 126 20 0 0 0 0 0 0 245 126 20 245 126 20 245 126 20 245 126 20 0 0 0 0 0 0 247 131 16 247 131 16 247 131 16 247 131 16 0 0 0 0 0 0 250 147 6 250 147 6 250 147 6 250 147 6 250 147 6 250 147 6 250 147 6 0 0 0 0 0 0 250 147 6 250 147 6 250 147 6 250 147 6 0 0 0 0 0 0 250 147 6 250 147 6 250 147 6 250 147 6 0 0 0 0 0 0 251 155 6 251 155 6 251 155 6 251 155 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 155 6 0 0 0 0 0 0 251 155 6 251 155 6 251 155 6 251 155 6 251 155 6 251 155 6 251 155 6 251 155 6 251 155 6 251 155 6 0 0 0 0 0 0 250 187 33 250 187 33 250 187 33 250 187 33 250 187 33 250 187 33 250 187 33 250 187 33 250 187 33 250 187 33 0 0 0 0 0 0 250 187 33 250 187 33 250 187 33 250 187 33 0 0 0 0 0 0 250 191 37 250 191 37 250 191 37 250 191 37 0 0 0 0 0 0 250 193 40 250 193 40 250 193 40 250 193 40 0 0 0 0 0 0 250 193 40 0 0 0 0 0 0 249 195 42 249 195 42 249 195 42 249 195 42 249 195 42 249 195 42 249 195 42 0 0 0 0 0 0 249 199 47 249 199 47 249 199 47 249 199 47 0 0 0 0 0 0 243 222 82 243 222 82 243 222 82 243 222 82 243 222 82 243 222 82 243 222 82 243 222 82 243 222 82 243 222 82 0 0 0 0 0 0 243 222 82 243 222 82 243 222 82 243 222 82 0 0 0 0 0 0 243 224 86 0 0 0 0 0 0 243 226 89 243 226 89 243 226 89 243 226 89 243 226 89 243 226 89 243 226 89 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 241 232 100 241 232 100 241 232 100 241 232 100 241 232 100 241 232 100 241 232 100 241 232 100 241 232 100 241 232 100 241 232 100 241 232 100 241 232 100 0 0 0 0 0 0 241 232 100 0 0 0 0 0 0 241 242 125 241 242 125 241 242 125 241 242 125 0 0 0 0 0 0 241 242 125 0 0 0 0 0 0 242 243 129 242 243 129 242 243 129 242 243 129 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 240 112 30 0 0 0 0 0 0 242 116 28 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 245 126 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 147 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 147 6 0 0 0 0 0 0 250 147 6 0 0 0 0 0 0 250 147 6 0 0 0 0 0 0 250 147 6 0 0 0 0 0 0 251 155 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 155 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 155 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 187 33 0 0 0 0 0 0 250 187 33 0 0 0 0 0 0 250 187 33 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 250 193 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 193 40 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 199 47 0 0 0 0 0 0 243 222 82 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 222 82 0 0 0 0 0 0 243 222 82 0 0 0 0 0 0 243 224 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 226 89 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 232 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 242 125 0 0 0 0 0 0 241 242 125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 197 61 77 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 240 112 30 0 0 0 0 0 0 242 116 28 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 245 126 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 147 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 147 6 0 0 0 0 0 0 250 147 6 0 0 0 0 0 0 250 147 6 0 0 0 0 0 0 250 147 6 0 0 0 0 0 0 251 155 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 155 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 155 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 187 33 0 0 0 0 0 0 250 187 33 0 0 0 0 0 0 250 187 33 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 250 193 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 193 40 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 199 47 0 0 0 0 0 0 243 222 82 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 222 82 0 0 0 0 0 0 243 222 82 0 0 0 0 0 0 243 224 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 226 89 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 232 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 242 125 0 0 0 0 0 0 241 242 125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 184 53 86 184 53 86 184 53 86 184 53 86 184 53 86 184 53 86 184 53 86 184 53 86 184 53 86 184 53 86 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 196 60 78 196 60 78 196 60 78 196 60 78 0 0 0 0 0 0 196 60 78 196 60 78 196 60 78 196 60 78 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 197 61 77 197 61 77 197 61 77 197 61 77 0 0 0 0 0 0 197 61 77 197 61 77 197 61 77 197 61 77 197 61 77 197 61 77 197 61 77 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 199 62 76 199 62 76 199 62 76 199 62 76 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 204 65 72 204 65 72 204 65 72 204 65 72 0 0 0 0 0 0 204 65 72 204 65 72 204 65 72 204 65 72 0 0 0 0 0 0 205 66 71 205 66 71 205 66 71 205 66 71 0 0 0 0 0 0 210 71 66 210 71 66 210 71 66 210 71 66 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 217 77 61 217 77 61 217 77 61 217 77 61 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 219 79 58 219 79 58 219 79 58 219 79 58 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 228 90 49 228 90 49 228 90 49 228 90 49 0 0 0 0 0 0 230 94 45 230 94 45 230 94 45 230 94 45 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 231 95 44 231 95 44 231 95 44 231 95 44 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 235 101 39 235 101 39 235 101 39 235 101 39 0 0 0 0 0 0 240 112 30 240 112 30 240 112 30 240 112 30 240 112 30 240 112 30 240 112 30 0 0 0 0 0 0 242 116 28 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 242 117 26 242 117 26 242 117 26 242 117 26 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 245 126 20 245 126 20 245 126 20 245 126 20 245 126 20 245 126 20 245 126 20 245 126 20 245 126 20 245 126 20 245 126 20 245 126 20 245 126 20 0 0 0 0 0 0 250 147 6 0 0 0 0 0 0 250 147 6 250 147 6 250 147 6 250 147 6 0 0 0 0 0 0 250 147 6 0 0 0 0 0 0 250 147 6 250 147 6 250 147 6 250 147 6 0 0 0 0 0 0 250 147 6 0 0 0 0 0 0 251 155 6 251 155 6 251 155 6 251 155 6 251 155 6 251 155 6 251 155 6 251 155 6 251 155 6 251 155 6 0 0 0 0 0 0 251 153 6 251 153 6 251 153 6 251 153 6 0 0 0 0 0 0 251 153 6 251 153 6 251 155 6 251 155 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 187 33 250 187 33 250 187 33 250 187 33 0 0 0 0 0 0 250 187 33 250 187 33 250 187 33 250 187 33 0 0 0 0 0 0 250 187 33 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 250 193 40 250 193 40 250 193 40 250 193 40 0 0 0 0 0 0 250 193 40 0 0 0 0 0 0 249 195 42 249 195 42 249 195 42 249 195 42 0 0 0 0 0 0 249 199 47 249 199 47 249 199 47 249 199 47 0 0 0 0 0 0 249 199 47 0 0 0 0 0 0 243 222 82 243 222 82 243 222 82 243 222 82 243 222 82 243 222 82 243 222 82 243 222 82 243 222 82 243 222 82 243 222 82 243 222 82 243 222 82 0 0 0 0 0 0 243 222 82 0 0 0 0 0 0 243 224 86 0 0 0 0 0 0 243 226 89 243 226 89 243 226 89 243 226 89 243 226 89 243 226 89 243 226 89 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 242 230 96 242 230 96 242 230 96 242 230 96 0 0 0 0 0 0 242 230 96 242 230 96 242 230 96 242 230 96 0 0 0 0 0 0 241 232 100 241 232 100 241 232 100 241 232 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 242 125 241 242 125 241 242 125 241 242 125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 184 53 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 240 112 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 116 28 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 126 20 0 0 0 0 0 0 250 147 6 0 0 0 0 0 0 250 147 6 0 0 0 0 0 0 250 147 6 0 0 0 0 0 0 250 147 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 147 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 153 6 0 0 0 0 0 0 251 153 6 0 0 0 0 0 0 251 153 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 187 33 0 0 0 0 0 0 250 187 33 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 187 33 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 193 40 0 0 0 0 0 0 250 193 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 249 199 47 0 0 0 0 0 0 249 199 47 0 0 0 0 0 0 249 199 47 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 222 82 0 0 0 0 0 0 243 224 86 0 0 0 0 0 0 243 226 89 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 242 230 96 0 0 0 0 0 0 242 230 96 0 0 0 0 0 0 242 230 96 0 0 0 0 0 0 242 230 96 0 0 0 0 0 0 241 232 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 205 66 71 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 219 79 58 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 240 112 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 116 28 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 126 20 0 0 0 0 0 0 250 147 6 0 0 0 0 0 0 250 147 6 0 0 0 0 0 0 250 147 6 0 0 0 0 0 0 250 147 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 147 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 153 6 0 0 0 0 0 0 251 153 6 0 0 0 0 0 0 251 153 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 187 33 0 0 0 0 0 0 250 187 33 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 187 33 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 193 40 0 0 0 0 0 0 250 193 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 195 42 0 0 0 0 0 0 249 199 47 0 0 0 0 0 0 249 199 47 0 0 0 0 0 0 249 199 47 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 222 82 0 0 0 0 0 0 243 224 86 0 0 0 0 0 0 243 226 89 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 242 230 96 0 0 0 0 0 0 242 230 96 0 0 0 0 0 0 242 230 96 0 0 0 0 0 0 242 230 96 0 0 0 0 0 0 241 232 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 186 54 85 186 54 85 186 54 85 186 54 85 186 54 85 186 54 85 186 54 85 186 54 85 186 54 85 186 54 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 196 60 78 196 60 78 196 60 78 196 60 78 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 199 62 76 199 62 76 199 62 76 199 62 76 199 62 76 199 62 76 199 62 76 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 199 62 76 199 62 76 199 62 76 199 62 76 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 199 62 76 199 62 76 199 62 76 199 62 76 199 62 76 199 62 76 199 62 76 199 62 76 199 62 76 199 62 76 0 0 0 0 0 0 204 65 72 204 65 72 204 65 72 204 65 72 204 65 72 204 65 72 204 65 72 204 65 72 204 65 72 204 65 72 0 0 0 0 0 0 205 66 71 205 66 71 205 66 71 205 66 71 205 66 71 205 66 71 205 66 71 0 0 0 0 0 0 210 71 66 210 71 66 210 71 66 210 71 66 210 71 66 210 71 66 210 71 66 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 217 77 61 217 77 61 217 77 61 217 77 61 217 77 61 217 77 61 217 77 61 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 219 79 58 219 79 58 219 79 58 219 79 58 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 230 94 45 230 94 45 230 94 45 230 94 45 0 0 0 0 0 0 231 95 44 231 95 44 231 95 44 231 95 44 231 95 44 231 95 44 231 95 44 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 240 112 30 240 112 30 240 112 30 240 112 30 0 0 0 0 0 0 240 112 30 240 112 30 240 112 30 240 112 30 0 0 0 0 0 0 242 116 28 242 116 28 242 116 28 242 116 28 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 242 117 26 242 117 26 242 117 26 242 117 26 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 245 126 20 245 126 20 245 126 20 245 126 20 245 126 20 245 126 20 245 126 20 245 126 20 245 126 20 245 126 20 0 0 0 0 0 0 245 126 20 0 0 0 0 0 0 250 147 6 0 0 0 0 0 0 250 147 6 0 0 0 0 0 0 250 147 6 250 147 6 250 147 6 250 147 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 147 6 250 147 6 250 147 6 250 147 6 0 0 0 0 0 0 250 151 6 250 151 6 250 151 6 250 151 6 0 0 0 0 0 0 251 153 6 251 153 6 251 153 6 251 153 6 251 153 6 251 153 6 251 153 6 0 0 0 0 0 0 251 153 6 0 0 0 0 0 0 251 153 6 0 0 0 0 0 0 250 187 33 250 187 33 250 187 33 250 187 33 250 187 33 250 187 33 250 187 33 0 0 0 0 0 0 250 187 33 250 187 33 250 187 33 250 187 33 250 187 33 250 187 33 250 187 33 250 187 33 250 187 33 250 187 33 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 250 193 40 250 193 40 250 193 40 250 193 40 0 0 0 0 0 0 250 193 40 0 0 0 0 0 0 250 193 40 250 193 40 249 195 42 249 195 42 0 0 0 0 0 0 249 199 47 0 0 0 0 0 0 249 199 47 249 199 47 249 199 47 249 199 47 0 0 0 0 0 0 244 220 79 244 220 79 244 220 79 244 220 79 0 0 0 0 0 0 244 220 79 244 220 79 244 220 79 244 220 79 244 220 79 244 220 79 244 220 79 0 0 0 0 0 0 243 222 82 0 0 0 0 0 0 243 224 86 0 0 0 0 0 0 243 226 89 243 226 89 243 226 89 243 226 89 243 226 89 243 226 89 243 226 89 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 242 230 96 0 0 0 0 0 0 242 230 96 242 230 96 242 230 96 242 230 96 0 0 0 0 0 0 242 230 96 0 0 0 0 0 0 241 232 100 241 232 100 242 230 96 242 230 96 242 230 96 242 230 96 242 230 96 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 240 112 30 0 0 0 0 0 0 240 112 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 240 112 30 0 0 0 0 0 0 242 116 28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 245 126 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 126 20 0 0 0 0 0 0 245 126 20 0 0 0 0 0 0 250 147 6 0 0 0 0 0 0 250 147 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 147 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 251 153 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 153 6 0 0 0 0 0 0 251 153 6 0 0 0 0 0 0 250 187 33 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 250 193 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 193 40 0 0 0 0 0 0 250 193 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 199 47 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 243 222 82 0 0 0 0 0 0 243 224 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 226 89 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 242 230 96 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 230 96 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 230 96 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 186 54 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 210 71 66 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 218 78 59 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 240 112 30 0 0 0 0 0 0 240 112 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 240 112 30 0 0 0 0 0 0 242 116 28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 245 126 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 126 20 0 0 0 0 0 0 245 126 20 0 0 0 0 0 0 250 147 6 0 0 0 0 0 0 250 147 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 147 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 251 153 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 153 6 0 0 0 0 0 0 251 153 6 0 0 0 0 0 0 250 187 33 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 250 193 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 193 40 0 0 0 0 0 0 250 193 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 199 47 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 243 222 82 0 0 0 0 0 0 243 224 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 226 89 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 242 230 96 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 230 96 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 230 96 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 186 54 85 186 54 85 186 54 85 186 54 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 196 60 78 196 60 78 196 60 78 196 60 78 0 0 0 0 0 0 199 62 76 199 62 76 199 62 76 199 62 76 0 0 0 0 0 0 199 62 76 199 62 76 199 62 76 199 62 76 199 62 76 199 62 76 199 62 76 0 0 0 0 0 0 199 62 76 199 62 76 199 62 76 199 62 76 0 0 0 0 0 0 199 62 76 199 62 76 199 62 76 199 62 76 199 62 76 199 62 76 199 62 76 0 0 0 0 0 0 203 64 73 203 64 73 203 64 73 203 64 73 0 0 0 0 0 0 203 64 73 203 64 73 203 64 73 203 64 73 0 0 0 0 0 0 204 65 72 204 65 72 204 65 72 204 65 72 0 0 0 0 0 0 212 72 65 212 72 65 212 72 65 212 72 65 212 72 65 210 71 66 210 71 66 0 0 0 0 0 0 215 75 62 215 75 62 215 75 62 215 75 62 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 217 77 61 217 77 61 217 77 61 217 77 61 217 77 61 217 77 61 217 77 61 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 218 78 59 218 78 59 218 78 59 218 78 59 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 228 90 49 228 90 49 228 90 49 228 90 49 228 90 49 228 90 49 228 90 49 0 0 0 0 0 0 230 94 45 230 94 45 230 94 45 230 94 45 0 0 0 0 0 0 231 95 44 231 95 44 231 95 44 231 95 44 231 95 44 231 95 44 231 95 44 231 95 44 231 95 44 231 95 44 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 240 112 30 0 0 0 0 0 0 240 112 30 240 112 30 240 112 30 240 112 30 240 112 30 240 112 30 240 112 30 0 0 0 0 0 0 242 116 28 242 116 28 242 116 28 242 116 28 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 242 117 26 242 117 26 242 117 26 242 117 26 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 245 126 20 245 126 20 245 126 20 245 126 20 245 126 20 245 126 20 245 126 20 0 0 0 0 0 0 245 126 20 245 126 20 245 126 20 245 126 20 0 0 0 0 0 0 250 147 6 250 147 6 250 147 6 250 147 6 0 0 0 0 0 0 250 147 6 250 147 6 250 147 6 250 147 6 250 147 6 250 147 6 250 147 6 250 147 6 250 147 6 250 147 6 0 0 0 0 0 0 250 151 6 250 151 6 250 151 6 250 151 6 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 251 153 6 251 153 6 251 153 6 251 153 6 251 153 6 251 153 6 251 153 6 0 0 0 0 0 0 251 153 6 0 0 0 0 0 0 251 153 6 0 0 0 0 0 0 250 187 33 250 187 33 250 187 33 250 187 33 250 187 33 250 187 33 250 187 33 0 0 0 0 0 0 250 191 37 250 191 37 250 191 37 250 191 37 250 191 37 250 191 37 250 191 37 0 0 0 0 0 0 250 191 37 250 191 37 250 191 37 250 191 37 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 250 193 40 250 193 40 250 193 40 250 193 40 0 0 0 0 0 0 250 193 40 250 193 40 250 193 40 250 193 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 199 47 249 199 47 249 199 47 249 199 47 249 199 47 249 199 47 249 199 47 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 244 220 79 244 220 79 244 220 79 244 220 79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 220 79 244 220 79 243 222 82 243 222 82 0 0 0 0 0 0 243 224 86 0 0 0 0 0 0 243 226 89 243 226 89 243 226 89 243 226 89 0 0 0 0 0 0 243 226 89 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 242 230 96 242 230 96 242 230 96 242 230 96 242 230 96 242 230 96 242 230 96 0 0 0 0 0 0 242 230 96 0 0 0 0 0 0 242 230 96 242 230 96 242 230 96 242 230 96 0 0 0 0 0 0 242 230 96 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 203 64 73 0 0 0 0 0 0 203 64 73 0 0 0 0 0 0 203 64 73 0 0 0 0 0 0 203 64 73 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 212 72 65 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 240 112 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 116 28 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 126 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 147 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 153 6 0 0 0 0 0 0 251 153 6 0 0 0 0 0 0 251 153 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 187 33 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 193 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 199 47 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 224 86 0 0 0 0 0 0 243 226 89 0 0 0 0 0 0 243 226 89 0 0 0 0 0 0 243 226 89 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 230 96 0 0 0 0 0 0 242 230 96 0 0 0 0 0 0 242 230 96 0 0 0 0 0 0 242 230 96 0 0 0 0 0 0 242 230 96 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 199 62 76 0 0 0 0 0 0 203 64 73 0 0 0 0 0 0 203 64 73 0 0 0 0 0 0 203 64 73 0 0 0 0 0 0 203 64 73 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 212 72 65 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 228 90 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 240 112 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 116 28 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 126 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 147 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 153 6 0 0 0 0 0 0 251 153 6 0 0 0 0 0 0 251 153 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 187 33 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 193 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 249 199 47 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 224 86 0 0 0 0 0 0 243 226 89 0 0 0 0 0 0 243 226 89 0 0 0 0 0 0 243 226 89 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 230 96 0 0 0 0 0 0 242 230 96 0 0 0 0 0 0 242 230 96 0 0 0 0 0 0 242 230 96 0 0 0 0 0 0 242 230 96 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 200 62 75 200 62 75 200 62 75 200 62 75 0 0 0 0 0 0 200 62 75 200 62 75 200 62 75 200 62 75 200 62 75 200 62 75 200 62 75 0 0 0 0 0 0 199 62 76 199 62 76 199 62 76 199 62 76 199 62 76 199 62 76 199 62 76 199 62 76 199 62 76 199 62 76 0 0 0 0 0 0 203 64 73 0 0 0 0 0 0 203 64 73 203 64 73 203 64 73 203 64 73 0 0 0 0 0 0 203 64 73 0 0 0 0 0 0 204 65 72 204 65 72 204 65 72 204 65 72 0 0 0 0 0 0 212 72 65 212 72 65 212 72 65 212 72 65 0 0 0 0 0 0 215 75 62 215 75 62 215 75 62 215 75 62 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 215 75 62 215 75 62 217 77 61 217 77 61 0 0 0 0 0 0 217 77 61 217 77 61 217 77 61 217 77 61 217 77 61 217 77 61 217 77 61 0 0 0 0 0 0 229 91 48 229 91 48 229 91 48 229 91 48 0 0 0 0 0 0 228 90 49 228 90 49 228 90 49 228 90 49 228 90 49 228 90 49 228 90 49 228 90 49 229 91 48 229 91 48 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 231 95 44 231 95 44 231 95 44 231 95 44 0 0 0 0 0 0 232 97 43 232 97 43 232 97 43 232 97 43 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 240 112 30 240 112 30 240 112 30 240 112 30 0 0 0 0 0 0 242 116 28 242 116 28 242 116 28 242 116 28 242 116 28 242 116 28 242 116 28 242 116 28 242 116 28 242 116 28 0 0 0 0 0 0 242 117 26 242 117 26 242 117 26 242 117 26 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 242 117 26 242 117 26 242 117 26 242 117 26 0 0 0 0 0 0 245 126 20 245 126 20 245 126 20 245 126 20 0 0 0 0 0 0 245 124 21 245 124 21 245 124 21 245 124 21 245 124 21 245 124 21 245 124 21 245 124 21 245 124 21 245 124 21 0 0 0 0 0 0 250 147 6 250 147 6 250 147 6 250 147 6 0 0 0 0 0 0 250 151 6 250 151 6 250 151 6 250 151 6 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 251 153 6 251 153 6 251 153 6 251 153 6 251 153 6 251 153 6 251 153 6 0 0 0 0 0 0 251 153 6 0 0 0 0 0 0 251 153 6 0 0 0 0 0 0 250 187 33 250 187 33 250 187 33 250 187 33 250 187 33 250 187 33 250 187 33 0 0 0 0 0 0 250 191 37 250 191 37 250 191 37 250 191 37 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 250 191 37 250 191 37 250 191 37 250 191 37 0 0 0 0 0 0 250 193 40 250 193 40 250 193 40 250 193 40 0 0 0 0 0 0 248 201 49 248 201 49 249 199 47 249 199 47 249 199 47 249 199 47 249 199 47 249 199 47 249 199 47 249 199 47 249 199 47 249 199 47 249 199 47 249 199 47 249 199 47 249 199 47 0 0 0 0 0 0 244 220 79 244 220 79 244 220 79 244 220 79 244 220 79 244 220 79 244 220 79 244 220 79 244 220 79 244 220 79 244 220 79 244 220 79 244 220 79 0 0 0 0 0 0 243 224 86 243 224 86 243 224 86 243 224 86 0 0 0 0 0 0 243 226 89 0 0 0 0 0 0 243 226 89 243 226 89 243 226 89 243 226 89 0 0 0 0 0 0 242 228 93 242 228 93 242 228 93 242 228 93 0 0 0 0 0 0 242 230 96 242 230 96 242 230 96 242 230 96 0 0 0 0 0 0 242 230 96 242 230 96 242 230 96 242 230 96 0 0 0 0 0 0 242 230 96 242 230 96 242 230 96 242 230 96 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 203 64 73 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 203 64 73 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 212 72 65 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 231 95 44 0 0 0 0 0 0 232 97 43 0 0 0 0 0 0 232 97 43 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 240 112 30 0 0 0 0 0 0 242 116 28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 245 126 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 147 6 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 251 153 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 153 6 0 0 0 0 0 0 251 153 6 0 0 0 0 0 0 250 187 33 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 193 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 201 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 243 224 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 226 89 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 242 230 96 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 196 60 78 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 203 64 73 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 203 64 73 0 0 0 0 0 0 204 65 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 212 72 65 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 97 43 0 0 0 0 0 0 232 97 43 0 0 0 0 0 0 232 97 43 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 240 112 30 0 0 0 0 0 0 242 116 28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 147 6 0 0 0 0 0 0 250 149 6 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 251 153 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 153 6 0 0 0 0 0 0 251 153 6 0 0 0 0 0 0 250 187 33 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 193 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 201 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 243 224 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 226 89 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 242 230 96 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 196 60 78 196 60 78 196 60 78 196 60 78 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 200 62 75 200 62 75 200 62 75 200 62 75 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 200 62 75 200 62 75 200 62 75 200 62 75 0 0 0 0 0 0 200 62 75 200 62 75 200 62 75 200 62 75 0 0 0 0 0 0 201 63 74 201 63 74 201 63 74 201 63 74 0 0 0 0 0 0 203 64 73 203 64 73 203 64 73 203 64 73 203 64 73 203 64 73 203 64 73 0 0 0 0 0 0 203 64 73 0 0 0 0 0 0 204 65 72 204 65 72 203 64 73 203 64 73 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 212 72 65 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 215 75 62 215 75 62 215 75 62 215 75 62 0 0 0 0 0 0 215 75 62 215 75 62 215 75 62 215 75 62 0 0 0 0 0 0 217 77 61 217 77 61 217 77 61 217 77 61 0 0 0 0 0 0 217 77 61 217 77 61 217 77 61 217 77 61 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 229 91 48 229 91 48 229 91 48 229 91 48 229 91 48 229 91 48 229 91 48 0 0 0 0 0 0 230 94 45 230 94 45 230 94 45 230 94 45 0 0 0 0 0 0 232 97 43 232 97 43 232 97 43 232 97 43 0 0 0 0 0 0 232 97 43 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 241 114 29 241 114 29 240 112 30 240 112 30 0 0 0 0 0 0 242 116 28 242 116 28 242 116 28 242 116 28 242 116 28 242 116 28 242 116 28 242 116 28 242 116 28 242 116 28 242 116 28 242 116 28 242 116 28 0 0 0 0 0 0 242 117 26 242 117 26 242 117 26 242 117 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 245 124 21 245 124 21 245 124 21 245 124 21 0 0 0 0 0 0 245 124 21 245 124 21 245 124 21 245 124 21 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 250 147 6 250 147 6 250 147 6 250 147 6 0 0 0 0 0 0 250 149 6 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 250 151 6 250 151 6 250 151 6 250 151 6 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 251 153 6 251 153 6 251 153 6 251 153 6 0 0 0 0 0 0 251 153 6 251 153 6 251 153 6 251 153 6 0 0 0 0 0 0 251 153 6 0 0 0 0 0 0 250 187 33 250 187 33 250 189 35 250 189 35 0 0 0 0 0 0 250 191 37 250 191 37 250 191 37 250 191 37 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 250 191 37 250 191 37 250 191 37 250 191 37 0 0 0 0 0 0 250 191 37 250 191 37 250 193 40 250 193 40 0 0 0 0 0 0 250 193 40 250 193 40 250 193 40 250 193 40 0 0 0 0 0 0 248 201 49 0 0 0 0 0 0 248 201 49 248 201 49 248 201 49 248 201 49 248 201 49 248 201 49 248 201 49 248 201 49 248 201 49 248 201 49 248 201 49 248 201 49 248 201 49 0 0 0 0 0 0 244 220 79 244 220 79 244 220 79 244 220 79 244 220 79 244 220 79 244 220 79 0 0 0 0 0 0 244 220 79 244 220 79 244 220 79 244 220 79 0 0 0 0 0 0 243 224 86 243 224 86 243 224 86 243 224 86 0 0 0 0 0 0 243 226 89 243 226 89 243 226 89 243 226 89 243 226 89 243 226 89 243 226 89 243 226 89 243 226 89 243 226 89 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 242 230 96 242 230 96 242 230 96 242 230 96 242 230 96 242 230 96 242 230 96 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 201 63 74 0 0 0 0 0 0 201 63 74 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 203 64 73 0 0 0 0 0 0 203 64 73 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 203 64 73 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 212 72 65 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 97 43 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 241 114 29 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 116 28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 250 147 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 149 6 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 153 6 0 0 0 0 0 0 251 153 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 153 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 189 35 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 193 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 193 40 0 0 0 0 0 0 248 201 49 0 0 0 0 0 0 248 201 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 201 49 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 224 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 226 89 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 230 96 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 201 63 74 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 203 64 73 0 0 0 0 0 0 203 64 73 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 203 64 73 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 212 72 65 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 97 43 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 241 114 29 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 116 28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 117 26 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 250 149 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 149 6 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 153 6 0 0 0 0 0 0 251 153 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 153 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 189 35 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 193 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 193 40 0 0 0 0 0 0 248 201 49 0 0 0 0 0 0 248 201 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 201 49 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 224 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 226 89 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 230 96 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 200 62 75 200 62 75 200 62 75 200 62 75 0 0 0 0 0 0 200 62 75 200 62 75 200 62 75 200 62 75 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 200 62 75 200 62 75 200 62 75 200 62 75 0 0 0 0 0 0 201 63 74 201 63 74 201 63 74 201 63 74 0 0 0 0 0 0 203 64 73 203 64 73 203 64 73 203 64 73 0 0 0 0 0 0 203 64 73 203 64 73 203 64 73 203 64 73 203 64 73 203 64 73 203 64 73 0 0 0 0 0 0 212 72 65 212 72 65 212 72 65 212 72 65 0 0 0 0 0 0 215 75 62 215 75 62 215 75 62 215 75 62 215 75 62 215 75 62 215 75 62 215 75 62 215 75 62 215 75 62 215 75 62 215 75 62 215 75 62 0 0 0 0 0 0 214 74 63 214 74 63 214 74 63 214 74 63 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 217 77 61 217 77 61 217 77 61 217 77 61 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 229 91 48 229 91 48 229 91 48 229 91 48 229 91 48 229 91 48 229 91 48 0 0 0 0 0 0 230 94 45 230 94 45 230 94 45 230 94 45 230 94 45 230 94 45 230 94 45 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 232 97 43 232 97 43 232 97 43 232 97 43 232 97 43 232 97 43 232 97 43 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 241 114 29 241 114 29 241 114 29 241 114 29 241 114 29 241 114 29 241 114 29 0 0 0 0 0 0 241 114 29 241 114 29 241 114 29 241 114 29 0 0 0 0 0 0 241 114 29 241 114 29 242 116 28 242 116 28 0 0 0 0 0 0 243 119 25 243 119 25 243 119 25 243 119 25 243 119 25 243 119 25 243 119 25 243 119 25 242 117 26 242 117 26 0 0 0 0 0 0 245 124 21 245 124 21 245 124 21 245 124 21 0 0 0 0 0 0 245 124 21 245 124 21 245 124 21 245 124 21 0 0 0 0 0 0 245 124 21 245 124 21 245 124 21 245 124 21 0 0 0 0 0 0 250 149 6 250 149 6 250 149 6 250 149 6 0 0 0 0 0 0 250 149 6 0 0 0 0 0 0 250 151 6 250 151 6 250 151 6 250 151 6 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 251 153 6 251 153 6 251 153 6 251 153 6 0 0 0 0 0 0 251 153 6 251 153 6 251 153 6 251 153 6 0 0 0 0 0 0 251 153 6 0 0 0 0 0 0 250 189 35 250 189 35 250 189 35 250 189 35 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 250 191 37 250 191 37 250 191 37 250 191 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 193 40 250 193 40 250 193 40 250 193 40 250 193 40 250 193 40 250 193 40 0 0 0 0 0 0 250 193 40 250 193 40 250 193 40 250 193 40 0 0 0 0 0 0 248 201 49 248 201 49 248 201 49 248 201 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 201 49 248 201 49 248 201 49 248 201 49 248 201 49 248 201 49 248 201 49 0 0 0 0 0 0 244 220 79 244 220 79 244 220 79 244 220 79 0 0 0 0 0 0 244 220 79 244 220 79 244 220 79 244 220 79 0 0 0 0 0 0 244 220 79 244 220 79 244 220 79 244 220 79 0 0 0 0 0 0 243 224 86 243 224 86 243 224 86 243 224 86 0 0 0 0 0 0 243 226 89 243 226 89 243 226 89 243 226 89 243 226 89 243 226 89 243 226 89 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 242 228 93 242 228 93 242 228 93 242 228 93 0 0 0 0 0 0 242 230 96 242 230 96 242 230 96 242 230 96 242 230 96 242 230 96 242 230 96 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 201 63 74 0 0 0 0 0 0 203 64 73 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 212 72 65 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 232 97 43 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 114 29 0 0 0 0 0 0 241 114 29 0 0 0 0 0 0 241 114 29 0 0 0 0 0 0 241 114 29 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 119 25 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 149 6 0 0 0 0 0 0 250 149 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 251 153 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 153 6 0 0 0 0 0 0 251 153 6 0 0 0 0 0 0 250 189 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 193 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 193 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 201 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 224 86 0 0 0 0 0 0 243 226 89 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 230 96 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 201 63 74 0 0 0 0 0 0 203 64 73 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 212 72 65 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 217 77 61 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 232 97 43 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 114 29 0 0 0 0 0 0 241 114 29 0 0 0 0 0 0 241 114 29 0 0 0 0 0 0 241 114 29 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 119 25 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 149 6 0 0 0 0 0 0 250 149 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 251 153 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 251 153 6 0 0 0 0 0 0 251 153 6 0 0 0 0 0 0 250 189 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 193 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 193 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 201 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 224 86 0 0 0 0 0 0 243 226 89 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 230 96 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 200 62 75 200 62 75 200 62 75 200 62 75 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 201 63 74 201 63 74 201 63 74 201 63 74 0 0 0 0 0 0 201 63 74 0 0 0 0 0 0 203 64 73 203 64 73 203 64 73 203 64 73 203 64 73 203 64 73 203 64 73 0 0 0 0 0 0 212 72 65 212 72 65 212 72 65 212 72 65 212 72 65 212 72 65 212 72 65 0 0 0 0 0 0 213 73 64 213 73 64 213 73 64 213 73 64 0 0 0 0 0 0 215 75 62 215 75 62 215 75 62 215 75 62 215 75 62 215 75 62 215 75 62 215 75 62 215 75 62 215 75 62 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 217 77 61 217 77 61 217 77 61 217 77 61 217 77 61 217 77 61 217 77 61 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 230 92 46 230 92 46 230 92 46 230 92 46 230 92 46 230 92 46 230 92 46 0 0 0 0 0 0 230 94 45 230 94 45 230 94 45 230 94 45 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 232 97 43 232 97 43 232 97 43 232 97 43 232 97 43 232 97 43 232 97 43 0 0 0 0 0 0 235 101 39 235 101 39 235 101 39 235 101 39 0 0 0 0 0 0 241 114 29 241 114 29 241 114 29 241 114 29 0 0 0 0 0 0 241 114 29 0 0 0 0 0 0 241 114 29 0 0 0 0 0 0 241 114 29 241 114 29 241 114 29 241 114 29 0 0 0 0 0 0 243 119 25 243 119 25 243 119 25 243 119 25 0 0 0 0 0 0 243 119 25 243 119 25 243 119 25 243 119 25 0 0 0 0 0 0 243 121 24 243 121 24 243 121 24 243 121 24 0 0 0 0 0 0 245 124 21 245 124 21 245 124 21 245 124 21 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 124 21 245 124 21 245 124 21 245 124 21 0 0 0 0 0 0 250 149 6 0 0 0 0 0 0 250 149 6 250 149 6 250 149 6 250 149 6 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 251 153 6 251 153 6 251 153 6 251 153 6 251 153 6 250 151 6 250 151 6 0 0 0 0 0 0 251 153 6 251 153 6 251 153 6 251 153 6 0 0 0 0 0 0 250 189 35 250 189 35 250 189 35 250 189 35 0 0 0 0 0 0 250 191 37 250 191 37 250 191 37 250 191 37 250 191 37 250 191 37 250 191 37 250 191 37 250 191 37 250 191 37 0 0 0 0 0 0 250 193 40 250 193 40 250 193 40 250 193 40 250 193 40 250 193 40 250 193 40 250 193 40 250 193 40 250 193 40 0 0 0 0 0 0 248 201 49 248 201 49 248 201 49 248 201 49 0 0 0 0 0 0 248 201 49 248 201 49 248 201 49 248 201 49 0 0 0 0 0 0 248 201 49 248 201 49 248 201 49 248 201 49 0 0 0 0 0 0 247 209 60 247 209 60 247 209 60 247 209 60 0 0 0 0 0 0 244 220 79 244 220 79 244 220 79 244 220 79 244 220 79 244 220 79 244 220 79 244 220 79 244 220 79 244 220 79 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 243 224 86 243 224 86 243 224 86 243 224 86 0 0 0 0 0 0 243 226 89 243 226 89 243 226 89 243 226 89 0 0 0 0 0 0 242 228 93 242 228 93 242 228 93 242 228 93 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 242 230 96 242 230 96 242 230 96 242 230 96 242 230 96 242 230 96 242 230 96 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 201 63 74 0 0 0 0 0 0 201 63 74 0 0 0 0 0 0 201 63 74 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 203 64 73 0 0 0 0 0 0 212 72 65 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 213 73 64 0 0 0 0 0 0 213 73 64 0 0 0 0 0 0 215 75 62 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 97 43 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 235 101 39 0 0 0 0 0 0 241 114 29 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 114 29 0 0 0 0 0 0 241 114 29 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 114 29 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 119 25 0 0 0 0 0 0 243 119 25 0 0 0 0 0 0 243 119 25 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 250 149 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 149 6 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 189 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 201 49 0 0 0 0 0 0 248 201 49 0 0 0 0 0 0 248 201 49 0 0 0 0 0 0 248 201 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 201 49 0 0 0 0 0 0 247 209 60 0 0 0 0 0 0 247 209 60 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 243 224 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 226 89 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 242 230 96 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 201 63 74 0 0 0 0 0 0 201 63 74 0 0 0 0 0 0 201 63 74 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 203 64 73 0 0 0 0 0 0 212 72 65 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 213 73 64 0 0 0 0 0 0 213 73 64 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 97 43 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 234 100 40 0 0 0 0 0 0 241 114 29 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 114 29 0 0 0 0 0 0 241 114 29 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 114 29 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 119 25 0 0 0 0 0 0 243 119 25 0 0 0 0 0 0 243 119 25 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 250 149 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 149 6 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 189 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 191 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 201 49 0 0 0 0 0 0 248 201 49 0 0 0 0 0 0 248 201 49 0 0 0 0 0 0 248 201 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 201 49 0 0 0 0 0 0 247 209 60 0 0 0 0 0 0 247 209 60 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 243 224 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 226 89 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 200 62 75 200 62 75 200 62 75 200 62 75 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 201 63 74 201 63 74 201 63 74 201 63 74 0 0 0 0 0 0 201 63 74 201 63 74 201 63 74 201 63 74 0 0 0 0 0 0 203 64 73 203 64 73 203 64 73 203 64 73 0 0 0 0 0 0 203 64 73 0 0 0 0 0 0 212 72 65 0 0 0 0 0 0 212 72 65 212 72 65 212 72 65 212 72 65 0 0 0 0 0 0 213 73 64 0 0 0 0 0 0 213 73 64 0 0 0 0 0 0 214 74 63 214 74 63 214 74 63 214 74 63 214 74 63 214 74 63 214 74 63 214 74 63 214 74 63 214 74 63 214 74 63 214 74 63 214 74 63 0 0 0 0 0 0 214 74 63 214 74 63 214 74 63 214 74 63 214 74 63 214 74 63 214 74 63 0 0 0 0 0 0 229 91 48 229 91 48 229 91 48 229 91 48 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 230 94 45 230 94 45 230 94 45 230 94 45 0 0 0 0 0 0 230 94 45 230 94 45 230 94 45 230 94 45 0 0 0 0 0 0 232 97 43 232 97 43 232 97 43 232 97 43 0 0 0 0 0 0 232 97 43 0 0 0 0 0 0 234 100 40 234 100 40 234 100 40 234 100 40 0 0 0 0 0 0 241 114 29 241 114 29 241 114 29 241 114 29 241 114 29 241 114 29 241 114 29 0 0 0 0 0 0 241 114 29 0 0 0 0 0 0 241 114 29 241 114 29 241 114 29 241 114 29 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 119 25 243 119 25 243 119 25 243 119 25 0 0 0 0 0 0 243 119 25 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 243 121 24 243 121 24 243 121 24 243 121 24 0 0 0 0 0 0 245 124 21 245 124 21 245 124 21 245 124 21 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 250 149 6 250 149 6 250 149 6 250 149 6 0 0 0 0 0 0 250 149 6 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 250 151 6 250 151 6 250 151 6 250 151 6 0 0 0 0 0 0 250 151 6 250 151 6 250 151 6 250 151 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 189 35 250 189 35 250 189 35 250 189 35 250 189 35 250 189 35 250 189 35 0 0 0 0 0 0 250 189 35 250 189 35 250 189 35 250 189 35 250 189 35 250 191 37 250 191 37 250 191 37 250 191 37 250 191 37 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 201 49 248 201 49 248 201 49 248 201 49 0 0 0 0 0 0 248 201 49 248 201 49 248 201 49 248 201 49 0 0 0 0 0 0 248 201 49 248 201 49 248 201 49 248 201 49 0 0 0 0 0 0 248 201 49 248 201 49 248 201 49 248 201 49 248 201 49 248 201 49 248 201 49 0 0 0 0 0 0 247 209 60 0 0 0 0 0 0 247 209 60 0 0 0 0 0 0 244 219 75 244 219 75 244 219 75 244 219 75 244 219 75 244 219 75 244 219 75 244 219 75 244 219 75 244 219 75 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 243 224 86 243 224 86 243 224 86 243 224 86 0 0 0 0 0 0 243 226 89 243 226 89 243 226 89 243 226 89 0 0 0 0 0 0 242 228 93 242 228 93 242 228 93 242 228 93 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 201 63 74 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 203 64 73 0 0 0 0 0 0 203 64 73 0 0 0 0 0 0 203 64 73 0 0 0 0 0 0 212 72 65 0 0 0 0 0 0 212 72 65 0 0 0 0 0 0 212 72 65 0 0 0 0 0 0 213 73 64 0 0 0 0 0 0 213 73 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 97 43 0 0 0 0 0 0 232 97 43 0 0 0 0 0 0 232 97 43 0 0 0 0 0 0 234 100 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 114 29 0 0 0 0 0 0 241 114 29 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 119 25 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 149 6 0 0 0 0 0 0 250 149 6 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 189 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 189 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 201 49 0 0 0 0 0 0 248 201 49 0 0 0 0 0 0 248 201 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 209 60 0 0 0 0 0 0 247 209 60 0 0 0 0 0 0 244 219 75 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 219 75 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 224 86 0 0 0 0 0 0 243 226 89 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 201 63 74 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 203 64 73 0 0 0 0 0 0 203 64 73 0 0 0 0 0 0 203 64 73 0 0 0 0 0 0 212 72 65 0 0 0 0 0 0 212 72 65 0 0 0 0 0 0 212 72 65 0 0 0 0 0 0 213 73 64 0 0 0 0 0 0 213 73 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 230 94 45 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 97 43 0 0 0 0 0 0 232 97 43 0 0 0 0 0 0 232 97 43 0 0 0 0 0 0 234 100 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 114 29 0 0 0 0 0 0 241 114 29 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 119 25 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 149 6 0 0 0 0 0 0 250 149 6 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 189 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 189 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 201 49 0 0 0 0 0 0 248 201 49 0 0 0 0 0 0 248 201 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 209 60 0 0 0 0 0 0 247 209 60 0 0 0 0 0 0 244 219 75 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 219 75 0 0 0 0 0 0 244 220 79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 224 86 0 0 0 0 0 0 243 226 89 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 200 62 75 200 62 75 200 62 75 200 62 75 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 201 63 74 0 0 0 0 0 0 201 63 74 201 63 74 201 63 74 201 63 74 201 63 74 201 63 74 201 63 74 0 0 0 0 0 0 203 64 73 0 0 0 0 0 0 203 64 73 203 64 73 203 64 73 203 64 73 0 0 0 0 0 0 212 72 65 0 0 0 0 0 0 212 72 65 0 0 0 0 0 0 212 72 65 0 0 0 0 0 0 213 73 64 0 0 0 0 0 0 213 73 64 0 0 0 0 0 0 213 73 64 213 73 64 213 73 64 213 73 64 213 73 64 213 73 64 213 73 64 0 0 0 0 0 0 214 74 63 214 74 63 214 74 63 214 74 63 0 0 0 0 0 0 214 74 63 214 74 63 214 74 63 214 74 63 214 74 63 214 74 63 214 74 63 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 230 92 46 230 92 46 230 92 46 230 92 46 0 0 0 0 0 0 230 92 46 230 92 46 230 92 46 230 92 46 0 0 0 0 0 0 230 94 45 230 94 45 230 94 45 230 94 45 230 94 45 230 92 46 230 92 46 0 0 0 0 0 0 232 97 43 232 97 43 232 97 43 232 97 43 0 0 0 0 0 0 232 97 43 232 97 43 232 97 43 232 97 43 0 0 0 0 0 0 234 100 40 234 100 40 234 100 40 234 100 40 234 100 40 234 100 40 234 100 40 234 100 40 234 100 40 234 100 40 234 100 40 234 100 40 234 100 40 0 0 0 0 0 0 241 114 29 0 0 0 0 0 0 241 114 29 241 114 29 241 114 29 241 114 29 0 0 0 0 0 0 243 119 25 243 119 25 243 119 25 243 119 25 243 119 25 243 119 25 243 119 25 243 119 25 243 119 25 243 119 25 0 0 0 0 0 0 243 121 24 243 121 24 243 121 24 243 121 24 0 0 0 0 0 0 243 121 24 243 121 24 243 121 24 243 121 24 0 0 0 0 0 0 245 124 21 245 124 21 245 124 21 245 124 21 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 250 149 6 250 149 6 250 149 6 250 149 6 0 0 0 0 0 0 250 149 6 0 0 0 0 0 0 250 151 6 250 151 6 250 151 6 250 151 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 250 189 35 250 189 35 250 189 35 250 189 35 250 189 35 250 189 35 250 189 35 0 0 0 0 0 0 250 189 35 250 189 35 250 189 35 250 189 35 250 189 35 250 189 35 250 189 35 0 0 0 0 0 0 248 203 52 248 203 52 248 201 49 248 201 49 248 201 49 248 201 49 248 201 49 248 201 49 248 201 49 248 201 49 248 201 49 248 201 49 248 201 49 0 0 0 0 0 0 248 201 49 248 201 49 248 201 49 248 201 49 0 0 0 0 0 0 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 0 0 0 0 0 0 247 207 58 247 207 58 247 207 58 247 207 58 0 0 0 0 0 0 247 209 60 0 0 0 0 0 0 247 209 60 0 0 0 0 0 0 244 219 75 244 219 75 244 219 75 244 219 75 244 219 75 244 219 75 244 219 75 0 0 0 0 0 0 244 219 75 244 219 75 244 220 79 244 220 79 0 0 0 0 0 0 243 224 86 243 224 86 243 224 86 243 224 86 0 0 0 0 0 0 243 226 89 243 226 89 243 226 89 243 226 89 243 226 89 243 226 89 243 226 89 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 201 63 74 0 0 0 0 0 0 201 63 74 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 201 63 74 0 0 0 0 0 0 203 64 73 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 212 72 65 0 0 0 0 0 0 212 72 65 0 0 0 0 0 0 212 72 65 0 0 0 0 0 0 213 73 64 0 0 0 0 0 0 213 73 64 0 0 0 0 0 0 213 73 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 213 73 64 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 232 97 43 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 234 100 40 0 0 0 0 0 0 241 114 29 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 114 29 0 0 0 0 0 0 243 119 25 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 250 149 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 149 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 250 189 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 189 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 203 52 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 203 52 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 203 52 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 247 209 60 0 0 0 0 0 0 247 209 60 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 219 75 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 224 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 226 89 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 200 62 75 0 0 0 0 0 0 201 63 74 0 0 0 0 0 0 201 63 74 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 201 63 74 0 0 0 0 0 0 203 64 73 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 212 72 65 0 0 0 0 0 0 212 72 65 0 0 0 0 0 0 212 72 65 0 0 0 0 0 0 213 73 64 0 0 0 0 0 0 213 73 64 0 0 0 0 0 0 213 73 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 232 97 43 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 234 100 40 0 0 0 0 0 0 241 114 29 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 114 29 0 0 0 0 0 0 243 119 25 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 250 149 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 149 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 250 151 6 0 0 0 0 0 0 250 189 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 189 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 203 52 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 203 52 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 203 52 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 247 209 60 0 0 0 0 0 0 247 209 60 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 219 75 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 224 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 226 89 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 200 62 75 200 62 75 200 62 75 200 62 75 0 0 0 0 0 0 201 63 74 0 0 0 0 0 0 201 63 74 0 0 0 0 0 0 201 63 74 201 63 74 201 63 74 201 63 74 0 0 0 0 0 0 203 64 73 203 64 73 203 64 73 203 64 73 203 64 73 203 64 73 203 64 73 0 0 0 0 0 0 212 72 65 212 72 65 212 72 65 212 72 65 0 0 0 0 0 0 212 72 65 0 0 0 0 0 0 213 73 64 0 0 0 0 0 0 213 73 64 0 0 0 0 0 0 213 73 64 213 73 64 213 73 64 213 73 64 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 214 74 63 214 74 63 214 74 63 214 74 63 0 0 0 0 0 0 229 91 48 229 91 48 229 91 48 229 91 48 229 91 48 229 91 48 229 91 48 0 0 0 0 0 0 230 92 46 230 92 46 230 92 46 230 92 46 0 0 0 0 0 0 230 92 46 230 92 46 230 92 46 230 92 46 0 0 0 0 0 0 230 92 46 230 92 46 230 92 46 230 92 46 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 232 97 43 232 97 43 232 97 43 232 97 43 232 97 43 232 97 43 232 97 43 232 97 43 232 97 43 232 97 43 0 0 0 0 0 0 234 100 40 234 100 40 234 100 40 234 100 40 234 100 40 234 100 40 234 100 40 234 100 40 234 100 40 234 100 40 0 0 0 0 0 0 234 100 40 0 0 0 0 0 0 241 114 29 241 114 29 241 114 29 241 114 29 0 0 0 0 0 0 241 114 29 0 0 0 0 0 0 243 119 25 0 0 0 0 0 0 243 119 25 243 119 25 243 119 25 243 119 25 0 0 0 0 0 0 243 121 24 243 121 24 243 121 24 243 121 24 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 243 121 24 243 121 24 243 121 24 243 121 24 0 0 0 0 0 0 245 124 21 245 124 21 245 124 21 245 124 21 245 124 21 245 124 21 245 124 21 0 0 0 0 0 0 250 149 6 250 149 6 250 149 6 250 149 6 0 0 0 0 0 0 250 149 6 250 149 6 250 149 6 250 149 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 151 6 250 151 6 250 151 6 250 151 6 0 0 0 0 0 0 250 189 35 250 189 35 250 189 35 250 189 35 0 0 0 0 0 0 250 189 35 250 189 35 250 189 35 250 189 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 0 0 0 0 0 0 248 203 52 248 203 52 248 203 52 248 203 52 0 0 0 0 0 0 248 203 52 248 203 52 248 203 52 248 203 52 0 0 0 0 0 0 248 203 52 0 0 0 0 0 0 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 247 209 60 0 0 0 0 0 0 247 209 60 0 0 0 0 0 0 244 219 75 244 219 75 244 219 75 244 219 75 244 219 75 244 219 75 244 219 75 0 0 0 0 0 0 244 219 75 244 219 75 244 219 75 244 219 75 0 0 0 0 0 0 243 224 86 243 224 86 243 224 86 243 224 86 243 224 86 243 226 89 243 226 89 243 226 89 243 226 89 243 226 89 243 226 89 243 226 89 243 226 89 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 242 228 93 242 228 93 242 228 93 242 228 93 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 201 63 74 0 0 0 0 0 0 201 63 74 0 0 0 0 0 0 201 63 74 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 203 64 73 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 212 72 65 0 0 0 0 0 0 213 73 64 0 0 0 0 0 0 213 73 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 213 73 64 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 97 43 0 0 0 0 0 0 234 100 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 234 100 40 0 0 0 0 0 0 234 100 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 114 29 0 0 0 0 0 0 241 114 29 0 0 0 0 0 0 243 119 25 0 0 0 0 0 0 243 119 25 0 0 0 0 0 0 243 119 25 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 149 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 149 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 189 35 0 0 0 0 0 0 250 189 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 203 52 0 0 0 0 0 0 248 203 52 0 0 0 0 0 0 248 203 52 0 0 0 0 0 0 248 203 52 0 0 0 0 0 0 248 203 52 0 0 0 0 0 0 248 203 52 0 0 0 0 0 0 248 203 52 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 247 209 60 0 0 0 0 0 0 247 209 60 0 0 0 0 0 0 244 219 75 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 219 75 0 0 0 0 0 0 244 219 75 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 201 63 74 0 0 0 0 0 0 201 63 74 0 0 0 0 0 0 201 63 74 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 203 64 73 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 212 72 65 0 0 0 0 0 0 213 73 64 0 0 0 0 0 0 213 73 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 213 73 64 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 97 43 0 0 0 0 0 0 234 100 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 234 100 40 0 0 0 0 0 0 234 100 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 114 29 0 0 0 0 0 0 241 114 29 0 0 0 0 0 0 243 119 25 0 0 0 0 0 0 243 119 25 0 0 0 0 0 0 243 119 25 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 124 21 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 149 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 149 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 189 35 0 0 0 0 0 0 250 189 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 203 52 0 0 0 0 0 0 248 203 52 0 0 0 0 0 0 248 203 52 0 0 0 0 0 0 248 203 52 0 0 0 0 0 0 248 203 52 0 0 0 0 0 0 248 203 52 0 0 0 0 0 0 248 203 52 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 247 209 60 0 0 0 0 0 0 247 209 60 0 0 0 0 0 0 244 219 75 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 219 75 0 0 0 0 0 0 244 219 75 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 242 228 93 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 201 63 74 0 0 0 0 0 0 201 63 74 0 0 0 0 0 0 201 63 74 201 63 74 201 63 74 201 63 74 201 63 74 201 63 74 201 63 74 0 0 0 0 0 0 203 64 73 203 64 73 203 64 73 203 64 73 0 0 0 0 0 0 212 72 65 212 72 65 212 72 65 212 72 65 212 72 65 212 72 65 212 72 65 0 0 0 0 0 0 213 73 64 0 0 0 0 0 0 213 73 64 0 0 0 0 0 0 213 73 64 213 73 64 213 73 64 213 73 64 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 214 74 63 214 74 63 214 74 63 214 74 63 214 74 63 214 74 63 214 74 63 0 0 0 0 0 0 229 91 48 229 91 48 229 91 48 229 91 48 229 91 48 229 91 48 229 91 48 0 0 0 0 0 0 230 92 46 230 92 46 230 92 46 230 92 46 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 232 97 43 232 97 43 232 97 43 232 97 43 232 97 43 232 97 43 232 97 43 232 97 43 232 97 43 232 97 43 0 0 0 0 0 0 234 100 40 234 100 40 234 100 40 234 100 40 234 100 40 234 100 40 234 100 40 0 0 0 0 0 0 234 100 40 234 100 40 234 100 40 234 100 40 0 0 0 0 0 0 241 114 29 241 114 29 241 114 29 241 114 29 0 0 0 0 0 0 241 114 29 0 0 0 0 0 0 243 119 25 0 0 0 0 0 0 243 119 25 0 0 0 0 0 0 243 119 25 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 243 121 24 243 121 24 243 121 24 243 121 24 0 0 0 0 0 0 245 124 21 245 124 21 245 124 21 245 124 21 245 124 21 244 122 22 244 122 22 244 122 22 244 122 22 244 122 22 0 0 0 0 0 0 250 149 6 250 149 6 250 149 6 250 149 6 0 0 0 0 0 0 250 149 6 250 149 6 250 149 6 250 149 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 189 35 250 189 35 250 189 35 250 189 35 250 189 35 250 189 35 250 189 35 0 0 0 0 0 0 250 189 35 250 189 35 250 189 35 250 189 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 205 55 248 205 55 248 205 55 248 205 55 0 0 0 0 0 0 248 203 52 248 203 52 248 203 52 248 203 52 0 0 0 0 0 0 248 203 52 248 203 52 248 203 52 248 203 52 0 0 0 0 0 0 248 203 52 248 203 52 248 203 52 248 203 52 0 0 0 0 0 0 248 203 52 248 203 52 248 203 52 248 203 52 0 0 0 0 0 0 247 207 58 247 207 58 247 207 58 247 207 58 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 247 209 60 0 0 0 0 0 0 247 209 60 0 0 0 0 0 0 244 219 75 244 219 75 244 219 75 244 219 75 244 219 75 244 219 75 244 219 75 244 219 75 244 219 75 244 219 75 0 0 0 0 0 0 244 219 75 244 219 75 244 219 75 244 219 75 244 219 75 244 219 75 244 219 75 244 219 75 244 219 75 244 219 75 244 219 75 244 219 75 244 219 75 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 242 228 93 242 228 93 242 228 93 242 228 93 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 201 63 74 0 0 0 0 0 0 201 63 74 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 201 63 74 0 0 0 0 0 0 203 64 73 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 212 72 65 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 213 73 64 0 0 0 0 0 0 213 73 64 0 0 0 0 0 0 213 73 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 232 97 43 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 234 100 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 114 29 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 114 29 0 0 0 0 0 0 243 119 25 0 0 0 0 0 0 243 119 25 0 0 0 0 0 0 243 119 25 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 122 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 149 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 149 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 189 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 189 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 205 55 0 0 0 0 0 0 248 205 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 203 52 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 247 209 60 0 0 0 0 0 0 247 209 60 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 219 75 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 201 63 74 0 0 0 0 0 0 201 63 74 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 201 63 74 0 0 0 0 0 0 203 64 73 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 212 72 65 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 213 73 64 0 0 0 0 0 0 213 73 64 0 0 0 0 0 0 213 73 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 232 97 43 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 234 100 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 114 29 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 114 29 0 0 0 0 0 0 243 119 25 0 0 0 0 0 0 243 119 25 0 0 0 0 0 0 243 119 25 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 122 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 149 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 149 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 189 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 189 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 205 55 0 0 0 0 0 0 248 205 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 203 52 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 209 60 0 0 0 0 0 0 247 209 60 0 0 0 0 0 0 247 209 60 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 219 75 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 201 63 74 201 63 74 201 63 74 201 63 74 0 0 0 0 0 0 201 63 74 201 63 74 201 63 74 201 63 74 201 63 74 201 63 74 201 63 74 0 0 0 0 0 0 203 64 73 0 0 0 0 0 0 212 72 65 212 72 65 212 72 65 212 72 65 0 0 0 0 0 0 212 72 65 212 72 65 212 72 65 212 72 65 0 0 0 0 0 0 213 73 64 0 0 0 0 0 0 213 73 64 213 73 64 213 73 64 213 73 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 214 74 63 214 74 63 214 74 63 214 74 63 214 74 63 214 74 63 214 74 63 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 232 97 43 0 0 0 0 0 0 232 97 43 232 97 43 233 98 42 233 98 42 0 0 0 0 0 0 233 98 42 233 98 42 233 98 42 233 98 42 0 0 0 0 0 0 234 100 40 234 100 40 234 100 40 234 100 40 0 0 0 0 0 0 234 100 40 234 100 40 234 100 40 234 100 40 0 0 0 0 0 0 241 114 29 241 114 29 241 114 29 241 114 29 0 0 0 0 0 0 241 114 29 0 0 0 0 0 0 243 119 25 243 119 25 243 119 25 243 119 25 0 0 0 0 0 0 243 119 25 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 243 121 24 243 121 24 243 121 24 243 121 24 0 0 0 0 0 0 244 122 22 244 122 22 244 122 22 244 122 22 244 122 22 244 122 22 244 122 22 244 122 22 244 122 22 244 122 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 149 6 250 149 6 250 149 6 250 149 6 0 0 0 0 0 0 250 149 6 250 149 6 250 149 6 250 149 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 189 35 250 189 35 250 189 35 250 189 35 250 189 35 250 189 35 250 189 35 0 0 0 0 0 0 250 189 35 250 189 35 250 189 35 250 189 35 0 0 0 0 0 0 248 205 55 248 205 55 248 205 55 248 205 55 248 205 55 248 205 55 248 205 55 0 0 0 0 0 0 248 205 55 248 205 55 248 205 55 248 205 55 248 205 55 248 205 55 248 205 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 247 209 60 247 209 60 247 209 60 247 209 60 0 0 0 0 0 0 247 209 60 0 0 0 0 0 0 247 209 60 0 0 0 0 0 0 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 0 0 0 0 0 0 244 219 75 244 219 75 244 219 75 244 219 75 0 0 0 0 0 0 244 219 75 244 219 75 244 219 75 244 219 75 0 0 0 0 0 0 244 219 75 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 201 63 74 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 203 64 73 0 0 0 0 0 0 212 72 65 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 212 72 65 0 0 0 0 0 0 212 72 65 0 0 0 0 0 0 213 73 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 232 97 43 0 0 0 0 0 0 232 97 43 0 0 0 0 0 0 233 98 42 0 0 0 0 0 0 233 98 42 0 0 0 0 0 0 233 98 42 0 0 0 0 0 0 234 100 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 234 100 40 0 0 0 0 0 0 234 100 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 114 29 0 0 0 0 0 0 241 114 29 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 119 25 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 122 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 149 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 149 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 189 35 0 0 0 0 0 0 250 189 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 205 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 205 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 203 52 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 247 209 60 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 209 60 0 0 0 0 0 0 247 209 60 0 0 0 0 0 0 245 217 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 217 72 0 0 0 0 0 0 244 219 75 0 0 0 0 0 0 244 219 75 0 0 0 0 0 0 244 219 75 0 0 0 0 0 0 244 219 75 0 0 0 0 0 0 244 219 75 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 201 63 74 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 201 63 74 0 0 0 0 0 0 212 72 65 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 212 72 65 0 0 0 0 0 0 212 72 65 0 0 0 0 0 0 213 73 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 230 92 46 0 0 0 0 0 0 232 97 43 0 0 0 0 0 0 232 97 43 0 0 0 0 0 0 233 98 42 0 0 0 0 0 0 233 98 42 0 0 0 0 0 0 233 98 42 0 0 0 0 0 0 234 100 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 234 100 40 0 0 0 0 0 0 234 100 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 241 114 29 0 0 0 0 0 0 241 114 29 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 119 25 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 122 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 149 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 149 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 189 35 0 0 0 0 0 0 250 189 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 205 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 205 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 203 52 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 247 209 60 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 209 60 0 0 0 0 0 0 247 209 60 0 0 0 0 0 0 245 217 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 219 75 0 0 0 0 0 0 244 219 75 0 0 0 0 0 0 244 219 75 0 0 0 0 0 0 244 219 75 0 0 0 0 0 0 244 219 75 0 0 0 0 0 0 244 219 75 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 201 63 74 201 63 74 201 63 74 201 63 74 201 63 74 201 63 74 201 63 74 201 63 74 201 63 74 201 63 74 0 0 0 0 0 0 212 72 65 212 72 65 212 72 65 212 72 65 212 72 65 212 72 65 212 72 65 0 0 0 0 0 0 212 72 65 0 0 0 0 0 0 213 73 64 213 73 64 213 73 64 213 73 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 229 91 48 229 91 48 229 91 48 229 91 48 0 0 0 0 0 0 230 92 46 230 92 46 229 91 48 229 91 48 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 230 92 46 230 92 46 230 92 46 230 92 46 0 0 0 0 0 0 230 92 46 230 92 46 230 92 46 230 92 46 0 0 0 0 0 0 232 97 43 0 0 0 0 0 0 232 97 43 0 0 0 0 0 0 233 98 42 0 0 0 0 0 0 233 98 42 0 0 0 0 0 0 233 98 42 0 0 0 0 0 0 234 100 40 234 100 40 234 100 40 234 100 40 234 100 40 234 100 40 234 100 40 0 0 0 0 0 0 234 100 40 234 100 40 234 100 40 234 100 40 0 0 0 0 0 0 241 114 29 241 114 29 241 114 29 241 114 29 0 0 0 0 0 0 243 119 25 243 119 25 243 119 25 243 119 25 243 119 25 243 119 25 243 119 25 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 243 121 24 243 121 24 243 121 24 243 121 24 0 0 0 0 0 0 243 121 24 243 121 24 243 121 24 243 121 24 0 0 0 0 0 0 244 122 22 244 122 22 244 122 22 244 122 22 244 122 22 244 122 22 244 122 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 149 6 250 149 6 250 149 6 250 149 6 0 0 0 0 0 0 250 149 6 250 149 6 250 149 6 250 149 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 189 35 250 189 35 250 189 35 250 189 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 205 55 248 205 55 248 205 55 248 205 55 248 205 55 248 205 55 248 205 55 0 0 0 0 0 0 248 205 55 248 205 55 248 205 55 248 205 55 0 0 0 0 0 0 248 205 55 248 205 55 248 205 55 248 205 55 0 0 0 0 0 0 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 203 52 248 205 55 248 205 55 248 205 55 248 205 55 248 205 55 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 0 0 0 0 0 0 247 209 60 0 0 0 0 0 0 245 217 72 0 0 0 0 0 0 245 217 72 245 217 72 245 217 72 245 217 72 0 0 0 0 0 0 244 219 75 244 219 75 244 219 75 244 219 75 0 0 0 0 0 0 244 219 75 244 219 75 244 219 75 244 219 75 0 0 0 0 0 0 244 219 75 244 219 75 244 219 75 244 219 75 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 212 72 65 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 213 73 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 97 43 0 0 0 0 0 0 232 97 43 0 0 0 0 0 0 233 98 42 0 0 0 0 0 0 233 98 42 0 0 0 0 0 0 233 98 42 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 234 100 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 119 25 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 122 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 149 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 149 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 205 55 0 0 0 0 0 0 248 205 55 0 0 0 0 0 0 248 205 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 205 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 205 55 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 209 60 0 0 0 0 0 0 245 217 72 0 0 0 0 0 0 245 217 72 0 0 0 0 0 0 245 217 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 212 72 65 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 213 73 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 214 74 63 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 97 43 0 0 0 0 0 0 232 97 43 0 0 0 0 0 0 233 98 42 0 0 0 0 0 0 233 98 42 0 0 0 0 0 0 233 98 42 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 234 100 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 119 25 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 122 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 122 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 149 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 149 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 205 55 0 0 0 0 0 0 248 205 55 0 0 0 0 0 0 248 205 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 205 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 205 55 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 209 60 0 0 0 0 0 0 245 217 72 0 0 0 0 0 0 245 217 72 0 0 0 0 0 0 245 217 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 212 72 65 212 72 65 212 72 65 212 72 65 0 0 0 0 0 0 213 73 64 213 73 64 213 73 64 213 73 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 214 74 63 214 74 63 214 74 63 214 74 63 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 229 91 48 229 91 48 229 91 48 229 91 48 0 0 0 0 0 0 229 91 48 229 91 48 229 91 48 229 91 48 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 232 97 43 232 97 43 232 97 43 232 97 43 0 0 0 0 0 0 233 98 42 233 98 42 233 98 42 233 98 42 0 0 0 0 0 0 233 98 42 0 0 0 0 0 0 233 98 42 233 98 42 233 98 42 233 98 42 0 0 0 0 0 0 234 100 40 234 100 40 234 100 40 234 100 40 234 100 40 234 100 40 234 100 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 119 25 0 0 0 0 0 0 243 121 24 243 121 24 243 121 24 243 121 24 243 121 24 243 121 24 243 121 24 0 0 0 0 0 0 244 122 22 244 122 22 244 122 22 244 122 22 244 122 22 244 122 22 244 122 22 244 122 22 244 122 22 244 122 22 0 0 0 0 0 0 244 122 22 244 122 22 244 122 22 244 122 22 244 122 22 244 122 22 244 122 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 250 149 6 250 149 6 250 149 6 250 149 6 250 149 6 250 149 6 250 149 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 205 55 0 0 0 0 0 0 248 205 55 0 0 0 0 0 0 248 205 55 248 205 55 248 205 55 248 205 55 0 0 0 0 0 0 248 205 55 248 205 55 248 205 55 248 205 55 248 205 55 248 205 55 248 205 55 248 205 55 248 205 55 248 205 55 248 205 55 248 205 55 248 205 55 248 205 55 248 205 55 248 205 55 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 0 0 0 0 0 0 245 217 72 245 217 72 245 217 72 245 217 72 0 0 0 0 0 0 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 212 72 65 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 213 73 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 233 98 42 0 0 0 0 0 0 233 98 42 0 0 0 0 0 0 233 98 42 0 0 0 0 0 0 234 100 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 119 25 0 0 0 0 0 0 243 121 24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 122 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 122 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 205 55 0 0 0 0 0 0 248 205 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 205 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 247 209 60 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 217 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 212 72 65 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 213 73 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 229 91 48 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 233 98 42 0 0 0 0 0 0 233 98 42 0 0 0 0 0 0 234 100 40 0 0 0 0 0 0 234 100 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 119 25 0 0 0 0 0 0 243 119 25 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 122 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 122 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 205 55 0 0 0 0 0 0 248 205 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 205 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 247 209 60 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 217 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 213 73 64 213 73 64 213 73 64 213 73 64 213 73 64 212 72 65 212 72 65 0 0 0 0 0 0 213 73 64 213 73 64 213 73 64 213 73 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 229 91 48 229 91 48 229 91 48 229 91 48 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 233 98 42 233 98 42 233 98 42 233 98 42 233 98 42 233 98 42 233 98 42 0 0 0 0 0 0 233 98 42 0 0 0 0 0 0 234 100 40 0 0 0 0 0 0 234 100 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 119 25 0 0 0 0 0 0 243 119 25 243 119 25 243 119 25 243 119 25 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 122 22 0 0 0 0 0 0 244 122 22 244 122 22 244 122 22 244 122 22 244 122 22 244 122 22 244 122 22 0 0 0 0 0 0 244 122 22 244 122 22 244 122 22 244 122 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 205 55 248 205 55 248 205 55 248 205 55 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 205 55 248 205 55 248 205 55 248 205 55 248 205 55 248 205 55 248 205 55 0 0 0 0 0 0 247 207 58 247 207 58 247 207 58 247 207 58 247 207 58 247 207 58 247 207 58 247 207 58 247 207 58 247 207 58 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 0 0 0 0 0 0 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 213 73 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 213 73 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 233 98 42 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 233 98 42 0 0 0 0 0 0 234 100 40 0 0 0 0 0 0 234 100 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 119 25 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 119 25 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 122 22 0 0 0 0 0 0 244 122 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 122 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 122 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 205 55 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 209 60 0 0 0 0 0 0 245 217 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 213 73 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 213 73 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 233 98 42 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 233 98 42 0 0 0 0 0 0 234 100 40 0 0 0 0 0 0 234 100 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 119 25 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 119 25 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 122 22 0 0 0 0 0 0 244 122 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 122 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 122 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 205 55 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 209 60 0 0 0 0 0 0 245 217 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 213 73 64 213 73 64 213 73 64 213 73 64 213 73 64 213 73 64 213 73 64 213 73 64 213 73 64 213 73 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 233 98 42 0 0 0 0 0 0 233 98 42 233 98 42 233 98 42 233 98 42 0 0 0 0 0 0 233 98 42 0 0 0 0 0 0 234 100 40 234 100 40 234 100 40 234 100 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 119 25 243 119 25 243 119 25 243 119 25 243 119 25 243 119 25 243 119 25 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 122 22 244 122 22 244 122 22 244 122 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 122 22 244 122 22 244 122 22 244 122 22 0 0 0 0 0 0 244 122 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 205 55 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 247 207 58 247 207 58 247 207 58 247 207 58 247 207 58 247 207 58 247 207 58 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 247 209 60 0 0 0 0 0 0 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 245 217 72 0 0 0 0 0 0 245 215 69 245 215 69 245 215 69 245 215 69 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 215 69 245 215 69 245 215 69 245 215 69 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 233 98 42 0 0 0 0 0 0 233 98 42 0 0 0 0 0 0 233 98 42 0 0 0 0 0 0 233 98 42 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 122 22 0 0 0 0 0 0 244 122 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 248 205 55 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 247 209 60 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 217 72 0 0 0 0 0 0 245 215 69 0 0 0 0 0 0 245 215 69 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 215 69 0 0 0 0 0 0 245 215 69 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 233 98 42 0 0 0 0 0 0 233 98 42 0 0 0 0 0 0 233 98 42 0 0 0 0 0 0 233 98 42 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 122 22 0 0 0 0 0 0 244 122 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 247 209 60 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 217 72 0 0 0 0 0 0 245 215 69 0 0 0 0 0 0 245 215 69 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 215 69 0 0 0 0 0 0 245 215 69 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 233 98 42 0 0 0 0 0 0 233 98 42 0 0 0 0 0 0 233 98 42 233 98 42 233 98 42 233 98 42 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 122 22 244 122 22 244 122 22 244 122 22 0 0 0 0 0 0 244 122 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 247 207 58 247 207 58 247 207 58 247 207 58 247 207 58 247 207 58 247 207 58 0 0 0 0 0 0 247 209 60 247 209 60 246 211 63 246 211 63 246 211 63 246 211 63 246 211 63 0 0 0 0 0 0 246 211 63 246 211 63 246 211 63 246 211 63 0 0 0 0 0 0 246 213 66 246 213 66 246 213 66 246 213 66 0 0 0 0 0 0 245 217 72 245 217 72 245 217 72 245 217 72 0 0 0 0 0 0 245 215 69 0 0 0 0 0 0 245 215 69 245 215 69 245 215 69 245 215 69 245 215 69 245 215 69 245 215 69 0 0 0 0 0 0 245 215 69 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 233 98 42 0 0 0 0 0 0 233 98 42 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 122 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 122 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 211 63 0 0 0 0 0 0 246 211 63 0 0 0 0 0 0 246 211 63 0 0 0 0 0 0 246 213 66 0 0 0 0 0 0 246 213 66 0 0 0 0 0 0 245 217 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 215 69 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 215 69 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 233 98 42 0 0 0 0 0 0 233 98 42 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 122 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 122 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 211 63 0 0 0 0 0 0 246 211 63 0 0 0 0 0 0 246 211 63 0 0 0 0 0 0 246 213 66 0 0 0 0 0 0 246 213 66 0 0 0 0 0 0 245 215 69 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 215 69 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 215 69 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 233 98 42 233 98 42 233 98 42 233 98 42 233 98 42 233 98 42 233 98 42 0 0 0 0 0 0 233 98 42 233 98 42 233 98 42 233 98 42 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 244 122 22 244 122 22 244 122 22 244 122 22 244 122 22 244 122 22 244 122 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 207 58 247 207 58 247 207 58 247 207 58 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 246 211 63 246 211 63 246 211 63 246 211 63 246 211 63 246 211 63 246 211 63 246 211 63 246 211 63 246 211 63 246 211 63 246 211 63 246 211 63 0 0 0 0 0 0 246 211 63 0 0 0 0 0 0 246 211 63 0 0 0 0 0 0 246 213 66 0 0 0 0 0 0 246 213 66 0 0 0 0 0 0 245 215 69 245 215 69 245 215 69 245 215 69 245 215 69 245 215 69 245 215 69 0 0 0 0 0 0 245 215 69 245 215 69 245 215 69 245 215 69 0 0 0 0 0 0 245 215 69 245 215 69 245 215 69 245 215 69 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 233 98 42 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 233 98 42 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 246 211 63 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 211 63 0 0 0 0 0 0 246 211 63 0 0 0 0 0 0 246 213 66 0 0 0 0 0 0 246 213 66 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 215 69 0 0 0 0 0 0 245 215 69 0 0 0 0 0 0 245 215 69 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 233 98 42 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 233 98 42 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 247 207 58 0 0 0 0 0 0 246 211 63 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 211 63 0 0 0 0 0 0 246 211 63 0 0 0 0 0 0 246 213 66 0 0 0 0 0 0 246 213 66 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 215 69 0 0 0 0 0 0 245 215 69 0 0 0 0 0 0 245 215 69 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 233 98 42 233 98 42 233 98 42 233 98 42 233 98 42 233 98 42 233 98 42 233 98 42 233 98 42 233 98 42 233 98 42 233 98 42 233 98 42 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 247 207 58 247 207 58 247 207 58 247 207 58 0 0 0 0 0 0 246 211 63 246 211 63 246 211 63 246 211 63 0 0 0 0 0 0 246 211 63 246 211 63 246 211 63 246 211 63 0 0 0 0 0 0 246 211 63 246 211 63 246 211 63 246 211 63 0 0 0 0 0 0 246 211 63 0 0 0 0 0 0 246 213 66 0 0 0 0 0 0 246 213 66 0 0 0 0 0 0 245 215 69 245 215 69 245 215 69 245 215 69 245 215 69 245 215 69 245 215 69 245 215 69 245 215 69 245 215 69 0 0 0 0 0 0 245 215 69 0 0 0 0 0 0 245 215 69 245 215 69 245 215 69 245 215 69 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 211 63 0 0 0 0 0 0 246 211 63 0 0 0 0 0 0 246 211 63 0 0 0 0 0 0 246 211 63 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 211 63 0 0 0 0 0 0 246 213 66 0 0 0 0 0 0 246 213 66 0 0 0 0 0 0 245 215 69 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 215 69 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 215 69 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 211 63 0 0 0 0 0 0 246 211 63 0 0 0 0 0 0 246 211 63 0 0 0 0 0 0 246 211 63 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 211 63 0 0 0 0 0 0 246 213 66 0 0 0 0 0 0 246 213 66 0 0 0 0 0 0 245 215 69 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 215 69 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 215 69 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 211 63 0 0 0 0 0 0 246 211 63 0 0 0 0 0 0 246 211 63 246 211 63 246 211 63 246 211 63 0 0 0 0 0 0 246 211 63 246 211 63 246 211 63 246 211 63 0 0 0 0 0 0 246 213 66 0 0 0 0 0 0 246 213 66 0 0 0 0 0 0 245 215 69 245 215 69 245 215 69 245 215 69 245 215 69 245 215 69 245 215 69 245 215 69 246 213 66 246 213 66 0 0 0 0 0 0 245 215 69 245 215 69 245 215 69 245 215 69 0 0 0 0 0 0 245 215 69 245 215 69 245 215 69 245 215 69 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 211 63 0 0 0 0 0 0 246 211 63 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 211 63 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 213 66 0 0 0 0 0 0 246 213 66 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 213 66 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 215 69 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 215 69 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 211 63 0 0 0 0 0 0 246 211 63 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 211 63 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 213 66 0 0 0 0 0 0 246 213 66 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 213 66 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 215 69 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 215 69 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 211 63 246 211 63 246 211 63 246 211 63 0 0 0 0 0 0 246 211 63 246 211 63 246 211 63 246 211 63 246 211 63 246 211 63 246 211 63 0 0 0 0 0 0 246 213 66 246 213 66 246 213 66 246 213 66 0 0 0 0 0 0 246 213 66 0 0 0 0 0 0 246 213 66 246 213 66 246 213 66 246 213 66 0 0 0 0 0 0 246 213 66 246 213 66 246 213 66 246 213 66 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 245 215 69 245 215 69 245 215 69 245 215 69 245 215 69 245 215 69 245 215 69 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 211 63 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 213 66 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 213 66 0 0 0 0 0 0 246 213 66 0 0 0 0 0 0 246 213 66 0 0 0 0 0 0 246 213 66 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 211 63 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 213 66 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 213 66 0 0 0 0 0 0 246 213 66 0 0 0 0 0 0 246 213 66 0 0 0 0 0 0 246 213 66 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 211 63 246 211 63 246 211 63 246 211 63 0 0 0 0 0 0 246 213 66 246 213 66 246 213 66 246 213 66 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 213 66 0 0 0 0 0 0 246 213 66 0 0 0 0 0 0 246 213 66 0 0 0 0 0 0 246 213 66 246 213 66 246 213 66 246 213 66 246 213 66 246 213 66 246 213 66 246 213 66 246 213 66 246 213 66 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 211 63 0 0 0 0 0 0 246 213 66 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 213 66 0 0 0 0 0 0 246 213 66 0 0 0 0 0 0 246 213 66 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 213 66 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 211 63 0 0 0 0 0 0 246 211 63 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 213 66 0 0 0 0 0 0 246 213 66 0 0 0 0 0 0 246 213 66 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 213 66 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 211 63 246 211 63 246 211 63 246 211 63 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 246 213 66 246 213 66 246 213 66 246 213 66 0 0 0 0 0 0 246 213 66 246 213 66 246 213 66 246 213 66 246 213 66 246 213 66 246 213 66 246 213 66 246 213 66 246 213 66 246 213 66 246 213 66 246 213 66 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 diff --git a/2023/day10/test1 b/2023/day10/test1 new file mode 100644 index 0000000..689fff6 --- /dev/null +++ b/2023/day10/test1 @@ -0,0 +1,5 @@ +-L|F7 +7S-7| +L|7|| +-L-J| +L|-JF diff --git a/2023/day10/test2 b/2023/day10/test2 new file mode 100644 index 0000000..3aea4dd --- /dev/null +++ b/2023/day10/test2 @@ -0,0 +1,5 @@ +7-F7- +.FJ|7 +SJLL7 +|F--J +LJ.LJ diff --git a/2023/day10/test3 b/2023/day10/test3 new file mode 100644 index 0000000..adaae96 --- /dev/null +++ b/2023/day10/test3 @@ -0,0 +1,10 @@ +.F----7F7F7F7F-7.... +.|F--7||||||||FJ.... +.||.FJ||||||||L7.... +FJL7L7LJLJ||LJ.L-7.. +L--J.L7...LJS7F-7L7. +....F-J..F7FJ|L7L7L7 +....L7.F7||L7|.L7L7| +.....|FJLJ|FJ|F7|.LJ +....FJL-7.||.||||... +....L---J.LJ.LJLJ... diff --git a/2023/day10/test3.png b/2023/day10/test3.png new file mode 100644 index 0000000000000000000000000000000000000000..62ea51e408a85fc4c1f96d299816cb111f320fe9 GIT binary patch literal 235 zcmVyE5C-6%q)EYS$;@m8$=o!eg33Np)d*&m@BrmC7BC>Ec!j!U3V~o^jI}H*Y^T2D z{<}*KSZX`=ZJO•FLines"input" +pos←∾¨´m(⌊∘÷˜⋈|)/⥊input + +dists←(+´∘|∘-)⌜˜pos + +emptyRows←/(¬∨´˘)input +emptyCols←/(¬∨´˘)⌾⍉input +nempty←{x1‿y1𝕊x2‿y2: + a←|-´emptyCols⍋y2‿y1 + b←|-´emptyRows⍋x2‿x1 + a+b +}⌜˜pos + +•Show 2÷˜+´⥊dists+nempty +•Show 2÷˜+´⥊dists+999999×nempty diff --git a/2023/day11/input b/2023/day11/input new file mode 100644 index 0000000..16a603c --- /dev/null +++ b/2023/day11/input @@ -0,0 +1,140 @@ +.......#..............#.......................#............#.......#........................#.....#..................................#...... +.................................#.................................................#........................................................ +............................................................................................................................................ +..........................................................................................................#.............#................... +...........#...............................................................#..............................................................#. +.#.......................................................................................................................................... +................#.......#........................#....................#....................#.................................#.............. +......................................#.....#.........................................................#..................................... +...................................................................................#..........................#......................#...... +......#..................................................................................................................................... +.............#............................................#.......................................................#......................... +..................#.....................#..........#.....................................................#..............#.....#............. +.................................................................#.........#................................................................ +..................................#.................................................................................................#......# +....#..........#...........#..........................#.....#................................................#.............................. +................................................................................#........................................................... +.......................................#........#.......................#...........................#....................................... +.......................................................................................................................................#.... +.#..............................#.......................#........#.................#..............................#......................... +......#..............#....................#............................................................#.................#.................. +............#............................................................................................................................... +.....................................................................................................................#...................... +.....................................................#...................................................................................#.. +...............................................#...........................#.....#.......................................................... +....................................#........................................................................#.............................. +...........#.................#.........................................................#...........#............................#........... +.....#...............#....................................#...................................#........................................#.... +..........................................................................................................#................#................ +.......................................#..............#....................................................................................# +.................................#................................................#...................#.............#....................... +...#........#...............#.....................#............#.................................#.............#............................ +............................................................................................................................................ +.............................................#........................#..................................................................... +..........................................................#................................................#..............................#. +...................#...................#........................................#..............................................#............ +....#.....#.......................#...........................................................#.....#....................................... +........................................................................................#................................................... +..............................................#.........................................................#................................... +..........................#................................................#.............................................#..............#... +........#.....................................................#.......#..........................................................#.......... +.............#.............................#..........#..............................#.....................#................................ +............................................................................................................................................ +.#..............................................................................#.................#......................................... +......................#...............#..................................................................................................... +...................................................................#..................................................................#..... +..........#.................................................................................#......................#........................ +.................#........................#............................#.................................................................... +..........................................................#................................................#............#................... +..................................................#........................#...................................................#............ +..............................................................................................#..................#.......................... +............................................................................................................................................ +.....#...............................................................................................#...................................... +....................................#.......................................................................#........#...................... +...................#............................................................#..........#................................................ +.............................#..........................................................................................................#... +...............#...............................#..........#......................................#.....#.....................#.............. +.......#...............#.............................................................#............................................#......... +............................................................................................................................................ +...................................#.......#........#........#.................................................#............................ +............................................................................................................................................ +..........#..................#.........................................#..............................................................#..... +................................................#..........................................#................#....................#.......... +.........................................................#...........................#...................................................... +#....................#...........#.................................................................#..............#......#.................. +.............................................#.......#...................................................#.................................. +............................#...........................................................#.....#............................................. +.......#........................................................................#........................................................... +..........................................................#...................................................#....................#........ +...#...................................................................................................................#.................... +...............#.................#.......................................................................................................... +....................#.................#.......#..................#.........................#.............#.............................#.... +........................................................#...........................#....................................................... +...........................#...............................................#................................................................ +.#.......#........................................................................................#........................................# +................................#................................................................................#...............#.......... +....................................................#....................................................................................... +...................................................................#.....................................#...............#............#..... +....................................#......................#.............#..........#.....#................................................. +...........#................................................................................................................................ +.......................#.....................#.................................................................#............................ +.............................#..............................................#........................#...................................... +..................#................................................................................................#................#....... +..................................................#.........#..........#..................................................#................. +.................................#.......................................................#.................................................# +....#.......................................#.........#.......................................................................#............. +............................................................................................................................................ +............................................................................................................................................ +........................................................................#................................................................... +..#.............................................#................#....................................................#..................... +..............#...............#............................................................................................................. +........................#............................#..........................#........#.................................................. +...................................................................................................#...........#........................#... +....#.............#..............#............................................................................................#............. +............................................................................................................................................ +......................................................................................................#..................................... +.................................................................#......................#................................................... +.....................#....................#...........#.................#................................................................... +................................................................................#......................................#..........#........# +........#........................................................................................#.......................................... +..................................#.........................................................#....................#..........#............... +#...........................#...........................................................................#................................... +............#................................................#.........#...............#.................................................... +....#....................................................................................................................................... +..........................................#.....................................................#..............#..............#............. +............................................................................#.........................#.............#....................... +................................#.....#..................................................................................................... +...................#......#.................................#.......................#.......................#............................... +...........................................................................................#......#...............................#......... +#.............#.......................................#..................................................................................... +.............................#..............#.............................................................................................#. +......................#..................................................#............................#..............#...................... +........#........#.....................#...................#......#.............#............................#............#................. +.........................................................................................#......................................#........... +..................................#..................#............................................#...............#..................#...... +..........................#....................#............................................................................................ +..........................................#................................................................................................. +.#...................................................................#.......................#.............#...............................# +......#.......................#................................#.....................................................#...................... +............#.....#...................#............#.....#.......................#.................#........................................ +..........................................................................................................................#.....#......#.... +..........................................................................................#.............#................................... +...........................................#........................................#....................................................... +..#...................................................................#..................................................................... +.........#...........................................#...................................................................................... +....................................#............................................................#.................................#.......# +...........................#......................................................................................#......................... +..........................................................#............................................................#.................... +...#..........#........#.................................................................................................................... +....................................................................................#......#.................#..................#........... +..............................................................................#............................................................. +.............................#.......#.....#...................#........#......................#.....................................#...... +............................................................................................................................................ +..........#.....#...................................................#.............#.....................#....................#.............. +........................#.................................#.............................#...........................#....................... +........................................#...........#........................................#...........................................#.. +.....#.........................................#.................#.....#............................#....................................... +...................................#........................................#........#...................................................... +...........................................................................................................................#................ +.#............................#..........................#...................................................#.........................#.... +.........#...................................#..........................................#.........................#......................... diff --git a/2023/day11/test b/2023/day11/test new file mode 100644 index 0000000..986aad4 --- /dev/null +++ b/2023/day11/test @@ -0,0 +1,10 @@ +...#...... +.......#.. +#......... +.......... +......#... +.#........ +.........# +.......... +.......#.. +#...#..... diff --git a/2023/day12/day12.bqn b/2023/day12/day12.bqn new file mode 100644 index 0000000..0ad6197 --- /dev/null +++ b/2023/day12/day12.bqn @@ -0,0 +1,6 @@ +⟨Split⟩←•Import"../bqn-libs/strings.bqn" +rows‿sizes←<˘⍉>" "⊸Split¨•FLines"test" +sizes↩•ParseFloat¨¨","⊸Split¨sizes + + +rows diff --git a/2023/day12/input b/2023/day12/input new file mode 100644 index 0000000..9d26a41 --- /dev/null +++ b/2023/day12/input @@ -0,0 +1,1000 @@ +#??#???.??#?#?#??#?. 6,8,2 +?????????#?#.#?.?.# 4,3,1,1,1 +.???#?#????..????. 1,4,1,1,2,1 +??????#?.?. 3,2,1 +?.?????#???#???#?? 3,1,2,5 +????##???????? 2,4,2 +?#?#?#??.?? 6,1 +.??#????##?##???..?. 2,9,1 +.???????#????#??#? 2,3,5 +.?#??????##? 7,3 +?????.???# 1,1,4 +???#?#??##??#?#??#.# 8,1,4,1 +#????#????#? 1,2,5 +###.?##?.?#??. 3,3,4 +??#?.??##? 1,3 +.?#???.??????###.??? 4,1,1,3,2 +??#?.?#?????.? 3,6 +?##?#???.?????? 4,1,1,2,1 +?????#????##??.# 1,9,1 +.????#????###?..?. 8,4,1 +##??#????? 2,1,3 +.????.?#?#?#?##?? 1,8 +?.?#?.?#????#???.? 1,2,1,4,2 +.?#?#?#?.#??#???##? 1,4,5,2 +??????#????? 4,1,1,1 +???#?????? 1,1,5 +??????????. 1,1,3 +?#.???????#? 1,7 +?????#???### 1,1,2,4 +??.?#???#. 2,3,1 +??..?.??#?.#? 1,4,2 +??.????????. 1,4,1 +.??#.??????#?.?#?? 1,1,1,1,2,3 +?.?#..???. 1,1 +???#?????????. 4,2 +#?????.?????? 1,2,1,2 +?#???????..# 2,2,1,1 +?#.?#??#?????? 1,5,1,1 +.#..?#????#??#? 1,4,5 +?..???..?#?#?#?.? 2,6 +???.?????#??#?. 1,1,6 +?#?.#???????.? 1,6,1 +.?#??#???##?#? 9,1 +.##??#??.##??? 2,1,2,1 +.????.?#?# 1,1,3 +#??#..??#???.?##?. 4,1,1,1,2 +..#?#????#? 3,3 +?#..##?.??##??#. 1,3,3,2 +??.????.???? 2,1,2 +????#?????.?. 3,1 +?#?##???#.?##? 8,2 +????#.????.???#?? 2,2,1,1,5 +..?.?.???? 1,3 +?.??????????# 2,4 +?.?.?..?##?? 1,1,3 +????#????.?? 2,2,1,1 +?.#????.##???#??#.? 1,1,1,3,5,1 +?????##??#????? 7,1 +?.???#..?#?.? 1,2,2 +?#??##???#?.? 5,1 +???#..?.#?#?##??# 1,1,1,7,1 +??????#???.?#.??? 1,4,2,2 +##??????#.??#? 4,3,3 +.?.??#???.? 1,5 +??#?.???#?? 1,3 +???????..??? 1,2,1,2 +#????.?#?#???##?? 1,2,3,5 +?????????.? 1,2,1 +..#?????.?# 4,1 +#???.?##?## 2,1,5 +???#.???#?. 1,1,2 +?.?#.?????#?? 1,2,1,3 +?.??.?#?#?#?#??#.??? 1,1,10,1,1 +??#????????.??????? 7,3 +.?#??.#???? 4,5 +??????.??? 1,1,1 +??##?..???. 3,3 +?????##.???.?#?.. 3,3,2 +????.?..???? 3,1,1 +???????#?#??.#???. 1,7,4 +.??#?????#.?? 1,4,2 +?????#?#??.?.#?? 8,1,1 +????#.?.????#???#? 1,1,1,3,1,2 +?????#..?.???.#??#? 6,1,1,1,2,1 +??#???#?.?? 2,1 +??#.????????##??#? 3,2,7,1 +?.?????#??.? 3,3,1 +.#?????#?#?##?.??? 2,3,1,2,1 +?#?#??.?##?###???# 1,3,10 +??.?????.#???.? 1,2,1,1,2 +??????..?? 5,1 +??.??.??#??.#? 1,1,3,1 +??.?.#?.?..?? 1,1 +#.?#??????#.##?.?#. 1,1,1,1,3,2 +#?###??##?##??#??? 5,9 +???#.??????#.#? 4,5,1,1 +??.???#####?# 1,8 +?????????#??????? 2,1,5,1,1 +?..?#??.?# 3,2 +??#??.?.??#. 5,1 +?#????##.???#. 8,2 +??.?????###?##?????. 2,1,9,3 +#???#?.??#???# 2,2,3,1 +?????###????#????. 7,1 +???????.??..?? 1,3,1,1 +???????????????????? 3,3,1 +#??????.?#?## 6,5 +#??##??.?#???.??? 7,3,2 +#.??##??#??####????. 1,13,1 +?#.?????.##??. 1,3,3 +#??.??#???.???#????? 3,5,6 +?.??????.#??.?. 1,2,2,3,1 +.????#???#..?#??# 4,1,5 +????#?????? 4,2 +???#????## 4,3 +.#?.???#?.. 1,3 +??#??#?????#?.?? 5,5 +?.?.#?#?????????#??. 1,1,1,2,1,8 +?###.???..?.#???? 3,1,1,1,3 +.#??#??.???#????.# 1,1,5,1,1 +????...?.?.#??? 1,1,1,4 +???##???#?#??..?. 2,7,1 +??#.?.?..?? 3,1,1 +##?#?#?????#???. 7,1,2,1 +??????????#?.#? 5,2,2,2 +????##??##?#??..??? 13,1 +???#???#???#???#.#?? 1,7,5,1,1 +.??????###.???? 8,1 +?.##???.?????#??? 2,1,1,5 +.???#??##???????? 1,5,5 +?????#??.????. 1,2,3 +????#?#?..???## 1,4,4 +???#????##?##?##?.. 4,1,9 +..#??..????? 2,1 +???#.?????? 2,1 +???#...#???.?? 2,2,1,2 +??#??#?????# 3,2,3 +??#??????.???? 1,2,3 +???.??.?#?#???#???. 2,2,8,2 +#?????##??????#???. 11,4 +???#?#????. 1,4,1 +?##????#?#?.#. 2,1,4,1 +#???#??????#? 8,3 +#???#.?.#?.# 5,1,1,1 +???????.???? 1,1,1,1 +??.?????#???? 1,6,2 +?.?.?.??#???. 1,1,4 +?????#???????#..???? 1,3,2,2,2,1 +??#?.????? 1,3 +???###??..##.?? 1,5,2,1 +??###?#???#?. 7,2 +?.?#????#?????? 1,1,1,3,1 +.#?????..? 1,2,1 +?#?.?#?????????.?? 3,10,1 +.???#???????..????#? 6,5 +##?.???????? 3,3,3 +.?##???.???###?.??? 3,6,1,1 +.#??????.#?.???? 1,1,2,2,1 +##?###??????????. 6,3 +??.???#??#???.#??#.# 2,9,2,1,1 +.??.###???????.#?? 2,7,1,1,1 +?.##???.?. 4,1 +.#?..?????#?????. 2,2,1,5 +.?????.#??.? 2,1,2,1 +.??.???.??..?## 2,2,2,2 +??.???####?##?.???? 11,1 +???.#.?#????.???# 2,1,3,1,1 +?.??.?#???? 1,2,1 +??#.?????#????..?#? 2,3,3,1,2 +.?.?#??#????###??. 1,14 +##??.??#?. 3,1 +.#???..???? 1,1,2 +.???.#?.#...? 2,1,1,1 +?#??????#??#??#?? 9,5 +.????#??????###.? 1,1,1,1,5 +???#??.#?? 1,1 +?#?.?#?.#???#?#? 2,3,2,4 +?????#?#?????#?? 1,1,1,9 +#?##??#?.#???. 1,5,1,1 +?????##?????.??? 1,9,3 +?.??##???#???.?? 1,6,2,1 +?###???????.. 4,1,3 +#??..???#??# 1,1,4,1 +??.?..#??#???###?..? 1,1,1,7,1 +??????.????? 2,4 +??????.??. 2,1,2 +.#???????????? 3,4,1,1 +.#??..#????? 2,1,3 +.?.??.????##???? 1,5 +?#?????#?#??# 5,1,1,2 +?####??.?.??.? 6,1,2,1 +.???#??#?.?.?#????# 4,7 +...??????#? 1,1,2 +???#.#??#??? 1,1,1,2 +?.?#????#??#???.?? 4,5,2 +..????#???.?#?. 5,2 +??..??#??????????? 8,1 +?#??????..?.? 2,4,1 +??#????.?? 3,2 +??.?.??????? 1,5 +?#??????#??###?#?.?? 1,2,9,1 +.???.#????#??#? 3,2,1,1,3 +????.?#?.??????? 2,4 +?.#????#??#?? 2,5 +?.##???#??????#????? 1,6,8,1 +.???.??.?..???? 1,3 +??????????? 2,3,2 +.??????#?.?#.????.?? 1,6,2,1,1 +???..?????? 1,4 +??##?????... 5,3 +.??#?#????.?? 3,4,2 +??#.???#?????# 2,1,5,1 +#.??##??#?.???? 1,8,1,1 +?#?#??#?.?#?#??#?.? 7,7 +??#????????? 3,2 +?#..#?#????? 2,6 +??##.##??#??#??.??. 2,6,2,2 +??.??.?.????? 1,2,1,1 +????#???????#? 4,2,2 +.?..?#????????????.# 1,4,1,4,1 +???????#.??? 1,5,1,1 +????#.#??#???????#? 1,2,2,1,7 +?.???#.?????? 1,4,1,1 +.??.#????##?? 2,4,2,1 +#????.#?## 4,4 +???#?.??.???.?#?.?## 3,1,3,1,3 +??.?#?????????####? 1,3,10 +?.?#?????#??##??..?? 6,1,2,2 +.???#??#?. 1,3 +.?????###?. 1,1,4 +??#?.??????#??? 1,1,4,2 +.?#?.????#??? 2,3,3 +?#???.????#???. 5,3,1,2 +#???#??#???#??#?. 2,3,2,2,3 +?.??????##???.???? 7,1 +???#.##??##???# 2,1,3,3,1 +????#?.?#?#???. 6,6 +.???#????? 4,1,2 +????#????##?#??? 2,8,1,1 +.??????#?? 1,1,4 +???..###.?##?##??? 1,3,6,1 +####????.???.???.? 5,2,2,3 +.??..?????.??.? 1,2,1 +????..?#.#????? 4,2,6 +???.?#????##??? 2,7 +???????.?.#..### 1,2,1,1,3 +#????????????? 3,4,1,2 +???..#????????#???? 2,11 +.???.????#?? 1,2,1 +.?#?????..???. 6,3 +.??????.????? 1,2,3 +..???#?#?#?????#??.? 9,4,1,1 +?##?.??#????#..##?# 2,1,2,3,2,1 +.#?????#??##?? 1,1,4,3 +?#???#????? 1,1,5 +.?###..??.?#????? 4,1,5 +????#???.. 1,1,1 +??#????????..???# 9,3 +.?#.?#.?.?. 2,1,1 +??#??#?.????????#?? 4,3,3 +#????..???#??.. 5,3 +.?#?.??#?.???#. 1,4,3 +#???#????.? 1,2,2 +.#????.??##?????. 5,5,1 +?????.???????# 4,1,2 +.?.?###?##???????## 11,3 +?????#?####???.??##? 1,6,1,3 +?#.??.#??##?.##??? 2,1,1,3,2 +..???##.?.? 5,1 +???.?.???? 2,1,1 +?.???#?#?.?#.??.# 7,2,1,1 +?????.??.? 1,2,1 +???.?.##??#? 1,2,2 +?.#????##???????.?# 8,1,1,1,2 +.??#.?#???#?? 2,8 +.?#?#?.?????#??#?# 5,1,4,1 +??##????.#..? 4,1,1,1 +#????.????????????#? 5,2,1,1,2 +?..#????.???.?.. 4,1 +?#?.???#???.????? 2,5,1,3 +??#??#?#??.?#?##?? 2,6,4 +??#?##?.?????? 5,2 +?.?.??.?#?? 1,1,4 +?????.?#??? 2,4 +.????.?#???? 1,1,2,3 +.???????#???? 1,2,2,1 +??.??#?????? 2,8 +???.??????? 1,1,2 +??#??#?##????#.?? 1,4,2,1,1 +?##?????#??#.?#??#? 3,4,4 +..???#?.?.#?#?.??.? 1,3 +??????###???? 1,3,2 +?????#???.?#?#?##? 1,1,3,1,6 +#????????????.?.?#? 1,1,8,1,1 +??#????##?#??????.. 1,10,1,1 +?##?.???.??? 4,1,1,1 +.?.???.#??# 1,1,4 +?#.???#?#?????..## 1,1,8,2 +??#??.??#?????# 3,1,1,4 +?????#?#??? 1,8 +???.?.????? 2,1,1 +??#?.#?????.???.??? 1,1,1,3,3,2 +??????.???#?#????? 1,1,1,6,2,1 +??#?????#??.????..? 3,2,3 +#.?.??????.??. 1,1,3,1 +?#?.#????#???#?.???. 1,3,3,2,1,1 +??##??????.?..? 6,1,1 +???????#?.#??. 6,3 +???#.????#??.#? 2,1,1,1,2 +##???#?#?#?? 2,2,1,2 +???????..## 2,2 +??#?..?#??#?#.??? 1,7,2 +???####?#?#.#???#?? 9,1,5 +.?#?.#.???#?.? 2,1,4 +????..??#..?. 4,1,1 +??????????..??? 9,1 +####?#?#??.???????? 10,1,1,1,1 +#?#??#??#???????.?? 6,1,1,1,1,1 +??.????????#? 1,1,1,3 +#?..##?.???? 2,2,2 +??#?????#?????.? 1,5,1,2,1 +.?.?#??###??#??#?# 1,14 +????????.????.?? 5,3,1 +???????????#.?? 6,1,1,1,1 +?.?.???#???. 1,1,2,2 +#??#?????????? 1,1,1,7 +?????#???# 1,4,2 +?.??..#??. 1,1,1 +.???#??#????????? 2,1,2,3,1 +?#??.???#????#? 2,2,1,1,2 +?###?????.?? 3,2,1,1 +???????#?.????? 2,4,2,1 +???..?#???#?.??? 2,1,1,2,2 +#.#???####. 1,8 +?.???#??????? 1,2,2 +..#???##??#??#?? 3,5,1 +?.???#???????#? 4,2,2 +??##?.#??#??????? 1,3,1,1,5 +##?#???.??.??#.? 2,1,1,1,1 +??????#?????# 7,4 +.???#??????##? 5,1,2 +.??????#?##?#?? 2,6 +.#?.??#.#?#??. 2,2,5 +?..?##?#?????#??#?? 1,15 +?????????????#???. 1,3,1,1,1,1 +##?.????????.#?. 2,1,1,1,2 +?#.???.#.?#??.?.?? 1,1,1,3,1,1 +.#.??.?.?###.???? 1,2,1,3,1 +???#?????##??.?.??.? 5,4 +????###?#?##????.? 1,12 +?#??.?????? 4,2 +?????#??????.? 8,2,1 +????????## 2,2,3 +???#???#?? 2,2,3 +????#.?.?#?????.???? 1,1,1,5,1,1 +...????.?.?????#?. 3,4 +..?..?#??#????#?? 6,1 +.?#??.?????.?##???.? 3,4,5,1 +.?..??#?.#? 1,2,2 +????##??????.#? 1,8,1 +???.##?#?.??##?? 1,5,5 +#?????#??????? 1,8,1 +.????#?????? 2,2 +????##??.#? 1,4,1 +?#?#?#?.???#?. 7,3 +???????#??????.????? 10,2 +????#??.?#.?? 3,2,1 +???.#.?#?##?????# 1,1,5,3 +???##.#?##?????.?.# 1,2,1,7,1 +????.##?#??##??? 2,10 +?#?.????#??#?##?#?#. 2,12,1 +????#??#??.??#??? 4,2 +??.#????#?.??? 2,1,5,1 +.###?.??.?#.#.?.???? 4,1,1,1,1,2 +??#??###?.#?.????.# 8,2,3,1 +?##???.?.##??#??.??? 6,1,7,2 +??###??.????##?#?##? 3,2,8 +#???????#??#?#??#??? 4,4,9 +??#????????# 2,3,2 +?#?.?.#?.?.?????# 3,1,2,1,4 +?#??##?#???.?..?. 7,1,1,1 +???????#.?????##.?. 8,1,3,1 +..???##.??# 1,3,1 +.#??#?..####?#. 4,6 +?????..??????# 5,1,2,1 +???##?##.????##?# 1,2,2,1,5 +???.??#???.?. 2,1,3,1 +???.??###??????#?#? 2,4,6 +?#???#?#??????? 6,3,3 +?##..?#???????## 2,10 +?#??.?.#?.?# 3,1,2,1 +#???.#???. 3,3 +???.?.#?.#??#?????. 1,1,2,1,3,1 +?...?.??????? 1,4 +??.????.#.? 1,3,1 +????#??.?.###.???? 1,4,3,3 +?????..???.?? 1,1,2,1 +.??.??##????#?. 2,8 +??.??#??????. 5,1 +###??#??.??? 6,3 +##????##????##..? 2,11,1 +??.????.??????? 1,2,1,1,2 +.???????????????.?. 5,5 +??...?????.? 1,1,1,1 +????###?##? 4,2 +??##???#?????????? 5,7 +?????????.?.# 6,1,1,1 +?????.???? 1,1,3 +??#??????## 4,4 +???.?#..?#?##.?.#??? 1,1,5,1,1,1 +.#?.#??????. 2,1,3 +.????.?????##? 1,1,7 +???.???????. 1,1,3,2 +.???##??..??.#..#? 7,1,1,1 +??#????#???????????? 15,1 +##??????..???? 6,1 +#?.???#??? 1,3 +?##????#???#? 2,6,2 +###??#???#???????? 6,1,1,2 +.???????.? 1,1,1 +??????#??..?.##?##? 8,1,5 +.?##?????.?. 6,1 +.#???.????#???# 1,1,1,4,1 +.#??.#?##?#? 3,1,2,2 +#?????????#??##?# 1,3,2,1,5 +???.??#????? 2,6 +?.?#??..??## 1,4,1,2 +..???????????.? 5,1 +???.#??#.??????#?.? 1,4,8 +?????.#???#?#?? 3,1,3,1,1 +???????.?#??##????? 1,3,6,1,1 +?.##????????###?? 3,3,6 +#??????.##??## 1,1,1,6 +?#.??.?.?#?. 1,1,1,2 +#???##??##?.?.????#? 2,4,2,1,1,3 +.???????.??# 2,1,3 +???##?##?#?#????? 11,1 +???????#?#??. 6,3 +????#???#?.????#.? 10,1 +?#?????.?#????#? 4,6 +?.???.?#.?. 1,1 +.??.#???.?. 1,1,1 +?#?????????????? 1,1,1,5,1 +???.?????#? 1,1,4 +???#????..?? 6,1 +?.#?????#?????.?. 10,1 +?.#??.#?.#?.? 2,2,1 +.??#???.?##?.#?. 1,1,1,3,2 +#?#???#?#?????#?#?? 15,1 +..???##.?????.???#?? 3,4,3 +.??.???????.? 1,4,1,1 +???#?????.??.?????? 5,1,1,3,1 +.??????.?.??#??? 5,1,3 +??#?????##???. 1,9,1 +.#???????????.? 1,1,2,2,1 +??#?.??.??? 3,1 +???.???.??.???????? 1,2,1,3,3 +?.##??????#? 1,4,3 +?#?##???#?#..? 9,1 +????????.?.???? 7,2 +??#????#?#?.???? 2,5,3 +.?.??.#??#?????. 1,4,3 +.???#??#?.#.??##?# 8,1,6 +?..?.??.??????..?..? 1,1 +??.?.??????? 1,1,1,2 +.?#..????? 1,2,1 +??#?.????.##???? 2,2,2 +?????#?##??.???.? 1,6,2 +??????????????. 4,4,1,1 +???##..?????##?#??? 4,10 +??...?##???#?#??? 1,3,6 +.?.#.???#?#?#?? 1,1,1,5 +.?#??##???##??.#?# 12,3 +?????#.??.?##?????? 3,1,1,4,3 +??#.#.??#.#??? 3,1,3,3 +#???????????#?? 1,2,1,6 +???.?????.??.? 3,1,1,1 +??#???.?????# 3,1,2,1 +??..????.?..?? 2,2,2 +.#???#??#????#? 11,1 +???.??.????#??..?## 1,1,1,4,1,2 +..??##?????.?.?#? 9,1 +??##?#?#??#???? 1,10 +#?#?????????#. 3,9 +????#????#?? 5,4 +?#???#??????????#. 7,2,1,1 +.#??#?????#.?#.??#. 5,4,2,1 +#??.#?.?????.#? 3,1,1,1,1 +.?#??????.??? 3,1,3 +???.?????#?#???? 1,1,1,3,1 +.#????##?#??.#. 1,3,1,1,1 +???#?.????#?? 5,2 +#.??##?####?.???? 1,1,8,1,1 +.?.??#??????. 1,4,1 +??????.?#? 6,1 +..???.#?##?.???.? 2,5,2 +??###????????.????? 5,6,2 +????.????? 2,1,1 +???.?#???#??#? 1,6,1 +..#?.???#?.#?#? 2,1,1,1,1 +??.?###?#????#??. 8,1 +?###???##??????? 3,8,1 +.#.#??#?#?. 1,2,3 +.???#.?..##?????#??? 4,5,3,1 +???###??..??? 6,1 +.##?###?????#???#? 6,1,2,2 +#.??????#?? 1,2,3 +.?.#?##??##??????? 8,5 +??????????# 1,4,1 +.???..???????.? 1,7 +#?##??.#????#.?? 1,3,1,1,1 +?#?#??.??#? 5,1,2 +?.?#?#??#??##??. 4,7 +##?.???????.??????? 2,1,4,5 +??.?????????..??#?? 1,4,1,1,1,2 +??..??#???????? 1,2,1,2 +?.#???#??.?#?#? 1,2,1,1,5 +??.?????##????.? 2,10,1 +?.????.#???#??.? 1,3,1,3,1 +??#??#????..????? 8,1,3 +?????#?#??#### 1,1,3,5 +?.??#???????..#??? 1,6,1,3 +##?#???????.#??? 7,2,4 +??#?..????#??##??# 4,1,2,2,1 +??????#??#?.?#?##??. 1,9,2,2,1 +???#?.????.????? 2,3 +.?.?????.??????.?# 1,1,2,1,2 +.??????##.??? 8,1 +??#..#????## 1,1,1,2 +???.??.?#?#?. 1,1,3 +?????.?????.??? 2,5,1 +.#?#???.????? 5,1 +#???#?#???#?.?.????? 3,8,3 +#?.#?.???.??? 1,1,3,2 +??#?#?#?#????#.? 9,1,1,1 +.#???#..?????. 3,1,1,1 +??#.??????#. 1,1,1,1 +???#?##?.???...??. 1,5,2,2 +???.?.????#. 1,1,1,3 +???###?.??#???. 5,5 +?..?.??#???.???.?..? 4,1 +.??#?.???#??..?# 2,4,2 +?#????#??#?? 1,1,1,3 +#??????#???#??? 8,1 +??????#.?.?.?. 1,5,1 +??.??.?????.#? 1,4,1 +?#??#?##???#????.# 1,5,3,1 +????????.#?#???? 3,3,4,1 +???????????..??????? 1,1,1,1,1,6 +???#??#?#??##?## 1,1,1,8 +??????????????? 2,1,1,1,1 +?..???.?????.#? 1,1,1,1,2 +??????##?????.?#?.?? 1,8,2 +.?.?#??#???? 1,1,1,1 +.???#?????.? 4,1,1 +????..?#?? 2,2 +????#??.#? 5,2 +????..?.#.? 1,1 +????????#?? 1,2,1 +????#?..?.# 3,1,1 +?##?????#???? 6,2,1 +????.????####??. 4,1,6 +??.#?#?#.???????? 2,5,2,1,1 +?.#??.?#??????????? 1,1,1,3,5,1 +??..?.??#??? 1,3 +??.??...?????#?#?? 2,1,9 +??##?#??#??. 4,4,1 +??##????#???# 8,2 +.???#?????.. 2,2,3 +????????.?. 3,1 +?.???#?????????????? 1,1,4,2,2,1 +.?##???.???????? 3,5 +??#??...#??#? 4,1,1 +????#.####. 3,1,4 +.##???.??? 2,1,2 +??##???????? 1,4,1,1 +.#????#?.?#?#? 1,3,4 +.?????##?#??????? 1,8,1 +.#?.##?.#? 1,3,1 +?#????.????? 5,2,2 +??.##?.??#.?????? 3,1,1,6 +??.????#.?##??#?. 2,1,1,6 +??.?????.??.? 2,2,1,1 +?#?#??#????.?#??##.# 10,3,2,1 +?#??#?..??#????.??? 4,2 +?#...???#??.? 2,1,3 +#??.??.#???#..??? 3,1,1,1,1 +??#?????..#??.#?.??? 5,3,2 +#??####?.#????#????? 7,2,1,1,1,1 +..#??.?.#.???.??? 3,1,3,2 +....??#?????.??##?.. 7,3 +.???##??.?? 3,1 +#.?#?..?###?#?#? 1,2,5,1 +???#?.??#????#?? 5,1,1,1,2 +??##.?#?##??????.?? 1,2,5,1,1,1 +#???#??#????..??# 8,1,1,3 +.?#??..#.?????? 2,1,1,3 +????????..????? 1,3,1,2 +.?...?#?#?????? 1,9 +.?#?.?????#?????## 1,1,10 +#??..?#?#?.? 2,5 +??#.???#?.???#??? 1,5,1,2,1 +??.?.###?##?#?#?#? 1,1,8,1,1 +.?.???#??###.?????? 1,2,6,1,1 +?????.?#?#?#???? 2,1,6,1 +???????.#?#????##. 1,1,9 +.?##?.?????? 3,2,1,1 +????#??#????#????? 2,3,2,2,2 +?##?##???#?#????#?# 5,1,1,1,1,3 +?.??#.?#???#????? 1,3,1,6,1 +?#???#?#.????.?. 1,1,1,3,1 +?..?#??..# 1,3,1 +?##?????.#????#? 3,1,1,1,1 +??#..??##??#? 1,5 +.?.#..???????? 1,1,2,4 +?.????????.#? 1,1,2,1 +???####?.?#??? 6,4 +??????..#?? 2,2 +?.??????#??.? 1,7,1 +???#??????. 1,4 +???.?#????.??.#.?. 2,2,1,2,1,1 +.?##.#?????#??# 3,1,2,2,1 +????.?#?????????? 1,9 +?.??#?????.?. 3,1 +#????#.??????. 6,1 +?.???????.???# 1,2,2,1 +#.?#????????.?? 1,5,1,2,1 +.?.#.?#????#? 1,3,2 +???#?#..??.# 6,1 +.??????.?????##? 4,2,3 +.???.????#?#..??? 2,4,1 +?.????...?? 2,1,2 +???????#??#??#?#?. 2,9 +?????????#?????.? 1,1,5,4,1 +.????.??#?..#??? 3,3,2 +??#?#?.?.?###. 5,3 +????????.#?#???? 1,1,1,1,5 +.##?#?#?.?.???????? 2,1,2,1,7 +?????###.?.???#? 7,5 +??.??#.??##???? 1,2,4,1 +#??#?????? 5,2 +...?.?????.??#. 2,3 +??#??.??.. 1,3,1 +?????????.?#??#???.? 3,2,8 +???#??????#.#?#???? 5,2,1,1,1 +??#..?##???##?. 1,3,3 +??.????#?#??????# 1,1,9,1 +??###????. 1,6 +.??##?##?.??#?#? 8,1,1,1 +?#..??#???? 1,1,3 +???##?????#??????.? 3,4,1 +????#?..?????.?#?.?. 4,4,2 +?#???.??#???..? 1,2 +.?#??#..???? 4,1 +.?##...??##? 3,1,3 +????????#???#?#. 2,2,3,2,1 +#???#?#???#?#?#??? 5,1,3,5 +??#??###?#??.?.?# 10,1,1 +.??#?#??#?#??#? 3,1,2,5 +?????.?#??????#.???# 2,1,4,1,1,4 +?.#?#?##???.#?? 1,6,1,3 +??????#?.??? 1,5 +#??##.?##??? 2,2,3,1 +?#?##??????##.??? 7,3,1 +??????#????..??? 10,3 +##?.????##???#.? 2,10 +??...???????#? 1,9 +?..?###??.?.??#??. 5,4 +?.??##.?.??#??#???? 3,9 +#???.??#???#???? 3,4,3,2 +????????#?#??#??? 11,3 +?????#?????#...?? 3,1 +#?????..??##?.??? 1,4,3,1 +????##??##?###.#. 1,1,3,6,1 +?#???.#.?? 4,1,2 +#.?.???#??#.? 1,1,2,1 +????.?????#??????. 3,8 +????.?.#?#? 4,4 +???#??#????##??.. 6,5 +###??#????#?.. 7,2 +??.??#???###?. 1,7 +????????.?.?#???? 3,3,1,4 +?#?#..##???????# 3,2,7 +#?????.??????? 2,1,1,6 +#??..?#??## 3,2,3 +??.?.????.#??? 1,3,4 +.?#???##.???.??? 6,2 +??.??.?.?#####?? 1,6 +?#???#?#.?.????..? 7,3 +??#.??###?###?.? 3,7 +?.?.?..??###? 1,1,1,6 +??.??#??#?.??.?? 1,4,1,1,1 +?#?#?.##????? 5,2,1,1 +#??????#?. 5,2 +?#?#??.?..?.? 4,1 +?????????..#.??? 2,2,1,1,1 +.?..????#??#?##?#? 1,1,1,10 +??????.?????.??? 4,3 +???????????#?. 4,2 +.????#??.?.??#???#? 1,3,1,2,2 +??##?#????##?##???#? 6,10 +?#???????????. 5,4 +???##?#?????#.?.?# 10,2,2 +.????.???#?##.????? 2,7,2 +??????##???.?.????. 1,4,2,1,1,1 +???#?????#??#????#.? 1,3,4,3,1 +?#???#.#??.? 2,1,1,1 +?.???#?.??#?#??? 2,8 +#.????#?.?..??#? 1,1,2,1,3 +.????.?????.? 3,1,2 +?????#?????.? 3,2,3 +?#?.#??##?. 3,1,2 +??###??????? 6,1,1 +????????#??? 1,1,3 +???.?.#??? 1,1,1 +.??.??#.?? 1,1,1 +?##.???##???#?#.??? 2,7,1,2 +?#??.??.#??#???? 2,1,2,1,1 +##????#?##?.?#.?? 3,1,5,1,1 +?##?.?#.#??##? 3,1,1,4 +#??.??????? 1,4 +.???##??????.????#?? 1,8,1,2 +???#.#.?????????? 1,1,1,10 +????.?#??#?#??#?? 1,10 +?.?????.???.??#??? 1,1,1,2,2,1 +??.???##.?????? 5,2 +??.?.#???#??? 1,1,3,3 +????##????..#??? 6,1,1,1 +?????#.??#?##.?? 2,2,4,1 +?#..???????? 1,1,3 +#??????#?...#? 9,2 +?..?.??#?.#? 1,1,2,1 +..????????? 1,1,1 +??.??#??.???.? 1,5,1 +..?.##..??#??#?????? 2,10 +???#..?#???#????? 1,1,2,8 +.???????#.????#?? 4,2 +???.?#???.???.?.. 2,3,2,1 +??#?#?????#??? 1,4,1,2 +????#.???..#?### 3,1,1,1,3 +????#???..?#?# 4,1,2,1 +?.??.????##?#?#.? 3,6 +.???.????????#????? 1,7,1,2 +??#??.??#???.? 3,4,1 +.??.?#.?##?????.?.. 1,2,2,2,1 +#???.?.??? 4,1,2 +?.??.?#??#?????????. 2,5,4,1 +..??????????????#?.? 1,6,2,1 +??...#.?##? 1,2 +.???####?#.???. 1,6,1 +??#..??#??.?##?# 3,1,1,2,1 +#?..?##??..??#? 1,5,1 +?#?#????????? 6,1,2 +?.#?.?.#???? 2,1,5 +?..????#??????.?. 1,2,1,5,1 +.???#??#???#?#??#? 2,3,4,1 +.???....#??.??. 1,3 +???#?.??..#???. 1,1,1,4 +...???.#?? 1,1 +.#???.???## 1,1,5 +??#??##???.?????. 4,5,5 +??#?##?...??? 1,3,2 +#????#.????#?#??? 1,1,1,7,1 +????#??#..?.??????. 8,1,1,2,1 +?#????#??#?????#.?? 8,4,1,1 +.?????.##??????#???. 1,1,12 +#??.??#??? 2,3,1 +.?#?###?#??###?#?#?. 1,15 +?#.#?????# 1,4,2 +??#???###???????#?.# 9,7,1 +.??.??#???. 1,4 +.??.?#???#???.###?. 1,7,3 +????#??#???#?.??? 1,1,2,3,1 +???#?#?????..?.????. 10,1,1,1 +??##?#??#?????#????? 1,7,1,6 +??.?#?#???.????? 2,7,2 +??#?.?.????. 3,3 +.??#.#?##??? 1,1,6 +??#??????###??.? 1,3,1,3,1 +..?#?.#???.?#? 2,1,1,3 +?.?##????#.?#?? 7,3 +??###???.?. 4,1 +??.?#?#??#??. 1,7 +??????.##?.#??#?? 1,1,1,2,6 +?.?###.?#???#???##?? 4,11 +.#?#??##?.???#???? 8,5 +.?.??##???.??.? 1,7,2 +????????#???#??? 3,2,5,2 +??.?###.????????.?# 1,4,3,1,1 +#.????##??#??????#? 1,1,13 +#????#???#.??#. 1,5,1 +????????#???#??.??# 1,1,1,8,3 +????.?????.??# 3,4,1 +??.??#???.. 1,4 +??.??##?.????##??? 2,3 +????????????#?????? 1,10 +?#??#??.?.#?.#....?? 7,1,1,1,1 +?.?#????## 4,2 +.?.#????##. 1,5 +.???????????? 3,1,1,1 +#?????????.?###?# 2,3,1,1,5 +?#?#.#??#.??? 1,1,4,1 +???.#??????????? 2,8,2 +##?#?#?.???? 6,2 +??.?????##.#? 1,1,4,1 +??????.#?##? 1,4 +???#????????.#.????? 4,1,3,1,5 +?#?..??##? 3,4 +?????.??##?.? 2,1,2,1 +?#????#????? 1,7 +.???#.??##???????. 2,1,7 +???####?.?#??..? 6,3 +?.?#???.????. 5,1 +.?#???.?###?#??## 3,1,10 +?###??????#?????###? 5,5,3 +.??#?.????#? 4,2 +##.?##?#.?.#??#.??? 2,2,1,1,4,2 +????#?????#?##??##?? 3,1,2,6,3 +...??##..??# 4,2 +?.?.#???#? 1,1,1 +.#???.????? 1,2,1 +.#???#???#?#????#. 1,1,2,1,1,2 +???.#??????? 1,3,1,1 +.??#???#??#????#?? 1,2,1,8 +?#????????? 4,1,1 +?????##??##?? 3,7 +??.????#.??? 1,5,1 +.??###?##??#?# 7,3 +???##?..?? 1,3,2 +??#.?.????#? 2,1,2 +?#??#???#??#?.#. 2,1,6,1 +?.?????.?#?. 1,1,1,2 +.??#???#?.?#?#??# 3,3,2,1,2 +?#??..#.???? 3,1,1 +????????#????.?.#? 1,1,6,1,1 +??#?#??????#?.?.?.#? 5,1,3,1,1,1 +???#???????#??#??. 2,3,10 +???#?#?.?????#?#? 4,1,5 +?..??#???????????? 1,4,1,1,1,3 +#.?????###?#??? 1,12 +?.??????##??#??????? 1,11,2,1 +#?.??##??#??. 1,9 +????#?????????? 9,1 +?#.?#??.???.?????#? 1,3,1,1,1,2 +??.?..????.?? 1,1,3,1 +?#..?#???????.? 1,2,2,1,1 +#.??#??#??#? 1,7 +#?#?#???????.?????. 6,5,1,1 +.????????.?#?#. 1,1,1,4 +??.???????#. 1,1,1,1 +??????.?#.???? 2,1,2,1 +..?#?##???????? 2,7 +?#?#?????.??? 8,1 +#?.?#????.?? 2,3,2,1 +????.?.?#???? 1,1,2,1 +?.???#?.??.?.?.?. 4,2,1,1,1 +.#???#?#??#??. 1,9 +?????#??.?? 3,3,1 +?#?????..?.??###?# 5,7 +?????#??.##. 4,2 +.##.??#??????#?##. 2,2,6 +#?.???.?#?.?????. 1,3,2,1,1 +?##?#?????? 2,4,1 +?#?????#??????#?. 10,1,2 +.?#..?#???##?.???? 2,1,4,2,1 +???????.????##.??? 3,3 +??###?.????.??##???? 6,2,1,3,1 +.#?####??.?.?#???# 8,5 +?????????# 1,7 +.??..###???#??#?.??? 10,1 +#????..????#?#? 1,2,2,5 +????###?????? 8,3 +#..??.???????#??? 1,1,2,1,4 +.?#????#?#??.?? 11,1 +?#?????#..??#?.??? 5,1,1,1,1 +?.??#??????##?##.. 1,2,1,1,6 +?###?????#.?# 8,1,1 +??#??.?#???????## 3,3,5 +??.#?????.?????#???? 1,1,1,1,2,4 +??????????? 1,2 +..???.???#? 2,3 +??.??#?????#????.? 2,8,2,1 +?????#??????#? 1,4,1,3 +?.?????..??? 1,1,2,1 +?#??#????##?????#??# 4,3,7 +?????.?##??.????.#. 3,3,1,1,2,1 +?#???????????#.??#.? 2,9,3 +?????###.??.#.?????? 1,4,1,1,1,2 +.?###.??.? 3,1 +???....??##.? 1,4 +??###??.?.#?..?? 5,1,1,2,1 +???##??????#???? 3,1,3,1 +?????#???????#.? 2,1,1,1,3 +???????#??#???# 2,10 +.??##????????? 1,2,6,1 +??.#?#???????# 1,4,1,2 +???#?.?##?#.????? 1,3,4,1,2 +?#????..?##? 2,3 +??????#??.?????? 1,6,2,1,1 +.?##??.?.?#????## 5,3,3 +?#??????.????#??.??? 1,1,2,6,1,1 +?.??#??..##?.??. 1,5,2,1 +?#?..???#?.?? 3,5,1 +??????..???? 3,1 +.?.???????#????. 1,9 +??????#?#??????.???? 14,1 +.????????????#??. 1,7 +????#.?##?## 3,5 +.?.##?????.? 1,3,1 +???#??????##??#??. 1,1,11 +????##????? 2,2,2 +????????.??.#??#??. 3,2,1,6 +#???#?#??#???. 1,7,1 +..???????????.##??? 9,5 +??.????????#??# 2,1,1,2,1 +?#??????..?. 3,1,1 +#???.??????.#??.? 1,1,2,2 +?#??????.# 2,3,1 +????#??.##?.??#. 1,2,3,1 +.????#???????#? 2,1,4 +.?#????.?.???##. 1,3,5 +.?.?#????#. 3,1 +?#???.???#?##?? 3,1,5 +????#?#?????????..?. 9,2 +.?????#????????##?#? 4,1,1,1,2,5 +.???#??????????? 1,5,6 +??.??#?##???##?? 1,4,6 +??..??.##?# 1,1,4 +#???.??????????????? 3,11,1 +?.?##????.???????? 1,3,2,7 +?#??.?.?#??.? 3,1,3,1 +..??#??.???#?????? 3,5 +???#.??????? 3,1,3 +?#?##??????? 9,1 +???#??#???????# 1,7,1,1 +??##????.##???? 4,2 +.#..???..??#?.?#?# 1,1,1,1,2,1 +.?????..?? 1,1,2 +?.????????. 1,5,1 +?#????.??.#.?????#. 3,1,2,1,2,3 +?#???????? 3,1,1 +??#?#?##????#?? 9,3 +.#??#?#??. 1,3 +.#??#?.??#?#?..? 4,1,2,1 +.???.?.?#?#?.?? 1,1,5,1 +?..???#????????..? 3,2 +#??#???.???#?????#? 6,1,4,3 +?????#?.????????.? 1,1,8,1 +.#??#????.#?.#?? 1,3,1,1,1 +??????????????#?#?? 1,10 +???#?#?#?? 1,1,3 +???.?????#.#? 3,1,2,1 +???.???.?# 1,3,1 +?#?????..?#???#??? 6,3,4 +?#?#??.##?. 4,2 +??????????#?.????. 1,6,2,4 +?#??#?????????? 1,9,1 +???##?#??#??? 1,9 +#??????##?? 2,6 +??.??????#?#?.???.? 1,3 +.?#?#?.?????????.? 2,1,1,2,1,1 +??..#????.###?#? 2,1,1,1,5 +???.?????#??? 1,4 +.?????##?#?..?.? 3,5,1 +.#????#??.???.?# 1,1,2,2,1 +??#???##?#?????.???? 8,1,2,1 +#?#.#????.?#???? 1,1,5,5 +.##????#??#..?.?.?.? 7,2 +#????#?????.? 1,1,2,3 +??.#????#? 1,2,1 +?#?????..??#.??? 4,3 +.?????#.#??.? 6,1,1 +??#?.??????.??#.??# 3,6,1,1,1 +#?#?..??##????????# 4,13 +????###?.??#...??#?? 7,3,3 +?????????#.???# 8,2,1 +??###??##?..?.??##.? 10,1,2 +.#?????????#???#?#. 4,1,8 +????#?.????#???..? 5,1,4,1,1 +??.????.#?????##? 1,3,1,1,2 +??.#??#.?.?? 1,1,1,1 +??.??????#?? 1,6 +.???.???.##??.?. 2,2,4,1 +???#?###?.?? 1,1,3 +???#.?????..#.. 1,1,2,1,1 +?#?#?.??????#????# 1,2,1,1,8 +#?????.????? 1,1,1,1 +.????#..?? 4,1 +??###????????#?##.? 1,3,1,1,4,1 +????..?.#?.. 2,2 +??????#??#??.?? 1,1,1,4,1 +?????#????.?????# 1,7,4 +?.#???#?#?? 1,7 +??.??.??.??..##??#?? 2,2,1,6 +????.??##?. 1,1,5 +#?#.#??????.#.?#?.?. 3,4,1,1,1,1 +#?????#????? 2,5,1 +??#?#?????.#?#?? 6,4 +..???#??????. 1,1,5 +.?.?#.#???#???? 1,1,1,4 diff --git a/2023/day12/test b/2023/day12/test new file mode 100644 index 0000000..e925935 --- /dev/null +++ b/2023/day12/test @@ -0,0 +1,6 @@ +???.### 1,1,3 +.??..??...?##. 1,1,3 +?#?#?#?#?#?#?#? 1,3,1,6 +????.#...#... 4,1,1 +????.######..#####. 1,6,5 +?###???????? 3,2,1 diff --git a/2023/day13/day13.bqn b/2023/day13/day13.bqn new file mode 100644 index 0000000..2b6e816 --- /dev/null +++ b/2023/day13/day13.bqn @@ -0,0 +1,5 @@ +input←>¨(0≠≠)¨⊸/¨(+`(0=≠)¨)⊸⊔'#'=•FLines"input" + +_F←{⊑∾⟜0 1+/𝕩⊸𝔽¨{2×∾⟜(⌽-)(⌊𝕩÷2)↑1+↕𝕩}≠𝕩} +•Show +´∾100‿1×{≡⟜⌽𝕩↑𝕨}_F¨¨⋈⟜(⍉¨)input +•Show +´∾100‿1×{2=+´⥊|-⟜⌽𝕩↑𝕨}_F¨¨⋈⟜(⍉¨)input diff --git a/2023/day13/input b/2023/day13/input new file mode 100644 index 0000000..b6095cb --- /dev/null +++ b/2023/day13/input @@ -0,0 +1,1325 @@ +##..##..##. +######..### +.####.##.## +..........# +.####.##.## +.####....## +..##..##..# + +##.##.#.#..## +##.##.#.#...# +.#.###......# +.###.##..#..# +##.#.##....## +.#..###.###.# +.#...#...#.## +#.#.##.#...## +#.###.#.##.#. +#.#.#...####. +#.#.#...####. +#.###.#.##.#. +#.#.##.#...## + +.........#.## +...........## +..###....##.. +##.##.#..#..# +####....####. +##.####.##### +....##.#..... +##.#..##..#.# +###...##..... +##..##..###.. +......######. +###.##.#####. +...#.##.##### +##..#..#.##.# +#####..#..##. + +.#....########... +.##.....####..... +.##.....####..... +##....########... +..#..##..##..##.. +####.###.##.###.# +#.######....##### +..#.#...####...#. +....##.#.##.#.##. +#.#...##.##.##... +.#.##..##..##..## +#.##.#.#.##.#.#.# +.#.#....#..#....# +.#...###.##.###.. +##.###........### + +..###..##.. +.#.#.....## +#.##..##.#. +#.#..###..# +.#..##.##.# +.#....##..# +#.####.##.# +#.####.##.# +.#....###.# +.#..##.##.# +#.#..###..# +#.##..##.#. +.#.#.....## +..###..##.. +..###..##.. + +####..# +#...#.# +.##.#.# +.##.#.. +####... +.##.### +.##.##. +....### +.##..#. +......# +####..# +######. +####.## +####... +####... + +#####.#.. +#.#...... +#.#...... +#####.#.# +#####.#.# +#.#...... +#.#...... +#####.#.. +.#####... +#..#...## +#.#..##.. +####.#### +#...##... + +.#.##.....#.#.. +....####.##.### +#.#..#...###... +.###..#.###...# +..###.##..###.. +...#..#.....### +...#..#.....### +..###.##..###.. +.###..#.###...# +#.#..#...###... +....####.##.### +.#.##...#.#.#.. +.#.##...#.#.#.. +....####.##.### +#.#..#...###... +.###..#.###...# +..###.##..###.. + +#...... +..#.##. +##.#... +.##..#. +.##..#. +##.#... +..#.##. +#...... +#...... +..#.### +##.#... + +.##...### +......##. +.##..##.# +#..#.#..# +....#.### +#..#.#..# +.....#..# +######.#. +######.#. +.##..##.. +.##.....# +#..#..... +#..#.#... + +.#..#.###.#..## +.#..#.###.#..## +#.##..#..####.. +#.#####..#..#.. +#..#..#.#...### +..#.##.##.##.## +..#..##.#.##.## +####.##...#..#. +..#...#..#.#... +###.#.#..#...## +.#..#######..## +###.#.#.###.... +.#.....#.....## + +##.#.#..#.##.#..# +.####..##....##.. +#.##.#.##.##.##.# +#..#..#..#..#..#. +###.############# +#.##............. +...####..####..## +..#..##..####..## +#.#.#.####..####. + +#..#... +..#.##. +#####.# +#..#### +####..# +......# +....### +#..#.#. +####.## +####.## +#..#.#. + +####... +##.#... +####... +.#.#... +##.#### +##.##.. +#####.. +##.#.## +.##.... +.##.### +##..#.. +#..#### +#...#.. + +.#.##.#.. +.#....#.. +#......## +##.##.### +..####... +#.#..#.## +.##..##.. +........# +...##.... + +###.#.##...#..#.. +###.#.##...#..#.. +#....#.#.###..### +.####.#.##......# +#####.#.##.####.# +#.##....#...##... +...#.###...#..#.. +###...##..#####.. +##..#.###........ + +#....######....#. +#....#.##.#....#. +..##........##..# +.##.#..##..#.##.. +#....##..##....## +..##..####..##..# +.#..#......#..#.. + +..#..#. +#..#.#. +#..#.#. +.....#. +##..... +.####.# +.####.# + +####...##..##.. +####.####.####. +..#.#.##..####. +..#.#.##..####. +####.####.####. +####...##..##.. +.###.#.##.#.##. +####.#.##.####. +#...#.##....... +#..###.##.####. +.#...#####....# +####.###.#.##.# +.#.###.###....# +..#.##..##.##.# +#.###..#.#.##.# + +##.###..##. +.####...... +.####...... +##.###..##. +######..##. +.#.##...... +.##..#.#..# +#.#...#..#. +#.#.##..... +###.###.... +...#..#.##. + +.......#.#### +.......#.#### +#..##........ +.#...###.##.# +##.#.##.##### +#.#####...#.# +.#.###.####.# +..###....#..# +#.#.####..##. +#.#.####..##. +..###....#..# +.#.###.####.# +#.#####..##.# +##.#.##.##### +.#...###.##.# +#..##........ +.......#.#### + +#....##.### +#.#.#.#.#.. +#.#.#.#.#.. +#....##.### +#.#...#.#.# +.#......##. +.#..#.##... +....#..#..# +.###.##.##. +.###.##.##. +....#..#..# +.#.##.##... +.#......##. +#.#...#.#.# +#....##.### + +.#....#.##. +..#...#.... +####...#### +..#.####### +.##...#.... +#.###.#.... +#.###.#.... +.##...#.... +..#.####### +####...#### +..#........ +.#....#.##. +#.#.#.#.... +.#.##...... +.##..#.#..# +#..##...... +#.######..# + +.###.#.####.#.# +#..##...##...## +#..##.##..##.## +.###.#......#.# +##..##.####.##. +....##.####.##. +.#...########.. +...#...####...# +..##..........# +..##....##....# +..###.#.##...## +.#.###.#..#.### +.###...#..#...# +##.#####..##### +##..#........#. +#######.##.#### +#######.##.#### + +###...##......# +###....#......# +#..#.#.#......# +..##.##........ +#.#...#.##..##. +###...######### +.#...###.####.# +..#..#...#..#.. +..#.##.##....## + +.##..#..###.#.# +.##..##.....##. +....###.####..# +.......###..#.. +######..#.##..# +.##..#.#####.#. +.##..#.###.#.#. + +..##.##....## +#.##.#....##. +#....##.#.##. +######.#.#### +######..#.... +#....#..#..## +.#..#.####... +.####.##.#... +.####.##.#... + +#...##...#.#. +#..####..#.## +#........#..# +.#.####.#..## +..##..##..### +#.####.#.#..# +##.#..#.##.#. +...####...##. +#.######.#.## +#.##..##.#... +.##.##.##..#. +.##.##.##.... +#.#.##.#.#.## +#........#### +############. +##.####.##.## +##.####.##.## + +.#....##... +...#......# +##.##....#. +...#......# +..#.#....#. +#..##....## +###.######. +.###......# +#.#..#..#.. +..#.#....#. +..##.#..#.# +..##......# +####.####.# +#..###..### +#.###....## +..###.##.## +..###.##.## + +#.....#.#....#.#. +##....#.#....#.#. +#.##.#.###..###.# +.#.##.#..#..#..#. +###...##.####.##. +#.###.####..####. +#.#.....######... + +##.#..#.### +...####...# +###....#### +###....#### +...####...# +##.#..#.### +#.##.###.#. +..#.##.#..# +##......##. +..######... +#.#.##.#.## +#.##..##.## +..######..# + +#####.##...##...# +#..##.###.##.##.# +.##..#.#.......## +....####.#.##.##. +#..#..#..#...##.. +#..##.##.#.#.##.# +#..##.##...#.##.# + +..#.#.####.#.#. +##.####..####.# +##.#........#.# +..#....##...... +#####......#### +..#.#.####.#.#. +..#.#.#..#.#.#. +...##..##..##.. +..#.#......#.#. + +..#.###.##.## +##.#.##...### +..#####..#.## +####..####.## +##...#.#..... +.##...#.##... +####....###.. +##...###..### +..#..##..##.. +##.##.#.#..## +####.#..#.### +...###.#.#### +...#..#.##.## +##.....#..... +...########.. +#####...##... +##.#.#....#.. + +...##.##. +###.##### +..######. +##.#..... +...#.#### +##.###..# +##.#.#..# +..##.#### +..#.#.##. + +.##....##..#..# +####.#.#....##. +#.#....#..##.#. +#..#...###..#.# +#.#.###..#####. +.#...#....#...# +.#...#....#...# +#.#.###..#.###. +#..#...###..#.# +#.#....#..##.#. +####.#.#....##. +.##....##..#..# +.##....##..#..# + +..##....... +.####..###. +......###.. +......###.# +..#....#..# +##..##..#.. +.####..##.. +..##..#..#. +#....##.#.# +#....##.#.# +..##..#..#. +.####..##.. +##..##..#.. + +###.##.###### +....##....... +##..##..####. +..#.##....... +..#....#....# +#........##.. +###....###### +..#....#....# +.#.####.#..#. +#.##..##.##.# +.#.####.#..#. +.########..## +#.##..##.##.# + +###....####..#.## +##.#..#.#####.### +....##....###..## +...#..#....#.##.. +.########..#..... +..######...###### +.#..##..#..#.#..# + +#####.##.##.. +....##..#.### +.##...###.#.# +.##..#..##... +.##.#..#..#.# +#..#...###.## +....#..##..## +#####....##.# +......####... +.##...##..### +.##.####.###. +....##...##.# +....##..#...# +.##.#..####.. +####.####.... +.##..#...#.#. +.##..#...#.## + +##.#....##....# +.#.###.#..#.### +.##.#.##..##.#. +.###.##.##..#.# +..##..#.##.#..# +...#.#......#.# +.#.###......### +.##..#.#..#.#.. +...#.##....##.# +######..##..### +..#.#..####..#. +##...##.##.##.. +#.#####....#### +#.#####....#### +##...##.##.##.. +..#.#..####..#. +######..##..### + +##.##.... +###...... +....#.#.. +#..#.##.. +#..#.##.. +....#.#.. +#.#...... +##.##.... +#####..## +##..#.#.. +####.##.. + +#.#.... +#.....# +.###..# +.###..# +#.....# +#.#.... +#.##..# +#...### +##.#... +..##.## +##..#.. +..#...# +..#.... +##..#.. +..##.## + +#..#.##.....# +#..#.#....#.. +.##.###....#. +.##.###....#. +#..#.#....#.. +#..#.#......# +#..##....##.. +.##.....####. +#..##..#...#. +.##.#..#...#. +#..#..#...... +.##..#.##.#.. +.....#####.#. + +..#.#..## +###.####. +...#..##. +.....#.#. +...##...# +.....#.#. +####..... +#####.... +.....#.#. + +#..#####..# +#......###. +#......###. +#..#####..# +######..... +#.##.....## +..#####.##. +###......## +###.....### +..#####.##. +#.##.....## + +.#.....#.#. +...#.###.## +...#.###### +.#####....# +##.#..#..## +##.#..#..## +.#####....# +...#.###### +...#.###.## + +..#...... +##..#.#.# +#.#.#.#.# +#.####..# +.##...##. +.#....##. +#.####..# +#.#.#.#.# +##..#.#.# +..#...... +..#...... + +.#####.#..####. +#..#..#...####. +##.###..#..##.. +#..###..#..##.. +#..#..#...####. +.#####.#..####. +#.........####. +#.####.###.##.# +..#.###....##.. +#.#.#..####..## +#..##.##..####. +.....#.####..## +###.......####. +..#...#........ +###.#.##.###### +###..###...##.. +...#...##..##.. + +..#.##.....#.#. +.####..##..#### +.#....####....# +#...###..###... +..#.##....##.#. +..#.##....##.#. +#...###..###... + +#........##.#.### +.#.##..##.....#.. +.#.#.#.#.####..#. +.#.#.#.#.####..#. +.#.##..##.....#.. +#........##.#.##. +#.#.###.#....#... +#.#.###.#....#... +#........##.#.##. +.#.##..##.....#.. +.#.#.#.#.####..#. + +..#...##### +#.##...##.. +##...##..## +##...##..## +#.##...##.. +..#...##### +#.####.#..# +...#..###.. +#..##.##.## +#.##.#..### +.###.##.#.. +.#.#...#.## +#..###..#.. + +....#...####... +..##..##.##.##. +##..##..####..# +.#..###.#..#.## +..###.##....##. +...###..#..#..# +...#.#.######.# +..##..##.##.##. +##..#...####... + +....##.....##.#.# +#.#....#.######.. +############..### +#.##..##.#.####.. +#.##..##.#.####.. +############..### +#.#....#.######.. +....##.....##.#.# +#.#.##.#.#.#..### +#.######.##.####. +#######.##.#.#.#. +#.######.#..##.#. +..#.##.#......#.# +..#.##.#..##...#. +.##....##.##..#.. + +##..#...##...#### +##..#...##...#### +###......#....... +.##.##..##..#.##. +.#.#.#.##....#..# +##..#.#.#..##.##. +#..####...##..##. +##.#....###.##.## +.#...###.####.... + +..#.#..######..#. +..#.#..######..#. +..#..##.......#.. +...#.#.######.#.# +##...#.#....#.#.. +#.######....##### +#..####..##..#### +......#......#... +#...###.####.###. +....#.#.#..#.#.#. +#..#.###.##.###.# + +..########..# +...#.#.##.... +##.###.#..##. +###.#.#.#...# +##.##....##.# +...###.####.# +###...#.###.. +###...#.###.. +...###.####.# +##.##....##.# +###.#.#.#...# +##.###.#..### +...#.#.##.... + +##....#..#. +##.#.#####. +##.###.##.# +#...###.##. +#####..#..# +##.##.##### +..#..#####. +...#.##.#.# +...#.##.#.# +..#..#####. +##.##.##### + +.#.....#.###.###. +##..##.#.###.#.#. +##.###.#.###.#.#. +.#.....#.###.###. +..#....#.......## +...###.#.#..#...# +##.####.#.##..##. +...#.##.##...##.# +..##..#.##......# +..##..#.##......# +...#.##.##...##.# +##.####.#.##..##. +...###.#.#..#...# + +.###....##... +##....##..##. +###..##.##.## +...#..#....#. +#......####.. +.#.##...##... +.....#.####.# +#.####..##..# +#.####..##..# +.....#.####.# +.#.##...##... +#......####.. +......#....#. +###..##.##.## +##....##..##. + +...#.## +#.###.. +#...### +#...### +#.###.. +...#.## +.#.#### +#.###.# +.#..### + +#.#..#.#### +.#....#.### +########.## +.##..##.... +#......#..# +.#....#..#. +#.#..#.##.# +.######.... +.##..##..## +##....####. +##.##.###.. +#..##..#### +#......#..# +##.##.###.. +.##..##...# +.##..##...# +##.##.##... + +.#.#.####....#.#. +..#.##..##.#.##.# +##..###....###.#. +..#..#..##...#### +.##..#..####..### +.####.##...##..## +.####.##...##..## +.##..##.####..### +..#..#..##...#### +##..###....###.#. +..#.##..##.#.##.# +.#.#.####....#.#. +.#.####.#...#.### +...#.##.#.####... +...#.##.#.####... +.#.####.#...#.### +.#.#.####....#.#. + +#####.#..#.## +.##..#.###..# +......##.#### +#..#.#...#### +#..#.#...#### +......##.#### +.##..#.###.## +#####.#..#.## +#..#.#.##...# +.##....##...# +#..###..#...# +#..#..####... +########...#. +#..#.#..##### +.##..#...#..# + +#.#..##..#### +.#.#.######## +####.#....... +.......##.##. +.#..#.#...... +######...#..# +.##.####..... +.##.####..... +######..##..# +.#..#.#...... +.......##.##. + +...#.###..### +#.#####.##.## +#.#####.##.## +..##.###..### +##.####....## +...########## +#.....##..##. +.#....#....#. +..#.#..####.. +.#....#....#. +.###...####.. + +#######.#.... +#######.#.... +.####..#..##. +#....##..#.## +##..######### +..##..#####.. +...#..#.####. + +#..####.. +#..#.##.. +.....##.# +#######.# +####.###. +######... +#..#.#### +.##..#### +.##.####. +.##....## +....#.... +######.## +.##.###.# +#..#...## +....###.# +#######.# +####..#.. + +..##.#####....##. +..##.#####.#..##. +..##...#..######. +#....#.#..#.#..#. +###.#...#.##.##.# +.##..####...####. +#....###..#..##.# +....#....#.##.#.. +..#...#####.###.. +#.#......#.#.#..# +..####.#..##..##. +..#####.##...#..# +.#####..#....#... +...#...#...#.##.. +...#...#...#.##.. + +##..####...#.##.# +##..##.#...#.##.# +.####..###.#.#..# +##..#####.#...#.# +#....######..##.. +#....#..###...... +..##..##.##.#.#.. +#.##.##..#...#.## +.......##.....##. +#######.####.#..# +#.##.###.####.### +.#..#...#..#.##.. +##..##.#.####.#.. +#.##.#..#..###... +......#.#.#.#.##. +........#.####..# +..##...#.##..#... + +#.##...#. +#.#..#..# +#....##.# +.#.#...## +.#.#...## +#....##.# +#.#..#..# +#.##...#. +#...##.## +.####...# +.####...# +#...##.## +#.##...#. +#.#..#.## +#....##.# + +#####.#...#.. +#####.#...#.. +.##..###.#... +.##.#.....#.. +#.#.#.##.#..# +.###.######## +...#.###....# +.#####..#.##. +#.#...###..#. +..#.#........ +..#.#......#. +#.#...###..#. +.#####..#.##. + +#.##.#.#.## +#....##.... +.####.###.. +.####.###.. +#....##.... +#.##.###.## +######.###. +##..##....# +#.##.##.### +########..# +#....##..#. + +..###..##.. +.#.#.##..## +.#.####..## +#...####### +.####...... +#......##.. +##.....##.. +....#...... +....#...... +#...###..## +.##.##.##.# +##..#...... +#..#.###### +#.###..##.. +.#..#...... + +##.#..#..#. +#......#.#. +#.####....# +.#..#..#### +####.....## +####.....## +.#..#..#### +#.####....# +#......#.#. +##.#..#..#. +..##..#.#.. +...#.##.... +.##..##.### +###..##.### +...#.##.... + +....#..#.## +......#..## +#..######.# +#..#..#.#.. +######.#### +.##.###.#.. +.##.#.#.... +#..##...### +....#..##.. + +#.###.#.#..#. +#....###.##.. +#...#.##.##.# +.....#.#....# +##...######## +.##...##.##.# +..####..#..#. +.###...###### +.#.#.##.####. +..##......... +..##......... +.#.#.##.####. +.###...###### +..####..#..#. +.##...##.##.# +##...######## +.....#.#....# + +#...##.#....# +#..###.#....# +##.....##..## +#.#..####..## +#...#..#....# +###.#.####### +####.##.####. +####.#....... +#....##.#..#. +.##.#.###..## +#.#..#..#..#. +#.#..#..####. +..#...##....# +.##.#..##..## +####.###.##.# +.##..#....... +...##..###### + +##.#..### +##.#.#### +.##.#.### +.#.#.##.. +.#..##### +...###... +#....##.. + +.#..####..# +#...#..#... +#...#..#... +##..####..# +.###....### +....#..#... +.#.##..##.# +##.#.##.#.# +#.......... +.##.#..#.## +#..#.##.#.. +.....##.... +.#..####..# + +##.#..#.# +...####.. +..##..##. +..##..##. +###.##.## +.######## +....##... + +###.####....##. +###...#...##.## +...#.#.#...#.## +##...#....##.#. +###..###....... +......##..####. +##..######..### +##..######..### +......##..####. +###..###.#..... +##...#....##.#. + +###.####. +#....##.. +.#..#..#. +#....##.. +..##....# +#....##.. +##..####. + +#..#.######.# +.#.##......## +#.#....##.... +..#####..###. +..#...####... +....#......#. +.##...####... +.#.##.####.## +..#..##..##.. +.##...####... +#.####....### +##...######.. +#..##.#..#.## +#..##.#..#.## +##...######.. + +.........## +........#.. +##....##### +#.####.#### +..#..#..#.. +##....###.. +.#.##.#.#.. +#......##.. +#.####.#### +...##.#.... +.######.... + +.##.######.##.# +..###....###..# +#.#.##..##.#.## +###........#### +###........#### +#.#.##..##.#.## +..###....###..# +.##.######.##.# +.#.#.####.#.##. +..##########..# +.#.########.#.# +.#..#.##.#..#.. +#..#......#..#. + +.#.#..# +.###..# +..#.... +#.##..# +#.##### +..#.... +#..#### + +##..#..####..#..# +..###........###. +##..###....#.#..# +#..##.#.##.#.##.. +##..###.##.###..# +..#...##..##...#. +###.#.#....#.#.## +#.#.#.#....#.#.#. +##...#......#...# +#...#.#....#.#... +#...#.#....#.#... +##...#......#...# +#.#.#.#....#.#.#. +###.#.#....#.#.## +..#...##..##...#. + +#..##.#.# +.#...##.. +.##.#..#. +.##.#..#. +.#..###.. +#..##.#.# +.######.# +#.#..#... +#.#..#... + +.#..#.#.#..#..... +#....#.##.#...... +#....#.##.#...... +.#..#.#.#..#...#. +.#..#...#..###... +#....##.##.#..#.# +#.##.#..#..#.##.. +#....#####..##.## +#....###.######## +.####.##..##..... +..##.......#..... +######.#.#.#.#.#. +......##.###...## +.####.#.##.#.#.## +#....#..##.#..### + +#..##............ +.##.####..##..### +.##..#.#.####.#.# +......#.#....#.#. +......##########. +#..##.###..#.###. +......##.####.##. +.##.##..........# +.##..#####..##### +....#...#.##.#... +.##...#..#..#..#. + +....#.##.#.##.# +.##.##.######## +#..##.####.##.# +.##.###.#.#..#. +#####..##.#..#. +.##...#.###..## +.#...#....####. +.....##....##.. +####.####.####. +#####...##....# +......#.#..##.. +#####...##....# +####..####....# + +.#....#..#..# +.#.####.#.##. +###..#####..# +.##..##.#.... +..#..#..##### +#......#.#### +#......#..... +...##...##..# +##....##.#..# +##....##..... +#.#..#.#..##. +###..###..... +.######.##..# + +......##..# +....#.#.##. +..#.#...... +.#......##. +.###..##..# +.###..##..# +.#......##. +..#.#...... +....#.#.##. +......##..# +##.#.#.#.## +.#.###..... +####..##### + +##...#######.#.## +##..###...#.#.... +...#.####.#..#... +##.#...#.#...#### +####..#.##..##.## +....#####.#.####. +##.##..#.#.#.#... + +..#.#...#.#.##..# +.##..#...##.#.#.. +#...##.#..#..##.. +#..#.#.#..#.##### +#...##.###.#.###. +##..#.#.##...#..# +##..#.#.##.##.### +####.##.#.#...##. +.....###....###.. +#.##.#.##..#...#. +.#..#.#....###..# +#.#.####.#.#.#.#. +#.#.####.#.#...#. +##.###.##.##..... +##.###.##.##..... +#.#.####.#.#...#. +#.#.####.#.#.#.#. + +######.#.#..#.# +##..###........ +#.##.#....##... +.#..#.####..### +..##..###....## +......#........ +#....###.####.# +......#.##..##. +#.##.##...##..# +#....##.##..##. +#.##.#......... + +####.##.# +.##....#. +...#####. +...#####. +.##....#. +####.#..# +####.#..# + +.###..###.####. +###.##.####..## +#........###### +#.#....#.###### +#.##..#..###### +##.#..#.##....# +.#..##..#...... +#.#.##.#.##..## +###.##.####..## +..#.##.#...##.. +..######....... + +#...##..# +#...##..# +..######. +.#.###..# +#...####. +.#..###.. +#....#..# +#.#.#.... +####..#.# +####..#.# +#.#.#.... +#....#..# +.#..###.. +#...####. +.#.###..# +..#####.. +#...##..# diff --git a/2023/day13/test b/2023/day13/test new file mode 100644 index 0000000..3b6b5cc --- /dev/null +++ b/2023/day13/test @@ -0,0 +1,15 @@ +#.##..##. +..#.##.#. +##......# +##......# +..#.##.#. +..##..##. +#.#.##.#. + +#...##..# +#....#..# +..##..### +#####.##. +#####.##. +..##..### +#....#..# diff --git a/2023/day14/day14.bqn b/2023/day14/day14.bqn new file mode 100644 index 0000000..f64f797 --- /dev/null +++ b/2023/day14/day14.bqn @@ -0,0 +1,15 @@ +input←>•FLines"input" + +Slide←{ + sinds←¯1∾/'#'=𝕩 + inds←∾(≠↑sinds˙)⊸+1+↕¨≠¨⊔1-˜+˝sinds<⌜/'O'=𝕩 + 'O'˙¨⌾(inds⊸⊏) '#'˙¨⌾((1↓sinds)⊸⊏) (≠𝕩)⥊'.' +} +Load←+´((⌽1+(↕≠))×(+´˘'O'⊸=)) +•Show Load Slide˘⌾⍉ input + +Cycle←{Slide˘⌾(⌽˘) Slide˘⌾(⍉⌽) Slide˘ Slide˘⌾⍉ 𝕩} +c←{( {.}.png' ::: img/*.pnm + gifski -r 50 -o $@ img/*.png + +.PHONY: clean +clean: + rm -rf img + rm -f anim.gif diff --git a/2023/day16/anim.gif b/2023/day16/anim.gif new file mode 100644 index 0000000000000000000000000000000000000000..e3260b3be26f82d396ec6a88923c6bd8a9762af1 GIT binary patch literal 64585 zcma%E1yod9_aDh2lxI>V1~91aDJo?rWrE6p2?|4qt(1*Q*+H40Fo2?f!~kNUl-Np{ zpaKKv1C&<(`<#2{&KdOM{lB-?_ttv%a`!&x?ELM0_RKMxZD_RGo#oEj&7%J|^OR}t21jztBi~k{HKxVZQ}2w_WB-)DX3G4JaeNo zFzIb(yUKxb)6<{*qlEb>UzBnhEQ^{BRkl59{;8s@crZJn-p`T~{4lCf;gEUsi`ef0 zg)XVD+hS5%wQ-u*~H<+t=7hacB8cVzuiQPVLrwc&aAh49mIi>q4L z>bgc|TxU=J&=^5pNp)-W0^qY%MwVf&8><^@58{%=`t|D<{J)fxbvN=A^um9gu6%R}W>ndMMk~L%FUV%6IjU-PJ>dt{y6O^-!s+ zhss?&?B3PG9$h_D>FVKMT|MmC^+VbJEeSnYa$P-?@9H7DtA`3*Jyh)Kp;A{5mAiV_ zy{m^kx_YS6)x*EKdf2n8hrPOb*t@HTeY$$sx2uQ!x_YSE)kC$e9;$csP@}7dnq58Y z-_^qbT|FGw)x$wuJsjNC!y#Qg)avTt(5@a1>+0d~t{#r)>Y;X54|TeFsN2;;PFD~0 zx_UUWtB0eydN{hPhktkV@Sm<8j``mY|6+CVP^GJfJ-T|>z3YdFTWK8eKx7~#rMyTS z7AUj+W+Cq@a_BNMcgx9&A1kp&!(YlWk7Z@-W7x!V#s7G&@E_0F|M6U&H42!M6Vvx~ zi1Fr%`ICddOqM0jJeTwB8C`I8srUt1mLB{$n|XolJ0QBCE|`prWLX?|MUi<$k$PpI zUo;V6$+C3eCFRa9o%4;8cu5Cd>cPCEM1ASp8O}K=F-tNmZQxjic}v-M5U`}u>&y-F z#l**?StEe&zlhgV_P}daXKu{CuPFYS6l*w3fz^|Ft-J4f^xD~g8>O1sdgAxGv4+7K zdok~+`0hgQ4PBI28n`*~DnXdV8p={)^(Njtg5GqnhBuRTzUV9drYuYAzc+Wtf4?&L zzh4>j->(e(?^g!=e_oL%X=JXOG%9UjefO8RxB-IAsc2^z*??3dF4N@!%GA}Y&Y^3vbr{@s| zfD}T8P-%HE8wEFcgxV;AW=VsXi#{R;hOOYx0frd&E3NJfzcT5IhSd>A}Q9dR5 zfJ7#w%<2w*EH(tP%7K;!g)~F2YlO+^i z0l%UWsYsY-W!NTJLX{QicP3sW^j#T_O_tS{S&8VSAjy~H;U(4IUOF?X54kKkcuAdk zNr@(Rrq6!L{>iW)lU9azWLcWOzh!-Zu##wlyR|1;Jrc2dn&|x z7yTud&<)-k^5-}6^d#27f;}0^yxEiZW|E_$l@+mjeSpXRDF-U>P@c3E$~zAf)bSS( z$Jhg2QIL4$@T$DJcl`*{-5p+$B3_YEKCDh0GJ4#Ncr5KZfOx9h`RUBvgq$gL{vGli*2gtQ5T8jW7^0z5})skGsL+VPFPCOsm7^;(99M&*^)lW4y?5 zS?HM+geej-UElahL#q>q-1A^|%l7xA53s;&Ff2?S9PT0kBl>J1XIU zTM7d@!D;W;_7e-89vF^pU_L}FNh=SOSgr;rxCZldF!fbx(>KhM1nE-Wa0xwD2D_!j z>d*YC7V)P^j~;#NE{X3g+sPviP65i9?GF1$;IqbY z$BAu_0cWZM>ku))K}@Jp+9zTHw&C=A;tOqW<1=sR5?dh+PFoiOe9=cnqK~Nk_K_%I z?4()(CJw0y>}EjlA_c+0c=(X$Ge+n$>VNnQ@Y0ky_pbuWb*UbbXmj*{#_G+7iIAro zSe6Np4oQ4d+m9*^jX)+OH zf#;e83BG76nD5^xZI6e_!>JvT#sw-5w^l!D&dQMffxmBgcyB&Yd2kOY9o8)QeFfHJ z)>!8Ib42{3%EprQNORJ*ew0+cbjL40Rc3zIxOaixn@d$e;>rf+TigD=#9^XnY6@!{ zL&2P+@HR8Lk}{84t4PgywAmGQf6^_}jiTC#NB@gN?Idb$QU#fGu^>j63IZd1q>r6c64~I!Y6%Hl9otXtKJg!ZK#)%=?W_xv2(Y5XWwLB&s&a zyx5zad!1*ZMOB-6oq9GrnW#2Z=n0&5l1GEeGE+c&MZ0GC2STSu{CkEeYni!-%34Ng z7dI}QNR_o_%|4q)F39`k7%u4{5dJg`q)bF+{-4Nv_FqKU*7>fKI`7!?=3l>w8nlia zD{xM7A**Lbev^8WVOci_m8XCph$#JO=a4gd6WOUwx90j@&_)B%f`&(C>k=oF^D#O( z$Rvj_eJJRk!J5txTJq;5K|#=dK4a+zW_2KwGI&ruPeJY2!>G+^K3HwM0`0>~uSygI zCq&k~y5mIHnQkl=tZXJjaMAxH7|Re$?*Khj=6KzuDv*|1xB}T?Wro`o z2?1oWX2CzAZR8?i$f*5Z?sRX-WCWdC3)-YG7>q)S)a=WM*r`G!7x}TJ+Nqt&odKGs^TBs=yB|qdJJ2S<@GWk?{)M8DZYdvAu{W9kcU?1j`LS@rjZYu`?El4fP){)5>vsJuitMHKAkd2Z#YFM7Vn5t@tgVi zxMfA+?*;uHxAjT+>JDV|2{PCo{T2{bUqA*n14T$pS`uU|r8ea&CRKY)C*2b28`xx^ zy@Rym%0OrwK?s}J&f(n$2i%}wcM%aP%o7VT(w;HtmoHcQPKzX*EY+Zp={#>aAt z>@0%p3Pkod^U#WSQYmNbFxou)Q-{df_vBfQm9mTyk&T^c?@(HIqo(^GIxyVjHNRyL z!J`5Yo=p(O>)p}GE*+r*q+JU{c4?;p3UakZ^N7|Dp^S5(%kpALOHZ|aY*}rv@f~@f zY#=+QGug8w*$DO_I;)C1#hAmNgQQ`-p;zEQnT``-4KI0h(jPlcwlr>&Br6YOO*@ml zNszT&AWA0P^~E91Pn9*<;6R27HFFjv{xb8 zb$^|s9gnx_tatR1wd^HmD=SXBUG%RcZO2TP)bx?fN{7AvM0;pXugUR*`;h_C76j=v zn6xTGT3!9a9GrU_$9HZknt#=t35}_?BIAknsmr34wAKaWd~`|sLtD}0iVl_yiC#(r zc}s%4JtnWtkk=T3$!~Iyh|H1qOIdPPEkR=Ci@jjwuSe@6om#{B6Zr!5ZzOTlx-^#{ zPOV*&A+D(l#2v?;V`5KHkbCL!-surNMWGtC_FzOjKKR%VSbJh?f91&ETB^=pk}D_4 zqj+i_tbRBA8`VV}@!AK7$hYsBIe6${3Dg3cu^rV(-S&YQ<7?0{HVWWogIc4GuDzoU z-1?KmHFx~XMwJ8h1`^m0I)g0F z4wa8BC|m{s(7T7@yyzE;X&#yb(|=~ar`y{43nbdw-u+P3DehZ8g4_n`9Kc6u^yNxwOE^tlK8VDI_<-hHOTz<)Y1DeOSBJkd*7ENZZ~hHy>Hu$+QUqH zpN~=|YVR`~^G&`h9;ma}g?LaJ{wxi6(0U*;_>>u{J4Jc$16$|-e*_BfXPmjvlf(5*$z#Nh}R(#T-}+M}3w{Yzd_((h>Dp&Z7~f zk+P5}KBv${>sB6NjL;JPQfJ8?hh+t`Rx= zpI^girHn;N$rbOw>r1c$fjJtqLQHrs+JRlS8>v1|zCl6`$pRJVh*_ZA5i(4PItg!p zg+T*q={CI!49BmU9R1>6ClxO===D_MYn1jOcOc42Hoe;%X4Sn5km#bu z@%#A}(yoml{Ar1$Cz7rjVCDf#t z7>XC)Vg9;7o1~7~PECnufLi@|Og-uC;s)?ShF*Yz@~f{4#WCPJcf9(DV=X42bX+TH_&7o}^CnEHn+l)m*^ao-d~4xsz$>5RKupbH|$ zq?FUvKVnuM{eF8^G+A(@TX}LqN!KkqbWmkwT81*JO;~AxOlY=UnO(xx{&LKk{ z7N#yX_E_sgIqp75>Pk5_oT3R+0Udeg30k-K7K;7u1`yN>T~sY!HxUQm=HA|Y&K6{I z2A;2I_BoWLV$&c&AGJPCCje+Oxugr})+LL0x+ zmq9z3^qzZc<5iq~&`UoF=kK;Sy}SG^So#1XaJBb*NG}g}LxA)mhBS6FSD9Sfy9ZrS zvf+y`@*PR+OBLAC9~xNSqEBQ#U~3+nEG1(sa5LWdJ5tM$tuuHEqPJ^5DR9Wp8ndh! z;+@f>DRiCYposW{hp$=-sYv_m5R`E+>lQ`1AaLG?z|BnDadeOC4aj=z%7FOW$RYx+ zmxC%Dhe$SOQ+<*QpnXL5eX&0_a)%wo_MK97DzaI84P5K@kg%sTS@*y&4q-**pfqH} zS}3_LF^KS73}B=T4*@Hhx(TI|n+;lP$Wka7wT+%o1)-Cgnuo`O%Xuhr=yBx(66JHx zCDtVe^(gUK+F>)ooF&ShXfc`=Q~(j%-y059rtkdf`c+hS1a0QCFaDQku`995l1XHV>Xb;{co~*QLrwh zru(nkAggARv5lUTet9VYts)^B|34S#Ll}kAE0uCKwP}41LPp^a3j}M-x!EnbIKJ8L z1F^vNGc&Id(j(jH9I^B;3zRs=ci&-waT_-=3!FJS{hU&-jv5e z3~hSXdS2d1s!C_7xX{CxJ_)Ml%RpxJuK6%jvuFKI)#_RWSpAim_Pv0r=1Y8+Zs_BN zkpmVJveTI;u4o169JEIop3{L{Zn)=ZxAoZ4PN zt>DMJtKr0{N&{I#!o=cJWyqenCl*`I`4&VrrT@Ey@ggZoXel2cN%lw{1z4|{&yARf z#dgO$NMgK}A0|%~wI~{~7Bh>*!4yL^a|&aLWUsovK)~^;ksq4AR8gTEC})46Pae^y z;F7v*YETKr=RIX7L_Hq#FbqRUZB00H|9OZ+a8X^}n6-qVjiVSbZ3B_<<$zNu0NN`z zE`QrHxtgJE+0<_`lQ>~0%{qy4rX}~=&h-|4zlNh{ufNHnf` zMN{8dou3k~kk!!tF@$n!a43gT*7~#$pHAiyD|d9TqzeQNMcWUYDyp?eM=OsspznrG zS-q5`POaUBp^m-zI+0)_#G>5vzye&JD5-uhc4Sf0^mpke#YS<KEGWBju{(E7!=eCWWtg>YqDDX zmG1Q8aN@tTCyQ%B&;zi>h*+t)Qk zv69ivFPnWt!Lr##QK{U{WfCrx$J5Z39NY}Bw1$zxD5?jyw1);`-MI`a8 zl`0Zqj&^+_OH3U@lT>}P3FAU2&~b32L-hu?i8_ZWbHqyK7xeG(z~Qu*Z~Y{K2i7N+ zU%d)T53fmSFFXK8ts)R#z&73N)Or1rI&%O`d2Z{eb4QA%wOHIJrRj92GKF%^+Nl@o zi}kdEXVUAB6s=z`V{cCGi4fpmKut>7RupP^m54b|>v^y<2a^d7P{|@N;ZcN0@_++< zB4>CwjcDP!FaX8QeIHO}E{6gMUdOBQ;P}TmAP&r653sn`i}!%NSpptImjM1@EoVdk z1z>75DiyBiZVd4YTd=f;VBuwzW|3$=$*i9~AYnCZd#lf+KzyK=Q zoNYTmcrtY8Q;7xR+5l6e@2Dr}(It|PZ>V@kYSUeRBii01c{Fw z@o*f_vrNN21U=Qnm@17&Ti7&g|CY`o2Mf-bt> zOEvL(v5%X10)d0U4?p&7c7uA=j2pE2DeYW_pb{UANDCq0bImuz_}se*%}^&n6A08) zZ6t*dH9oCo_}C!H2f)+wJc1~bPn4~i1FLbyu~ClhuzE9G{W%{aRVZi9T7vjEqY+v3 z*ZB7C@6rky(?lj;Ma^cRHa!U;WSW{JE2tB}o?&HEXI2iJA3EWaSR<)oLF5{hOC6|c z!&4U}vd8juBQ>&Z5nhVCkH#ou4(&cChrixgu)f|iiE{hYPzFQ4rSwpSt!znVWC2ML z>&80z)`*YeZ@K~dGIm)Z){U~QV%_-r*6_$`>!~8!oQuJvQ*RSm`;U%H7ABh%6ZmD; zulc>?sq5zQLK_|2^0W6^CPm}C~9@yPb0>@3Ue%m&%l7`eUj{5MkBJOCCxuKW_ zCFO9*0)87+!RYapYH#Q6;&MHcj+=jKliqDEOZY$aSM+jpP8?ihh6KfJb-!#kqlP@)mKh@p;vN zV9Wg!f-C%h>xepd-7ml9TF#3Lt=bwZ;hxT){D$;HODgy=Z6kk}@=h&qEv0#HR$LJR=g94D!!PL7Y7>)olgWF1gbOS_>Z(AZ|JMVX7w z$x10c_ddQv2U0Yg@)h)ftji8X6;0EYe>?4lG#rW8a=QMH-H0@l?MO%EGp$&;{nG#!wFDvIXZ`z*QS`CIzp-eg~%oMV&!4oj1#vnvPEc_pK`I zgrSTC59k`rbiz_0xlsRuaCVXlQ6`vn#|)a1O)y)+H~*U7-Tbx#_6LNV(}Nj4{KcFdv{LcMqrSQshV0Y46-TtZs@FQ ztw3@m1%d5MmN=$%2d*T0Bo8o+)na(=-kOzdRN3{l0*WpDZAWjkx)7~;R%e8Esl>n-K7!LpI7!qj2zRNXnq_J z=@NS=32+v+Wk2&>76&4Gi>`tdsf;yg7ZpR|UNaE~k9Rlvs7G$G&5bHGnDdh-ZANYm ziu&gfJZ%G>i0d(tbpO04^u@3jj)JWBP|XR?4ggQOzM#rO^|#$za$}PFcjV^4s07V> zoVhBcjfsMGeG|rG$y2^C#b>r^U44DBjm zVfe2P_}vk+xO{1`Q!4G#}PGTbjw zH|)&JR$vB)XD`w^UnL{sk)Q7b6f>5SQN{kY4=3`OaIeduReKKCJqpLTL+diR<`-2W zW`6W=s1QwN;>#~IwAtiGO=gOTkcf{u^Mg(+Trx6wbRAxauOA2&|Qr3I}xi!185qi<4D7G2aYKD~XK z4n4ZcbWI2;I_Pq@8EXY&emoE}bernaE<{JfjOE=4`6G_%dQLt2B6j@PzK&3F*`6@` z!1ju3tsT0c=qE5%Lb;{IUvE+&n~mBFr@b~8d6X<0mE4zL2@R02AiR_pVu`ub@j6os zmx;Ww!13uX#P%0dS@S# zi}fBlkB*{b`;;ydPodEEUKCZ0FRC3O=sy3<+j=U~_Zfedgi6uGk2yqyk2DJ1mlda( zhyN(SD#~95(v3*^(1=uM7lh@amZj(@j*s52p=p6z)QoTt@2pCwY(a2esp%%lKLb6E*E zaQEpx(}IiCqr#B6IU&N=XqkZn3ei~|U0juRm))z?l$yO3W28&gFHsTCjODV+8cGJN@1Sb0m!+TBk|_v#TAN~$A`$besPTG3 zE)+6L=Qwx^Y?;*)CFBOx_7)TFeIMdTRL_;n(Eq6Hba_p7YQzhUD}-EAy45x*_1Kru z_v_=4^WHsi8JN-i?}T?CH}O%7HN?UUra6RtF$cN#e@zz|(R1qjJ)Oz@LdCxsthLO3 zF{Y@~wUWZlw{xhI^s|hz$&c!NcjoN#sM@@EZqnD0+&q#j{`M+T#n3RZ=>#(y(N?Mcekm|k1FA`X9_eSfDvoMA6hgu(=N6Fdd%&Se%PFk3->^ii|>Wc!SMn_7Y% zggke9CV4`?RCF5q<<8>SjPWQwM#mbhxonanG;we#%ZZVhLuhNn*uDhjBz+SVZV2-n zkNhcGuLt}rO6{fd+Yb6W`iJU{37*Ao<=$1Gb}%efqfHW7mxnk-3@rsB zMhSCzi`ha+PkgHv&H`k64h*(DKsR9lqmu`f#0RHz-wA;(w>L2Ac3=O^+dCECjNRSg zsO_^>{uFs)Y#y*V-KWiUHmctiBTzq<*Q%hwL5yn5G9tNTLkL3xaa%;X3P$YZ{|I4n zqh|PsLYUeg#~+Sxqpyq^@0Yq^qX5zG!CU2n)jdbY6&(`0N8r-h;MdAapX7PtJ%*Xm zT$q*0XyZsri&p!5<4Qzx_j%uW7U1CMicK0*Y5 z*bn0&|D#A9VVLdvetlSvv`R|8vmr>rCgLh zah(NhF3FV?aJ7=)>ZpjT8>QmnLFa^Jo>R4>jbH>vKA0agF7KBJae zqi#LUL&B0@Gw<$r3bTCk{q0W-hWIU{LtuJ(tJ%|~{-NBBo-x&}0>LZ6ctx-wVX^7? zLMJl#LcxwH5g_{@R_oN5YY7aHhT0$l7fzg|fAg(J#8(%(p~FUs!Zc@bB46atFz?c~ zxd)~cCA0=jKKb13Ic0!}V8_s2+lD`jy_=WDPxC0MlCCyHX2f$urvzOA*b+lIyAfM> zB0;QEC*&VF%L9c?cJJEGTK!njN+sx-!-9JcLFJd#k01u?z8C{rJ*@6WjcQdM6Io<_ z9b&NUZxNK^^jzGork3Os!rRZj&F6oIbFJW8;kcsJ<2Tmq3D&|8YrkEwBT(Ra2f*Aa z4n9^=G`YR{ddoE2Ls-2Cb@7cK3Y~N>5X$sbYE44x#QKO};rEEzEC9ya9NpKKH+JlF zza?d(U9}X#L&Ff9aOF;8ON{0%k>zNNa9(1J4p(to`loyiJrfH%3n>dpZ=nEnOED;Q z1Tl>(m$t1;IZG^&BOMVaHMz_Wm>zO_NIb7UG+mB(O129@d_QmWV$c&ni*E^&;{mOF zv%!k;7C%3sq=P3*2Om`ASmI>p9J8=`1D+?$l`cK03tr89Mu0FvQIbACS_p&hMPQ^2$ zACr@)h?32R(8R`xwl6q6;u@Ojt|>VYdfl@c8RdK<hjBtoxOi|pnu_vYZf5z0(9(dxw?pAv@u0PbX~{9vFX8_ z#?+e&Z`JH-{UP`&^3iOW+~g42l;UKJ`y!WjKeVN_SF9NlhghSqu*7^$8`3rlVLoa8 z5vb=($i+FtbKQET*Os=aVT(kY`w>q$(3sba8qtBAlH(jO|KU%TYz4Uh1f*Hmee>;D z78hZj2(NNdd_2%Aci`iiK`m={f%(^IGyn@hd2F3#$|;G4cZV)y8#RThnN#M!R2ZPN+YKF{;9` zudS0ypMZ3)s5Wwsr6BRNWjQi(ar{qmK^e5X3h~tuBQ!A}J0d|Yd)N^O(><5btj@b! z>V6QTOq&$k&>m~2Uk$qXAxUr-!t_xsB4CH-k^ADH>E$#=F3g_Ugm~uZCYC4&zpI}62FJ?j>`chxieEmFtTi>)$ zF1ip2#1z@j_2~n=AcQ+M{@0+-Im6lPIgp3yY(ZHL?*Zj9oVEQ0+-N4yH2>sT8WLOT zmE9&=V{8$))H`rkU`9b%9KS~MwbE-+3(=)HJC+Nx+aX;p;L}h#DH??@L*q`!zPB$o z>bgze{tR2X=$BV7Sx9-Ss?@j8677h9hjkN|J+9f>eDl|@r>L@$JA{WMI&DueTRpEq z2Wz3TX-tWFcD1^q6enQ1Z9rJq=2)s-PG;uN&* z8o_$_Frx1QQqWN+E*@_FxxRu5ek{-Vn)le;1f_TDIZWxjN8rVZ#H7vRk^RUx3%i|+ zjI;drj>*LsAxvB9;pf2)ffUp{)sFkyg{D(O^nbAK|fLyho0?8o~f@Oq3JApa;MeSt# zCNh~9VJ_E}1FX5S6zycs;S={ldF4b7)k~o^Y3;ROs$mOoj<~7e-YzcQ6y~zL6|m?V z6Mw0wg;a=|2XfV3;9$bp)YP-&V2sgff%A)2d7%+xcmcXz5QvuwT~3#hW&%wJ}(V-&Kwl@;@s!yT&ZC==+cmnkoc(1d+FS;G82K$+Wg5LND z*Y7RpIwU(s+jJV<&ya1oEydEhM$Vs2&DO?{B`Qi9#kDdF@zsfMj!0w(2)EicGzNFj zD=W^=z(B+L`&1Xu3(h6yPcRt3-5FWhV`D-l;^u1_w|WJNbgP~EDT=D-+2GB1PWcC?167m*c8)90*Ac;_TC}Dl zJii)T@?+jz1g{T_R)NcIH=SwBfBmPntn>GpwbgnVwk+m_wCtf^F6X;oKe^L9b&th3 z-!4H&gV4++w$U>-zb}~%qA93cA{`{Q6UT)sr-@J{2}mSBO}cH>-61hLq6<>y(Hg^P z5qu=&si8%R1dVm#`3ZMNAbVOh}_YnSH}|Yip$<*Sl<{?GJ`0e8#lAQPpAV@Tc13 zZa~tBqZC0@@xr{VC8vz?N}Q|ExqBs;c^SLpM@Z}_nrdrHoIBppH)2MQ{NdcwM}2YG zC51xPg(HB`9DExx5arv2E}<_+(bG=2@{^^XjZ7&;I0{@3@`MPbW9NV`&3z3$WKA7R z)%GEmLlvbGO+(qMJt04Ij;>bc7^h1?$f~in?KWv6(NJAGBKtmtEjlwiqg`dh!rwHh zfqyOY2Tl)B3B(}#awFFb>H8cPWFz}g#UdP{Zg(B7{(a~DGV18LjS%;RyoB^nZR-Rc z-|whlirrIv1?+9sE)8_}+n zREZf5!VHTfLGw3L^?1b&@okBS`l|~w zi1%&I>8WF5C^d}-aZ|{tVx1PYQJ$6=PF`Z1^PC|EuB5LOS0JqiiQ@1XUDMz z)2a!+67F?vvnNoPZCfK~ujE8|rQi!tG`w#ZIfA}mg?sTPS#9*BBhoip&wcpTl=&#D zqWPlj=nFY>w)fKEd6@e0ZTQ7$IaO*#a=H+amiU@Yiz#uw2Lh`h8%A=7en^N*WGKfZ zHj?q?OBRT-z^3k3JmQ}J=piaTaXis{vA#beU^HB8!sP38w;*n#h|4GyZRC%EDJk_G zFS1np{)LmT8t1W>XVVm!1}f!T1t;HX>KP*toJK)^z(@5N9Iv*u2p#Z}fb69q@%t^y zt`i+P!)uf=Ek%!?Xk8;!I97Dk@=aNkj$vLxdf|CEi2qI47g|Vkfjc*81mR-OKl-yrw zumsLbPJ(eb!elW%)p#1kbChf4*!X7cuVT%5sB&Fl-DL2oTlH_A9?Y#9TJjy+R$2n; z*pyFo%0m$0l+@J0?5f$A=iFkyQ=2__RUuktx~pM-^PG=jCtxmY;Rb}+ZfVPjHU5mV zY&}i8&P=Z&5-AJ~{IND-zJMwMuFHgG{*ffpQH{-4x}iW|+)bCWC07kzl0!F)YIo+~ z3&_#;8hv>0GUoJb(VhUkM<|hM>GyB3nqZURG$UQEKhGb+6IJ8yx#-Y8?UT0A5zOP{nBd_Nb-o_E4 zDJMDc$egh_*#6cwmDY+HtZJI|3~vo8Z#Jm9KNvRL6sO)EIs6d{y3@IW?V%TAjMf(U z3uHC$h9f8*u$VDz#=Z3HEM_ZJb>8jOL64U>+_c)8MT&_aac?YH|HXE%>B&M_srX7 zCIcRI=lu0{z4296tj2Ze48s(U9^!a zhzW^`X%ML8W1x=O=r)bZMv8g{7IqG0$CV`cR)mcfU-ZBN0>4zED7s^?_v9GpUp{v^ zF-nvoq88e@81vF9FrAM1R+pI`Jrn%hT->gyv;szO;AOcDT*JFSP%Dk-}Gp{mq@HHK~WH@)Hc(jHL#b~eRZ`tycW`)1jP0Eqm9OO zR3}J}Ll`Chbun1lGk!7n*9Url4m8 z$XM9bT=a4=*&A18QBcNu-I;wGqW|C|V!!(z*@sP6gW-D9@tDGE`LcVcu29#zmm6bT zA&L`PqbP2f3`9knv&vnuRt|&`@sWa;Upyn+r@TMko{2KuBAl1=XL%%r(}~y2usq@=J9sxr0|M88bfUQpYwJi#8<)@8^PCQk z>=SVmm#E%8Y3K&$WIM%OaD8bV)d0Nn_4*C+hAm^CP90(j@7=G<#4$J{}Yvp)<>H>{ygvay*a!02%q8LJE0 z!#^ucv|QGq?RLg3=*)9+9x6`GqDDA%Q~YV21D;+78qkd#SoS51p5f4U^s|nsCyI==9=*FYsd9_W^c6@0 zCTkvw?p-y9y;0vLgwNiaM(2lI^;f2QJuf+z2mk;UN^@-6X1ZW2X@0_22qg_Q3pk51 zdyuDgrT+cz>Ma{-ab-jT2 z;{hN8P+z<=&K@Ca$XbQ&O9W*dI#jbIrtWa+`;39h2MQ{Z+fdbj_wtptnl&%PaG@Xn z1)r^6U5~RdqZy&0f|5MJ2ZeMkV`S_Xh2?wQD8*(|ufeuplU`gPTE@tJAX08VK@&qW zN8WQ4ULhBQN+51TESZ58BQdpK>zl;yAWVhnX#?dARVH@W%;1jkGv14u{9_!ZM_UI2 zOf0u?DU=_37^KrZn`+pIM)Ke|k}H~xc5JSi(=&Gt@1LsdEjE;n3;3u5NI@S0;Lzh> zmBK!$o9F*y>$NYoG-hjhn_|ZMirzSu)cg>O&m^e&zNYQSpfgu8A9_6OP#!R9(%eyX z%Wfu1CivYz&csKAwZ41~Ec3c1u^dAaTPS%Z_S8j?PC-&-MY8M6+fDKKG<_M%ZS)U(rN!80btHFC*QeEL^h@ zR#MAZhR^49ZO1aD4Q^zlgl0zBv(_=|NkZ$9{M`+JUet|nMa9)cbTU8n+sDJSHn?nL zd)!>6@jH|ya=0f;Ggj<@X%Wb$T!rgza-q-p;~y8INXb~<9oc{htZTmV#oJd+Fx+mM zb^=98Y~8WBelyf5WWXu(gFrst$Yq#09Vvl5wp*iNp{Z}DQol{iF!lll1OKw9yRm+$oP&L8Sk4z>H$hSmi_4tIvpBA zoJ+0dW2Krc_;j~0qrlT6%j^2w9PRU_9^G;tQu<>vx5eDfGi-|Nm3K-IjywQDg-mN!oy?tD!(M1d0o9{=r$pDd^C}r?C7)T?=@| z%g&A4g>u<>wL+gmsg)T}Slsm@TH4gcbT}_0WG~1R|K;tF;jK1g3x)Y~|7o0j2d~(+ zW9cAM8Ba6{##ngQ@K9y6rd{(=nI!wD)lqD$x)vhL{x$p2^_cxL0}4$o(~tIX%&*?V zS-pt6HK4FxvINEhmAZe0{Vc9+SRM_P{^ltYcU3iOhx9h|Sb&lqzqG2{sg=c5|Frro zb_U!8(s?9A5E$;`1_-x?<+mjuf1+p9WDE-77>?L)Pwm7$D(i|h`ZCh!|EU9*{Yqn< zFQyb4v9a4k;qiROgWP?_(FWBI%?n)yiAGH?N)4K)M9pKlSJKPfAQTNzSvRgI7uXLkTZL?`QpbG>a1}|94Pjxa z8n0-I9syg?poHC`tFQ5p6`AUPX5a>#;D>Xb)`LZQAspdSc=$RoSt@Gd^NOw1D7iKz z_s2{BZQFVF9Sf9zH`q|tgJ)HBng8lTE(Hc79aiX#;_`G}r7p(`TUgt@oaR!9O1%HF z!x7?^jLwp?lt2fm9+CgedQrlfp&m%^t!wuNqFUd)p!_KP`#u^G&s_Gq6xt@(uExf6 z-e~T=@z5eTVeX{88U78QV&~m?jIR;3M1Y$s*5_62g^-Zvl+aSe@2k65*O1xzFl}%S zUS9iS)4ew4L2&C@!D*iXtQU9{NHWfX$tU8doC4sxVEodW%28l=Zhh!>a3*fZ3AX%{ zpzvcN(pbe~mI+woYf`!=-WdsY({)^XWmfiwuhdNulc9sCd*Nw)_y>4~(DVO{%JZE) z)%ReL_m^$e^-?!>@lsq8kS@FknMF;tkmR=q{1%TbQF=RrWSqHO(vby4>f9apVrmqg z#I+Bgl$TeN4BnmSw(t6oN9<|6f*+nv^wgMq@ifkqA&UqelPt`B*RaP8K`G;n8{JW5 z1C?OvH`=ajPlc;~HfgFnc5tq*>C-f}y25uH@-Z9DaWOM;F}Cu`=jZ32Mk*TjuQ32u zHABgivpdv+7ZE9E=L~t!wD%!?)O}ia$E*f7m~?_*iJvN4N_6hMkA>vtSia-oYUG|c zN-jHAPs4-qex*-pc!0JUwT%2-P|(xfm8WS{J%(-5%e3bkMk1CS8+#Rm}S`oX9+i~iSNKunqGp#6?Z4thi5{jnr ztU&o@#p%c4X1niDqq2J7Ukfpt*XNS){duYKqnh<(0{gz*8144<0)6Rg=#}psSrChY zH|-5mmDv}T&HhhqbTN1z4~|2x2Lb;$&o7Kn8e&C{I`%%*rcpJW#OPUQ;714Ngd zut-RPC&e&D=A2{xHdpaYj6v(c=`6knzbMdQBxQN2fNq9NUjTDY=QJxlaK87kf#>!) z;`s%*iLn`BnUi#GJ#T2sx>ZmF*Fp?c`I|$m)BKL+`n90`EYD9igzE>Z-L_G8zYD?y zT`rflU@X&HRRZuFWgaNU2@vP>7$|SGT}aA6=!T zBbL6-{z~&aQ1W7_8U564yyi#1d~Tw)kXwVdLGohyN;PdZl)4v<_d_{-2wPWIVCZip z>1=GB!uID~4nX;E-2Jw{aJ+9}_#5Lkgsr=XRFHrMui-v>vw*6w7@F}(i1Dn807lHT z1o&j&;e44SuJ>g62bm(v+?^C<(X{K5A+w_rTvxO!Q@2gB7Tv60nYA(r?f~~T1jeoX z)EuLr5@J-YW+oV~yO}HYlBbPaG_1S=j)&ck4Qoc#g_^}eTO4XB1(NBA0&MykqA-d# zy)*8OevLt6I?emlbl`nwG`?Z~v=!UAinFyC_x39B^g10|DonrA#;F;H zHoc~&=2FstAja1c1_b-YLM$yNL#W1xkYjYmZ@UY13*#~vkU_^0dSZ^ylPMpM`EQyY zZ3%YoESHX~H0>-GY7L0>r9=smg4;T`Zuv*K=%U+64(Kvsr6J7T zc?>QlyL=AMcL?0h-kfv;waWoqGH|}t)zoJIw}t)F>iFgI<60qtlC6%XZgY9}2#m?D zGaxU1eN8?1_7GD&sA{RY$Tm{fMu`)W7qjFw)w;&UHgmlCdc~TDLQrTdt>^kAmb55x zxNSn*w2W&}b*Rs1i8H_>+iRJhlYq7fr&X3kuQA;A^ZdPP-`n)0Ks6XD?{bc+GF-K` z+m2GBHMyyoCiH!(`BPn%E`OUI4#~u>E6v($Rlc>MU+$)mT#sb67dqcXmvMmOk_ja; z&}SqZY`fJq7NS65{?Rs$YabKWzyMOT(TF;G0z;-#2x;ox<+1kRoqp-f;KRnE+2F}B zhOEWU(Fc6Z9N}wL^XG1LiIa&hRw=5lL(^`GVH)3Ep>77M^qw&&nWtUe_-4o3$EdZo zN{VL_;t>t@BzF^J+SM|uX8x_4L-Tag6uuetDaD9=TQD+%ZKchIiWYJDD0*`B%7Eza ziPCGGiEch47iW@tkEY%^5N7cz6~xlZSkiFbbf9D=^g^xTpgXmUnf74{U zUeP*zS3!k6$jvN!D>jQk8rz>BPYKItNC*S45Pn#p6fm6&+AUK<9IRWm@cptu(2aD= zxPpc%UuQveWL_&*RZ1l2ZOO&>zYG}(+}aHamQuLoL;1i)ZfUrB|P13M$` zXvM%s-L<>NuH$a<`Ck{332B3+_HlmsHZ-YJ`7=td;isVhWFAwp+j!73XJlzsYK?r7 z@d;XQ=C=mTjGO-+!vzcLjH2A{l!4Sw`Ju{_Uwk>$-b1_PQm$cfOVw^@5{=Q}`m4in z_F`yuAcc}${o-66um1TIh0S@K!yer+HbbLLWfvw&(aAu+7 zKWslFF>hcaX-fHVcuMlA_KEM# z%N2t&^OJw@%n6*?u#3fNx}Gc}|FybS{v{E*#R6stUQPZfwlBgIHNzF!I0c{^7_8Cs zS87nwoah#`sQ;-BQZvv*SyGm8AwYaHKwn|cTP#aw@igMG4O;!$ zgidEGfNYNgWa}6|CB6yy3A&`=c0IMu3nI_N%&h4EI#p(=z=RyN2~}$hwGV=3_-Q9p zsSPnxU+Ss8Kc+fGgcqdublzqgn+~=r;8bis?+NWLkZ{8~^vaYLx7TPZcaSH6MzXCU z3IWtf^e66%+2Gz}ms#;&%21#`K`l;@{El8hBpRFl@N;*RmskVt1k(#%-$(sSIUm0? z8<_;7-sG#O@Mx9!C9@*3?MEiu$Kd}3)i6iiNz+shTnOO4GIUl5o^9=^fclw`Fr}C4 zq7~$O9ffqt?nLi;V@Ew2HnZ4Qrgw#Jp&S&nLBd8U0Q|Rt=pLbzLW5by`dMIYkK0_N z$Nyh?)(H94+m}g?kwj^!pzug^16rvU%)?GDLEtQP5`t}Tm0lBHrQZM*_7h*X-5k`e zTJ_|Wnj?H*MBU;7=O^4`+ppam2h(vGO6F<* z6vQd@?-=VwHVMcA1ZYoyPYGDBMeWxj^rPQdn^@GVIRe6@!Y3`~s(mWGW%TY@)E~6u zcv3&#a8Wd^&J3mj?COgkz|*I3&J}#MVg;3n-!l4zZfo%V`Z&jL8$a5w*rtlDZkE$B zP1n<3SAG@uZfI-hXLYZkaLdqmUu=5m661Va%z!17eF~ruOfa+kBg<4>l}}qf3`!qK zu0;lr92Wvr5a6|lew;|O7XK*QODR2Sc5VP{dHF1Tl)#HR1x26ldYi64um+>tR>XkWPs8;fOIkR*;a9>Pum5n`Uc#3{2ps~7< zg1l3hNX*{Ox+p)8#is|;UjB^ve5R4)H6o8NzYrs1Kbh2)wP z;MT_qLRBL0n#3YT*xADF9U| zt-x*kxMn8IzcEXrg%YuF?Kr!D9EqGw0U}y5M?OoBmlF@=D7Ux#j*g zYwy7~4e^tI;+HEe;EykvA(q<|hNa_XLDCM-yz`wH^C9@2k?z-SlJ^+Q?dH zeGiyqi*wMdbs$8Z#;-2HxL%k9a0Tk#TikQts_ah}`tsfhIn+yfGS}uqi;gqCAer}a zL1>9tNtHMU)yNkJVcwCRiCw9=cfsnw487Qbz$KF9RcT;eT=I@*_MW=kxl4zN$NAJR z2P{hf1kQNv*PlnKx^2FDu_yYiVoNh|@AiuGrSS&$AnrqOi_-R&RVl|%57rXHv#Zf% zI4iger`D1~&oNSSsQQ$fCZle~#{Q$mp10nJpUb3AV z<9STL{ivX!I8Mu!Q{+t9p*GvSiY9TK8lDBRt(s*J!1`(S*PrNAOD+P9yKp4@^_5Pi zK?Jd3vLMJJK({SGNtA6|k4GN5YE`#D?p- zdfLU69fM@GL33nBiHX}py(O>7WuS|6ZiLTH>-4)2qGfO{;2V~&?NJ{^)*I5S4jFVW zZ;SY6Q%5_a89oLNZZSWfSzY#9q8EW2;eEPIING-I^p)#=js;0HfG zqq{B2gClp*3B}+v~D}`L0IPtz9(vL?^0;3E2*Zp>l z4c~fA9n^?_O5tm>cIv3e{LyA1oAh~D;Emz?B3tE#SV_Nd44#3`Cp1j>s;y@-?WhyuLA3+uDzJaDcMH~vj@}gR6dVf% z)(xe0gV6mp*n3ll_e-nx@zrjGwBR;C^$#}H`(p&U*&t3DiraK;(`TAXGKrj+xKw?e zU@~ciBM6ArGZ<*>xR$Qc5vuDDckv3Z&yc=ofcaKtR_hJ=XOHIGHkpA^hW1N8vu_>n z?7L&{is65LV7fD+$DHxmQkFX60D_tPZ+a62BsqKv% zU!^!#5Ri;}R7c0ekwKZYc^agsuvvYesZKlqo(kzy7NV+q{X_A7zmKA?N9n-4Rrd-X zmBu$?@18fe88`6w(5QyijbAQ3S^YhruPndB(ctcnth?pC1(`EZRVKsx@cnlP4gR|j zdd^?skUL=xZAxvNsHK$TjO*s9aKX8{wN)OnpZq6W+sy%`7XXB(f&1oB==An~Z(X$?{Al@KH1rr+_4^xhA^vu<(bIjR3b2k^%b zOvIRvzVswEdDhKmi7e@*$c<&9nWk~q9IbII6m2j7{INmnj)-3}RR%Bx$HOn}6u2>L zIu-7$H3U>x!9E6ZXYPFkl`6Kkv}xGcDb7&}cP-FN#i$ab2$|o! zuhg2J>MwZ`-5}c$*WEM7lQ<`N5=G36sS_J9@`}T{p|?a=DlZ7oh{UV?wspj3zfl$h zxu1Q`g}6xmYDJ#WkNE2u-&$tB|N0VYl2s3u79ZdnZZ&Ky0*k}eMb)y6((bv zw9nHoew%g(jFBB&$&Y;1d~k%J4cJjwS8)|D7xEo5Zp;%^X9U}Gn}Y$i&+jXAHVS$s6Ma0+zg z(y;Q#he>+m3eXSRuOQANPUM(H9Zvs4-|w`bpNRSgLmVm)z}i9z_pz56UPKvqpq1Le*g~tNYIN0Rc z8Pz#CYyKdT~=K;0{#wQdrq zwgPGr)K;__B4Vv8pv6|L5bSUhuyvqff_n$3S|+aN=R9Xs4W`#7X7BJ}x`M%Tgr9>i_+{U=>x$M#P#AhE=uON0B~`5l)FHR0 zEy)-LU!a|ZHK|b0pFhPX$+#$9$G=eh(hLZxOaLA{{fjLBQ^~K2{ma{gP(gL%#Ddy2 zY!;uvy#zlMDJ7dSqY3N^LSg6B}99&u|kiF`7DwJ`%a22U9S3w6U?sABm1 zVnuQOxo2Vg$k?9!7Gw6fc71Kn=6>&xU(gJ`U>5NOcK(|)>|f=@G^s40eP0Zel7@MN z(`@CN&Zy|d_xmyXlVFa)E@ox?2PKC#-$EGslcRf1mshO|sr%W@;s!-5y#b;ccwd>s z5J-axDdXpddh7D|Iic;V<=u-Pja0=ITi4f|&#EayMX|fR{o*2f?u6V>Y!zZP)}}_T zy}h_O`5i9s9SY(*DApD6_?++fnz{*#f8nbZzf&a)HO$Uw7!4@Jp=jWui^CBiP+PbQ_Wy+Z1k}o}Bt8LIRY${pybhp#q3-}iUB}V1 zXY;5yN|^$n0U6e2Z}tXz1SrZ4qbQofA8;3?>E@%MPc1V#zO*I&@K<3wZ2%~f%vmeT zfVW_B5$SG-B~wsd-Dj2V52Kq?R{vtrl>F+i(<4?Mq*&L{&m$m$t6gxUyf(xQTh)Xy zY2*egRIf9gc+u38@C;W6po{pV&>r(-!{#@P1xHt3+KWnH;_)U-|J2R6UI%JP0%7~@ zDD$u0g+Ok=W}o*1mN!uytX&eFnmA`thr4IXt9(j-^b|ZtRn}^)sZW}zNRTZ=#1beJ zU&!B4eJ=EIk~P5FKTO2~EEtiLTbBMilr^*ui5Wh;mbH&ji08$a`q-)CTI% z>|-gYK4s63*aBF>yNw=;ZBl8?(bNTY4222&r*E9D>D$R6?R)u`{DM1Qoq71wu=eH; z*RDVj&$=L(R4_H+bF@`*(Eji?wox*LzPGl2ns$-t9ERc&h}k3y07E71x5hX1#q|xU znPlUHGnAjj67GvmvTvu_%Mz|lTSBo&c>m=5*>=!fc@ZMCd2#S^buh@TMKCUKJ)5$N zE>Zl5a>9aMwLiw4DUFaEQ=BM2RefyN$KBjuLW)AWK1dC=2PUK>ZGqaC3Cg|@9V<7A zAUdvjB#Q7qI9LUvfAUX4a0z^5Z3R*nAn9+Nk1y}};cVYA32SHnMxM4Ol%q{0h)Al^ z(sLqp+B5B4;r{zsAC{VdlG7*&x_nkbClur#Ovu`Hwd^|5`cIl2@_4lbH%>rGclK|v z8E4|%xX#B?g2w(?op=ETshm4-wg>nyTU6R3M`2xMmRbjvY#^Q{im zB)f0OipnD4O=~cSk%U3qPD%PPs77QDHZI#q4W&+1`Zj?5#}z$yT`f)U-!`G;q2xo& z_L%8H`s|IdEkRP8DR@*Kzx}84w@%%DdVDA4U5geVfYwI6$|T4vkq#Bbht5p0?vfZq z533M;5G(2|w=*l%@MDGdg)l`Dz{h5-UR%{kt`cK5* ztZ(+axUp$8wSgUnVxMF3Cob)(N~;3JM&+!pP)E?0v#C1E0YlG}E?9pw?t{{D)CM3B z799vuXeXJzw;fPlQS)>a0&{N!FRf9^=<~{oOeB3xTUGIj^!!{icqET~{*h~D!Ta1i z+Jh^(D@bnVe(2)u`jRta%7dr{K=hOBvSsEN|79lRhZ3Uge~)71cJ>q)Ros=883Qa*q&szhW5LV*LHM_X$%4z`OKUEX)Ed;BhO0d)_V_6No1fK4nZGt10-rV?RO# zbyEw*Y@yZ|<2sOF4Mh_U`VBHm7ggWgpfbk#UWk8yp6shF)`eWG$n7w)?oq&oH*Y{w z41Zt-T6i;KlHO){B<#lLOXcy4l8hp~&uJ4*X5?CxD^$5VbJMS*83`W4-3myep*ijn zu~R;@*_JzUlCa>lKhhCRWC$^Xg3WT{Hqcoo*ev&lPgU0~t{Aw36{)=RsPN*OH+7|u z#p@y!sNroIW|(ZUhmgkW8fsmr3ysN)KOK7Yg&DOVY21a$S=-W!Ku5s)jDGP9RbGzP zMv}+v0d!9^LHAHN%QMok=oq2&oOr3KxFs{c%|8-agfT1YzejY2S++H*7zU^GPsL^> z=$9og!Um+=yZf{n9;UjT;P8csVy*TIKq!iA3(pDIDrL2LTVQ-%s4?%kL{KamQVawB zRLioUY6XdYCO9_Ie?s}L#Ynw>@HyoNePB;~WW)wVcVH2w5=;->T|TwZuUIIiH_ExM z9v;Q6fxXcIyMJU}{y6B-vg-JQ?D$cr_GTnKp6bo<#FA9paG3Uc55p)~(LBRe{duj8 zmw8{?TQV_kz7HrlpB_>Xp>nT@-=KjqgPP(826x~@`~qu9=fel)U@E~J&_?mow@7Wo z!&Uk{!B2DJd#u{1zEIFcvE}FcAH=NzqZliztO1zL?tXjrLsiCg$Wn*}iZr2K`nAbs zu?bp>lA=e5mg~02jr-4-Ma{~Xw4){eLo= zPK%Qn*6a1Biqwan34-`?rXfd{R4qzx6C6CA;yCj`YYNIZjIvujD~PAWG_Zp5lzL+d z|Mq;CX=m_3%_pq7>URhMtJ?)%zIe(`F-h(XFt(uUpVc`)npM4aJzn?R%@rD;y6ab| zcPPX~MUP(!lg>i&0p;06r@;zNJawKb>S^tF@SwMgHh~(n=?mAHB2xBlQZnJtZ4mEno zGn~@mA1>Ns96RrVfL{mOYnW-piW}&@Jr^pV;b{GPUZ93(RR7>a7v&DR;goy+`1u0F zckijnXe*Q{gu~S8^@ekT61`X;@!=!a4&sJ(jRA3s10z($Zkpmv$tSZw7i!CrNr6#x z97P~07{b*m&pu{=qFHtwsJ{%s;rUM1(N>hv(YF#SE{rlo>Ep!T8?;yTP31kT+L7jY za^3n&b9HN{d@FV<$r1jL#mq&~K;(hsh$HhtP*78AAprasQI5 z|DeQ3D|GuPmzYMm@!8qNrwLGkr}=2^Qm9Ede(%Jh_O`0Pv>2&rwPm`&@_4;KuD<$6 zn1uR^sY4F)P7|p#`Qwvw^Ru=U7uRUIdO)@>a>Qct$ep3?j-;bOY=L93e;VEMI91M% zl(}BG3*$_wBhSp9v!CLybgsyeVBIKPFfTV{>0J2W~WMXfB;Wy_?(t%hr|7nXKL zX=sq#XZ}1iIH($tx$Y|sp(u*+U6@}}{MbFVGf;2^Q#fKfK^PNDgfTQoW!h9TtYl%l z!=)!8=ie)^7caY{MCNU7GfHeD?=e*Y0?grp3%MzEcc20!0at(ℑFaQ)TLG{r#e* znO*Z_O3BdpOrQOmjJhV)YDreNFo+w$yhR*P6xX;wPQXvOW^+jJ?#Kd2+PoH%{@W7( zl#I~yZ^)bm8{9zq2ZRT=1aCcd|8X;y!0<~54`!kY76kfs;}PFLyyd>Sol`z9o}Y8V z)ezKKtk8~A+cw!wDIN=4GBHn*q*Hb=pUs4_gFk%2A~X_Jdio?%&gSqU<%DToO@%RZ z5&TFdK2MxRaLkRUM_Jqq#$)4h#wRClGF!>sM>%XLG3~qbb*Wd;C}DqToNSZKaNZ(3 zga|^NH*K1&NpTS5`oAFG9a=divr_73j*3J?@;hL zC+{|~)^`2tzY8z4HjNN!r>nKw(^7>Gw5^)vNx`^P_e%mKv^})aEDF~6(3+5|A`jCY zCr<3?xh*R?I1&{uz1z11|6n2}H$8&wut#Fdnd8*X!ftqHVQFPLHOeS|>feXGi)IB{ zW)!UyY~`KRKN6~&gi7V+K1!YBoE8;ngk6J6R|WUe1h3Brw$(lIKCZgzjrd{@Az5F7 z%JyOieZ^Cl$c|ou6|=Xt(PrZ24(*t*jTv3r+;33p6Eo}}4pMR+JxM8tG8xc=5(`-7 zdnet*!md(TwBdWTZJ#)(#3T%DE1F=P$NyI1lbwgnMDgQLP1cO${GGWNHTN{*I?D1* zasnsw!Mx2Na2uXH{*>)19YyA*Z%G}!vv@BvWhZc;LTSf_ADI1PlzFSnJr;KS$O~K} zP;{<`OfXcTUzMi4;c`IM#OI7nieZraJ)^`LdWE0<9>5@ECxXMXNK1?=hocB8tU&|p z!U;s&dRyoKVh;3uVT8si#`*0z+?lEiTibsX1SX4N2YqSfG(4NDPu{UN7Y?^kpoElg zlzx+Ve-Y1BB$1DJAzc`X9f&fmTI7DgD_D~im7H6%6G6<7GbGi^2NU)wVHzkVi9K5M z@OWYN+WF>bOeZOumW65b1&{564v+~$Oi~=Ce1Zdmr-#8ho@9US$)cI=_H|tprOS~N)|+*qm?Ur( z(aQP>h>MqkSnk)%tZ4j#KolfW~)$CPIOtvT!#TZ@Ln2yGkVxW` zRE2D$(a*ZGu)yzP3_=iL0E45|^M8K5y0t#QFbg(gPk_kOvd7Sd@LrFIz z{M<@p(;@;jS!FQp!vA_raoe7|!~D4Vz?B*IKtt!vw^TjLSgI zcglpT2=jREMVdP{eIn{3`t%e8bNbFQ#eCsTEewY^C-XA*t2S&2hk}A6G~mWJ{h?gy zuZf6G&Mn>!FU=D6HgWOLzNaVZC$~s(Kjj>;>mo!D&FRa=`tZ=+9ZO?{QGgZRC{SB5 z*xuMjHHj%7H?ssmsNWT4S*+A+PeP-RNMfzvMTII?#pmeE*D~?2@!W1I-&HVNNS{-j z?-O#XNh~Qc543_D>qLpXbm;njdBXiBpfPg%Z+2~BrXwQT;Fd|7-EL@vP$VQ#-VEGP zQsq6M?sAEn={<2DwN^GsdmzoiyP*JDADlAO)C9p4)jY{#rIUXIGP}9MvWmmbl)1b5 zjSlf9aRl1wM|wEiyv?>_acMY8Dc&bup9t3ju+@6BA|Dw-EAj#K`oKtBeo~#0a{gA; zFvvwK9zo`c*H4jVS)~`ugq(_q@5Y}X(JeG?OR}CegVzb}4xXZB9N_m{bGi~H>eWWv z8sfM52>Jfd@SGV$ISK8Uhfu-jJC_>^Mk)M0{)L3;H&Nzc_K?(Nu)-VtLF_?yDr%O` zy*wXAReVcZVTG$&)(6HKQ9bA8E3%~c)XXn@t{5|I{9rUZCm6g&ez9+6S#i_Fef(mN zs3WJ;l5#f#xu+9$gU&-BcAr`l)3@H786Z?_dKysp?M1~4Y|M{?XvTZM8|>8)yxkFF zV!@}+jRqX^C%PiJh0}+F-AHqhp3ze=Y3O~KP7Scl9KQ>-5o<>I@{5-v)|1p_wDUTK z7>7kuZMZfM*UC?8AnEdG%EFDNCjwKF2A*?t!pK@&p41s8El)i0GX)`_7P9Dq_k5XN zya{HpT<1}`EC~cjmD|93_~$>fP7X$9**&j#URi{5x!4Z^yIbV>HU*k<2I2GQ(Smjs zUsX@){t^s}mzr>y5p%vRM%vK?yugkt=@&Q%Uf@zY)drz7FVI`xSE|-pVAa(@i20SJ zg3$Ora`QYis1Mn=Wbu6nN0V#h>8k9q2l-+A(R~WYb8dq1ggx&-YlMAp5(i@5f!U1> zymX@)F?RQng9{d8FP-~lng;r96FtG-iKS`OTt*T%Xra(y>oZQ^8x|6H`&m z+=8X^WJ^*;-FZ~Ia8TXz)jfESLZiJbjuz4b={TPciluE0yiPHBX99G9jgY zN%as71*Qdx9{qaOz6@SGE_Thb&5Lsi?ibv0e&W@k+3Gk2OTL|n zSh;5pPjli9ww@6@jpX95h1cFB@4rt=zVOhKl!6w|j2$LJ0|=b`k5z@OfIl=0R_ni& zoz;s=kouTq@k!QpI*M{BK9D(-GniBWY56Hc8OO5WUqLa-<(Bp8X%OVt)0HhGZJZT4 zoGzfSeYUQ=UB>0pfwdQzsmwhdYTQqF%Bs8tVoQt^p*nQ9%C7~`qXH$pp+3uvSAEDN zf;Uh<;Y8kj1wKB(*o3yf(W@D^1rlB0x2HOYJ19rp%g?U5J${MmU|bta)338`pimUB z1)=mQKUn89*0w{(~2_VFTb0Lc*#0cV<#0J z^i~VMlZ8_+9hZ2C47MFfW~=<1v3+s?N7>MO2qWIZJeMd(Re-y?Z{zamTne)Kvmvaj z>NOJet~|`v@dj?E>HpHog%Jz(u7j~Tl!T~eC{2B)>b#+pJS}gqi=hNnzL-)jwtbi7 z3vx$1@d!c;^u>!*A(_1?zX1xovCQ)U^)_dZhgCTcDr#!xtbV9dSN#3grYleo2h~4n zy+N32LUytGzF~@WULKil^#+F%Mt~)CV^UETqdg}j-$=l+`D+hh)9Zd|r zXb?liwAqKv@4`o8Rvtk?Nz3&mRq_FKOPhjP;Y-67!t{rm(W^D*klF!$kP}FlntbNN zUR@pPyr#nEUu-A;Bp=@Dvx31>I1T{;_=xvX@4xAC`ay+uHqA$%LqcH^Y~Ag5qNJ*w zDbO%kz2ZyTVR(2v=}u`^vs5`lzEZihx=7d0Bx+ZN=UhN-Cw2&H1b#>ISIb9#UB2T8 zd6aEI|4Dj6`xY+PBVZ&JJhwkxiA>(E@>pX4vqv~I+b9qeeg`$%=pT4PL!c!}yG>hE zXyfIb7U(FB3PIrjYnpQzzc&Z*w1KmYByO7;!(~5P&tBBFk*t2u>i6j!=4_Amp-PPf z?o`n_dE4GL{6uMzl~TamH#?7(x2`@`cO9Iq&D%6oYl%YCgiV^wljvZ12R|BGnP3(Q z$`bfLf~ukP{OE{NS$}BAH|z!HNtQSz+RrnZ&DGL8%I+DM^V=SmUD{|$gBucka10MT zk<6L1B&7%B2Ed-!vV&mPkZlsYVI-{LJ04iPydLuG)tTWWWbt-t@AMJ))vqA-sjI7N zGM`N%*E7Y`Gk)S z`y?xd-b-|jrq2m*46^5Lt0qZT7wr(kG4bNtN;1z#Ax6)enF*O6%-%|*aJFSAe^~$ z^wKduwi!@-K3uE*LXj#x$l=0U;>Td`JENAr;l~it_3qI@Pgg$Be#H`>aT0Ez^4+Xp z0(pL!estzR6uRDxVQLoXlv!pUY-kpQ)a`BZ0Qm^8#)bfWk?E{O(F`g`Bzg1Xh^Xan zv>IJ~;ovmB0T6PRZ4G|mPAXjskaiMra@3kNpP$w+dk9pM7_&H6^47`)pp|ozr*mIJ z607iLmGlwO)fG`CT&gc;{Mmq~z4V-sLE@Xl5ANoZfZ!9=IvGiP2??!}UeNGkO=RpsU0fuH>)Q8TVn! zm-`rPuz@%_zc?(1!xXjx!!m)WZCZ*?(~~BHIH$>0)7IP_!!{MmlvO7=GQ!vkn$mdl3ZIr z1-yPNzCqBm$@rvQSqtcP`&R>USZMkqTk=Kt;6F=*bUSf1D*z! z6Ct&fa)vy)0#gu81hYx@KR?rs2SR5wD1{;tRS45Zh50vzuMjW{{#AvTg2ZNjWw;8| zXd-u-UK}lG^E-4!TJZDb{MyNMpvf3kr)0=D zD#JUw7xu;p$;aSX81PbTDbAYNc-1*TRa6Hm`Ky3U5go{L!mC&{$@x7ZUXg;j;=)t= z+>aE;SB&vituLF3PNFtTb6>%YW@BceDmMbcP@Y6`%XkMij#njoK`+7PJ)4!LH!U{+ z-tvLzu)1r&)WaM;vnU%F?<|*K@Fbe?{`CZP23@q{o43`bz;liMEoTy5qT|^-nC?U( zn6(C8gf@iHXC*sOJdz-!1Ql0>!(h5NeUU|6iN@F}&%zj6`8)&+`Kr?>rKeE^`Y$9^ z5~V)K%8$iwIZzyeE}VJ0k;;z|dm59I3HZu-VuL6xdI)mTBo#VPxkPPiN516NPOY8B zfm{s8p9>G=NP}$#j2mI}(IIuF%AZd7;J(dZr_Tus_Q9pe{in`B>|SEvUxlzk6rn?L zUrSq35NF`<6hu0i%5t(BE$v&BHB0CTvrwaL`LkXabOXQuTTejf+pkx?+y+)R_8FQl zNPz)?bbR4pAtnv9)1f~_-yU*s^8TUAmB^%6wg4d-sAN->uaSLY`9;E4iR$PiuP`p?LTP?N~@#K~8 zj==&-g5Y@=4_Y(nzN_RQ_rqjKNox@FV?t0&@G%=AT|Z|G&H_j7WO!HFK#Hjq^+=(ZvO z!87t8>dgKe&p&4fy&nm+B8-HzvQvF|I99hOPYw;**F=MA5%TJ;?@+{Z}@XtKxrVuKnB2 zsbk5emMfNe@+z2Y74+)&5porr?=+cUtLrhuyX|%=`7^3cz;Ptw==QoFgW{2y2+Vds z)6((n-J2EOUGFlA2lE@|p;Mx6PpLdFB~Qo;;2D{)L2ACZ-U(syGglJH5v z5I;DD5UkO&0+SFcK|riUJ{w3y4d)`p#&E+u6YCf|PI2oY8_olR8I`6zOqqnx%rve@ z%|Il32ZRQ$uiz=M&6$(?p8npt1z4$`KgF@SZls>0Gv=?B^CcM$ z-!lo=9!&eDWH0V9VkrK!>lwB)MKGzP0upUjsIdkBk(3%w3fIEP3xpfX+VxpTI0p*< z!}hl&jqLGApI_(>w7xlLb)ub@X*sIIn-(suJ?VFw1D=l}jM6fEJRLakc!NaWo>6wP zWncpC+v~N{Az%RsE>OpV3_+T>j==#Kex^MvG_~tg&66wh(D6u0x+ambA=c_M!o|d6 z+0Y2rpA_|IH9HYRzrEoeyD&!S{>;*_HWL#;#OZ)+(|@P90*a#4%dQ`$jTGO^!6{x& zPH`rW}kalkDMxeQh0y{c+(csd0R@IY#FQ7+YKO- z@g@Mg_=COi7$0kO{H9D&p}d@Y04Pji6>1JXG8TXSM;LWyM0SJl?2h>~c)ukg!0p!) zPG4r|ACrrXl%pd6sE?r?iUBOM>qRv&OoO)j3Kq5#faNXll6iHQSe-OtbdiNYO*be1t@0cry%C?SB;+koM*E zcmp}T4{#XXy-F>@smBUA@Z-M?CJji+x=R%p?Hu;zaUO(AJqbQhX@1!1*BHF72MCZ$+95FOWn`+`w3JdgLmVUH8-X zH82-+W_o z=?B$W#F0BYwSsT8+qLQV$oDcEl+fR_OlGrHtl4E~084K?8Xh~!@3RRlGxTKa2^m-a zT1{rQo4`4fHWfnCBs{{CDe_#k?KGp|1>g66zh0HuKiIMxhbS%tM--*SnocJ?O_f!F z0?_a@^&~*0in9t*nm*9C=>uI?jGYOBlklcre0Tw!9oco5Z3E!s?Z#1o`?crfZ$vLR zoOm~?73+Ms&2xoa8bAP8;xnQKO+w>PdNW~+GRH{nnTmVKsgi@1pZ0`8@_Xk{4Vp~Q z<_i+~H-pyX$;6`ZIDEmJ*+)VcgXu8-A3iOUd&v18GKFw-(xd(Mu4mIw-6r+APjN={Leh2Tc z^yn_{;;C+QCy!8k}XMb8H3F5UJm!Y@!jNWlIlITRkA_LPB^d<;P8_ zao+FT7>ofvKTQ=$f5_Xgvs(kdH>*K+7!}JWYM(HePvFw3)v{~6G{kfRgm(o9uS1z3 z)%7H@maqk``}&MMAO+S!qU?qf7Gm4IVf?=gp;tY{jVhFVNg1^_qxM6p#Y*8!lI$K% zo=zi)niVcM1EZNZ@?W}2I?DOvs-DbRys9XtNTGL0aE69-j3MG-3XH$yVn7oWI~FN@k3cvyd*;s_j>!5|m55@Eyr zXEiO>-McM?f@kkys;nu7Oka5cju=Gzd5m4iff5aLaq3W(HR1X?u1)GYVbWe2+o?KaB`+|3{-Df>jmb4_Jqr-I?l@TimH>^8*jJp|=aB2r;l z2@B!8>BPl0s`OT}89z zbXiXN)09#7arS93CIzC0kN|x+DM!xB@(g=)w!ee4wd7%n$Nu z8C{5i};BBnfh1?R2ZA{ZOpLie{%6O%MtV0SChx?PF2J#Zn3WX?)fSs@ru2m z{vz~0svg5=4F7)XTUC!k)up7q`=Vk%-8xPh6jcs}66rd{+is4Y6roYFiZ8U<;~%cw zsz-$l&>scG|6B9{bWciU9Hwv}1RaRvU@pd+6yeg$sut+bceQD2Hy2(|)X>9i6&3eE=WI{EgvbP{)P?;Ozi1(xFJ(rq|SJL}yHHe{LEK#MsHXLudHq z_JLn>$xm>Y)@wiqc{Xi;lvp#%afDYc%>Y(P_7bWHg+sI()%C8^2?VjvQ26}63eu%H zu&(CMh%R~7j&YUguoQVgBM!MNZIDM6c#$@(6POieBKYGsPh5pgJb`#_ot(PE&)B^a z?Z74zPDKpQ+Yh29=Hfb0TtxJk?1<34ceRWI8>lm^n&W<A^uQbz=-dFabbSs9Sl|L)2G%E zTWa;&rW47Q#5k8W5IE)(HQCs?ZB z43snT6YlU6N6y2O&=ZQ?*{L`Dkcj;uSM+OsB(AVCP*%=h`J@SV0QS})r!+`2D Ov?Vcpx^kpBZ9w)ltu literal 0 HcmV?d00001 diff --git a/2023/day16/day16.bqn b/2023/day16/day16.bqn new file mode 100644 index 0000000..a0d0b27 --- /dev/null +++ b/2023/day16/day16.bqn @@ -0,0 +1,29 @@ +grid←>•FLines"input" + +⟨PBM⟩←•Import"../../bqn-graphics/pnm.bqn" +Mat←{1˙¨⌾(𝕩⊸⊑)(≢grid)⥊0} + +Sim←{ + Step←{𝕨𝕊i‿v‿nv: + {𝕊1: ("img/out"∾(1↓•Fmt 1e4+i)∾".pnm")•file.Chars PBM ¬Mat ⍷⊑¨v ; 0}𝕨 + nexts←{∧´(0⊸≤∧<⟜(≢grid))⊑𝕩}¨⊸/∾{𝕊p‿d: + { + 𝕊'.'‿·: ⟨⟨p+d,d⟩⟩ ; + 𝕊'/'‿·: ⟨⟨p-⌽d,-⌽d⟩⟩ ; + 𝕊'\'‿·: ⟨⟨p+⌽d,⌽d⟩⟩ ; + 𝕊'|'‿1: ⟨⟨p+d,d⟩⟩ ; + 𝕊'|'‿0: ⟨⟨p+1‿0,1‿0⟩,⟨p-1‿0,-1‿0⟩⟩ ; + 𝕊'-'‿0: ⟨⟨p+d,d⟩⟩ ; + 𝕊'-'‿1: ⟨⟨p+0‿1,0‿1⟩,⟨p-0‿1,-0‿1⟩⟩ + }⟨p⊑grid,|⊑d⟩ + }¨nv + ⟨i+1,nv∾v,(¬nexts∊v)/nexts⟩ + } + ⍷⊑¨1⊑𝕨Step•_while_{0≠≠2⊑𝕩} 0‿⟨⟩‿⟨𝕩⟩ +} + +•Show ≠ 1 Sim⟨0‿0,0‿1⟩ + +m‿n←≢grid +starts←(⋈⟜1‿0¨0⊸∾¨↕m)∾(⋈⟜¯1‿0¨(m-1)⊸∾¨↕m)∾(⋈⟜0‿1¨∾⟜0¨↕n)∾(⋈⟜¯1‿0¨∾⟜(n-1)¨↕n) +•Show ⌈´≠¨Sim¨starts diff --git a/2023/day16/input b/2023/day16/input new file mode 100644 index 0000000..e64fd4c --- /dev/null +++ b/2023/day16/input @@ -0,0 +1,110 @@ +\|.................................../....\\/........................-.....|.|..-.....|\...................../ +|-.....|...\........|........................../-...../...--.|..\..........|......./.......-......|......./.-. +.....\..../......-......|.........................-............|..../.....|.......-........../................ +........\..|.....|................/.......-\..............\...../....|............\....\...................... +-................\....-..........-................./.......//...............|..|...................-.......... +...................|..................................|.....|.....-....................../....|..\...\..\.|-.. +.......-.............../......\...................................-......../.......-.\|.................../... +......\..................\.............-..........././....|-.....|......................../.-.....|......\.... +......-............-..................|..................../......-...|.....................\................. +.........\..........-.......-./...-.../..\...../............................|................/....|........... +.\....../....|...............|..../.......................-...................................-......|..\..... +......................../...|.|........|.........|.....................-............../.-.../.-............... +..|..-.-......|.......\....................-|.......|............-............................................ +.........................|.............-..........................-.\\......|.......|........-.........\...... +.../....-....\............/...................|........./..\.......\...........||.|......\.......\..-./....... +.../..\.|..-....../.......................-.......-.......|/...........-.......-.......\...................... +..\...........-...-.......-.........|\....................../.-...........................\...........-....... +..../.....||.....................-.........................................../............././................ +...................-..\................\................................................../.../.........../... +\..................-.-..........//....|......./........-.............../.........\............................ +................/...|................../......./..............|.....|..............|..-...........|........... +..../........-......\.|...-................./...................../|.........\................................ +...../...................-........|.......................-...\.............................\.../............. +...../....-......................./..........................-............-........\......-.....\.../.\.\..... +..|......-.\..........\........................\........../.........|...|............./............../-....... +./..\-.......|.........|.\/........-........|.|...|..|....\...|.\.....|..|..-...............\................. +..|../..........\................./...\...........|.....................-\..................-..|.........-..-. +........./......||.....................................|..\.-|-................//..|-...|............-.\...... +........\..........\..........\......................./......................./......|........-.......|...-... +.........././.....-...-..................-.|..........................-.............-......................./. +.\..........|...........--....................\...-.\.........\......-.................../....|./..\.......... +......\.........\.|..||.....|...../........-..........|....|.....|....\..|..........\.........|............... +...........\....-.../......-............/.............-......../.-...................-....|.....-\.......|.... +/.....................-.../...............-./....................../|....|.-...|.................\......../... +................../.............|..........\..|..\....|....-...../...-.......\../......\....-...../.||........ +./-|.......\..../........../-....../......./...-....-................|............|.................-..../.... +.....................\....................|\.-../.......................|.......|.....-........-./..|......... +..........|...\......\......................|./...........--................-..........-.......\...\-..\|.\..\ +.......\...-|................\....|......................../............................\..........-.\........ +./.......|................\...\........./.........|..................|.....-.......-.....|..|-............-... +...|............/....-.\...........\...../..|..-...../..|.......-........\...-..............-................. +.\-.....................-.........-.\.................|....-.....\....\.\\.//|.........\../.\.........../..-.. +......................................|\-........../..-.........-.........................................-|.. +........./.../..|.....-............./..\............./............../..............-\.......|....-....-....... +.|............|......-/.-......-......-............-........|...../......\/....\../........|.......|.......... +.......|...........\.................-......................\..-...........................|.................. +|.........\..\.....-.../.........................-\.................|.........\............................... +....-..........\.....././.............../..........-|...|...../........................-......|....-.......... +....................\.|.........\....|..........-.............\..........................|...........\........ +.............|.../......|.........../....................../....-..................../......................./ +.\...|....-../.............|............-..-.......||..........|............\/..................\...-......... +........\/....-...................../..............-.....................-................................-... +/-..........-......\.....|.....\....\............./..../...........|........-....\...............\.........|.. +...../..................\........................./.-...../.....\....-..-\.....\...|................./........ +......../......./.......................-.......-..\//...........-|.............../...\.\./..\................ +..............................|...................../......\..|.............\\......................./..-..... +....\.....|..............|..................|...|.............|............--.......-..-.................../.. +....|.............../.\.............................................|...................../.........\......... +.........\...../.../......\....................................................|.....-.../...\..........\..... +-\............\.......................-...................-..../-........./.................................-. +|.....\.....................\...................|..|..\....../.......\...|......\.............../-.-......|... +.......|.........\.................|..-.............................\............................/............ +........................-.-........./..../.|.|.../..............\../....-..........|............../.....\\.... +...........\-...........||..........................................\.........|...........-...-...........-\.. +..................|................................./.................||.|..........|.....................|.|. +....../.............................|.............................-/..|......./............................../ +./................../.|................................-...\.......|..................|............\-..|.....| +\.....|.-...........-|.................../............\................../......................./.......\.... +.\.....................\.............|...............-......\...-........-...............-..........|../...... +.../..\...|........\\....\............-..|.....|........-/..........|....|.........\..|/...-.....-.\.../.....\ +......................../....-................................\..|.........................\.................. +..................\....-............\\\/..........|.................|...../..|.............|.................. +..|./.......|.....-............|...............|....|............-...\...........................\.\.......... +.....|-..\...\.........................|../...................../......\............\......................... +-..-...........-............|......../................./......\.....-...|...............|..................... +........|.......|.......\.|...\...../..\.../......................\.......\...\..................\....-..../.. +....-.-./.|...............-.-.............-.............../......./..........|.|../...............|.-......... +...........\..-............../..........-..-../........../.....-/-|.........................-.............\... +............................\.......//.|......../...........|\.....\...........-..-.......-/-................. +..................................\..-..........|./..................../\............./............../........ +.....\..........\.......-............/.....................-.|....-......................./.|................. +...............................|.......\........../.............-.....|.......\..\........................-... +......\.........\\............../..-..............\...|..--......-.....\......./................./............ +.\.......\.....-...........-......................\........................../......../..../.-./..\........../ +.......|.......|........|...\\................./..../..\....\...\...........-.....................\.........-/ +....../........................................\..........-..|...............\....................|...-....... +.|.|......./..........\........|......-......-............................|..|..\.........\.......-........... +.....\.\-.-......\.........../.......\\..|..\........\/....\|.............................................\... +.....................-.......................|............................................../................. +..................\...-|............|........................-....../...........||............................ +........./............................./.....-....../.-...........-........................................... +.........|...........-.........\......\.............\-.....|...-...|-.../..|.............\.....|....-......... +.....|.....................................|.../........./|...|.|..................\.......................... +..\...........-.............|................//.............|........|.........../.\..............\........... +..-\..-............|.\............../../.....||.../......-......|...-/...|..../../...................-/.\..... +.......\.........../.\......\.........\...........-..............\..............|.........-..........-.-...... +../...................\|............................../...................|.............../.............-/.... +................/\.................|.....................\...|.\....................-.....-................... +......................................................|................................\..\../...|.......|.-./ +.........//..|.......\.-...............|............................................................-.|....... +........../.\........\............-./.\....../..//...........\..........|.\.\...|/\...-...\................... +...-................/............../.............................................-../.-........\........../... +...................-...............-.....-............/................./|.-.|...\.\...............-..-......| +\....../.....|......\.........|../.....|......-..../....................-................/...\......\....../.. +...../...-.......................\..|\...-...\.|.........|.......|.................\.............-............ +...........................\/............................../...........-.......-..../......../......\...-..... +.............................|.-......................-|\...--...............................\..............\. +..............\.|......./..........\..........\/.../......|.....-../......../.....\...|-...........\........./ +.............../........\...................../...|......................-...|.|......./.....-................ +..-...............--..-...-............-..-\......................-.......|..............|........\.\.....-... diff --git a/2023/day16/test b/2023/day16/test new file mode 100644 index 0000000..d6805ce --- /dev/null +++ b/2023/day16/test @@ -0,0 +1,10 @@ +.|...\.... +|.-.\..... +.....|-... +........|. +.......... +.........\ +..../.\\.. +.-.-/..|.. +.|....-|.\ +..//.|.... diff --git a/2023/day17/day17.bqn b/2023/day17/day17.bqn new file mode 100644 index 0000000..e9c5583 --- /dev/null +++ b/2023/day17/day17.bqn @@ -0,0 +1,28 @@ +m‿n←≢grid←'0'-˜>•FLines"input" + +dirs←∾⟜-⋈⟜⌽0‿1 +Inbounds←∧´(0‿0⊸≤∧<⟜m‿n) +Step←{a‿b𝕊q‿v‿dists: + u←2↑⊑q + d←{𝕊0‿0‿0: 9‿9 ; (2⊑𝕩)⊑dirs}⊑q + ns←(Inbounds¨⊑∘⌽¨)⊸/ u⊸+¨¨∾{𝕩⊸ר¨(↑⟜(1+↕b)¨a+↕1+b-a)}¨dirs + ns↩((|d)⊸≢¨|-⟜u¨⊑¨ns)/ns + ns↩ns∾¨¨⊑¨(dirs⊐<)¨u⊸-˜¨⊑¨ns + ns↩(¬(⊑∘⌽¨ns)⊑v)/ns + newdists←dists ⌊ (((⊑q)⊑dists)++´¨⊑⟜grid¨2⊸↑¨¨ns)⌾((⊑∘⌽¨ns)⊸⊑)dists + changedns←((⊑⟜newdists<⊑⟜dists)¨⊑∘⌽¨ns) / ns + newq←(⍋⊑⟜newdists)⊸⊏ (⊑∘⌽¨changedns)∾1↓q + newv←1⌾((⊑q)⊸⊑)v + newq‿newv‿newdists +} +Target←⌊´ ((n-1)⊸⊏ (m-1)⊸⊏) #(m‿n-1)⊑⌊˝⎉1 + +q←⟨0‿0‿0⟩ +v←m‿n‿4⥊0 +ub←1e4 +dists←0˙¨⌾((0‿0⊸∾¨↕4)⊸⊑) m‿n‿4⥊ub +·‿·‿d1←1‿3 Step•_while_{ub=Target 2⊑𝕩} q‿v‿dists +•Show Target d1 + +·‿·‿d2←4‿10 Step•_while_{ub=Target 2⊑𝕩} q‿v‿dists +•Show Target d2 diff --git a/2023/day17/input b/2023/day17/input new file mode 100644 index 0000000..5875ded --- /dev/null +++ b/2023/day17/input @@ -0,0 +1,141 @@ +131423441435521335221545213152222413225464335632532423326434425325232563462254235463645422436326544353543662125112131342411352355153341411124 +443221132314425151111213535451322542243266264463356666433535462333435446553664544653246454265325343552342454263124355512452154311122234312444 +434413221534322523111155414334146364446323544336354443333234662626544624365355665622463243363233636232555533442355114223322334511514331431141 +343433145425132341524124111532554633623445535436223644226623562355533262432633364365446353632543652232522656444522511425232252224342234221442 +232321453324532152535352333152456546356462322364533523535433365434466456543463555334336552554263462632525542522453344254242134513355122514122 +334131334115225443214314532322542626335326333463432524352325455636753374753747443223643433544536525425552365442466536245311144252552241153412 +121245533343532234533421136254343552432444253224544254665673633567363734347764453567475463235644556656242326462265263515533414243242335544131 +133445544312241213433155663353225424563454622626445356433464763773653343456734747435475473645226443354543653566366562422412231344335341512321 +411243424411214212114325566446626356542434442652535747456475566736654563766636473757535466577455653224463522336534343244445542311515344414353 +342554253355153524451653624245253663355424424667673565337764654455347356445547674356736446535343626642242333436254423634364442231432331231115 +145441314541144123553434235656443555542344422747445353773556436366767344445546646455547663554667763633234253432236253265643415223454232152412 +255244421341453413555634655244622662564635455553437566736535676337664666453464434745547735753634353466636344343362445543266522534453144415312 +223453142532344552553565254354246625536444775563573747774633447633774436434773763473536663576567655575633323662635366546243544534452435355521 +231313222234251456253353462463262632422667333367334367473643765647376755343557755366476655336454656654332244432425534323664363345152555444511 +542113331151335224263446334526324223677473343646557573556557565775564553543755774466655633645335333643473355364325256564543524625514442124335 +454343322334335663555222434533346234436446453456475467337466634764457764656763346476665654534733537745453743244223422353426435244415131152151 +255313254422543456342622344452254543744567644654437557633435344444553755477777453575463666374737533566564675324266432222434632646655351413522 +412523242441566422346644246423344374455655333663775736775556566767477673447673346776354635433566774674647455433265222426223262452211513314451 +411124342455346332224253266452435664567473775774374473454453374466767786844687546475777463575334373346646735347532435564652324343633531312533 +323525231453235666352622652646663534456534475764556676646355766475486788467647687774457746743644673673633647735736346565332254326426453334241 +224331141346623666266526432433753635345564637533545354638448548464888444486686868747568665677775553343456754774437262233324353622262545242151 +334232243636326546542265346747444754377375744576665744655484486468687585664454874756575486567373734633374334363546564543266665645556264151431 +244311423523252224655445256475657463554433645377455766456678668568686548687455875877487477576334453376657733543735653625565345464365622545115 +354424545325466554522642373656753554755555566777588568746556748686658745466847885864845754887645757667374744453774674656542525652343622545343 +425411343354233364325225565333375377763564763656647547555675544656848677787564444778654775658474646556465534757767455664555555224645426222315 +321224666554465435223463763436675756354733443445444854565464745865874645466655544455548578677556463453563677563356464574244445555524546545155 +522146452343526466555255763645756443766744368675876776566485558866877557645666458855456688475545875867677576736365673546732254226624626242145 +124215254522224662653454365444434766653345454788876767867854457457867745854764876578445857486888786567477565556366676443763634664335265542433 +433144445436253223333764355733664776765664884486858865544544466876458648666744644687876747448848444887665557766454573443342323342563255325442 +332236544456652546266535433664755356473684847777455478484786455654486466585864788885586784688866748655885665566737767443745455562666345432324 +325425436524254535446466644376333656544546775787868854884688547677567776557564587584655456644678487646757864367347475677776425522263343432462 +554323523466224452343477737734774664748865446786878548765668665777464857665766856684574778444884746884644456644665347457543476353644424333625 +226545254263563327447566447354745654464574878567456564788864846978557898766796976457858558875866486465745567773754767677756453566554352325222 +535362562522366644375737745674677574877488478884777568648566977956866785666796967775747488776454855554867445576333534555544755356252224425252 +124624256632266243534344556663355487655685878887686776547755597685556977995557788796789744644464646484856676664645543455554565632242535455562 +654533563534654463746563557567574686875556647656556658597576998757567768776965789768566785557778578567465487585567344735377644575346444453532 +666343622226345376576636676435578446886787884746676665899855978567765856698695659598586698665585576444764456855744635334547554434634464425433 +423526626444257766345543375536866484876748748566879586597758678869787567657799987869576688769444856488566876646573655574466675643432634346262 +536222646322243367533636544345457884887884655644689969587765767786979898978888989757559687985845575588556887477565474334564647666255546665335 +343266523536454577663645743444684765485546488865597965565565999985887788877866985886675997968885458584578448654765646646733435545343453544524 +345463546252635356334333334785655456756657866557795556778955555755969759657759988878957699795856584754846767878886843446343434566553346452555 +222223623625447777737334773485864657644546456869697979569966665686776988575567757677789759799877754858458848768685743644477543735736435452225 +536542646436734553555367554775564854766864567656775867588987867757678879786788969987665788759895857757888664666755884553335775564656625556623 +356546343645464647536643476858645476745787597986575976796888955857598885777765957585657566858769886775546454847488688556643344547454262455266 +225634665344734445345537637574564448744545579875959579899877867885988789657896866798868587779699798757657555577884576655746744335733523365335 +624422253345547474735563576654566666447775676678656867897697877978896696697875699555569958695887966599486874565547755843574367476374754442336 +454365352443763465455754688768555474777598975699965567785876597767766897896697678986858669967685565599985448788487645556774444357665752323642 +243433652736663566337664786574578755875565996998796955756877676897677876996777786899796899595558967596656474575486784865737357764337636645435 +532444345335643375733377656467745887756676887755655785879967887668896969999987868979687889598797578595898845876787845874677567464375664536543 +426464566756576357356768765464487447445569969877555796876766866667786766776687796798796576699898659755556464487467784877767566443755636244365 +344552633374536546363444457755468874657657798997769856596786968868967799978896876997799658888995576796698778766846444644444576547475534546263 +666553424773667477467648864565584487566868798989689688766886667888776697966969889669968665775969659597966977886748857446445677454347457325532 +254435536376655346377588867778486464575556898985699798767967666676686696868696999867768698977566659769679755474888564555753553363437443535425 +342342276567775356577447785878874574859998596857967787668798967797889767798999798989699779958965978569977888454447876875475764633346447534526 +636535357355774435437456857586448677665899658799959799887967689986967877766999866678876678779786757588968665587686785488685564666653344354664 +322245643666464437535856566877655648778988958666959998699778879668788898677967969997669789878678579869685866468885885557847777664774347752662 +336643567455455374676548645586756559696755995857899998897979976789988898799687989976768699777665766868765797986867687757647634557645557543466 +534454535655374534434876446878748477877965596676699879788978987969979699796977687766789689986679978575885857964785568878884763473765657646226 +526665374646534373666784667544654568556575995776778886788679776768699877976899689876669788787769867677966959985645565847458736563666356734663 +666426567735755756635575748476667998576859885597778979868778987789779779779776999886978986986978777566798599658455446676747576674367635653466 +442255354476566564647676485847564575656687955776978798867686968977999879988989766979688868999897777888576557578867767644864844643775366644634 +364262574653535644588548876767864895658959599996986676697786769889788879778989777988798668696798879959669955578778868578554474663637776676633 +634426357444634654348555777766676759955885797576969898979867687879989878797877988999767968866977958598966977594476764874858837475746347667643 +444423375575766575656746584775869867795685669899976789869787989789777778979788788768869688666886779969787887968878654476665655365533367456244 +245554774557475766655684646576456758699789986897788697979679797798977787789779877789668987898967976787857788577455845546654756756447335544642 +354634753557656533374648678444687569655956969996769966789989898987879877988898977786967669699798956799989655578754478464747754655473763536254 +443337337655744633555654764676747795855676569889769688676797778989797789797998798798889978868777779887568786556775665457474664545443564446652 +364346743547335577477774587548846999579996699787888987786778977889977878899798989987977878797866775867787968655865868484478785365573337755432 +542556334734464473765478464674775685565668799776668997876798779798898997789899888877686779778968769755968968868574744557874563447763777533545 +256344554675373545654658645686649875967967898786787669968988798777999877779897998997978877898868777686877685568546756588588765545436465446553 +624365433453565767555558766576545959756859959686668679966897778989799979789987779898878966778886689567876788676765558546574665353746757753255 +256426664447344554754757755844868779758597698877867698786879997989799789997987889878976896889988798598896695767867667568648666544375476345345 +544643765673467563774686464575775665577965869977778998976988988889978888898977889889898887986768875887796965855455755788568674366336776445363 +324333567433553676858684457565459857769979657896877979987797778898789999879979798899889869997868987986986866578676854546454764736747377363532 +222657565455746654654644745855546865699685797999669987668877998977997788889978877887699898769968798568658689766565867847646886566675374555523 +446445377353434563857648775645546968556788576977697689999679977788999888787997879777668878668667687996756968567558544667774686634657356347623 +234225355535445343855558644456569885567779799777766789988897979997979999898779777888868667796897866687688869799667648556667886737437556335246 +422246476636746563778686456886786979668589668986998986877866778977978978787787988986876766888777878878666975957585848577478436764375563775322 +454636737766445437468868586658456857986756957999766888668977897888997879998889779897786768976688959988888676985648488678886433764654564537443 +555467536743767365655746765786668769697897659866896978797767988779778879897877989868869989777897968768595886659776665587766643745466374665342 +665555454355665435566487847485777897889675899696687967768787878998879897877999799776767876766669769895885858957785777744458866564534565633323 +553565733564444744778886468667685955998689985569899787788697888789987897987779797797999898997669595998976596584787478848568635356545554373366 +653665655645667373374558877478647778897659668789798777786679996678779999898897789697786768668889979556596687776447685588874467344643734672643 +563443547735335673736467874465468989695989876675988699869698796888877789978897966897668999699888668875869665755546544476648666536373334463352 +335524446456355454436566478467748467877569776567796888868899867887696979999797687998998997698887996755679869974684786585778443777463637453565 +453262763434347465466775576648547487575559559798899767997688687699866678886677989789787668987855965595976678877444548677568363436337773773642 +246445653566664674745645464755556666679795997859996686767866889686769868868979866696768766687989555697765577968784486558546563643575563622644 +662254444563366346533786467478885745796778956688858686978967777978787866686888888777979996977766798557756578875454674874454665363664574536435 +532536353334533636774468445875758655955798788899969698876769879779788868676679796776679777786577958695756658645464877766785755547355434455262 +652422567664455363663867565574784564677656575775598897899789889697969866987998987697896677798679886877789888854457857845755745545663674463435 +542465547537536663475676457788645875597657988965957897766669687666767787966988879878778688959989985788598756455878876686873336776633437435566 +326322624437465635655348678567545767777695889759887589667788867867666898979966777766698867687887955875557747776575487654667436754544447444453 +236463543467777375445358667577466688467767889577556679687978977768789798989689976797667999866555597979868854486775684567563374376734746635632 +422466343657564657463376468674864876458786556689985669776697968868968669899888988787866796565556959678988775665864578486773475656444352342325 +345443665743336453677458687848577864587967858868795965788977886679877987679777667979658755966778986965757754745477887556656553475345636336252 +362355453544374763364777555756546785848588558955759659675765786667779776767899887867855667776567699966675455766665784785757563564544732333635 +522244654557546747456456454745757566444688666879657697966968686689768698989888798869987566955888575858674758557555766566463767754635465562244 +262454655634677774376655784444667555645777689799965875955566988888967997898677759695579697588957775969584855557488758455576544336544624345523 +625652554547354544767476374767844665656758767699667876855875688896599988575987778958886559655658859855444654475668476636364533356666642625636 +543342646454667334544736666668577647787545798789568798955597859798676578687678896865578588857968567656755556474678656345453367777354353352256 +652445352452433753336446776655468745776675477957977877579685756577968689665966677686695768858787655454865486587865776446767754666533333465354 +424644434542673667757745675474877755865866874969557899678657867588957996655859998798777686698795975765866565657668485544475343777664654425263 +255556623556634477475434467447668575485587856489798975879559799887955695595758795877879856666959967865675867664748675777767746533524523224455 +423262553424636633765345465647667586844774546544786767759786889888668576566897967978766678859888774644576885675776545636643635653364244543352 +554625626333653573446364367437847877655644565777589889868755568998799888756857958896867769795774766446868876467676477634677456763426566456335 +252332242626633665766546754473665785474567554754566996755889767666677898967566576857595555755765444486767887455553473356533334445423464324455 +332556423533266445377676434456444774845568446678766766659955758759899697898596678599566779975855758844445564646647475544637476355563645632632 +442533542564566737657753544374678477688767854557785547978977556659996695878595575996765778467565558656777676488456766457576545575625436522543 +335424642426636647573677365475553656846856578644755747875557797787675957697579568578789556465588847757877864587677374534667364625264346532534 +166255365665232664457374677745664476548786766687454656848686688888578878598858776876644788786658864584547854447763345633665337545425445266465 +434643424366664623675536374566465538478665548656854875588648587977676689675778864446685758564587686544684784363444554743567664426356455366525 +554663263533444422543477653476334753444784554886874447587684778778646586886744476856877884646887544888454446555773754575733755262322462266444 +145334554662453443376377366464755577688748864866568475768556567584645564544887867654454787577468885747876544343777353464663443342555455242634 +332564443523226265667776474477755365364875668665554877656487758885766554874874568885777487578486467585676535774546653675646446432522536624341 +323536642443422565323577557434564477366364885565855647667645744867885678864585676575486675545574767865556364636746664437764425643234563334553 +211122236445263532533435635663777747656458646758848565486685556557486487588485557776878644746877688647376646667773633364342624244644336633123 +211552366443234434665363667743734737463363757464585487574647565658756465668665576458865867748688447535476333756547644745432644445423544225141 +311125563426635255664535445447566336644434554546757487784457575586887885844454547577864676755564474335334443656736677436523325462355463263115 +135251366223553543234326433346576633447547363544488654747877875748566654455444457758666587884778433544765445654773643476633633565523355634542 +115432244453363636255233437635344437573334363445786785874644446855568767545558557557778745854853335774657635655734737534266523364336332124344 +321223412324342322224562565676743644354463365447677764585677644644585775657444645544854786643546643374767676344635736362655453455423366135431 +123523211343242536336536523367544733775654365354654654855548774757868455877878546545864455773457534655735637664653543622433336664452224543454 +422345231346244526643434344234744654474766654566475364638665584748874464667564678846584743746656556337754463644474335563524635334425345315123 +551223524253525652244566422554677545666454664344663367777333856575485665465658855875565747467366735763664674447343633365636536542255343233312 +332351355125226452555432645456263767464646557367373536537547653453654584757665674673743777336345366775767537657732665464662652636361325321443 +415455514152262533432552236342356574553346537556337567445534665675347755776334766346447356445645445564757733344266444445433333446614434541114 +221155451455232363265336263335253574376735343464764434474534335567765466543476377634347574374545344333375476463253523526545543655344555142312 +145231454554252663626423433343236626576676567777557354445753676336343646363544756476437457436434744356656577563626444664243462265454314424354 +322532554313423353326466652563326345536646367766376447434354475747355474333374575357374647353545465444456432534442452552323646525412351315344 +442225545331354264525335462454243265264735647557653663645533345434634336356756767364576444547366364553475545635564544432652636625154211152454 +542355214245244215332425353455254665343263674446647753577545345774463737664345563357756537477474463555262635363244224662623335313335334354544 +143155124531512354543362432224462266642223447554646477555455664576366667645737476463445575675754635766642553225233434642346211544535253342312 +434225243151335534544444245453623634623552526545357345646573563373474553644567344665536764443576336645223526346366263345522333235344222425554 +441121322341455542445423246326336432354265363554636445376647735775763466344637433544733647437333662433242662264333563566622115252524512445132 +212455143242123152123534246542464564624552525625436437443473674534474663465574457445743347353364656665543352244265664463243553141521423124254 +243153512411325245224431333243235465455552652362263646434566775567473777643365636665764753435462556444323566252255666622433511344323253234512 +413345131221432542313333346323656465362223343455662642436347767565546563776577464647755653644253424454226465346565624332551223442131315231112 +122133352234241515345331453655564356562456363424352422245242237477473455635547566623545466543264554256322555526346635224325222331321213434213 +132241241523115414345353112243265632346442544423466332325232553443524466433632663352446345623552424355466333322222323543241231144544532241431 +223124422143435351521312312344626324233462253666423666635646265555526352633452335625643364522443436365533655436556443212151332541514251342421 +434313423252123454451433211311425243353442664223622634352235536434326533463524423636325552325345623232324665225621551544542522122115412143111 diff --git a/2023/day17/test b/2023/day17/test new file mode 100644 index 0000000..f400d6e --- /dev/null +++ b/2023/day17/test @@ -0,0 +1,13 @@ +2413432311323 +3215453535623 +3255245654254 +3446585845452 +4546657867536 +1438598798454 +4457876987766 +3637877979653 +4654967986887 +4564679986453 +1224686865563 +2546548887735 +4322674655533 diff --git a/2023/day17/test2 b/2023/day17/test2 new file mode 100644 index 0000000..e456899 --- /dev/null +++ b/2023/day17/test2 @@ -0,0 +1,5 @@ +111111111111 +999999999991 +999999999991 +999999999991 +999999999991 diff --git a/2023/day18/day18.bqn b/2023/day18/day18.bqn new file mode 100644 index 0000000..e1e014a --- /dev/null +++ b/2023/day18/day18.bqn @@ -0,0 +1,13 @@ +⟨Split⟩←•Import"../bqn-libs/strings.bqn" +ds‿ls‿cs←<˘⍉>" "⊸Split¨•FLines"input" + +Area←{𝕊d‿l: + p←+`l×d⊏⟨0‿1,1‿0,0‿¯1,¯1‿0⟩ + a←|2÷˜-´+˝(⌽˘1⊸⌽)⊸×>p + ⌈a+1+(+´l)÷2 +} + +•Show Area⟨"RDLU"⊐∾ds,•ParseFloat¨ls⟩ + +Hex2Num←{16⊸×⊸+˜´⌽(∾"0a"+⟜↕¨10‿6)⊐𝕩} +•Show Area <˘⍉Hex2Num¨>5⊸(↓⋈↑)¨2⊸↓¨¯1⊸↓¨cs diff --git a/2023/day18/input b/2023/day18/input new file mode 100644 index 0000000..912367b --- /dev/null +++ b/2023/day18/input @@ -0,0 +1,690 @@ +R 5 (#58a492) +U 5 (#630fe3) +L 3 (#7087b2) +U 5 (#5f3ee1) +L 3 (#313202) +U 5 (#03d101) +L 10 (#7c5562) +U 4 (#404f43) +L 3 (#412982) +U 7 (#79c1c3) +L 6 (#12d412) +U 4 (#083683) +L 4 (#775942) +U 6 (#030323) +L 6 (#0c9622) +U 8 (#6cdc33) +L 6 (#03d682) +U 2 (#0e9c53) +L 5 (#493272) +U 2 (#03d643) +L 2 (#3305b2) +U 9 (#244203) +L 6 (#6c6a70) +U 4 (#341f73) +L 8 (#28bb00) +U 3 (#74c533) +R 4 (#3cfdb0) +U 3 (#3fd773) +R 3 (#52a350) +U 9 (#3c2073) +R 3 (#316de0) +U 6 (#3c4213) +R 6 (#0b7720) +U 5 (#3734e3) +R 2 (#929370) +U 7 (#372c31) +R 7 (#503d70) +U 7 (#27d791) +R 5 (#4cac80) +U 6 (#24f401) +R 3 (#4c95a0) +U 6 (#43bb01) +R 5 (#2ff3b2) +U 4 (#2fb481) +R 2 (#7c5eb2) +U 2 (#141aa1) +R 9 (#1259d2) +U 4 (#4e9531) +R 4 (#2ad362) +U 3 (#27d1b1) +R 9 (#149920) +U 3 (#0b0163) +R 4 (#65fc30) +U 4 (#5f54e3) +R 3 (#473e00) +U 4 (#0d0da3) +R 8 (#327d60) +U 3 (#187fc3) +L 8 (#66f6c0) +U 3 (#6981f3) +L 3 (#42b9d0) +U 4 (#6f32f3) +L 3 (#42b9d2) +U 7 (#16b7a3) +L 5 (#66f6c2) +D 7 (#0298a3) +L 8 (#29c4a0) +D 2 (#4f2473) +L 4 (#266862) +D 10 (#436fd1) +L 4 (#3482b2) +U 5 (#30fad3) +L 4 (#6ac712) +U 6 (#30fad1) +L 2 (#4ee392) +U 4 (#436fd3) +R 6 (#59ff52) +U 4 (#73a323) +L 4 (#20ba82) +U 8 (#5e5873) +L 4 (#578df2) +D 7 (#47e4f3) +L 2 (#6a4792) +D 8 (#2a00b3) +L 6 (#854930) +U 8 (#594903) +L 3 (#854932) +D 3 (#53db83) +L 2 (#19e4f0) +D 8 (#7c7af3) +L 5 (#5062a0) +U 4 (#2d3db3) +L 3 (#2fe132) +U 7 (#7059f3) +L 3 (#4cc5b2) +U 5 (#2a28a1) +R 3 (#6d89e2) +U 3 (#4398a1) +R 3 (#09b672) +U 11 (#4a32e1) +R 3 (#0d6002) +D 10 (#3ece11) +R 2 (#81a642) +D 4 (#096ba1) +R 5 (#31df02) +U 8 (#7ccf71) +R 5 (#6239a2) +U 7 (#6584c1) +R 6 (#6c1fe0) +U 4 (#1e1b01) +L 3 (#5fbee0) +U 2 (#5bfc41) +L 12 (#49e020) +U 4 (#48a6d1) +R 8 (#6814a2) +U 2 (#226a71) +R 7 (#6814a0) +U 4 (#436dc1) +R 5 (#2a2f92) +D 4 (#28eaf3) +R 9 (#25ab52) +D 3 (#22bd81) +R 2 (#83aa92) +D 3 (#22bd83) +L 5 (#159182) +D 2 (#0387c3) +L 6 (#3599c2) +D 4 (#4e6413) +R 5 (#48f562) +D 7 (#564e23) +R 6 (#46fbf2) +U 6 (#1e12d3) +R 4 (#0bd062) +U 5 (#1ffbb3) +R 3 (#5fbb82) +U 3 (#2d0803) +R 6 (#101d70) +U 8 (#11b903) +R 6 (#9af6c0) +D 6 (#11b901) +R 9 (#1b70a0) +U 6 (#479173) +R 7 (#15cc02) +D 2 (#0aa953) +R 9 (#858072) +D 3 (#3e60f3) +R 3 (#2b3862) +D 3 (#1f4af3) +R 7 (#40b892) +D 3 (#4f9151) +R 3 (#343292) +D 5 (#0ec741) +R 6 (#549592) +D 3 (#7e9611) +R 5 (#0215c2) +D 6 (#57bdb3) +R 3 (#6964c2) +D 6 (#38c523) +R 4 (#172242) +D 2 (#80a643) +R 8 (#21dee0) +D 2 (#1a89e3) +R 8 (#5ea820) +D 2 (#2baab3) +R 4 (#6d2bb0) +D 5 (#4bfb93) +L 10 (#1f13e0) +D 5 (#4fa9d3) +R 10 (#8c3f92) +D 5 (#014b33) +R 4 (#0786d2) +D 5 (#713641) +R 5 (#30eb92) +D 5 (#4591f3) +R 4 (#44fef2) +U 3 (#4591f1) +R 2 (#5636e2) +U 9 (#0cfbb1) +L 5 (#2ded32) +U 4 (#06c881) +L 3 (#5c8ab0) +U 7 (#5ba411) +R 8 (#362110) +U 5 (#023861) +R 3 (#92abc2) +D 6 (#423051) +R 5 (#3bdda2) +D 4 (#59ab71) +R 2 (#103492) +D 4 (#1bc8b1) +R 5 (#739582) +D 5 (#4591d1) +R 3 (#03a662) +U 12 (#0934f1) +R 4 (#2a4662) +D 5 (#2b07d1) +R 3 (#49fd52) +D 7 (#6b8561) +R 3 (#18d152) +D 3 (#573fa1) +L 3 (#57c6b2) +D 2 (#664a03) +L 10 (#190712) +D 4 (#34c2b3) +R 3 (#21f322) +D 3 (#25dc13) +R 3 (#4be7d2) +D 11 (#469a13) +L 4 (#437350) +D 8 (#1a9503) +R 4 (#456d20) +D 4 (#49d533) +R 4 (#88e072) +U 3 (#250333) +R 8 (#4be7d0) +U 3 (#16f773) +R 3 (#8c07b2) +U 5 (#53ad91) +R 3 (#54b682) +U 3 (#3b3621) +R 3 (#54b680) +U 3 (#5bb551) +R 5 (#05def2) +U 5 (#2241f1) +R 4 (#7a0222) +U 2 (#0e6b23) +R 3 (#4b2592) +U 5 (#936c13) +R 2 (#48da12) +U 7 (#727bb3) +L 5 (#072a52) +U 2 (#5c9f13) +L 3 (#4592b0) +U 4 (#3eb493) +L 3 (#9828d0) +U 7 (#3eb491) +L 4 (#108bb0) +U 2 (#88ff83) +L 3 (#043dd0) +U 2 (#88ff81) +L 5 (#3ccdf0) +U 3 (#29f651) +L 5 (#3b58f0) +U 9 (#1dfe43) +L 3 (#3707e0) +U 7 (#1dfe41) +L 5 (#335470) +U 2 (#29f653) +L 3 (#0d04b0) +U 3 (#045723) +R 2 (#3df010) +U 6 (#1eaaa3) +R 6 (#390270) +U 5 (#1e73d1) +R 7 (#672f40) +D 5 (#1e73d3) +R 6 (#83a5d0) +D 6 (#50dd53) +R 2 (#48d590) +D 3 (#5e3bf3) +R 5 (#4064a0) +D 11 (#08fa63) +L 5 (#3f2af0) +D 5 (#3f7793) +R 5 (#6d57f0) +U 2 (#135f33) +R 3 (#445122) +U 10 (#5285b3) +R 3 (#3dc912) +U 6 (#5285b1) +R 4 (#355342) +U 2 (#53a883) +R 6 (#4c4be0) +U 8 (#0303f3) +R 4 (#6b2190) +U 4 (#62c1b3) +R 7 (#3241e0) +D 4 (#057a23) +R 3 (#692490) +D 3 (#0eadb3) +R 8 (#526c20) +D 4 (#5721d3) +R 4 (#33dd40) +D 3 (#4a6513) +R 2 (#1c8770) +D 5 (#0db573) +L 7 (#2a30a2) +D 6 (#186ba3) +R 7 (#788af2) +D 7 (#186ba1) +R 5 (#001542) +D 5 (#3830c3) +R 3 (#32b480) +D 9 (#73a7a3) +R 5 (#5b0230) +D 5 (#562d53) +R 8 (#7e0d30) +D 3 (#059e93) +L 6 (#3284d0) +D 3 (#373711) +L 2 (#4de350) +D 7 (#6179f1) +L 2 (#57f0b0) +D 6 (#4cd0b1) +L 6 (#6a0260) +D 3 (#4cd0b3) +R 4 (#47ed90) +D 8 (#4e4a61) +R 4 (#029330) +D 3 (#56c261) +R 4 (#029332) +U 11 (#08aee1) +R 4 (#3f9e40) +D 3 (#124841) +R 5 (#6af022) +D 10 (#189be1) +R 2 (#4058d2) +D 3 (#6cd791) +R 8 (#2c43c2) +D 5 (#36a191) +R 6 (#2c43c0) +U 5 (#3fff21) +R 3 (#4058d0) +U 8 (#06ad11) +R 4 (#6af020) +D 3 (#487a71) +R 3 (#77aa00) +D 10 (#335cc1) +R 4 (#445960) +U 5 (#36c3f1) +R 3 (#5d13b0) +U 9 (#1f2761) +R 2 (#49e9e0) +U 3 (#7eb501) +R 4 (#578e30) +U 2 (#66dd31) +R 7 (#469130) +U 4 (#7f9823) +R 6 (#1e1e90) +U 5 (#127fa3) +R 5 (#14ac40) +D 6 (#130523) +R 3 (#07a7b0) +D 6 (#5f7be3) +R 8 (#4fff10) +D 6 (#1ad8f1) +R 2 (#32df80) +D 5 (#57a811) +R 7 (#084830) +D 4 (#127fa1) +R 10 (#1fa950) +D 6 (#70fee3) +R 5 (#04f0e2) +D 2 (#4052d3) +R 5 (#3f7cc2) +D 6 (#8a1e13) +R 4 (#3be9a2) +D 4 (#8a1e11) +R 7 (#49c392) +D 3 (#4052d1) +L 6 (#1b27c2) +D 3 (#4ae683) +L 7 (#109120) +D 3 (#634013) +L 5 (#19bbb0) +D 6 (#21de43) +L 4 (#15dd60) +D 5 (#4b3bc3) +L 4 (#691db2) +D 5 (#2f3753) +L 4 (#0ed142) +D 5 (#4d2823) +L 5 (#378122) +D 4 (#5b8733) +L 3 (#35bdc2) +U 6 (#2d1093) +L 6 (#54e720) +U 8 (#12e8d1) +L 4 (#8bb140) +U 4 (#12e8d3) +R 6 (#049570) +U 4 (#01c483) +L 6 (#15dd62) +U 6 (#5d8b23) +R 4 (#4e5940) +U 7 (#92cae1) +L 8 (#1a3a50) +U 3 (#0f4801) +L 6 (#326690) +U 4 (#01c2a1) +L 5 (#051e00) +D 7 (#61eb71) +L 7 (#459650) +D 2 (#9994f1) +L 3 (#471090) +D 8 (#0e7a31) +L 2 (#550610) +D 8 (#194501) +R 6 (#4b09c0) +D 4 (#8e6791) +R 6 (#4b09c2) +D 6 (#0bd3d1) +L 8 (#4527f0) +D 7 (#30e601) +L 6 (#14a132) +D 3 (#795df1) +L 7 (#60edd2) +D 4 (#056141) +L 4 (#41dbc2) +D 3 (#488971) +R 8 (#38fef0) +D 4 (#2cb3b1) +R 3 (#38fef2) +D 3 (#369c41) +L 6 (#3e5bd2) +D 4 (#19bcb3) +L 4 (#173b32) +D 4 (#0de2b3) +L 12 (#377942) +D 3 (#899b43) +L 3 (#3e99b2) +D 3 (#00b211) +L 3 (#4b5ad2) +D 5 (#1f0501) +L 8 (#4abb70) +D 4 (#7f6001) +L 5 (#4abb72) +D 3 (#20c3d1) +L 7 (#1d68a0) +D 9 (#471091) +L 4 (#4c8650) +D 3 (#25ab01) +L 10 (#35f0b0) +D 2 (#695131) +L 10 (#051850) +D 5 (#60dd93) +L 9 (#567cc0) +D 4 (#2e1ea3) +L 5 (#2ffa30) +D 5 (#22b051) +L 5 (#911430) +D 4 (#396521) +L 4 (#11ec70) +D 3 (#356891) +R 8 (#6e13c0) +D 4 (#4d3291) +R 3 (#277462) +D 5 (#57f681) +R 3 (#2f8dc0) +D 3 (#020321) +R 9 (#628620) +D 6 (#152051) +L 6 (#9213e2) +D 5 (#4ec671) +L 6 (#277460) +D 8 (#13c7b1) +L 5 (#1b3e00) +U 6 (#5e57f1) +L 4 (#4a7b20) +U 6 (#5e57f3) +L 4 (#437f90) +U 3 (#020143) +L 4 (#034420) +D 9 (#152c63) +L 3 (#2296b2) +D 2 (#771a63) +L 4 (#2296b0) +D 5 (#251a83) +R 10 (#034422) +D 5 (#6b7823) +L 10 (#19c8c0) +D 3 (#87f251) +L 5 (#53ad40) +U 7 (#534f61) +L 7 (#3ee5c0) +U 6 (#0c6d71) +L 4 (#2d8ba0) +D 6 (#29a941) +L 5 (#0a35f0) +U 6 (#2e83e1) +L 2 (#0a35f2) +U 11 (#45afc1) +L 3 (#2a9d30) +U 3 (#366473) +L 8 (#1e5c90) +U 6 (#73e5e3) +R 8 (#01d790) +U 4 (#3b0e81) +L 2 (#155640) +U 4 (#0f5351) +L 8 (#608130) +U 2 (#7af281) +L 3 (#332700) +U 4 (#05b091) +L 2 (#0faf80) +U 9 (#0091e1) +R 3 (#0b3210) +U 6 (#1ee971) +L 7 (#24f6d2) +U 4 (#519181) +R 7 (#5e5392) +U 3 (#3f1351) +R 3 (#022282) +U 4 (#857db1) +R 9 (#09a712) +U 4 (#3c1341) +R 4 (#025442) +D 8 (#69a253) +R 4 (#767622) +D 7 (#69a251) +R 6 (#4267a2) +D 4 (#320361) +R 5 (#3c5870) +U 7 (#267773) +R 8 (#4b2b40) +U 4 (#267771) +R 4 (#3f77e0) +U 8 (#32f0d1) +R 3 (#834a60) +U 5 (#2e98c1) +R 3 (#635c80) +D 6 (#1e7241) +R 4 (#36a5c0) +D 9 (#3c5311) +R 3 (#0907f0) +U 6 (#394291) +R 2 (#952cc0) +U 9 (#394293) +R 4 (#6b81a0) +D 5 (#592621) +R 4 (#59ea50) +U 8 (#4ef493) +R 7 (#3e3f10) +U 3 (#514253) +L 7 (#3e3f12) +U 9 (#23e503) +L 3 (#3eb3b0) +U 5 (#2e6433) +L 3 (#67c590) +D 5 (#77b101) +L 3 (#21c682) +D 11 (#754aa1) +L 3 (#21c680) +U 6 (#058471) +L 3 (#0ec8c0) +U 10 (#76bdd3) +L 6 (#07fb80) +U 7 (#386853) +R 8 (#55a690) +D 4 (#02f453) +R 8 (#2fb280) +U 4 (#4e8811) +R 5 (#7c2910) +U 3 (#639261) +L 4 (#471b80) +U 5 (#592623) +L 5 (#42bc00) +U 9 (#62c471) +L 7 (#6a8c32) +D 4 (#13d861) +L 4 (#94bb72) +D 6 (#13d863) +L 5 (#2e3ba2) +D 3 (#24ee61) +L 4 (#888a22) +D 9 (#366271) +L 4 (#1201a2) +D 6 (#238401) +L 2 (#246412) +D 7 (#1c23f1) +L 4 (#41d152) +D 3 (#6b5d81) +L 6 (#659b22) +U 3 (#6f1a03) +L 3 (#32db02) +U 4 (#186773) +L 3 (#0043e2) +U 7 (#295c31) +L 3 (#3bd622) +U 8 (#25f1c1) +L 3 (#52ea70) +D 5 (#302c41) +L 4 (#52ea72) +D 5 (#4cb371) +R 4 (#0062e2) +D 6 (#016ab1) +L 4 (#6511c2) +D 3 (#1fae91) +L 3 (#5ca060) +U 7 (#6daef1) +L 5 (#5ca062) +U 7 (#4904a1) +L 7 (#6cc852) +U 3 (#0e2451) +L 3 (#109dd2) +U 5 (#5b3813) +R 8 (#6cb452) +U 2 (#25f353) +R 2 (#6cb450) +U 5 (#4bd743) +L 5 (#609a42) +U 4 (#774593) +L 3 (#609a40) +D 2 (#6dd693) +L 7 (#138f72) +D 7 (#37ed73) +L 7 (#0ad4c2) +U 6 (#32a9f3) +L 8 (#859122) +U 4 (#143d73) +L 11 (#64f202) +U 2 (#18d5c3) +L 3 (#24cb12) +D 10 (#2e7523) +L 2 (#461b52) +D 2 (#5d9883) +L 3 (#6ae660) +D 5 (#1ac423) +R 11 (#2c9fe2) +D 3 (#2e1f33) +L 11 (#8686b2) +D 5 (#0bbc53) +R 3 (#232a62) +D 6 (#3f85d3) +R 3 (#787172) +D 9 (#20eda3) +R 3 (#404292) +D 3 (#3ab463) +R 3 (#22a182) +D 6 (#08f6e3) +L 2 (#776202) +D 2 (#4f3193) +L 5 (#549e22) +D 2 (#5cf443) +L 5 (#549e20) +D 5 (#4e5523) +R 6 (#6f6852) +D 3 (#00e383) +R 10 (#4f9722) +D 5 (#24e003) +R 8 (#138892) +D 3 (#782033) +R 10 (#02bf92) +D 4 (#0d0ad3) +L 8 (#5a8342) +D 2 (#244f11) +L 3 (#182ce0) +D 4 (#6c4331) +L 9 (#140250) +D 5 (#325901) +L 3 (#033dc0) +D 3 (#0c7231) +L 11 (#54fbe0) +D 4 (#094653) +L 4 (#76ee60) +D 11 (#094651) +L 3 (#00f3f0) +D 8 (#0c7233) +L 4 (#255340) +D 5 (#332281) +L 3 (#487c52) +D 3 (#70ada1) +L 10 (#508b12) +U 5 (#1e0d21) +L 6 (#825812) +U 7 (#2f5771) +L 7 (#063ef2) +U 5 (#34f4c1) +L 5 (#1fa462) +U 7 (#74be53) +L 3 (#3c4402) +U 4 (#837ef1) +L 10 (#4fb490) +U 2 (#573091) +L 2 (#408920) +U 5 (#3969e3) +L 3 (#77eff0) +U 5 (#3969e1) +L 7 (#2bec10) +U 4 (#7ac481) +R 8 (#0b7162) +U 2 (#0d6aa1) +R 5 (#502642) +U 3 (#5169c3) +R 12 (#674d02) +U 3 (#5169c1) +L 5 (#713512) +U 7 (#6bd621) +L 7 (#69b9f2) +U 3 (#749153) diff --git a/2023/day18/test b/2023/day18/test new file mode 100644 index 0000000..fc7612e --- /dev/null +++ b/2023/day18/test @@ -0,0 +1,14 @@ +R 6 (#70c710) +D 5 (#0dc571) +L 2 (#5713f0) +D 2 (#d2c081) +R 2 (#59c680) +D 2 (#411b91) +L 5 (#8ceee2) +U 2 (#caa173) +L 1 (#1b58a2) +U 2 (#caa171) +R 2 (#7807d2) +U 3 (#a77fa3) +L 2 (#015232) +U 2 (#7a21e3) diff --git a/2023/day19/day19.bqn b/2023/day19/day19.bqn new file mode 100644 index 0000000..ce1f295 --- /dev/null +++ b/2023/day19/day19.bqn @@ -0,0 +1,25 @@ +⟨Split⟩←•Import"../bqn-libs/strings.bqn" +ws‿ps←0‿1↓¨(+`⟨⟩⊸≡¨)⊸⊔•FLines"input" +p←•ParseFloat¨¨2⊸↓¨¨","⊸Split¨¯1⊸↓¨1⊸↓¨ps +ids‿progs←{":"⊸Split¨¨","⊸Split¨¯1⊸↓¨𝕩}⌾(1⊸⊑)<˘⍉>"{"⊸Split¨ws + +ParseProg←{𝕊t‿r: ⟨((⊑"<>"⊐1⊑t)⊑<‿>)⟜(•ParseFloat 2↓t)∘((⊑"xmas"⊐⊑⊑𝕩)⊸⊑),r⟩ ; 𝕩} +w←ParseProg¨¨progs +Apply←{n𝕊⟨⟨r⟩⟩: r ; f‿r←⊑𝕩 ⋄ (F 𝕨)⊑⟨𝕨𝕊(1↓𝕩),r⟩} +Sel←{𝕊"A": ⟨⟨"A"⟩⟩ ; 𝕊"R": ⟨⟨"R"⟩⟩ ;(⊑/𝕩⊸≡¨ids)⊑w} +Run←{𝕩(Apply⟜Sel¨)•_while_{¬∧´⊑¨∊⟜"AR"¨∾𝕩}(≠𝕩)⥊<"in"} +•Show +´∾('A'=∾Run p)/p + +ls‿ns←<˘⍉>(⊑⋈((•ParseFloat 2⊸↓)+('>'=1⊸⊑)))¨∾¯1⊸↓¨⊑¨¨progs +b←1⊸∾¨∧¨⊑⟜ns¨¨⊔"xmas"⊐ls +db←1⊸↓¨+`⁼¨∾⟜4001¨b + +c←0 +{ + c+↩(×´𝕩⊑¨db)×"A"≡⊑Run⟨𝕩⊑¨b⟩ + i←+´∧`0=𝕩 + (i↑¯1+≠¨b)˙⌾(i⊸↑) -⟜1⌾(i⊸⊑) 𝕩 +}•_while_{𝕩≢4⥊0}¯1+≠¨b +•Show c+("A"≡⊑Run⟨⊑¨b⟩)××´⊑¨db + + diff --git a/2023/day19/input b/2023/day19/input new file mode 100644 index 0000000..a4337aa --- /dev/null +++ b/2023/day19/input @@ -0,0 +1,714 @@ +cqh{m>1849:R,A} +zs{a>1909:ql,x<1340:kxd,m>3378:kt,kbt} +sp{a<665:R,s>1356:A,A} +kf{a>1202:rkv,x>2756:A,jnv} +kck{s<1337:pgl,R} +tnp{x<3631:mm,x<3771:qbx,a>1403:kjs,lxf} +vnj{a>2884:fm,a>2424:gg,mgv} +zxv{s<436:R,a>261:A,R} +pjx{s<1500:A,x>2599:R,vg} +pc{s<2563:A,qx} +fv{m<1688:A,A} +zb{m>1561:A,m<1418:A,m>1510:R,A} +ss{x<1970:A,x>2017:R,m<2125:R,A} +zm{x>1228:R,R} +mhp{m<2647:R,a<1979:A,x<288:A,A} +nr{x<884:R,a<1947:ptj,sg} +vh{m>1512:jv,x<994:lr,pgt} +stn{s<3016:qpr,hq} +ktb{x<2371:A,R} +np{s<976:bkp,x>3236:jbl,x<2743:nlp,slc} +ssj{x<2301:cms,lxg} +dnj{x>1620:A,m>1035:A,A} +xj{s>396:qqp,m<2541:hlb,qsl} +nmd{a<2160:A,x<1946:R,A} +cnj{x>320:A,m<382:R,A} +nm{x<1499:A,A} +xnc{a>3633:phz,x<883:bs,R} +fzj{a>1543:hk,m>910:jl,s<211:R,A} +bp{a<3520:hv,s>1344:scf,R} +hjc{a<2654:gz,x>767:vv,lhv} +qz{s<1329:R,ktb} +gzf{a>1805:vvs,s>270:xtc,lx} +qvm{a<475:A,A} +tp{a<1875:dm,x>985:srh,x<802:jnl,zsp} +zq{s>726:R,s<584:R,a<479:R,A} +xl{m<2614:A,a<3274:R,m<3274:R,A} +in{s>1957:tv,zls} +gx{a<2631:clr,A} +gzv{a>1445:cg,ht} +hht{x>1393:khn,a>2195:cjd,xf} +vf{x>3490:A,R} +bz{a<3150:A,x<1283:R,x>1338:R,R} +tcp{s>2645:R,A} +shf{a>3449:A,m<1344:A,x<2754:R,R} +rl{a>3463:R,s>2705:R,m>1573:xh,A} +nk{a<1561:nff,s<244:snv,dd} +zj{m<2629:R,R} +hqq{s<1218:A,a<2865:hsq,s>1590:R,zg} +dh{a<142:R,m<1706:pzf,lnb} +jzp{m<3335:A,ckp} +xz{a>3623:R,R} +rc{x<272:A,A} +mls{a>2255:A,m<3473:R,R} +gl{a>661:A,a<297:R,x>604:R,R} +fsb{m<346:A,m>520:R,a<1609:R,R} +ptl{x>904:rd,x>863:rsq,a>2356:qdm,fv} +vb{x<157:R,s<88:A,s>125:R,R} +dzj{m<1110:R,s<864:R,m<1359:A,R} +vgf{x>1377:A,R} +pk{a>3637:R,a<3421:R,m<649:A,R} +sbb{s<732:R,s>864:A,A} +lpp{m>1116:A,m>914:A,s>442:R,R} +br{m<3228:R,m>3557:A,s>1588:R,R} +zls{x>2211:np,s<727:nqg,x>1092:pl,hgk} +bkp{m>1445:ckq,x>2982:gbh,a<2618:fz,bq} +lv{a<1050:R,x>1991:A,R} +pgt{x<1139:nrr,a<2036:rs,qv} +rsq{x>890:A,a>2384:R,s<2459:A,A} +lx{m>1867:krg,m<856:fx,qp} +lk{x<3205:A,a>2637:gp,x>3571:sq,nj} +kkx{m<3287:R,R} +lpc{x<1258:gtp,m<2505:dl,s<1541:vrv,qm} +pfr{x>242:A,R} +xd{x>637:R,A} +dgb{m<2887:A,m<3160:R,s<507:tlj,cl} +sz{a>2480:R,x<1077:A,m>369:A,R} +zt{a<2249:R,s>1173:R,s>1055:rt,jvj} +mjc{s>417:A,nbk} +vdz{a<2968:A,x>618:A,a>3118:A,R} +hjd{x<3042:A,a<479:A,s<1182:A,R} +fk{x>170:tlm,R} +jt{a<1904:A,A} +cm{m>2053:A,A} +pbc{x>2064:A,s>1335:A,x<2057:A,R} +jtn{m<3595:R,a<2443:dt,R} +fdr{x<170:zrm,zss} +qx{m<1330:R,A} +zvl{x>1154:A,a>3086:A,R} +xtc{m<2363:jxs,m<3368:dgb,m>3777:pgq,phq} +rjk{x>2343:R,R} +hn{s<2971:bph,m<1962:fl,zz} +gg{x<756:R,s<2434:A,A} +tps{a>2539:A,A} +tj{x>3769:A,a<2474:A,a>3050:A,A} +jgb{x>1394:vth,x>1340:R,a<2466:xsk,A} +txq{m<3293:A,m<3736:A,R} +srv{s<1686:R,a>934:R,x<1159:A,R} +dg{x>3478:R,td} +bs{m<1413:R,m<2741:R,R} +hv{a>3019:A,m>230:R,a>2889:R,R} +qct{x<2515:ttz,x<2620:R,tbd} +bph{m>1692:R,a<1706:A,s>2455:bdt,bhf} +xnp{a<2896:A,a>3434:ck,s>567:kgk,A} +zk{a>1220:R,m>2395:A,R} +nvj{x<2973:kbn,s<1742:vzv,R} +ndk{s>1154:R,s>893:A,s>831:A,A} +hkv{x>1420:R,m>389:A,A} +xxn{s>3361:htx,a>2268:A,R} +rr{s>2668:R,A} +jl{m<1582:A,m<2069:R,s<244:R,A} +fd{a>407:R,R} +rs{x>1258:vhq,a>1007:txn,R} +xm{a>3738:R,s>2755:A,A} +vzv{a>984:A,A} +hk{x<1994:A,A} +mfm{m<1032:hkv,a<1959:cf,x>1399:R,jb} +smq{m<194:R,a<3282:R,R} +hjx{s<1617:R,a<3296:R,R} +jrq{m>1955:A,R} +vg{x>2575:R,R} +jj{s<780:R,R} +vkf{m<1743:R,s>3082:A,a>95:R,R} +msf{a<2067:rqq,A} +mvk{x>922:dj,R} +rms{m>2987:grm,x>223:qdp,a>473:ml,kr} +cb{m>3701:cht,m>3491:jtn,s<3267:klg,smk} +sd{a<2635:hvd,vj} +tmm{x<2059:R,A} +xxh{m>2915:R,xt} +xkg{s>1039:A,R} +zf{s>453:A,A} +njl{a<1805:R,mtf} +zkn{m<3512:thg,s>1158:R,a<2484:R,R} +nh{m>2463:A,s<1228:tg,x>1940:jlj,pmk} +png{x>1162:R,m<571:ltg,A} +lzs{s<580:A,s<663:R,A} +tqf{s<144:hnl,R} +dfs{s<228:A,s>246:A,m>567:R,A} +pbd{m>784:A,m<522:R,x<607:A,R} +snv{a>3181:A,s<83:R,zm} +kgk{s<662:A,a<3145:A,A} +lkn{x>3048:R,x<2937:A,R} +fc{s<1346:R,s<1666:nmd,ss} +nlp{m<1429:gq,a<2208:kp,rmx} +zp{m>405:A,s<2848:A,m<159:R,R} +vs{s<3820:R,m<3596:R,A} +pf{m>3426:A,x<759:A,m<3114:A,A} +xqq{a>2142:gn,m>2425:kkx,nvj} +nvg{a<2121:R,x<981:R,m<2849:A,A} +ckq{a>2161:dff,ktx} +mlb{a<955:A,x>425:R,a>1165:A,A} +dfm{a<678:R,m<1355:A,R} +xn{s>224:R,R} +hm{m<3125:A,R} +pzf{s>2736:A,A} +jtc{x<3066:stl,A} +kxd{s<3843:vjf,m>3231:vzd,x>546:cgf,A} +bdt{a>2680:R,R} +vm{s<2777:A,s>2916:R,m<1063:zp,jrq} +pq{a>2418:zrk,a<958:fkr,a>1923:fc,nh} +pvl{a<1684:jtm,dpr} +zrm{s<1037:R,m>3099:R,R} +mdx{x<2534:R,s>1409:R,s>1161:R,R} +ql{a>3241:R,x>2544:nqj,a>2628:A,ljk} +mc{a>2835:A,s>2670:A,A} +svp{s<1194:R,a>1519:R,m>2815:A,srv} +pql{m<3552:A,R} +lxf{x<3868:cqh,s>1665:qdj,x>3947:cm,shz} +brn{x<1064:dcz,m>1683:nk,gqn} +qdp{x>346:R,a<436:A,R} +xb{a>2683:R,m<2188:A,a>2438:A,R} +jz{s<2926:A,a<782:R,R} +ch{s>953:A,A} +ptj{x<933:A,m>636:R,a>1087:A,A} +clr{s>2740:R,s>2233:A,R} +vqk{s<1332:xl,x<2703:hjx,m>2989:R,A} +thg{m>3370:R,s>1286:R,m>3250:A,R} +bjl{a>1210:R,A} +vj{m<1940:R,R} +prj{x<200:R,s>994:A,R} +qdj{x<3938:R,x<3968:R,a>870:A,A} +cgf{a<906:R,s>3921:A,A} +hgk{x<476:vfd,sdh} +ngd{x<1982:A,a>620:A,m<2486:R,R} +vx{a>334:R,x<474:xq,a>158:A,A} +xf{s>1642:R,x<1323:A,R} +xzp{x>311:R,R} +njm{x>1880:R,a<3319:A,m>1329:R,A} +zz{a>2616:A,x>164:R,zk} +nd{x<2080:pbc,m<2049:rvb,a>3279:xc,R} +qg{a>1460:A,R} +vvs{s>476:xnp,s>302:mjc,x<338:pj,ttp} +nkj{m<2932:R,A} +bj{a<2598:R,s>2994:A,A} +xfs{s<1908:R,x<911:R,m<785:A,R} +kh{s<3211:A,s>3474:R,a>1156:htz,R} +jmk{m<889:A,a>3482:A,x<227:A,A} +vr{m<1392:R,s>1268:A,R} +nqb{m<336:A,A} +bsq{x>2108:sds,a>1846:nd,x<2074:tq,sxr} +qb{x>1971:dc,xxh} +pl{x<1466:lpc,gmk} +gxv{s<480:R,x>1082:A,A} +dxk{x<950:R,s>2625:R,x>967:R,A} +qrr{m>1685:hx,s<2653:R,jz} +tvk{a>1391:A,m>566:A,s>554:R,R} +sb{x<1881:A,a<939:fd,m<3131:R,lzs} +gvz{s<3188:R,s>3633:nqb,x<1763:jq,lq} +xr{m>1097:A,a>1258:A,x>535:A,R} +zsq{s<2601:pf,x<615:A,a>3233:xm,R} +pmv{m>796:R,a<610:prv,mdx} +gs{m>1007:A,s<462:R,R} +vv{s<1330:A,s<1743:gpn,s<1839:kdq,xfs} +qqp{a>2612:dds,m<2536:lxn,sb} +cdf{m>1757:R,s>2842:A,m>1647:A,R} +cg{m<1137:tps,a<2714:lkn,x<3032:zb,R} +dm{a>1076:qg,a<423:dh,qrr} +pbn{m>253:R,x<1107:R,s<203:R,A} +phq{a>755:pql,A} +czk{s>281:A,A} +prs{m>2533:bf,a>3389:R,s<1343:db,R} +td{x<3266:R,R} +jpc{x<3729:A,x>3830:R,s<2843:A,R} +stl{a>2315:A,s>1415:A,m<2946:R,R} +ds{m<3188:hsg,zkn} +nqg{x>1400:xj,x>711:brn,gzf} +cms{s>2105:A,hm} +pg{s<1430:kd,A} +zsp{a>2971:lgb,a>2468:mvk,a>2239:ptl,vm} +xdx{a>528:A,m<1527:kz,x<1628:A,A} +zh{m>1731:rr,m<1283:qf,m<1467:R,bj} +lfr{a>1128:xzp,R} +th{a>843:lfr,s>1463:hnb,s>1042:rth,sgm} +ms{m>2316:bgr,s<1139:jmk,x<240:R,A} +xlp{x<2479:kh,a>699:cpn,a>248:dvn,xjz} +sv{x<481:mlb,a>1000:xng,gl} +gbg{s<408:hqf,jj} +qt{x>194:R,R} +hp{a>966:A,x>1290:R,a<422:R,A} +xc{s<1538:R,m>2811:R,s>1711:A,R} +jnv{m<519:A,a<721:R,A} +pgl{x<2400:A,a<1466:R,R} +cpn{x>3417:R,tkm} +dz{m<948:mk,x<328:hn,lt} +xng{a>1222:R,R} +hx{s<2470:A,a>776:R,A} +srh{x<1202:pc,sjc} +lnb{x<932:A,m>2319:R,A} +xs{s<3530:R,a>402:A,A} +gpn{x>922:R,a>3449:A,x>839:A,R} +ttz{s>1449:R,s>1256:R,a>3372:A,R} +sdh{m<2098:hjc,ds} +ptg{m<1800:A,a>3375:R,s>450:A,A} +dt{s<3323:A,a<1278:R,A} +lxn{m>1281:R,s>536:gxn,s<468:R,vcp} +lhv{a<3237:vdz,a<3550:pbd,A} +krg{a<1012:R,x<405:jnk,A} +gp{a>3394:A,A} +rvb{a<3145:R,a<3639:A,R} +tjc{a>2154:A,a<995:zq,sbb} +vhq{s<3713:R,s<3811:A,R} +hvd{m<2486:R,a<2454:R,s>1188:A,A} +jvj{a>3098:R,m<2985:R,x>3093:A,A} +xq{s>3200:A,R} +kz{a>206:A,x<1602:A,A} +fkr{s>1178:rqp,m>1684:ngd,s>940:nc,dzj} +rv{s<3916:A,x>2062:R,x<1939:R,A} +kbn{x<2874:R,x<2921:R,m>1259:A,R} +rt{a>3166:R,m>3250:R,R} +nrr{m>747:bfc,x>1046:R,x>1023:mb,hxf} +js{s>2620:R,a>2007:A,lv} +lpb{m>1348:A,s<625:R,A} +gtp{m>1915:svp,xbg} +xp{a>1571:R,A} +dff{m>2559:A,m<2049:R,m>2292:zf,bd} +rmx{x<2553:qz,x>2678:vqk,pjx} +vfd{a>1568:spp,m<1767:th,s<1319:fdr,blm} +nqj{s>3777:A,s>3673:A,R} +kd{m<2651:A,A} +sgm{a>342:qt,s<902:bfl,s>974:A,A} +sxr{m>2172:R,hsv} +sq{s>2682:R,m>3803:R,x<3716:R,R} +tf{m<2857:R,x>2020:A,A} +jv{a>2378:dq,sx} +hsq{s<1508:A,x>1701:R,R} +nj{m<3687:R,a>1009:A,x<3441:A,A} +zzx{x<1621:A,x>1774:A,s>175:R,A} +rh{x>313:R,m>1071:R,A} +sk{x<1284:A,x>1314:R,a<3785:R,R} +mn{s>2659:A,A} +ttp{s>165:mz,A} +jml{m>1947:R,a>2659:A,A} +cch{x<109:gd,x<196:R,R} +dds{s<547:ptg,A} +hnl{s>85:A,a<3120:R,a<3626:R,A} +gck{m<1499:R,A} +phz{x>926:R,s>383:R,a<3874:A,A} +vsf{m>1197:R,R} +bc{m<820:A,R} +thc{x>3440:R,A} +trh{a<3765:xz,x<2813:R,A} +grm{x<241:R,R} +ljk{x<1132:R,A} +gpr{s<404:A,s<594:xb,R} +vjf{s>3678:R,R} +rrd{x>1386:A,a>1016:R,a>571:R,R} +kbt{x>2381:bjl,s<3792:A,x<1720:A,rv} +qbs{x<1104:sz,x>1112:fsb,s<312:pbn,bg} +htz{x>1939:R,a>1496:A,A} +ft{x>1366:dnz,x<710:dz,s<3187:tp,vh} +qpr{x<1446:nbc,s<2323:ssj,tc} +zfp{a>1044:R,s<2040:R,m>2904:R,R} +jn{m>657:A,s>1507:R,R} +hhl{s<1408:A,a>451:R,R} +tkm{x>2963:A,a<1341:R,A} +lvf{x>561:kc,m>3525:A,xp} +stf{m>1450:A,s>3054:A,R} +mft{x<1216:A,m<3127:R,m<3477:R,A} +xgn{a<2241:R,a>2481:A,A} +jbl{s>1406:tnp,cj} +mm{s<1762:vf,a>1580:R,m<2202:R,nkj} +jb{x<1383:A,x<1390:R,R} +lxg{s>2147:R,m>3127:qk,a>2612:R,zfp} +rp{s>1327:R,fj} +jq{x<1598:R,a>2707:A,s>3379:R,A} +lp{x<1707:nm,m>2005:R,m<1558:njm,tcp} +xjz{x>2990:vkf,mbm} +bf{m<3420:A,R} +gk{a<3118:zzx,R} +fxd{x<2267:vsf,a<2779:A,fh} +cl{a<1085:R,A} +vzd{s<3937:R,R} +cgk{a<2582:A,jpc} +zr{x>3587:tj,m>1836:kx,xkg} +nff{m<2643:R,s<396:mft,s<566:txq,mq} +nbg{x<2377:R,m<136:R,R} +kr{m<2449:R,x<81:A,R} +xsk{x<1296:A,m<3176:A,A} +sds{a>1522:R,x>2154:qbr,vr} +jxs{s<453:A,m>1053:R,a>1121:tvk,A} +bfc{x<1068:R,a>2463:A,R} +pmk{m>1124:A,A} +cf{x<1390:R,m>1278:R,R} +klg{m<3284:pz,A} +mgv{a<2150:R,x<760:R,a<2269:A,A} +fhg{m>762:R,x>2348:R,a<3237:R,A} +qp{m<1438:rh,pfr} +zhm{m>292:R,m>121:kq,a>1833:R,A} +rd{m<1296:A,x<940:A,x>969:R,A} +tq{m<1442:R,m<3017:A,m<3652:R,tmm} +vcp{x<1921:R,s>512:R,s<495:R,R} +pnq{x>3852:A,m>1774:A,x>3724:R,A} +bhf{x>218:A,s<2239:R,A} +bls{m>1957:A,s<2577:A,x<770:cdf,A} +mtf{a>3150:R,a>2528:R,A} +rkv{m>778:R,A} +dpr{m>552:R,m>259:A,a>2918:A,A} +smk{x>1577:R,m>3242:gnn,s>3395:R,R} +vth{m<3431:A,R} +dcz{a<2168:czk,a>3385:xnc,x>889:gpr,nmv} +pqs{x<2970:bnd,s<1347:zt,jtc} +hlb{x>1866:fzj,a>1466:gk,xdx} +prv{x<2429:A,x<2574:R,R} +rq{m<3913:A,a<1087:R,R} +mq{s>627:R,x>1212:A,a>538:A,A} +kq{m>209:R,m<167:A,A} +bfl{s>810:A,R} +qdm{m>1189:A,R} +tbd{s<1325:A,R} +lc{a<1274:R,A} +lt{a>1572:zh,m>1604:sv,a>984:vl,vx} +nt{m<3894:R,A} +vxd{s>3177:A,A} +dnz{a<2029:xlp,x<2628:snc,a>3341:qcl,vms} +vrf{x<2829:A,R} +crd{x>3557:pnq,thc} +fz{x>2529:kf,m<769:vn,xtd} +pdx{a<2185:zgt,hqq} +cp{m>2598:A,A} +fl{x>133:A,m<1491:rm,s>3519:R,A} +pz{x>2347:R,m<3192:R,A} +tg{m>1371:A,m<663:R,R} +ggv{s<527:shf,s<710:lpb,R} +fj{s<1287:R,s<1302:A,s<1312:R,A} +kt{x<2253:R,a>1220:vs,R} +ht{a<781:hjd,xv} +xh{s<2309:R,a<3410:R,R} +qcl{x<3100:trh,a>3564:vxd,rl} +nbk{x>377:A,a<2893:R,s<365:A,A} +bnd{x>2843:A,x<2800:R,a>1769:kbb,cp} +hnb{m<805:rc,x>232:gt,A} +rm{m>1185:A,A} +fb{a<2398:A,s<3218:A,m>2850:A,R} +sx{x<1030:A,a<1219:A,x>1218:R,R} +bd{a>2890:A,a<2425:R,x>3323:A,A} +gmk{x<1864:pdx,x<2051:pq,bsq} +jlj{x<1982:R,s<1665:R,m<1026:A,A} +srb{a>2656:A,m>3514:R,a>1728:A,R} +cz{x>3027:A,A} +dvn{x<3341:cz,s<3231:A,xs} +hxf{s>3637:A,m<448:R,R} +qv{x>1236:A,a<3189:R,pk} +kx{m>3217:R,R} +gz{x>822:R,a<1663:dfm,xd} +gn{a<3047:R,R} +gt{m<1156:R,m>1548:R,a>430:A,R} +vzr{m<3451:tf,a<1010:A,x>2004:A,R} +qf{a<2801:A,R} +hsg{m<2529:hrv,x<807:R,nvg} +cht{x>2198:nt,R} +bq{x<2523:gm,m<700:gbg,m<1162:gs,ggv} +prc{m>1205:A,x<3047:vrf,m<630:R,mc} +gd{s>2846:R,m>424:R,A} +cjd{m<3360:R,m>3770:R,A} +qbx{m<2515:drv,x>3685:mls,s<1770:A,R} +vn{m<337:nbg,m>551:dcc,A} +ck{m<1618:A,m<2476:R,m>3165:A,R} +db{a>2890:A,s<1308:A,s<1323:A,R} +snc{x>1978:fxd,m>952:lp,gvz} +qsl{x<1835:jzp,a<2179:vzr,tqf} +rqq{m<2027:R,x<1384:A,s>1764:A,R} +gxn{s>635:A,a>1262:R,x<1802:A,R} +cj{s<1125:zr,s<1257:crd,a<2537:rp,prs} +lq{x>1836:R,a>3311:A,a<2551:A,A} +qzs{x<1384:A,x<1417:A,A} +spp{a>2881:ms,a>2360:sd,mhp} +ld{m>1052:lbq,a>1810:R,hp} +qk{s<2064:R,s>2098:A,x>3155:A,A} +hqf{x<2810:R,x>2881:R,a<3335:R,A} +txn{m<515:R,s<3547:A,R} +shz{m<2662:A,m<3548:R,R} +nbc{a>2381:zsq,lvf} +xtd{x<2377:lpp,R} +zg{s<1442:R,A} +lxq{a>1722:R,s<1419:sp,A} +ktx{m<2642:A,x<3186:R,s<439:lc,R} +jnk{x>241:R,x<86:A,A} +dl{s<1389:mj,m>1577:msf,x>1351:mfm,zqh} +kp{x<2526:kck,pg} +vrv{s<1238:csj,m>3267:srb,lxq} +tlm{m>2678:R,m<2159:A,A} +hrv{s<1266:R,s>1543:R,R} +fmk{s>595:R,a>2979:A,m<3119:R,R} +zgt{m>2441:ndk,a<782:hhl,a>1406:R,dnj} +gm{m<489:smq,m<988:fhg,rjk} +blm{a>858:br,s>1664:rms,fk} +dcc{a>1715:A,s>543:A,m<624:R,A} +lr{s>3670:nr,xxn} +mj{s>1107:A,s<971:qzs,A} +mz{m>2390:R,x<556:R,R} +mb{a>2399:A,A} +kjs{m>1519:zj,R} +sg{a<3129:A,m<764:R,m<1260:R,A} +dc{x>3285:A,fb} +zqh{x>1305:A,jt} +kbb{x>2822:A,A} +rqp{s<1487:R,m>2233:A,A} +vms{x<3479:prc,m>1779:gx,cgk} +kdq{x>936:A,A} +pgq{a>726:rq,s<564:zxv,s>670:pfq,A} +dq{a>3308:R,x<1086:R,a<2892:jml,A} +ltg{m>283:R,a>1543:R,R} +rth{m<769:qvm,x>198:A,x>107:A,sj} +bg{a<2443:A,s<530:R,m>366:A,R} +kc{x<1050:A,R} +dd{x>1210:R,a>2724:A,R} +fh{s>2664:A,m<1476:A,a>3397:A,R} +lgb{x>890:dxk,A} +jnl{m>1532:bls,vnj} +gnn{s<3393:A,s>3450:A,x<643:A,A} +jtm{m>383:R,x>3159:R,R} +hq{s>3559:zs,m<3117:qb,cb} +nmv{a<2742:blb,s<338:R,m>2532:fmk,R} +hsv{m<1102:R,a<641:A,a>1237:R,A} +csj{a>2052:vgf,x<1327:ch,rrd} +drv{s<1770:R,s<1861:R,s>1895:R,R} +bgr{s<1472:R,m>3076:A,A} +lbq{m<1314:R,x>1323:R,R} +vl{m>1211:stf,xr} +xv{m>760:A,R} +fm{x<755:A,R} +kjv{x>215:R,x>187:R,A} +pfq{m<3899:A,s>695:A,A} +gbh{s>420:tjc,m>867:dg,x>3474:zhm,pvl} +ml{m<2527:A,m>2768:R,a>618:R,A} +htx{a<1562:A,x<845:R,A} +ckp{x>1638:R,s<152:A,R} +tv{m>2668:stn,ft} +pj{s>146:xn,vb} +slc{s>1536:xqq,m>1881:pqs,gzv} +zrk{a>3081:gck,A} +xgb{x>1096:A,gxv} +qbr{s<1438:A,m>1436:R,m<750:A,R} +gq{a<1449:pmv,a<2656:cgs,m>522:qct,bp} +mk{x>293:mn,cch} +gqn{x>1195:ld,x>1126:png,m<679:qbs,xgb} +sj{a<314:A,a>578:R,x<55:A,R} +fx{s>163:dfs,a>898:A,cnj} +xbg{a<1791:bc,x>1166:R,x<1141:jn,zvl} +sjc{a<2847:R,a>3361:sk,m>931:R,bz} +qm{s>1778:jgb,hht} +xt{s<3374:A,m>2783:R,x<678:R,R} +tlj{m<3283:R,s<406:A,R} +nc{a>357:R,a>141:R,s<1071:R,A} +tc{x<2724:js,m<3426:njl,lk} +zss{x>278:A,a<663:kjv,x>242:A,prj} +blb{a>2363:R,s>460:R,A} +scf{m<219:R,x>2548:A,m>324:A,A} +dj{x<951:A,m<1084:A,x>963:A,R} +khn{m>3298:A,A} +mbm{s>3117:A,a<153:A,A} +cgs{x<2412:qh,xgn} +qh{x<2315:R,x>2377:A,A} + +{x=1509,m=1127,a=482,s=1803} +{x=24,m=718,a=2879,s=978} +{x=211,m=1442,a=507,s=128} +{x=47,m=2266,a=1663,s=357} +{x=461,m=5,a=718,s=1969} +{x=184,m=414,a=1810,s=2958} +{x=754,m=521,a=41,s=2007} +{x=296,m=1438,a=18,s=1013} +{x=374,m=2888,a=234,s=797} +{x=1540,m=1164,a=3,s=26} +{x=1586,m=2318,a=1125,s=901} +{x=2243,m=1165,a=300,s=166} +{x=413,m=230,a=1284,s=101} +{x=816,m=1394,a=978,s=1190} +{x=813,m=2503,a=1809,s=640} +{x=439,m=1792,a=1540,s=287} +{x=237,m=2782,a=9,s=668} +{x=2142,m=1746,a=407,s=1855} +{x=1562,m=767,a=808,s=286} +{x=1410,m=268,a=163,s=971} +{x=255,m=548,a=1947,s=216} +{x=399,m=2458,a=1068,s=124} +{x=288,m=1284,a=174,s=597} +{x=933,m=697,a=310,s=173} +{x=1676,m=207,a=1084,s=80} +{x=1169,m=2438,a=226,s=919} +{x=387,m=1275,a=839,s=465} +{x=2757,m=100,a=2508,s=742} +{x=762,m=1067,a=372,s=253} +{x=495,m=423,a=443,s=838} +{x=239,m=3028,a=214,s=2055} +{x=150,m=1025,a=97,s=3859} +{x=1072,m=503,a=517,s=1973} +{x=127,m=580,a=218,s=852} +{x=1740,m=904,a=409,s=1214} +{x=164,m=2719,a=1951,s=339} +{x=334,m=45,a=1729,s=832} +{x=37,m=1776,a=118,s=1360} +{x=1223,m=486,a=168,s=680} +{x=1593,m=266,a=51,s=112} +{x=432,m=787,a=199,s=669} +{x=2,m=1196,a=500,s=823} +{x=386,m=567,a=728,s=459} +{x=2343,m=3452,a=199,s=749} +{x=604,m=272,a=529,s=3335} +{x=154,m=253,a=668,s=384} +{x=224,m=98,a=1345,s=948} +{x=145,m=1309,a=148,s=984} +{x=1872,m=1653,a=1716,s=692} +{x=3015,m=119,a=101,s=890} +{x=807,m=436,a=851,s=274} +{x=593,m=1025,a=431,s=1243} +{x=1607,m=275,a=1824,s=117} +{x=398,m=567,a=914,s=440} +{x=1606,m=33,a=46,s=402} +{x=1183,m=1444,a=645,s=276} +{x=125,m=248,a=86,s=2534} +{x=3374,m=71,a=37,s=884} +{x=810,m=255,a=819,s=1449} +{x=1592,m=2102,a=1264,s=2117} +{x=1998,m=1917,a=912,s=438} +{x=1057,m=2932,a=939,s=843} +{x=837,m=2185,a=1746,s=680} +{x=211,m=2513,a=596,s=1437} +{x=2265,m=35,a=778,s=3172} +{x=2574,m=1963,a=73,s=836} +{x=893,m=1770,a=714,s=325} +{x=387,m=147,a=81,s=314} +{x=2109,m=146,a=1650,s=1625} +{x=2318,m=800,a=1790,s=358} +{x=447,m=1497,a=1356,s=2604} +{x=1022,m=1118,a=590,s=1464} +{x=64,m=3472,a=3359,s=2289} +{x=697,m=735,a=2306,s=603} +{x=828,m=23,a=1165,s=1411} +{x=3615,m=463,a=328,s=969} +{x=3499,m=336,a=600,s=680} +{x=32,m=39,a=602,s=1528} +{x=21,m=2171,a=76,s=3824} +{x=1252,m=329,a=1989,s=1352} +{x=564,m=359,a=161,s=2211} +{x=2280,m=1449,a=914,s=304} +{x=821,m=1014,a=2535,s=700} +{x=1507,m=2523,a=102,s=406} +{x=1138,m=36,a=1011,s=413} +{x=333,m=92,a=424,s=1182} +{x=399,m=995,a=445,s=410} +{x=1131,m=78,a=777,s=1441} +{x=406,m=1665,a=2355,s=18} +{x=791,m=115,a=299,s=1460} +{x=721,m=3651,a=242,s=408} +{x=152,m=228,a=31,s=867} +{x=311,m=560,a=127,s=1385} +{x=414,m=1281,a=259,s=429} +{x=53,m=973,a=2397,s=438} +{x=388,m=106,a=1159,s=1170} +{x=272,m=1267,a=2995,s=203} +{x=1165,m=629,a=1135,s=102} +{x=739,m=2903,a=1458,s=56} +{x=484,m=2172,a=2249,s=117} +{x=1325,m=741,a=2516,s=543} +{x=458,m=57,a=606,s=331} +{x=1447,m=792,a=591,s=724} +{x=1219,m=1192,a=173,s=602} +{x=667,m=80,a=764,s=2201} +{x=2729,m=1465,a=447,s=1598} +{x=594,m=8,a=503,s=569} +{x=846,m=2072,a=57,s=1122} +{x=120,m=1390,a=100,s=27} +{x=111,m=2718,a=158,s=1095} +{x=26,m=741,a=82,s=194} +{x=268,m=64,a=678,s=2474} +{x=404,m=207,a=960,s=215} +{x=3014,m=297,a=853,s=145} +{x=1224,m=274,a=179,s=589} +{x=160,m=1842,a=2384,s=69} +{x=508,m=237,a=141,s=71} +{x=3797,m=2478,a=1134,s=70} +{x=28,m=3289,a=1711,s=607} +{x=1272,m=521,a=1221,s=228} +{x=264,m=2596,a=3321,s=1066} +{x=873,m=637,a=410,s=2601} +{x=2133,m=440,a=442,s=432} +{x=1553,m=108,a=1675,s=118} +{x=2374,m=236,a=2233,s=497} +{x=2378,m=197,a=178,s=1966} +{x=601,m=1589,a=2241,s=2551} +{x=1294,m=2663,a=489,s=1752} +{x=155,m=2493,a=83,s=208} +{x=317,m=1440,a=1396,s=514} +{x=1654,m=1919,a=26,s=1232} +{x=1430,m=539,a=1089,s=1259} +{x=642,m=1163,a=476,s=631} +{x=1379,m=5,a=48,s=642} +{x=2749,m=2562,a=2822,s=1541} +{x=1536,m=225,a=367,s=739} +{x=150,m=173,a=395,s=110} +{x=467,m=1035,a=255,s=1451} +{x=44,m=1085,a=843,s=729} +{x=48,m=579,a=70,s=852} +{x=50,m=84,a=4,s=1250} +{x=3128,m=1013,a=3367,s=479} +{x=345,m=1286,a=695,s=3472} +{x=57,m=1376,a=1786,s=815} +{x=1998,m=654,a=179,s=376} +{x=1469,m=1252,a=677,s=1839} +{x=1157,m=31,a=625,s=2022} +{x=1263,m=2576,a=538,s=909} +{x=168,m=462,a=2268,s=1809} +{x=1206,m=1152,a=2370,s=1918} +{x=131,m=207,a=2124,s=956} +{x=1826,m=39,a=144,s=651} +{x=503,m=65,a=142,s=1246} +{x=101,m=626,a=1261,s=414} +{x=2453,m=333,a=968,s=198} +{x=280,m=466,a=1607,s=773} +{x=3177,m=531,a=579,s=76} +{x=838,m=386,a=144,s=607} +{x=1516,m=574,a=329,s=214} +{x=404,m=2017,a=2317,s=654} +{x=2698,m=2050,a=10,s=1956} +{x=1004,m=3340,a=2190,s=768} +{x=777,m=2294,a=845,s=1058} +{x=402,m=796,a=820,s=3105} +{x=568,m=169,a=40,s=133} +{x=454,m=1910,a=496,s=8} +{x=27,m=123,a=2739,s=30} +{x=2090,m=795,a=167,s=1506} +{x=1854,m=74,a=308,s=252} +{x=990,m=1048,a=2142,s=1317} +{x=36,m=196,a=3199,s=212} +{x=394,m=2379,a=535,s=2703} +{x=1664,m=8,a=413,s=337} +{x=192,m=2158,a=1213,s=667} +{x=1597,m=865,a=595,s=55} +{x=1231,m=947,a=339,s=306} +{x=347,m=2771,a=2154,s=993} +{x=1186,m=126,a=552,s=407} +{x=1747,m=1326,a=1974,s=270} +{x=1880,m=1319,a=658,s=27} +{x=1124,m=160,a=350,s=3227} +{x=19,m=1712,a=1866,s=757} +{x=739,m=944,a=890,s=2785} +{x=260,m=1279,a=454,s=95} +{x=90,m=635,a=1189,s=874} +{x=3102,m=39,a=559,s=497} +{x=227,m=1174,a=2384,s=2043} +{x=908,m=957,a=554,s=771} +{x=1176,m=15,a=675,s=2289} +{x=280,m=491,a=1021,s=1174} +{x=2277,m=316,a=1675,s=1308} +{x=56,m=1303,a=1558,s=259} +{x=32,m=125,a=209,s=405} +{x=284,m=2162,a=2769,s=403} +{x=1018,m=1472,a=28,s=134} +{x=2775,m=542,a=127,s=749} +{x=6,m=356,a=3287,s=277} +{x=1993,m=66,a=1202,s=1851} +{x=352,m=1071,a=33,s=175} +{x=807,m=622,a=3419,s=2345} diff --git a/2023/day19/test b/2023/day19/test new file mode 100644 index 0000000..e5b5d64 --- /dev/null +++ b/2023/day19/test @@ -0,0 +1,17 @@ +px{a<2006:qkq,m>2090:A,rfg} +pv{a>1716:R,A} +lnx{m>1548:A,A} +rfg{s<537:gd,x>2440:R,A} +qs{s>3448:A,lnx} +qkq{x<1416:A,crn} +crn{x>2662:A,R} +in{s<1351:px,qqz} +qqz{s>2770:qs,m<1801:hdj,R} +gd{a>3333:R,R} +hdj{m>838:A,pv} + +{x=787,m=2655,a=1222,s=2876} +{x=1679,m=44,a=2067,s=496} +{x=2036,m=264,a=79,s=2244} +{x=2461,m=1339,a=466,s=291} +{x=2127,m=1623,a=2188,s=1013} diff --git a/2023/day21/day21.bqn b/2023/day21/day21.bqn new file mode 100644 index 0000000..1648880 --- /dev/null +++ b/2023/day21/day21.bqn @@ -0,0 +1,21 @@ +m‿n←≢input←>•FLines"input" +s←m(⌊∘÷˜∾|)/⥊input='S' +grid←1˙⌾(s⊸⊑)input='.' +dirs←∾⟜-⋈⟜⌽↕2 + +•Show ≠{⍷(⊑⟜grid¨)⊸/⥊𝕩+⌜dirs}⍟64⟨s⟩ + +≠ps←{(m‿n⊸|⊑grid˙)¨⊸/⍷⥊𝕩+⌜dirs}⍟((⌊m÷2)+m×↕3)⟨s⟩ + +# Lagrange polynomial interpolation, arbitrary nodes and values +Lagrange←{x𝕊y: + d←≠x + w←÷×˝1˙¨⌾((∾˜¨↕d)⊸⊑)-⌜˜x + {+´y×w××´¨𝕩⊸-¨/⟜x¨¬⌽⌽⟜(d↑1)¨1+↕d} +} +f←(↕≠ps) Lagrange ≠¨ps +•Show F (26501365-65)÷m + +# Lagrange polynomial interpolation with nodes at 0‿1‿2 and values at 𝕩 +LagrangeCoeffs←{⌽+˝[[1,-3,2],[1,-2,0],[1,-1,0]]×[0.5,¯1,0.5]×𝕩} +•Show (LagrangeCoeffs ≠¨ps)(+´×⟜(⋆⟜↕⟜3))(26501365-65)÷m diff --git a/2023/day21/input b/2023/day21/input new file mode 100644 index 0000000..fcb05f3 --- /dev/null +++ b/2023/day21/input @@ -0,0 +1,131 @@ +................................................................................................................................... +...............#.....#...#......#...............#.....#...#...........#..#....##.#..#.........#..............#...........#..#...... +........#.#..........#.##..#.......#.#.#.......#..#........................#............#...#....#.............#....#.........#.... +.....#......#...................#...#......#.............#..............#.#....#.......#...#...#......##.#.#...........#..###...... +.........#............#...##.........#.#....#........#..........................#....#.#......#......#....#....#............#.#.... +...#.....#................#.#..........#..........#.#.#...........#.......#..............#......#.......##.....#.........##.#...... +..........#....................#............#........#............#............#....#..........#.........................#......... +...#.#...................#.#......##..#........#.##.....................................#........##............#.##....#........... +.........................................#...#.......................#...........................#..#........#....##.#...##........ +...#.......#...#.......#..#.#.......#.......#........................#........#....#....#...#.#.....#...#...........#........##.#.. +..#....#.............#........................#..##.............................#..#.................#....##.......#.......#....#.. +.........................#.......#...#...........#..................#..............#.#....#.....#...#........#...........#......#.. +............#..................#...#.......#...#.#.........#.......................#............#.......#....#.....#..........#.... +..........#........#......##.#.....#...#................#....##...........#................#.......#........#......#...#....#..#... +.................#.......................##...............#.....#.....#............#.................#..........#......#.....#..... +.....#.###................#..........#...................#.##........#...............#....#...............#..#................#.#.. +.#..#..........#..................#...................................#......#.................#.#..................#.............. +..........#..#...#.#...........#.#..#....................#....................#..........#.#.#.....#....#...........#........#..... +.#.............#.......##.##.........#.#..............#.......#.............#.........................................#....#.#..... +.............#.....#.#........#..........#..............#.....................#..................#..#........#.#.....#...#......... +....#.......#..............#.....#.......#...........#.............#.##..................#.................#..#......#.#...#....#.. +..#....#.....#......................#.....................#..........#..##........#.........#.............#......#................. +...##.......#.......#...#..##..................#.........##....................#.#...................................#..#.......... +........#.........#..##........................#......#........#...#...#........#......................................#.......#... +....#..#....#.#.#.................#.............#.........#.............#....#................#..#.....#...##.....#.........##..... +...................#................#...............................#.................#...........#.....##.#....................... +.....#........#........#........................#..............#.............................................#........#...#........ +.......#............#.................................#.......#........#...#..............................#.....#.#.#......#.#.#... +.....................###....#.#................#.#....#........##.#..#.......#...#............................#..........###....#.. +.#.....##.#......#.#........#.#..............#...............#.........#.........#.....#...........#.............................#. +...#.....#...........#.#......#................#..#....#...#..#......#................#....#.............#.#....#.................. +..#....##......#.............#...............#.................................#.......#................#...........#.#............ +..........#....#....##.......................#.#.#..................#.....#..............#................#..................#..... +.....#......................................#....#......................#..........#........#........................#............. +..#.#..#........#...#..#...................#............#..#...#......#.#...#............#.....#...............#..............#.... +..#....#..##..........#...........#......................##................#...#...............................#..#....#........#.. +......#........#...................#.#.......#..#.#....#..##...#.........##......#....#..........#....................#....#....... +.#.##.....#.....#..................#.....#..#..#....#....#......#...........#......#....#.........#........##..#.#..##............. +........#..#.....#.....#.......#.#......................#..................#.#.......##...................................#..#..... +..#........#.........................#.......#..............................#.....##.........#..#.##............................... +..............................#....................#......................#.....#..#.............................#..........#...... +........#.#.....................#......#.....#.............##...............#....#.#...#..........................#...#....#....... +........#...................#.#.##.##........................#.#........................#...............................#..#...#.#. +.............##.................#......#.#.##.......#.........................#.......................#.................#.......... +..##.....#..........................##..........#....#.............................##.....###......#...........................#... +...#.......#...#..............#................#.#.....#..#..................#..#...##....#....#.......#...........#.........#..... +.....#.......#.........#..#.......##.............#.##...#.......#................#..........#............#.................#....... +..............#..........##....................#......#...##..................................#.#.......#.#..............#......... +..#.....#..#.#.............#................#......................#.#.................##.......###.#....#..............##......... +....................#.........#...#............#.#......#..........#........#..........................#..#.#............##........ +.......#...#..........#.........#........#....#......###.......#..#.........##....#..............#.......#..#..........#........... +.....##.#.................................#.....#.............#.#.......#..##.............#........................................ +.......#..................##.##..#............#......#...#....##........##.#................#....#..#..##.......................... +..##.#..............###..#........#...#...#.........#.....................#....#.......##............#...#..................#...... +....#..............#...........#.....##................##...##.......#...#....#...#............#..#..............................#. +.........................#.........#..................##................#....#...#...........#......#..#....####.............#..... +.....................#...#....#........#...........#..........#....................#..#..#..........#.............................. +.#..................#..................#........#............#.#..............#....#...............#........#....##............##.. +...............#....#.#.........#...#.......#...#.......#.......#................#.##................#.................#........... +..............#.#.......#...#....#......#.............#...................##...#.......##......##.................................. +..........##.#..#.......##........#.##......#............#.#..##...............#...#.....#...#............#......#................. +........#.#.#........................................##....#..#...............#.......##......#......#...........#..##............. +......................................#........................#.........#.....#...................#............................... +.........................#....#.......#...................#..#..#.#.....#..................#......##.......................#....... +......#....#.......#.............#.........................#........#.#...#.....#..#....#......#....#.#.......#...........#........ +.................................................................S................................................................. +...........#...#.....#......................#.......#.............#.#............#.##.#...#........#.......#........#.......##..... +................#..#........#...#.....................#...............#...........................##.....#.........#............... +.............##.##.#...#........#..#...#....................#...#.......................#............#............................. +................#....#.#.#...#...............#...........#..............................##........................#................ +.......................................#.....#...........#.........#...................#..#..#.................#.........#.......#. +..#...............#....#.#.#............................#.#..#............#.........#......#........#....#......................#.. +...#......................#....#.#....................##..........#......#...#........#....#.....................#.#...........#.#. +...............#...#.................................##...#.#.......#...#...........#...................#...........#.............. +................#......#.............#.#...##...##......#......#..#..........#..#......#........................................... +..................#.#.....#.##.....#....#..........................##.#.#....#.........#...#.....#........#...##.#...............#. +........................#...#..............#....#.......#......#......#......#..#...............##.............##.................. +..#...##.............#..................#....#.......................#..........#...##......................#..#..#..........#...#. +....##.#..........#...#..........#.......#...#............#.#.........#..#...#.#.......##......#..###..#.........#................. +.........#.............#...#..........#........#..##..................#..#.........................#.....#...#..............#...... +.......#...#.............#.#....###................#...#.................#.#.............#..................##...............#..... +....#....##..............#......#.....#.....#...#..#............#...##.......#.#....#...#........##.#..#...............#...#....... +.#..#....#............#.........#...........#......#...#............#...........#......##....#........#..........................#. +....###...#.................#.......#............#.#.........#...................#.##............#....................#............ +........#...............................#..........#................#......#....#.............#..........##..........#.....#..##... +....#.....###...................##..##.##...#..##...##...#....#.......#..................#........#..#...................#......... +..#.#............#................#...#.#.......#.........#.....#.#.....#.............#.....#..#.....................#..##......... +............#.#..#....................#.....#..........#.#...................#....................#..#.......................#..#.. +....#....#.....#..................##................#..#...#.......##...............#.....##..#................#..##..##...#....... +..................#..............................##................#....#....#........................................#...#...##... +.............##........................#....#........##......#.............#.#...#................#..........#..#.#.....#.......#.. +....#.#..#...#..#..................#..#..#..#.#......#..#..#.#.....####......#...........##.#....#..#..............#............#.. +.#...#.................................#............##...#....................#.#..#....#.......#................#..#..........#... +..#.................#.................#...................#.#.......#....#...............#......#.#...............#................ +......###.....#.........#.................#.#.............#..#..#.......#.....#.............................#....##..##..#......... +..........###....#.#.#....#........#............###..#.........#....#...........#.......#......#........#......#....#............#. +.....##...#.#.##....................##...#.#..#......#.......#......#...#........#.....................#.......#......#.....##..... +.#.....#..#...............................#....#.................................##...................#.......#...............#.... +.....................##.....#...................#......................#.#..#................................##.................... +....#....#..........#........#.........#...##..........#.....#..#..#.............#..##....................................#........ +..........#.#.............#.................#............#.....#......#...............................#.................#....#.#... +......#...#.#.....#.#.##..#.#............###....#.....#................##......#.......#..#....................#.....#............. +.....#....#....................#.....................#..........#.....#.............#..#.......................#.#................. +......#....#...............................#...#........#.......................#....................##...#..#......#...##....#.... +....#..............#...........#................#.#......#........##...#..#....###..................#.........#.............#...... +......#....#....#.....#..##.#.#.............##.......#.......#....#...##..........................#....###...#...#.............#... +.#....##......#........#.#..........#..........................................#................#..................#............... +..#......#...#....#.......##.....#.....................#.....#.#..#...#...#......#.......................................#..#...... +......#..............#.......#.#..........................#.............#.......#.#.............#......#....................#..#... +..#...#.........................#.#....#............................#.....................#.....#.................#................ +...................##......#.....#.............................#......##....#............#...#......................#.............. +......#...#..#.##.............#........#..#.........##...#....#......#..#......#..........#...........#..........#.#..#.#.......... +.#..#..#.........#.......#.......#.........#..........##...##...#.#...#........................................#....#.............. +.#..#.#.#....#......#................#........................#.#.....#........................#...#......................#......#. +...............##...............##....................#..#.#.........................#.......#.......#...........#............#.... +..........#.........#.#.............#....#..#.#.............##....#......#.#.........................#..#.....#.......#........#... +....##......#...#.............................#...............#......#................#.....................................#...... +....###.#..#.......#...................#....#..........................#..#..................#.....#....#.....#................#.#. +............#.#..#.#.###........##..#.##...........................#.................#.#.............#.............#.....##........ +..#......#................................#.#.....................#......................#........#.....#.....#.#...#.....#........ +.............#..........#.#.##......#..#....................##................................#..............#......#...........##. +.....#...#..............#..#....#..#..............................#..........................#.###..............#...##.....##...... +.#...#..#.......#.#...............#....#.....#..#....#..............#...................................................#.#.#...... +.......##.........#.#....#...........#.....#....#...............#....................#..................##......#........#......... +...#.#.....#....#.................#..#................#........#..................#......#............#....#...........#..#........ +.....#...#..................#.......#.........#...#....#...................#...##..#.#....#....#.##..#..##.##..................#... +.....................#..#...#.....#............#..........................#.##.....................#..#...#......##.....#.....#.... +..#........#.......##.#..............#..##................................#..#.#....#.....#...............#.................#.#.... +...#.................................#.........#...........................#....##.#...................#......##.................#. +.........#..........#.#......#....##....#.#...#.........#................................#....#..#..............#....##...#........ +................................................................................................................................... diff --git a/2023/day21/test b/2023/day21/test new file mode 100644 index 0000000..9e1d842 --- /dev/null +++ b/2023/day21/test @@ -0,0 +1,11 @@ +........... +.....###.#. +.###.##..#. +..#.#...#.. +....#.#.... +.##..S####. +.##..#...#. +.......##.. +.##.#.####. +.##..##.##. +........... diff --git a/2023/day22/day22.bqn b/2023/day22/day22.bqn new file mode 100644 index 0000000..5089023 --- /dev/null +++ b/2023/day22/day22.bqn @@ -0,0 +1,23 @@ +⟨Split⟩←•Import"../bqn-libs/strings.bqn" +≠bricks←⍋∘(2⊸⊑¨⌊˝¨)⊸⊏>¨•ParseFloat¨¨¨","⊸Split¨¨"~"⊸Split¨•FLines"test" + +xmax‿ymax‿zmax←1+⌈˝∾´bricks +h←xmax‿ymax⥊0 +segs←{(⊏𝕩)⊸+¨⥊↕1+-˜˝𝕩}¨2⊸↑˘¨bricks +zs←1+2⊸⊑¨(⌈˝-⌊˝)¨bricks +h{segs‿zs𝕊𝕩: zs⊸+⌾(segs⊸⊑)𝕩}´segs⋈¨zs + + +Covered←∧´∘(2⊸↑˘⊸(⊏⊸≤∧1⊸⊏⊸≥)) +es←∾¯2⊸↑¨¨2⊸↓¨↑¨⥊/¨{Covered⟜𝕩¨bricks}¨↕xmax‿ymax +a←1˙¨⌾(es⊸⊑)(∾˜≠bricks)⥊0 + +Fall←{𝕊bricks: + newz←{1+0⌈´𝕩/2⊸⊑¨⌈˝¨bricks}¨<˘⍉a + {𝕩+newz-2⊸⊑¨⌊˝¨bricks}⌾(2⊸⊏˘¨)bricks +} +#fallenbricks←Fall⍟zmax bricks +fallenbricks←Fall{𝕊∘⊢⍟≢⟜𝔽𝕩} bricks +es2←{1=|-´2⊸⊑¨⟨⌈˝,⌊˝⟩{𝕎𝕩}¨𝕩⊏fallenbricks}¨⊸/es +b←1˙¨⌾(es2⊸⊑)(∾˜≠bricks)⥊0 ++´0=+˝(1≥+˝b)/⍉b diff --git a/2023/day22/input b/2023/day22/input new file mode 100644 index 0000000..4c714d2 --- /dev/null +++ b/2023/day22/input @@ -0,0 +1,1323 @@ +0,3,7~0,4,7 +9,5,7~9,5,10 +8,0,199~8,2,199 +2,6,26~2,9,26 +6,1,190~6,4,190 +1,3,119~1,3,121 +8,8,234~9,8,234 +1,2,64~4,2,64 +9,8,177~9,8,179 +5,9,201~5,9,204 +8,8,33~8,8,34 +1,6,151~1,8,151 +2,5,243~3,5,243 +3,0,8~3,3,8 +6,4,277~7,4,277 +3,5,113~3,7,113 +4,5,45~4,7,45 +6,9,125~9,9,125 +2,0,202~2,3,202 +4,0,16~5,0,16 +0,6,226~0,7,226 +7,5,161~7,7,161 +0,6,183~0,6,183 +2,1,151~2,3,151 +7,1,114~7,1,116 +6,7,221~8,7,221 +1,3,205~5,3,205 +0,2,128~1,2,128 +5,5,78~5,5,78 +4,3,187~6,3,187 +9,5,95~9,8,95 +6,6,48~6,8,48 +9,1,243~9,4,243 +3,6,209~5,6,209 +5,7,110~5,9,110 +5,5,22~7,5,22 +3,7,174~5,7,174 +0,2,26~0,4,26 +2,1,242~4,1,242 +3,1,81~5,1,81 +6,3,105~8,3,105 +7,0,173~7,2,173 +7,4,235~9,4,235 +2,0,248~2,0,249 +3,5,223~6,5,223 +0,5,89~0,7,89 +0,1,84~0,4,84 +9,4,219~9,4,222 +3,6,239~3,7,239 +9,1,211~9,1,212 +1,3,193~4,3,193 +2,9,44~4,9,44 +5,8,86~7,8,86 +0,7,57~2,7,57 +7,6,112~7,9,112 +4,8,230~6,8,230 +2,7,10~2,8,10 +1,4,2~1,4,3 +9,2,54~9,5,54 +3,8,210~5,8,210 +9,4,110~9,4,113 +6,7,175~6,9,175 +7,4,137~9,4,137 +7,6,86~9,6,86 +7,0,48~9,0,48 +5,0,123~7,0,123 +7,6,241~7,8,241 +3,4,94~3,6,94 +6,1,189~6,3,189 +0,3,64~0,5,64 +5,0,1~5,0,3 +0,1,270~0,4,270 +7,4,170~7,4,173 +2,1,25~2,3,25 +9,2,57~9,4,57 +3,3,213~5,3,213 +9,4,36~9,7,36 +2,2,247~2,2,247 +1,5,125~3,5,125 +7,5,118~7,6,118 +3,4,172~3,6,172 +2,7,70~3,7,70 +6,1,229~9,1,229 +3,4,142~4,4,142 +7,1,122~9,1,122 +6,0,253~6,2,253 +8,5,166~8,6,166 +0,9,72~0,9,74 +4,2,35~6,2,35 +5,1,187~7,1,187 +8,3,81~8,3,84 +4,9,74~5,9,74 +3,4,193~5,4,193 +0,7,148~3,7,148 +2,1,140~2,1,141 +9,5,135~9,7,135 +1,0,113~1,3,113 +6,4,9~6,5,9 +0,9,11~3,9,11 +5,0,150~5,2,150 +4,4,107~6,4,107 +0,4,27~0,6,27 +2,5,175~3,5,175 +4,8,228~5,8,228 +4,9,231~4,9,234 +1,6,14~1,9,14 +9,1,203~9,1,205 +3,8,157~6,8,157 +3,5,219~5,5,219 +8,5,164~8,7,164 +4,1,140~6,1,140 +5,8,180~5,9,180 +4,6,196~6,6,196 +8,0,220~8,3,220 +2,9,183~5,9,183 +3,2,117~4,2,117 +1,3,124~1,5,124 +4,7,58~6,7,58 +7,3,11~7,3,11 +1,1,197~3,1,197 +9,5,188~9,6,188 +5,2,225~5,3,225 +7,2,29~7,4,29 +3,5,178~4,5,178 +4,3,229~7,3,229 +4,7,24~4,9,24 +0,4,198~2,4,198 +3,0,200~3,1,200 +2,2,166~2,3,166 +5,1,42~5,2,42 +1,8,104~4,8,104 +0,8,88~0,9,88 +5,4,167~6,4,167 +2,1,78~5,1,78 +4,4,176~4,5,176 +5,9,182~7,9,182 +2,7,170~5,7,170 +3,8,84~5,8,84 +6,2,105~9,2,105 +0,5,201~0,7,201 +4,3,114~4,3,116 +3,0,203~3,0,205 +4,2,80~4,3,80 +2,9,236~2,9,238 +4,7,162~5,7,162 +2,5,167~2,8,167 +0,2,68~0,2,70 +2,1,83~3,1,83 +1,2,68~1,4,68 +4,8,139~4,9,139 +7,6,159~7,7,159 +2,6,91~4,6,91 +5,0,124~5,1,124 +4,0,116~6,0,116 +7,4,3~7,7,3 +2,8,78~2,8,79 +2,4,135~3,4,135 +1,7,258~1,9,258 +9,5,243~9,5,246 +5,7,137~6,7,137 +7,8,136~7,8,138 +4,6,239~4,8,239 +3,0,39~5,0,39 +4,1,224~4,2,224 +7,9,255~8,9,255 +6,1,5~8,1,5 +1,7,76~1,9,76 +2,8,25~2,9,25 +5,8,48~5,8,49 +9,0,55~9,1,55 +4,6,166~6,6,166 +4,0,84~4,3,84 +4,7,110~4,8,110 +5,7,59~8,7,59 +2,5,147~2,8,147 +8,3,203~8,4,203 +5,3,195~7,3,195 +3,3,206~5,3,206 +5,3,214~7,3,214 +5,8,161~7,8,161 +0,4,19~0,5,19 +1,8,192~1,8,193 +5,8,243~7,8,243 +2,5,24~4,5,24 +0,9,3~2,9,3 +5,4,110~5,6,110 +1,7,262~1,8,262 +1,1,158~1,2,158 +4,2,124~4,2,127 +8,0,104~9,0,104 +2,6,135~5,6,135 +9,5,212~9,7,212 +0,3,139~0,5,139 +5,9,222~7,9,222 +8,0,3~9,0,3 +2,3,111~2,5,111 +3,1,37~3,5,37 +1,4,70~3,4,70 +1,8,194~1,9,194 +1,7,178~3,7,178 +9,3,83~9,4,83 +4,6,9~7,6,9 +1,3,184~3,3,184 +2,6,176~3,6,176 +1,4,130~2,4,130 +7,4,216~7,6,216 +5,1,240~8,1,240 +2,1,22~4,1,22 +8,5,34~8,5,37 +2,6,238~2,7,238 +4,0,114~4,1,114 +2,4,1~4,4,1 +2,3,158~2,4,158 +0,6,16~0,6,18 +6,7,196~8,7,196 +6,6,11~9,6,11 +1,2,92~3,2,92 +3,0,57~5,0,57 +0,4,224~0,5,224 +5,8,140~7,8,140 +6,8,184~6,9,184 +5,5,178~6,5,178 +1,0,14~2,0,14 +9,3,248~9,6,248 +6,6,2~6,9,2 +1,4,62~4,4,62 +1,6,13~1,8,13 +2,7,120~2,9,120 +0,9,153~3,9,153 +0,5,119~1,5,119 +6,7,51~7,7,51 +6,3,9~8,3,9 +6,6,224~9,6,224 +7,1,193~9,1,193 +4,4,75~4,4,77 +5,2,11~5,4,11 +4,1,241~6,1,241 +5,7,95~5,9,95 +5,5,233~7,5,233 +4,2,253~4,3,253 +9,2,218~9,5,218 +9,6,97~9,8,97 +8,6,229~8,9,229 +6,0,185~8,0,185 +5,5,11~7,5,11 +0,0,229~0,1,229 +8,8,258~8,9,258 +7,3,27~7,4,27 +9,6,230~9,8,230 +4,8,252~7,8,252 +0,0,148~0,1,148 +0,7,6~3,7,6 +4,6,107~4,8,107 +1,4,66~1,7,66 +6,6,117~9,6,117 +4,2,161~6,2,161 +7,8,182~8,8,182 +1,2,71~4,2,71 +2,5,93~2,7,93 +4,1,243~4,3,243 +9,0,173~9,2,173 +4,3,15~6,3,15 +1,3,66~4,3,66 +1,8,259~1,9,259 +0,9,228~0,9,231 +2,7,260~4,7,260 +4,6,127~7,6,127 +7,3,4~7,6,4 +6,2,256~8,2,256 +5,0,195~5,0,198 +1,4,270~3,4,270 +1,5,67~1,7,67 +9,8,176~9,9,176 +2,8,46~5,8,46 +1,1,230~1,4,230 +1,5,3~3,5,3 +3,1,90~5,1,90 +0,5,77~2,5,77 +4,2,10~6,2,10 +5,5,194~6,5,194 +1,5,155~1,7,155 +5,7,97~5,9,97 +2,6,75~2,7,75 +7,7,61~9,7,61 +5,8,13~7,8,13 +2,4,26~2,5,26 +7,3,169~7,5,169 +8,7,235~8,8,235 +4,9,230~7,9,230 +3,9,26~6,9,26 +3,7,91~4,7,91 +7,0,1~9,0,1 +0,1,239~1,1,239 +8,2,79~8,5,79 +2,5,151~2,7,151 +8,1,63~8,3,63 +7,8,142~7,8,144 +6,3,125~8,3,125 +7,7,67~7,9,67 +0,5,132~1,5,132 +3,2,2~3,4,2 +2,6,51~4,6,51 +4,5,129~4,6,129 +8,2,224~8,5,224 +2,8,182~4,8,182 +7,7,175~7,9,175 +6,2,92~6,4,92 +7,4,154~7,5,154 +4,9,82~5,9,82 +4,5,240~5,5,240 +3,7,193~6,7,193 +0,4,267~3,4,267 +0,0,207~2,0,207 +4,1,173~4,5,173 +5,8,21~5,9,21 +9,6,13~9,7,13 +1,4,19~5,4,19 +5,0,183~5,3,183 +4,9,208~5,9,208 +2,4,177~5,4,177 +3,4,22~3,7,22 +1,7,227~3,7,227 +0,2,8~0,5,8 +2,0,6~2,0,8 +1,6,205~1,8,205 +9,8,68~9,9,68 +6,2,159~6,5,159 +7,0,154~7,2,154 +7,8,167~7,9,167 +1,2,197~1,4,197 +5,5,189~5,7,189 +2,3,187~2,5,187 +3,8,186~5,8,186 +1,3,232~1,3,235 +8,5,33~9,5,33 +1,9,79~3,9,79 +4,0,219~6,0,219 +8,7,211~9,7,211 +1,0,193~5,0,193 +5,4,220~5,6,220 +8,0,196~8,2,196 +7,3,18~9,3,18 +8,5,208~8,7,208 +3,1,59~3,3,59 +9,4,60~9,6,60 +2,7,220~2,9,220 +5,6,131~5,8,131 +0,1,83~1,1,83 +1,4,99~3,4,99 +2,5,244~4,5,244 +0,9,65~3,9,65 +1,6,208~1,8,208 +2,5,142~2,7,142 +5,3,244~6,3,244 +6,5,127~9,5,127 +7,1,153~9,1,153 +1,9,110~2,9,110 +5,0,184~6,0,184 +9,3,237~9,5,237 +5,9,145~5,9,147 +6,0,114~6,3,114 +4,8,200~6,8,200 +3,7,191~5,7,191 +0,0,123~4,0,123 +7,1,136~8,1,136 +6,3,60~9,3,60 +4,9,150~6,9,150 +3,6,56~4,6,56 +7,0,152~7,1,152 +1,0,172~3,0,172 +7,4,182~7,6,182 +4,4,113~6,4,113 +3,4,163~5,4,163 +5,5,261~5,7,261 +4,1,93~6,1,93 +0,7,195~3,7,195 +2,2,97~2,4,97 +0,1,79~3,1,79 +7,7,224~7,9,224 +6,7,22~8,7,22 +0,4,66~0,5,66 +6,0,97~6,3,97 +2,5,202~2,7,202 +9,3,150~9,5,150 +3,7,117~3,9,117 +3,8,15~5,8,15 +0,9,19~2,9,19 +4,2,220~4,4,220 +4,0,56~6,0,56 +4,4,25~5,4,25 +0,7,15~2,7,15 +3,5,9~3,5,10 +1,2,28~1,4,28 +2,6,193~4,6,193 +9,5,223~9,7,223 +5,8,6~8,8,6 +4,4,249~6,4,249 +4,6,65~4,9,65 +8,5,9~8,7,9 +0,3,129~0,6,129 +7,5,201~7,7,201 +9,5,173~9,8,173 +2,6,57~2,6,59 +6,1,212~6,4,212 +1,5,110~3,5,110 +9,4,4~9,6,4 +4,8,165~7,8,165 +2,1,230~4,1,230 +4,4,222~5,4,222 +5,0,109~6,0,109 +2,1,138~2,3,138 +4,5,112~6,5,112 +0,4,61~3,4,61 +1,1,157~1,1,157 +5,0,108~5,3,108 +8,3,154~8,6,154 +9,8,13~9,8,15 +2,9,81~4,9,81 +2,3,221~2,5,221 +8,8,163~8,8,165 +0,4,123~0,4,126 +7,1,146~9,1,146 +1,0,77~1,0,79 +6,5,219~9,5,219 +1,4,202~1,7,202 +2,4,166~2,7,166 +2,3,179~2,5,179 +2,0,152~2,1,152 +1,3,175~1,6,175 +5,7,75~6,7,75 +0,4,138~0,5,138 +7,6,162~9,6,162 +3,1,137~5,1,137 +4,8,103~6,8,103 +0,5,20~0,8,20 +0,9,80~3,9,80 +4,5,36~6,5,36 +7,3,145~7,4,145 +4,3,215~4,6,215 +7,2,93~7,4,93 +9,5,120~9,7,120 +1,4,29~1,5,29 +3,7,7~4,7,7 +4,3,153~6,3,153 +7,2,9~7,2,11 +2,7,224~2,9,224 +4,8,237~5,8,237 +4,3,50~6,3,50 +2,2,186~4,2,186 +8,7,7~8,8,7 +2,1,106~4,1,106 +1,0,230~3,0,230 +8,6,32~8,6,34 +0,6,176~0,8,176 +5,0,179~5,2,179 +1,8,176~3,8,176 +0,8,13~0,9,13 +3,0,174~3,1,174 +1,7,157~1,7,157 +9,3,166~9,7,166 +7,1,96~7,3,96 +2,0,209~2,2,209 +4,6,207~4,9,207 +3,8,167~5,8,167 +5,3,1~5,4,1 +3,6,62~3,9,62 +5,7,196~5,8,196 +8,0,17~8,2,17 +2,0,75~2,1,75 +6,7,39~9,7,39 +1,7,58~1,9,58 +2,1,224~2,3,224 +4,4,244~6,4,244 +2,6,175~2,9,175 +1,1,66~2,1,66 +0,8,187~2,8,187 +6,1,205~6,3,205 +6,0,100~7,0,100 +9,2,214~9,4,214 +5,0,156~5,2,156 +1,4,191~4,4,191 +5,5,159~5,7,159 +0,6,31~0,8,31 +2,8,136~5,8,136 +8,3,160~8,5,160 +0,3,132~0,4,132 +5,3,122~6,3,122 +7,6,29~9,6,29 +1,2,131~3,2,131 +6,9,157~8,9,157 +9,5,227~9,7,227 +1,2,55~3,2,55 +8,5,161~8,5,163 +7,8,32~7,9,32 +7,2,149~9,2,149 +9,3,117~9,3,119 +1,9,226~3,9,226 +1,5,170~3,5,170 +8,3,204~8,5,204 +2,1,101~4,1,101 +4,6,21~4,8,21 +6,6,5~6,9,5 +5,3,211~6,3,211 +3,1,70~5,1,70 +4,0,4~6,0,4 +9,6,90~9,7,90 +8,1,88~8,3,88 +1,1,228~1,2,228 +4,9,19~6,9,19 +2,3,150~4,3,150 +7,3,164~7,5,164 +2,3,78~2,5,78 +6,6,249~6,8,249 +4,3,250~6,3,250 +1,0,109~4,0,109 +7,2,198~7,5,198 +7,4,77~7,4,79 +8,0,236~8,3,236 +1,2,32~1,4,32 +4,4,13~5,4,13 +1,9,71~1,9,73 +9,2,108~9,5,108 +0,8,240~2,8,240 +0,7,23~2,7,23 +2,0,4~2,1,4 +7,1,2~8,1,2 +5,3,185~5,6,185 +2,0,48~3,0,48 +3,2,3~3,4,3 +0,8,89~0,8,90 +4,8,42~6,8,42 +3,1,139~3,1,141 +0,4,218~0,6,218 +0,7,225~0,9,225 +4,3,67~6,3,67 +6,3,37~6,4,37 +0,2,121~0,6,121 +7,5,121~7,9,121 +2,0,160~2,3,160 +1,1,63~3,1,63 +0,1,1~1,1,1 +0,7,210~0,8,210 +4,2,106~4,4,106 +0,5,45~3,5,45 +1,2,93~4,2,93 +3,9,205~6,9,205 +4,3,130~7,3,130 +7,0,2~9,0,2 +8,2,163~8,2,163 +6,3,115~9,3,115 +2,0,10~2,0,13 +7,6,133~7,9,133 +0,1,31~1,1,31 +8,7,145~8,8,145 +6,8,10~8,8,10 +6,7,119~8,7,119 +5,2,242~5,4,242 +0,8,185~0,9,185 +3,3,216~3,7,216 +3,4,133~6,4,133 +1,5,104~3,5,104 +2,4,168~4,4,168 +3,4,130~7,4,130 +8,5,157~8,8,157 +6,1,116~6,1,117 +7,2,119~8,2,119 +6,2,7~6,4,7 +3,6,114~3,9,114 +9,3,224~9,4,224 +0,6,223~0,9,223 +7,5,266~7,5,268 +4,5,145~4,8,145 +5,1,94~5,2,94 +1,1,233~1,2,233 +8,0,115~8,2,115 +4,4,98~4,6,98 +1,2,203~3,2,203 +0,1,205~0,1,207 +0,1,65~0,3,65 +9,5,139~9,7,139 +9,9,127~9,9,130 +0,2,107~0,3,107 +0,2,130~3,2,130 +1,0,238~1,2,238 +6,5,135~6,6,135 +1,2,185~3,2,185 +3,3,122~3,3,125 +5,1,255~8,1,255 +7,8,31~9,8,31 +6,4,199~9,4,199 +8,5,229~9,5,229 +1,8,152~1,9,152 +5,0,181~5,2,181 +7,7,216~7,7,219 +5,8,130~7,8,130 +2,1,107~2,3,107 +0,7,72~0,7,73 +5,4,239~7,4,239 +3,5,204~4,5,204 +4,1,227~6,1,227 +7,2,212~9,2,212 +1,5,152~2,5,152 +8,4,205~8,7,205 +2,5,68~2,8,68 +2,2,63~4,2,63 +4,4,140~4,7,140 +2,2,226~5,2,226 +3,1,190~5,1,190 +6,8,70~8,8,70 +0,6,85~0,8,85 +5,4,24~8,4,24 +8,0,108~8,2,108 +0,5,262~2,5,262 +7,4,241~8,4,241 +2,5,119~4,5,119 +7,6,228~9,6,228 +1,1,155~4,1,155 +9,4,51~9,4,52 +1,2,100~2,2,100 +6,2,30~9,2,30 +7,4,48~7,5,48 +3,9,166~5,9,166 +3,6,169~6,6,169 +3,5,192~4,5,192 +6,7,120~6,9,120 +1,5,92~3,5,92 +1,4,178~1,5,178 +5,3,94~6,3,94 +3,1,60~3,3,60 +9,2,19~9,3,19 +3,3,228~6,3,228 +6,9,10~9,9,10 +5,2,56~5,2,58 +1,6,133~1,7,133 +5,2,73~7,2,73 +0,3,247~2,3,247 +4,6,49~4,7,49 +5,0,46~5,0,48 +5,2,217~8,2,217 +7,4,175~9,4,175 +3,2,211~3,4,211 +6,2,193~6,4,193 +4,8,89~6,8,89 +4,2,94~4,5,94 +1,1,250~1,3,250 +3,2,128~5,2,128 +5,1,91~6,1,91 +6,0,158~9,0,158 +5,9,36~6,9,36 +4,0,133~4,2,133 +7,6,187~9,6,187 +5,3,233~7,3,233 +6,1,203~6,3,203 +3,8,142~4,8,142 +8,0,202~8,0,204 +0,5,227~0,8,227 +6,1,208~6,3,208 +5,7,198~5,9,198 +7,0,101~9,0,101 +9,1,171~9,4,171 +2,5,105~4,5,105 +1,2,235~2,2,235 +2,0,206~4,0,206 +9,2,3~9,4,3 +2,7,99~5,7,99 +5,3,34~7,3,34 +0,0,145~0,1,145 +6,4,156~6,7,156 +9,5,153~9,8,153 +0,8,138~2,8,138 +8,6,120~8,6,122 +4,3,117~4,5,117 +4,4,234~4,4,236 +7,1,190~7,1,192 +3,4,104~3,4,105 +0,3,18~2,3,18 +0,9,68~3,9,68 +4,7,47~6,7,47 +1,9,86~3,9,86 +5,5,41~5,8,41 +1,2,122~1,4,122 +9,2,221~9,2,223 +2,5,225~4,5,225 +0,3,102~2,3,102 +2,9,14~2,9,17 +3,2,65~3,4,65 +9,7,69~9,9,69 +4,5,247~6,5,247 +9,0,210~9,1,210 +3,5,126~3,7,126 +5,1,160~6,1,160 +1,4,165~3,4,165 +1,5,172~1,7,172 +7,6,234~7,8,234 +6,7,154~6,9,154 +6,2,110~6,5,110 +1,6,63~4,6,63 +7,4,214~7,7,214 +7,9,179~9,9,179 +4,8,134~6,8,134 +7,5,125~7,7,125 +3,5,41~3,8,41 +8,8,160~8,8,160 +3,9,262~5,9,262 +0,6,71~0,9,71 +4,0,138~4,0,138 +3,5,84~5,5,84 +0,5,28~0,7,28 +9,4,15~9,6,15 +1,3,156~4,3,156 +4,9,162~4,9,164 +8,4,178~8,7,178 +6,8,132~6,8,133 +5,5,82~8,5,82 +8,0,67~8,0,68 +4,1,18~6,1,18 +7,0,49~9,0,49 +5,7,242~7,7,242 +6,7,62~6,7,62 +1,6,74~3,6,74 +0,2,20~0,3,20 +5,3,222~7,3,222 +3,0,126~4,0,126 +2,3,208~2,5,208 +3,8,18~4,8,18 +5,3,165~5,5,165 +6,6,118~6,8,118 +8,8,22~9,8,22 +6,0,195~8,0,195 +1,3,126~2,3,126 +3,7,238~3,9,238 +7,4,222~7,5,222 +7,1,112~9,1,112 +9,4,231~9,5,231 +2,7,197~4,7,197 +5,4,72~5,7,72 +6,2,5~9,2,5 +0,0,163~3,0,163 +1,5,189~3,5,189 +0,1,214~0,3,214 +8,2,232~8,5,232 +1,7,59~1,9,59 +5,2,209~8,2,209 +6,0,66~8,0,66 +4,6,259~6,6,259 +3,1,86~3,1,89 +6,2,170~7,2,170 +7,2,13~7,4,13 +4,1,46~6,1,46 +2,8,73~2,8,75 +1,7,107~1,8,107 +0,6,185~1,6,185 +6,2,123~6,4,123 +5,9,98~6,9,98 +2,5,155~3,5,155 +4,1,120~7,1,120 +1,7,154~3,7,154 +3,2,189~3,4,189 +1,4,25~1,5,25 +2,6,54~2,8,54 +1,1,225~1,2,225 +2,1,73~4,1,73 +9,7,23~9,9,23 +0,8,168~2,8,168 +0,4,14~0,6,14 +2,0,251~2,1,251 +2,9,75~4,9,75 +6,7,136~8,7,136 +2,1,195~4,1,195 +9,2,238~9,2,240 +1,6,102~3,6,102 +7,0,198~7,0,200 +6,0,192~6,3,192 +8,0,82~8,2,82 +3,3,207~3,3,209 +3,3,201~3,4,201 +2,8,55~2,9,55 +0,5,18~3,5,18 +5,5,123~5,5,125 +5,4,161~5,5,161 +7,4,85~7,6,85 +0,8,72~0,8,73 +6,7,207~6,8,207 +6,1,106~6,3,106 +7,4,61~7,6,61 +6,4,33~6,6,33 +2,4,161~2,6,161 +3,3,271~3,5,271 +3,2,58~3,5,58 +3,2,91~3,5,91 +4,2,55~6,2,55 +8,4,168~9,4,168 +2,1,1~2,3,1 +7,7,15~7,9,15 +4,6,257~4,8,257 +9,3,169~9,3,169 +4,6,148~4,6,151 +5,9,149~6,9,149 +4,2,136~7,2,136 +4,4,181~4,7,181 +7,7,87~7,9,87 +4,3,238~4,4,238 +1,9,229~1,9,232 +1,5,27~1,7,27 +6,8,63~8,8,63 +4,9,228~6,9,228 +1,9,22~3,9,22 +7,6,114~7,8,114 +2,5,135~2,5,138 +7,0,117~9,0,117 +5,6,170~7,6,170 +2,5,211~2,7,211 +3,8,170~5,8,170 +8,2,26~8,5,26 +3,1,120~3,3,120 +1,0,18~1,0,21 +1,6,194~3,6,194 +7,6,203~9,6,203 +0,0,15~1,0,15 +0,4,273~0,7,273 +9,3,97~9,5,97 +5,8,179~6,8,179 +0,2,239~1,2,239 +2,7,217~3,7,217 +3,5,40~3,7,40 +8,1,200~9,1,200 +6,6,247~6,9,247 +2,5,85~4,5,85 +0,6,4~2,6,4 +5,2,127~5,4,127 +0,8,49~4,8,49 +2,1,94~2,4,94 +7,2,219~7,4,219 +7,8,127~8,8,127 +6,9,163~8,9,163 +6,2,17~6,4,17 +5,2,153~6,2,153 +3,5,245~6,5,245 +4,5,200~7,5,200 +4,1,210~6,1,210 +3,2,21~3,5,21 +4,8,70~4,9,70 +8,1,161~8,3,161 +4,9,113~5,9,113 +0,0,216~0,2,216 +6,7,204~7,7,204 +0,1,105~0,3,105 +4,9,13~5,9,13 +4,6,225~4,8,225 +2,0,121~5,0,121 +3,0,124~4,0,124 +0,3,108~0,3,110 +1,4,118~2,4,118 +4,1,198~4,1,201 +5,5,235~5,8,235 +7,4,274~7,8,274 +3,8,143~5,8,143 +4,2,122~5,2,122 +5,9,162~5,9,164 +4,5,132~4,7,132 +0,7,200~2,7,200 +6,3,173~6,5,173 +8,6,2~8,8,2 +4,2,248~4,5,248 +0,6,220~3,6,220 +2,0,169~2,2,169 +4,7,143~4,7,144 +9,7,4~9,8,4 +4,7,57~6,7,57 +7,7,40~8,7,40 +5,6,214~5,7,214 +2,0,218~4,0,218 +1,3,117~1,6,117 +6,0,33~6,2,33 +5,1,119~5,3,119 +5,9,123~8,9,123 +2,9,260~5,9,260 +5,8,168~5,8,168 +8,0,144~8,2,144 +7,1,55~7,2,55 +6,0,50~6,2,50 +2,0,125~2,2,125 +5,9,169~5,9,170 +2,1,20~2,3,20 +4,1,96~4,1,98 +8,3,146~8,3,147 +2,7,242~2,9,242 +0,1,29~0,3,29 +1,8,71~3,8,71 +3,3,166~3,3,168 +3,2,222~4,2,222 +4,0,104~4,2,104 +7,6,254~7,9,254 +4,2,250~7,2,250 +7,6,60~7,8,60 +4,9,73~6,9,73 +4,4,225~4,4,226 +4,5,187~6,5,187 +8,1,143~8,4,143 +0,5,88~0,7,88 +5,5,77~8,5,77 +2,0,177~3,0,177 +3,2,23~3,4,23 +0,9,235~3,9,235 +3,6,59~3,6,60 +7,1,15~7,2,15 +1,5,118~2,5,118 +4,7,172~7,7,172 +7,3,31~8,3,31 +5,5,13~5,5,16 +4,4,48~4,5,48 +2,2,133~2,2,135 +8,6,96~8,9,96 +0,7,65~3,7,65 +0,6,12~0,9,12 +1,3,101~1,6,101 +6,6,142~6,8,142 +7,5,152~9,5,152 +0,6,208~0,8,208 +0,2,181~0,3,181 +0,1,77~3,1,77 +6,1,157~6,3,157 +7,1,221~7,3,221 +7,5,245~7,7,245 +2,6,205~2,8,205 +0,0,220~3,0,220 +9,7,42~9,9,42 +9,6,233~9,8,233 +9,1,39~9,1,40 +4,2,120~6,2,120 +5,4,115~5,5,115 +4,2,175~4,4,175 +1,0,126~1,2,126 +8,5,221~9,5,221 +7,8,204~9,8,204 +4,5,47~7,5,47 +4,4,120~5,4,120 +4,3,207~4,5,207 +2,0,136~4,0,136 +9,3,176~9,4,176 +6,1,209~9,1,209 +5,4,234~5,4,237 +4,9,8~4,9,10 +1,4,193~1,4,193 +2,3,36~5,3,36 +4,3,118~4,4,118 +2,5,133~4,5,133 +9,2,126~9,2,128 +6,1,36~9,1,36 +5,4,44~7,4,44 +9,2,121~9,5,121 +3,3,6~3,5,6 +4,8,108~5,8,108 +7,6,6~7,7,6 +0,8,173~3,8,173 +1,2,33~1,2,36 +2,0,45~5,0,45 +8,7,139~8,7,142 +7,4,28~7,6,28 +7,0,58~7,2,58 +1,2,20~1,5,20 +0,3,3~0,3,5 +2,0,213~4,0,213 +9,6,100~9,6,102 +4,5,139~6,5,139 +0,6,22~0,7,22 +5,9,156~7,9,156 +4,0,129~4,2,129 +2,6,258~2,9,258 +2,6,141~2,9,141 +6,6,180~6,6,183 +4,3,133~5,3,133 +6,3,243~8,3,243 +0,3,211~2,3,211 +6,1,70~6,3,70 +5,5,39~5,6,39 +2,2,182~2,4,182 +0,0,124~2,0,124 +9,0,41~9,2,41 +1,1,212~2,1,212 +3,8,19~6,8,19 +0,1,152~0,2,152 +3,7,43~3,9,43 +0,8,183~3,8,183 +7,8,124~9,8,124 +3,1,67~3,3,67 +9,0,148~9,3,148 +5,1,49~7,1,49 +6,6,261~6,9,261 +3,1,124~3,2,124 +5,9,8~8,9,8 +3,7,180~3,9,180 +3,5,224~4,5,224 +6,7,244~6,7,246 +0,3,200~3,3,200 +7,7,231~8,7,231 +0,2,147~1,2,147 +0,8,207~2,8,207 +0,4,217~3,4,217 +4,6,14~6,6,14 +6,8,65~9,8,65 +2,1,146~2,3,146 +1,3,148~3,3,148 +3,5,171~6,5,171 +7,0,45~7,3,45 +1,4,184~1,6,184 +6,5,101~8,5,101 +7,8,72~7,8,72 +1,5,73~1,8,73 +1,5,131~1,7,131 +0,7,29~0,9,29 +6,6,179~7,6,179 +2,3,201~2,5,201 +9,2,156~9,5,156 +6,5,176~6,8,176 +1,9,264~3,9,264 +5,8,98~5,8,100 +0,4,222~1,4,222 +6,3,200~8,3,200 +1,9,118~3,9,118 +0,3,182~0,6,182 +5,4,12~8,4,12 +4,6,5~4,9,5 +5,4,126~7,4,126 +4,7,25~6,7,25 +2,1,114~2,3,114 +7,2,7~7,5,7 +6,5,138~9,5,138 +7,2,201~8,2,201 +4,0,112~4,3,112 +7,6,107~9,6,107 +0,1,231~0,3,231 +6,9,257~7,9,257 +0,1,132~0,2,132 +4,7,52~4,7,54 +5,6,1~5,9,1 +9,4,200~9,4,201 +5,4,135~8,4,135 +5,9,126~5,9,128 +4,6,238~5,6,238 +9,0,124~9,2,124 +0,5,241~0,6,241 +6,6,188~8,6,188 +3,0,53~6,0,53 +5,3,70~5,4,70 +5,4,141~5,6,141 +5,1,44~6,1,44 +7,5,80~9,5,80 +5,9,35~8,9,35 +0,0,209~1,0,209 +5,0,154~5,2,154 +9,6,164~9,7,164 +9,5,142~9,8,142 +9,4,53~9,6,53 +4,7,2~4,8,2 +4,1,111~7,1,111 +1,4,133~1,5,133 +2,4,9~2,7,9 +2,4,136~2,4,139 +0,5,34~0,6,34 +6,7,225~6,9,225 +6,6,184~7,6,184 +8,2,227~8,5,227 +7,2,142~7,4,142 +0,6,8~3,6,8 +3,0,192~3,1,192 +8,4,37~9,4,37 +8,0,64~8,1,64 +7,1,51~7,1,54 +5,4,191~5,6,191 +3,9,16~4,9,16 +8,9,98~8,9,100 +4,0,86~6,0,86 +4,7,68~4,9,68 +0,1,226~0,4,226 +0,0,202~0,3,202 +6,6,122~6,8,122 +1,2,95~1,5,95 +9,6,174~9,7,174 +3,7,9~5,7,9 +7,2,215~9,2,215 +1,1,146~1,2,146 +0,7,241~0,9,241 +3,3,154~6,3,154 +5,2,71~7,2,71 +6,9,24~9,9,24 +2,8,178~4,8,178 +8,3,87~8,4,87 +8,6,181~8,8,181 +2,4,236~2,7,236 +8,0,133~8,2,133 +4,4,22~4,8,22 +1,7,175~1,7,177 +5,5,168~7,5,168 +3,0,138~3,2,138 +5,0,15~5,2,15 +3,6,241~3,7,241 +2,4,261~2,7,261 +5,8,238~7,8,238 +8,5,234~8,5,235 +7,2,32~9,2,32 +4,9,159~5,9,159 +9,3,221~9,3,223 +4,3,12~5,3,12 +5,2,212~5,2,213 +3,3,202~3,7,202 +5,9,79~7,9,79 +3,2,134~3,3,134 +3,5,1~6,5,1 +2,3,22~5,3,22 +1,1,220~1,4,220 +0,6,190~0,8,190 +4,7,215~6,7,215 +1,8,239~3,8,239 +2,6,231~2,6,233 +5,2,37~5,2,39 +6,9,186~9,9,186 +2,3,11~2,5,11 +1,6,163~4,6,163 +1,3,79~4,3,79 +4,3,190~5,3,190 +4,5,121~6,5,121 +9,8,187~9,9,187 +3,5,54~5,5,54 +7,2,237~9,2,237 +0,8,82~3,8,82 +3,4,107~3,6,107 +6,4,223~8,4,223 +6,2,8~6,3,8 +8,3,130~8,5,130 +3,2,240~3,5,240 +9,8,125~9,8,127 +2,2,264~2,4,264 +3,0,92~3,1,92 +2,2,6~3,2,6 +5,5,99~6,5,99 +1,8,109~1,9,109 +8,5,170~8,7,170 +6,7,262~6,7,263 +0,0,76~2,0,76 +6,3,48~9,3,48 +3,0,216~3,2,216 +5,6,215~5,6,216 +2,1,110~2,1,113 +0,4,105~0,4,107 +2,5,145~2,7,145 +9,0,246~9,2,246 +6,5,133~9,5,133 +1,5,16~1,6,16 +4,0,15~4,2,15 +8,4,144~8,6,144 +1,3,178~1,3,180 +8,3,234~8,4,234 +6,3,242~6,5,242 +2,3,163~5,3,163 +0,0,150~0,2,150 +5,2,191~5,3,191 +3,7,204~3,8,204 +3,4,53~3,6,53 +4,3,4~4,5,4 +4,9,142~6,9,142 +5,6,211~7,6,211 +4,1,232~6,1,232 +7,2,234~7,5,234 +9,4,89~9,6,89 +3,0,176~6,0,176 +6,6,50~6,8,50 +4,1,132~8,1,132 +4,7,222~7,7,222 +7,9,160~8,9,160 +0,9,82~1,9,82 +8,3,180~8,4,180 +5,6,75~7,6,75 +7,3,116~8,3,116 +3,3,39~3,4,39 +2,4,231~5,4,231 +3,1,95~3,4,95 +1,0,111~4,0,111 +4,5,97~5,5,97 +5,1,135~6,1,135 +8,7,167~8,7,168 +7,6,109~9,6,109 +1,2,222~1,3,222 +0,9,120~1,9,120 +0,3,178~0,6,178 +9,4,35~9,6,35 +2,6,115~4,6,115 +0,0,80~0,2,80 +2,1,123~4,1,123 +1,8,78~1,9,78 +3,7,93~6,7,93 +6,1,239~8,1,239 +9,7,12~9,9,12 +7,8,18~8,8,18 +9,6,169~9,6,172 +0,6,36~0,8,36 +8,4,85~8,6,85 +1,9,83~3,9,83 +0,6,177~0,9,177 +3,5,90~4,5,90 +2,3,218~4,3,218 +8,7,21~8,9,21 +4,5,264~7,5,264 +8,3,140~8,6,140 +4,6,231~6,6,231 +0,3,135~0,5,135 +5,3,217~6,3,217 +7,4,105~8,4,105 +6,3,21~6,6,21 +4,0,36~6,0,36 +0,1,144~2,1,144 +0,7,237~0,9,237 +6,5,13~9,5,13 +1,5,76~3,5,76 +0,6,239~0,7,239 +5,0,187~5,0,187 +3,9,71~4,9,71 +6,9,226~6,9,226 +3,5,237~5,5,237 +1,6,228~4,6,228 +2,0,245~2,3,245 +7,7,256~7,7,259 +0,4,109~0,6,109 +1,2,194~1,3,194 +4,7,178~6,7,178 +6,2,168~6,4,168 +8,4,226~9,4,226 +7,0,156~7,2,156 +4,0,54~4,1,54 +3,0,59~5,0,59 +6,7,162~6,8,162 +9,0,50~9,0,53 +1,8,255~4,8,255 +9,7,92~9,7,94 +7,7,264~7,9,264 +6,5,30~8,5,30 +8,0,165~8,2,165 +7,6,93~9,6,93 +5,4,43~5,6,43 +0,8,189~2,8,189 +4,5,74~6,5,74 +1,2,114~1,4,114 +1,9,221~5,9,221 +1,6,2~1,8,2 +4,2,116~6,2,116 +5,0,182~5,2,182 +3,5,88~3,7,88 +0,4,103~3,4,103 +6,5,52~6,6,52 +0,2,23~0,4,23 +3,3,42~5,3,42 +2,3,127~2,6,127 +6,4,90~8,4,90 +4,3,43~6,3,43 +3,0,60~5,0,60 +0,8,228~3,8,228 +4,1,87~6,1,87 +4,2,12~6,2,12 +7,1,144~7,3,144 +2,0,212~3,0,212 +1,5,22~1,6,22 +5,0,118~5,0,120 +6,8,24~8,8,24 +7,4,140~7,6,140 +0,3,86~0,4,86 +5,3,19~8,3,19 +7,0,113~7,2,113 +6,5,196~7,5,196 +7,3,80~9,3,80 +4,0,106~6,0,106 +4,8,212~6,8,212 +4,5,266~6,5,266 +8,1,118~8,3,118 +2,6,259~2,7,259 +9,7,235~9,9,235 +7,6,261~7,7,261 +4,3,135~6,3,135 +9,3,240~9,5,240 +8,2,65~8,4,65 +4,4,74~7,4,74 +4,7,158~7,7,158 +7,8,28~9,8,28 +1,6,10~1,9,10 +6,0,256~7,0,256 +1,0,236~1,1,236 +1,2,17~1,5,17 +9,6,189~9,6,192 +9,3,22~9,3,23 +2,4,167~4,4,167 +8,2,15~8,4,15 +4,2,188~4,2,190 +3,6,136~4,6,136 +7,3,271~7,5,271 +5,3,230~5,5,230 +1,3,181~1,5,181 +5,0,42~7,0,42 +3,2,52~6,2,52 +7,2,104~7,6,104 +8,7,98~8,7,100 +9,5,1~9,8,1 +9,0,58~9,2,58 +4,2,18~4,4,18 +9,2,50~9,4,50 +8,4,155~8,4,157 +1,0,229~1,2,229 +0,0,127~1,0,127 +4,8,159~6,8,159 +6,0,19~8,0,19 +0,5,5~0,8,5 +2,6,227~4,6,227 +4,6,124~7,6,124 +4,4,190~4,7,190 +0,2,110~0,2,111 +9,4,167~9,7,167 +6,8,26~8,8,26 +6,8,201~8,8,201 +4,0,128~7,0,128 +4,1,149~7,1,149 +4,9,78~6,9,78 +4,1,184~6,1,184 +2,5,44~4,5,44 +4,9,152~6,9,152 +0,7,128~3,7,128 diff --git a/2023/day22/test b/2023/day22/test new file mode 100644 index 0000000..43a7fc5 --- /dev/null +++ b/2023/day22/test @@ -0,0 +1,7 @@ +1,0,1~1,2,1 +0,0,2~2,0,2 +0,2,3~2,2,3 +0,0,4~0,2,4 +2,0,5~2,2,5 +0,1,6~2,1,6 +1,1,8~1,1,9