Compare commits

...

117 Commits

Author SHA1 Message Date
68d1803e8f feat: solve part two 2025-12-21 09:26:50 +01:00
a39f261ba9 test: add unit test for part two 2025-12-21 09:13:08 +01:00
0c77a62ab4 feat: solve part one 2025-12-21 09:12:16 +01:00
60ee8c0307 test: add unit test for part one 2025-12-21 09:05:19 +01:00
dfe08db759 chore: add 2022D4 dataset 2025-12-21 09:04:00 +01:00
081f4ea295 feat: register fourth day 2025-12-21 09:03:50 +01:00
34be9e0847 feat: solve part two using exhaustive search 2025-12-20 09:25:03 +01:00
6ea67eac0c test: add unit test for part two 2025-12-20 09:18:32 +01:00
bb366fbe17 refactor: extract reactPolymer to reuse it in PartTwo 2025-12-20 09:18:17 +01:00
681b7bae16 feat: solve part one 2025-12-20 09:15:52 +01:00
c8ded5c42d test: add unit test for part one 2025-12-20 09:12:51 +01:00
b37f1ec366 chore: add 20218D5 dataset 2025-12-20 09:08:46 +01:00
40e2e329e0 feat: register fifth day 2025-12-20 09:08:34 +01:00
fa5bf2e85b feat: refactor some code and solve part two 2025-12-14 10:14:18 +01:00
ea1b57b17e test: add unit test for part two 2025-12-14 10:10:30 +01:00
174671e6f5 feat: use min() and get rid of Reindeer struct 2025-12-14 10:02:57 +01:00
40bcf3052f test: add unit test for part one 2025-12-14 10:00:17 +01:00
1e634b7ee9 feat: implement partone in CalculateMaxDistance to make the test relevant 2025-12-14 10:00:11 +01:00
6e625dcf06 feat: register fourteenth day 2025-12-14 09:52:39 +01:00
141216920d chore: add 2015D14 dataset 2025-12-14 09:52:25 +01:00
b685e81c58 feat: solve part two 2025-12-12 18:35:11 +01:00
1adc10ea88 test: add test for part two 2025-12-12 18:35:05 +01:00
db7c31cb39 feat: solve part one using direct byte comparaison and efficient hex extraction 2025-12-12 18:30:25 +01:00
1ad1da1309 chore: add 2016D5 dataset 2025-12-12 18:30:07 +01:00
228392fe83 feat: register fifth day 2025-12-12 18:29:50 +01:00
4837cbf290 test: add unit test for part one 2025-12-12 18:29:20 +01:00
8503cee52b test: add unit test for part two 2025-12-10 18:41:25 +01:00
b16b052115 feat: solve part one using brute-force 2025-12-10 16:51:57 +01:00
bc76283458 test: add unit test for part one 2025-12-10 06:11:04 +01:00
9d2a087801 feat: register tenth day 2025-12-10 06:10:57 +01:00
0bd3b6dc69 chore: add 2025D10 dataset 2025-12-10 06:10:50 +01:00
da81f67b7f feat: solve part two 2025-12-09 20:59:57 +01:00
caa7da5a7d test: add reverse unit test for part two 2025-12-09 20:59:46 +01:00
eebe707ef9 feat: solve part one 2025-12-09 20:40:59 +01:00
8960dcb072 test: add unit test for part one 2025-12-09 20:14:22 +01:00
99eb0fbaa8 chore: 2016D4 dataset 2025-12-09 20:14:16 +01:00
a739425209 feat: register fourth day 2025-12-09 20:14:11 +01:00
af306eb73c feat: solve part two 2025-12-09 19:24:30 +01:00
cdbc3f3b16 feat: solve part one 2025-12-09 19:22:12 +01:00
ed445a8be7 test: add unit test for both parts 2025-12-09 19:21:59 +01:00
8bbf6662b1 chore: add 2016D3 input 2025-12-09 19:21:51 +01:00
b60c971d50 feat: register third day 2025-12-09 19:21:44 +01:00
5dab84eeb3 feat: solve part two 2025-12-09 14:40:37 +01:00
2283b62503 clean: oneliner for compute and check 2025-12-09 07:10:30 +01:00
ccf50c12c9 test: add unit test for part two 2025-12-09 06:45:39 +01:00
f25d7511aa feat: solve part one 2025-12-09 06:33:16 +01:00
243ccf3da9 test: unit test for part one 2025-12-09 06:14:02 +01:00
aedf9cd06d chore: day 9 input 2025-12-09 06:05:48 +01:00
c053c905ad feat: register ninth day 2025-12-09 06:05:42 +01:00
7dff40745c feat: solve part two using keypad with 10+ for letter and 0 for inexisting keys 2025-12-08 22:52:28 +01:00
0e8563b216 test: add printing unit test for part two (as it returns string) 2025-12-08 22:39:11 +01:00
6720bbabc1 feat: solve part one building the code digit by digit 2025-12-08 22:34:59 +01:00
6035989da4 test: add unit test for part one 2025-12-08 22:26:25 +01:00
dc16893777 chore: add 2016D2 dataset 2025-12-08 22:26:15 +01:00
fdfad57cee feat: register second day 2025-12-08 22:26:01 +01:00
9cf00b290f feat: solve part two using same logic and injecting me :) 2025-12-08 22:17:11 +01:00
47072a4982 feat: extract shared functions and solve part two 2025-12-08 22:01:31 +01:00
62748990cb test: unit test for part two 2025-12-08 21:55:29 +01:00
42c69d44e5 feat: solve part one 2025-12-08 21:51:40 +01:00
c6eb51a395 comment: no test for part two 2025-12-08 21:45:42 +01:00
6777696df6 test: add unit test for part one 2025-12-08 21:45:27 +01:00
a8e244f9ab feat: register third day 2025-12-08 21:43:39 +01:00
911f9bfe7b chore: add 2022D3 dataset 2025-12-08 21:43:15 +01:00
24a65d3752 feat: solve part one using brute-force permutation search 2025-12-08 21:26:06 +01:00
0bd0ec5f1e test: add unit test for part one 2025-12-08 21:24:58 +01:00
0ad418ed1f feat: register d13 2025-12-08 17:39:35 +01:00
ec48231aae chore: add D13 dataset 2025-12-08 17:39:07 +01:00
5631822e73 feat: tiny refactor for part two which we're solving using Kruskal's algorithm 2025-12-08 15:21:42 +01:00
630d32ba11 test: add unit test for part two 2025-12-08 12:30:10 +01:00
22500b7076 feat: solve part one 2025-12-08 12:26:37 +01:00
9d2d27b257 refactor: rename parameter to standardize 2025-12-08 11:42:12 +01:00
879509c7ba refactor: rename parameter 2025-12-08 11:40:08 +01:00
a0805111b4 test: add unit test for part one 2025-12-08 06:08:56 +01:00
b0cd4f37b1 feat: register day 8 2025-12-08 06:01:48 +01:00
8999f45aad chore: day8 dataset 2025-12-08 06:01:39 +01:00
838803c53e feat: solve part two 2025-12-07 22:01:36 +01:00
c4063b5390 test: unit test for part two 2025-12-07 21:59:04 +01:00
1c5bd1e448 feat: solve part one 2025-12-07 21:55:26 +01:00
6d9b2092bd test: add unit test for part one 2025-12-07 21:51:57 +01:00
9b218d763d feat: start 2016 2025-12-07 21:51:41 +01:00
10c5b0fbc6 feat: register day one 2025-12-07 21:39:52 +01:00
503eec14c6 chore: add 2016D1 dataset 2025-12-07 21:39:07 +01:00
deac7f97bb refactor: format imports 2025-12-07 13:34:14 +01:00
a3fb7ac353 feat: solve part two using recursive dfs + memoization 2025-12-07 12:24:40 +01:00
8f4e11215f test: add unit test for part two 2025-12-07 09:55:03 +01:00
78b0032578 feat: solve PartOne using DFS algorithm 2025-12-07 09:54:53 +01:00
536f6f52ff refactor: return directly 2025-12-07 09:35:20 +01:00
96ca1afb9b test: add unit test for PartOne 2025-12-07 09:30:18 +01:00
780263e78b feat: register day seven 2025-12-07 09:27:51 +01:00
49ff399f97 chore: D7 dataset (and it rhymes (in french only)) 2025-12-07 09:26:42 +01:00
27d14b1711 feat: solve part two 2025-12-07 00:00:16 +01:00
89b2ec90f2 test: add unit test for part two 2025-12-06 23:57:23 +01:00
f8a2e839b9 feat: solve part one using maps and regex 2025-12-06 23:55:34 +01:00
94ecbd27bf test: add unit test for part one 2025-12-06 23:45:52 +01:00
b44a592808 chore: D4 dataset 2025-12-06 23:44:13 +01:00
b00d2f13a3 feat: register day four 2025-12-06 23:44:01 +01:00
b26f1531f5 feat: solve part two 2025-12-06 23:43:01 +01:00
7de5fa7794 fix: update parsing to avoid doing split in both functions 2025-12-06 23:40:20 +01:00
66e91e05a4 test: update input to be a []string 2025-12-06 23:40:02 +01:00
a20bb8ab09 test: add unit test for part two 2025-12-06 23:36:12 +01:00
c5fcc8b353 feat: solve part one 2025-12-06 23:34:48 +01:00
0357f263cc test: add unit test for part one 2025-12-06 23:13:21 +01:00
8488debc25 feat: register day four 2025-12-06 23:11:46 +01:00
00dd40428b chore: 2021D4 dataset 2025-12-06 23:11:09 +01:00
3d35a57723 feat: solve part two using right-to-left processing 2025-12-06 12:08:57 +01:00
0d40e32a39 test: add unit test for part two 2025-12-06 11:48:22 +01:00
fd34db28cb feat: solve part one using grid transposition 2025-12-06 11:46:50 +01:00
65edd3258e test: unit test for part one 2025-12-06 11:07:39 +01:00
e914bc6492 feat: register day six 2025-12-06 11:04:13 +01:00
0eed8089b6 chpre: 2025D6 dataset 2025-12-06 11:03:34 +01:00
1048d20cef docs: update requirements 2025-12-05 09:26:46 +01:00
00ccbaf0d0 feat: solve part two using merged ranges 2025-12-05 09:08:10 +01:00
51f733127c test: add unit test for part two 2025-12-05 08:46:10 +01:00
d96febeae3 feat: solve part one using binary search on sorted range 2025-12-05 08:41:39 +01:00
79b31dad19 test: add unit test for part one 2025-12-05 08:03:50 +01:00
d5146e7e3e feat: include day five 2025-12-05 08:01:50 +01:00
d2d6f280b3 chore: 2025D5 dataset 2025-12-05 08:01:40 +01:00
64 changed files with 11357 additions and 11 deletions

View File

@@ -13,7 +13,7 @@ Ultimately, my goal is to complete all the years of Advent of Code here.
## Requirements
- Go 1.25
- Puzzle input
- Puzzle input (or your session cookie to have it downloaded automatically)
## Repository Structure

View File

@@ -10,6 +10,7 @@ import (
"advent-of-code/internal/registry"
_ "advent-of-code/internal/2015"
_ "advent-of-code/internal/2016"
_ "advent-of-code/internal/2018"
_ "advent-of-code/internal/2020"
_ "advent-of-code/internal/2021"

View File

@@ -0,0 +1,108 @@
package dayfourteen
import (
"advent-of-code/internal/registry"
"os"
"regexp"
"strconv"
"strings"
)
var reindeerPattern = regexp.MustCompile(`\w+ can fly (\d+) km/s for (\d+) seconds, but then must rest for (\d+) seconds\.`)
const raceTime = 2503
type Reindeer struct {
Speed int
FlyTime int
RestTime int
Points int
}
func init() {
registry.Register("2015D14", ParseInput, PartOne, PartTwo)
}
func ParseInput(filepath string) []string {
content, _ := os.ReadFile(filepath)
return strings.Split(string(content), "\n")
}
func parseReindeer(line string) Reindeer {
matches := reindeerPattern.FindStringSubmatch(line)
speed, _ := strconv.Atoi(matches[1])
flyTime, _ := strconv.Atoi(matches[2])
restTime, _ := strconv.Atoi(matches[3])
return Reindeer{Speed: speed, FlyTime: flyTime, RestTime: restTime}
}
func parseReindeers(data []string) []Reindeer {
reindeers := make([]Reindeer, 0, len(data))
for _, line := range data {
reindeers = append(reindeers, parseReindeer(line))
}
return reindeers
}
func (reindeer Reindeer) distanceAtTime(time int) int {
cycleTime := reindeer.FlyTime + reindeer.RestTime
fullCycles := time / cycleTime
distance := fullCycles * reindeer.Speed * reindeer.FlyTime
remainingTime := time % cycleTime
distance += reindeer.Speed * min(remainingTime, reindeer.FlyTime)
return distance
}
func calculateMaxDistance(data []string, time int) int {
reindeers := parseReindeers(data)
maxDistance := 0
for _, reindeer := range reindeers {
distance := reindeer.distanceAtTime(time)
if distance > maxDistance {
maxDistance = distance
}
}
return maxDistance
}
func calculateMaxPoints(data []string, time int) int {
reindeers := parseReindeers(data)
for second := 1; second <= time; second++ {
maxDistance := 0
distances := make([]int, len(reindeers))
for idx := range reindeers {
distance := reindeers[idx].distanceAtTime(second)
distances[idx] = distance
if distance > maxDistance {
maxDistance = distance
}
}
for idx := range reindeers {
if distances[idx] == maxDistance {
reindeers[idx].Points++
}
}
}
maxPoints := 0
for idx := range reindeers {
if reindeers[idx].Points > maxPoints {
maxPoints = reindeers[idx].Points
}
}
return maxPoints
}
func PartOne(data []string) int {
return calculateMaxDistance(data, raceTime)
}
func PartTwo(data []string) int {
return calculateMaxPoints(data, raceTime)
}

View File

@@ -0,0 +1,24 @@
package dayfourteen
import "testing"
var testInput = []string{
"Comet can fly 14 km/s for 10 seconds, but then must rest for 127 seconds.",
"Dancer can fly 16 km/s for 11 seconds, but then must rest for 162 seconds.",
}
func TestPartOne(t *testing.T) {
expected := 1120
got := calculateMaxDistance(testInput, 1000)
if got != expected {
t.Errorf("calculateMaxDistance(testInput, 1000) = %d, want %d", got, expected)
}
}
func TestPartTwo(t *testing.T) {
expected := 689
got := calculateMaxPoints(testInput, 1000)
if got != expected {
t.Errorf("calculateMaxPoints(testInput, 1000) = %d, want %d", got, expected)
}
}

View File

@@ -64,14 +64,14 @@ func evaluateWire(wire string, instructions map[string]string) uint16 {
return evaluate(wire)
}
func PartOne(instructions map[string]string) int {
return int(evaluateWire("a", instructions))
func PartOne(data map[string]string) int {
return int(evaluateWire("a", data))
}
func PartTwo(instructions map[string]string) int {
signalA := PartOne(instructions)
instructionsCopy := make(map[string]string, len(instructions))
maps.Copy(instructionsCopy, instructions)
func PartTwo(data map[string]string) int {
signalA := PartOne(data)
instructionsCopy := make(map[string]string, len(data))
maps.Copy(instructionsCopy, data)
instructionsCopy["b"] = strconv.Itoa(signalA)
return int(evaluateWire("a", instructionsCopy))
}

View File

@@ -0,0 +1,141 @@
package daythirteen
import (
"advent-of-code/internal/registry"
"math"
"os"
"regexp"
"strconv"
"strings"
)
var inputPattern = regexp.MustCompile(`(\w+) would (gain|lose) (\d+) happiness units by sitting next to (\w+)\.?`)
func init() {
registry.Register("2015D13", ParseInput, PartOne, PartTwo)
}
func buildHappinessMap(data []string) map[string]map[string]int {
happinessMap := make(map[string]map[string]int)
for _, line := range data {
matches := inputPattern.FindStringSubmatch(line)
person := matches[1]
operation := matches[2]
value, _ := strconv.Atoi(matches[3])
neighbor := matches[4]
if happinessMap[person] == nil {
happinessMap[person] = make(map[string]int)
}
if operation == "gain" {
happinessMap[person][neighbor] = value
} else {
happinessMap[person][neighbor] = -value
}
}
return happinessMap
}
func getAllPeople(happinessMap map[string]map[string]int) []string {
people := make([]string, 0, len(happinessMap))
for person := range happinessMap {
people = append(people, person)
}
return people
}
func generatePermutations(items []string) [][]string {
if len(items) == 0 {
return [][]string{{}}
}
var result [][]string
for idx, item := range items {
remaining := make([]string, len(items)-1)
copy(remaining[:idx], items[:idx])
copy(remaining[idx:], items[idx+1:])
for _, permutation := range generatePermutations(remaining) {
result = append(result, append([]string{item}, permutation...))
}
}
return result
}
func calculateTotalHappiness(arrangement []string, happinessMap map[string]map[string]int) int {
totalHappiness := 0
arrangementLength := len(arrangement)
for idx := range arrangementLength {
currentPerson := arrangement[idx]
leftNeighbor := arrangement[(idx-1+arrangementLength)%arrangementLength]
rightNeighbor := arrangement[(idx+1)%arrangementLength]
totalHappiness += happinessMap[currentPerson][leftNeighbor]
totalHappiness += happinessMap[currentPerson][rightNeighbor]
}
return totalHappiness
}
func ParseInput(filepath string) []string {
content, _ := os.ReadFile(filepath)
return strings.Split(string(content), "\n")
}
func PartOne(data []string) int {
happinessMap := buildHappinessMap(data)
allPeople := getAllPeople(happinessMap)
fixedPerson := allPeople[0]
remainingPeople := allPeople[1:]
permutations := generatePermutations(remainingPeople)
maxHappiness := math.MinInt
arrangement := make([]string, len(allPeople))
arrangement[0] = fixedPerson
for _, perm := range permutations {
copy(arrangement[1:], perm)
totalHappiness := calculateTotalHappiness(arrangement, happinessMap)
if totalHappiness > maxHappiness {
maxHappiness = totalHappiness
}
}
return maxHappiness
}
func PartTwo(data []string) int {
happinessMap := buildHappinessMap(data)
allPeople := getAllPeople(happinessMap)
me := "Me"
happinessMap[me] = make(map[string]int)
for _, person := range allPeople {
happinessMap[person][me] = 0
happinessMap[me][person] = 0
}
allPeople = append(allPeople, me)
fixedPerson := allPeople[0]
remainingPeople := allPeople[1:]
permutations := generatePermutations(remainingPeople)
maxTotalChange := math.MinInt
arrangement := make([]string, len(allPeople))
arrangement[0] = fixedPerson
for _, permutation := range permutations {
copy(arrangement[1:], permutation)
totalHappiness := calculateTotalHappiness(arrangement, happinessMap)
if totalHappiness > maxTotalChange {
maxTotalChange = totalHappiness
}
}
return maxTotalChange
}

View File

@@ -0,0 +1,28 @@
package daythirteen
import "testing"
var testInput = []string{
"Alice would gain 54 happiness units by sitting next to Bob",
"Alice would lose 79 happiness units by sitting next to Carol",
"Alice would lose 2 happiness units by sitting next to David",
"Bob would gain 83 happiness units by sitting next to Alice",
"Bob would lose 7 happiness units by sitting next to Carol",
"Bob would lose 63 happiness units by sitting next to David",
"Carol would lose 62 happiness units by sitting next to Alice",
"Carol would gain 60 happiness units by sitting next to Bob",
"Carol would gain 55 happiness units by sitting next to David",
"David would gain 46 happiness units by sitting next to Alice",
"David would lose 7 happiness units by sitting next to Bob",
"David would gain 41 happiness units by sitting next to Carol",
}
func TestPartOne(t *testing.T) {
expected := 330
got := PartOne(testInput)
if got != expected {
t.Errorf("PartOne() = %d, want %d", got, expected)
}
}
// no test for part two

View File

@@ -5,11 +5,13 @@ import (
_ "advent-of-code/internal/2015/DayEleven"
_ "advent-of-code/internal/2015/DayFive"
_ "advent-of-code/internal/2015/DayFour"
_ "advent-of-code/internal/2015/DayFourteen"
_ "advent-of-code/internal/2015/DayNine"
_ "advent-of-code/internal/2015/DayOne"
_ "advent-of-code/internal/2015/DaySeven"
_ "advent-of-code/internal/2015/DaySix"
_ "advent-of-code/internal/2015/DayTen"
_ "advent-of-code/internal/2015/DayThirteen"
_ "advent-of-code/internal/2015/DayThree"
_ "advent-of-code/internal/2015/DayTwelve"
_ "advent-of-code/internal/2015/DayTwo"

View File

@@ -0,0 +1,73 @@
package dayfive
import (
"advent-of-code/internal/registry"
"crypto/md5"
"fmt"
"os"
"strconv"
)
func init() {
registry.Register("2016D5", ParseInput, PartOne, PartTwo)
}
func ParseInput(filepath string) string {
content, _ := os.ReadFile(filepath)
return string(content)
}
func PartOne(data string) int {
doorIDBytes := []byte(data)
doorIDLen := len(doorIDBytes)
input := make([]byte, doorIDLen, doorIDLen+20)
copy(input, doorIDBytes)
password := make([]byte, 0, 8)
index := 0
hexChars := "0123456789abcdef"
for len(password) < 8 {
indexBytes := strconv.AppendInt(input[:doorIDLen], int64(index), 10)
hash := md5.Sum(indexBytes)
if hash[0] == 0 && hash[1] == 0 && hash[2] < 16 {
char := hexChars[hash[2]&0x0F]
password = append(password, char)
}
index++
}
fmt.Println(string(password))
return 0
}
func PartTwo(data string) int {
doorIDBytes := []byte(data)
doorIDLen := len(doorIDBytes)
input := make([]byte, doorIDLen, doorIDLen+20)
copy(input, doorIDBytes)
password := make([]byte, 8)
filled := make([]bool, 8)
filledCount := 0
index := 0
hexChars := "0123456789abcdef"
for filledCount < 8 {
indexBytes := strconv.AppendInt(input[:doorIDLen], int64(index), 10)
hash := md5.Sum(indexBytes)
if hash[0] == 0 && hash[1] == 0 && hash[2] < 16 {
position := int(hash[2] & 0x0F)
if position < 8 && !filled[position] {
char := hexChars[hash[3]>>4]
password[position] = char
filled[position] = true
filledCount++
}
}
index++
}
fmt.Println(string(password))
return 0
}

View File

@@ -0,0 +1,58 @@
package dayfive
import (
"bytes"
"os"
"strings"
"testing"
)
var testInput = "abc"
func TestPartOne(t *testing.T) {
expected := "18f47a30"
oldStdout := os.Stdout
r, w, err := os.Pipe()
if err != nil {
t.Fatalf("Failed to create pipe: %v", err)
}
os.Stdout = w
PartOne(testInput)
_ = w.Close()
os.Stdout = oldStdout
var buffer bytes.Buffer
_, _ = buffer.ReadFrom(r)
got := strings.TrimSpace(buffer.String())
if got != expected {
t.Errorf("PartOne() printed %q, want %q", got, expected)
}
}
func TestPartTwo(t *testing.T) {
expected := "05ace8e3"
oldStdout := os.Stdout
r, w, err := os.Pipe()
if err != nil {
t.Fatalf("Failed to create pipe: %v", err)
}
os.Stdout = w
PartTwo(testInput)
_ = w.Close()
os.Stdout = oldStdout
var buffer bytes.Buffer
_, _ = buffer.ReadFrom(r)
got := strings.TrimSpace(buffer.String())
if got != expected {
t.Errorf("PartTwo() printed %q, want %q", got, expected)
}
}

View File

@@ -0,0 +1,119 @@
package dayfour
import (
"advent-of-code/internal/registry"
"os"
"regexp"
"sort"
"strconv"
"strings"
)
func init() {
registry.Register("2016D4", ParseInput, PartOne, PartTwo)
}
func ParseInput(filepath string) []string {
content, _ := os.ReadFile(filepath)
return strings.Split(string(content), "\n")
}
func isValidRoom(encryptedName string, expectedChecksum string) bool {
letterFrequency := [26]int{}
for _, character := range encryptedName {
if character >= 'a' && character <= 'z' {
letterFrequency[character-'a']++
}
}
type letterFrequencyPair struct {
letter rune
count int
}
letterFrequencyPairs := make([]letterFrequencyPair, 0, 26)
for index, frequency := range letterFrequency {
if frequency > 0 {
letterFrequencyPairs = append(letterFrequencyPairs, letterFrequencyPair{
letter: rune('a' + index),
count: frequency,
})
}
}
sort.Slice(letterFrequencyPairs, func(i, j int) bool {
if letterFrequencyPairs[i].count != letterFrequencyPairs[j].count {
return letterFrequencyPairs[i].count > letterFrequencyPairs[j].count
}
return letterFrequencyPairs[i].letter < letterFrequencyPairs[j].letter
})
if len(letterFrequencyPairs) < 5 {
return false
}
for index := range 5 {
if letterFrequencyPairs[index].letter != rune(expectedChecksum[index]) {
return false
}
}
return true
}
func decryptRoomName(encryptedName string, sectorID int) string {
result := strings.Builder{}
result.Grow(len(encryptedName))
shift := sectorID % 26
for _, char := range encryptedName {
if char == '-' {
result.WriteByte(' ')
} else if char >= 'a' && char <= 'z' {
shifted := ((int(char-'a') + shift) % 26) + 'a'
result.WriteByte(byte(shifted))
}
}
return result.String()
}
var roomPattern = regexp.MustCompile(`^(.+)-(\d+)(?:\[([a-z]{5})\])?$`)
func PartOne(data []string) int {
sum := 0
for _, line := range data {
if line == "" {
continue
}
matches := roomPattern.FindStringSubmatch(line)
if len(matches) < 4 || matches[3] == "" {
continue
}
encryptedName := matches[1]
sectorIdentifier, _ := strconv.Atoi(matches[2])
actualChecksum := matches[3]
if isValidRoom(encryptedName, actualChecksum) {
sum += sectorIdentifier
}
}
return sum
}
func PartTwo(data []string) int {
for _, line := range data {
matches := roomPattern.FindStringSubmatch(line)
encryptedName := matches[1]
sectorIdentifier, _ := strconv.Atoi(matches[2])
checksum := matches[3]
if !isValidRoom(encryptedName, checksum) {
continue
}
decrypted := decryptRoomName(encryptedName, sectorIdentifier)
if strings.Contains(decrypted, "northpole") {
return sectorIdentifier
}
}
return 0
}

View File

@@ -0,0 +1,29 @@
package dayfour
import (
"testing"
)
var testInput = []string{
"aaaaa-bbb-z-y-x-123[abxyz]",
"a-b-c-d-e-f-g-h-987[abcde]",
"not-a-real-room-404[oarel]",
"totally-real-room-200[decoy]",
"ijmockjgz-storage-5[gjoac]",
}
func TestPartOne(t *testing.T) {
expected := 1519
got := PartOne(testInput)
if got != expected {
t.Errorf("PartOne() = %d, want %d", got, expected)
}
}
func TestPartTwo(t *testing.T) {
expected := 5
got := PartTwo(testInput)
if got != expected {
t.Errorf("PartTwo() = %d, want %d", got, expected)
}
}

View File

@@ -0,0 +1,91 @@
package dayone
import (
"os"
"strconv"
"strings"
"advent-of-code/internal/registry"
)
func init() {
registry.Register("2016D1", ParseInput, PartOne, PartTwo)
}
type position struct {
x, y int
}
func abs(n int) int {
if n < 0 {
return -n
}
return n
}
func ParseInput(filepath string) []string {
content, _ := os.ReadFile(filepath)
parts := strings.Split(string(content), ",")
for i, p := range parts {
parts[i] = strings.TrimSpace(p)
}
return parts
}
func PartOne(data []string) int {
x, y := 0, 0
directions := [][]int{{0, 1}, {1, 0}, {0, -1}, {-1, 0}}
currentDirection := 0
for _, instruction := range data {
turn := instruction[0]
distance, _ := strconv.Atoi(instruction[1:])
switch turn {
case 'R':
currentDirection = (currentDirection + 1) % 4
case 'L':
currentDirection = (currentDirection + 3) % 4
}
x += directions[currentDirection][0] * distance
y += directions[currentDirection][1] * distance
}
return abs(x) + abs(y)
}
func PartTwo(data []string) int {
x, y := 0, 0
directions := [][]int{{0, 1}, {1, 0}, {0, -1}, {-1, 0}}
currentDirection := 0
visited := make(map[position]bool)
visited[position{0, 0}] = true
for _, instruction := range data {
turn := instruction[0]
distance, _ := strconv.Atoi(instruction[1:])
switch turn {
case 'R':
currentDirection = (currentDirection + 1) % 4
case 'L':
currentDirection = (currentDirection + 3) % 4
}
directionX := directions[currentDirection][0]
directionY := directions[currentDirection][1]
for range distance {
x += directionX
y += directionY
pos := position{x, y}
if visited[pos] {
return abs(x) + abs(y)
}
visited[pos] = true
}
}
return 0
}

View File

@@ -0,0 +1,47 @@
package dayone
import (
"testing"
)
func TestPartOne(t *testing.T) {
tests := []struct {
name string
input []string
expected int
}{
{
name: "Example 1",
input: []string{"R2", "L3"},
expected: 5,
},
{
name: "Example 2",
input: []string{"R2", "R2", "R2"},
expected: 2,
},
{
name: "Example 3",
input: []string{"R5", "L5", "R5", "R3"},
expected: 12,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
got := PartOne(tt.input)
if got != tt.expected {
t.Errorf("PartOne() = %d, want %d", got, tt.expected)
}
})
}
}
func TestPartTwo(t *testing.T) {
input := []string{"R8", "R4", "R4", "R8"}
expected := 4
got := PartTwo(input)
if got != expected {
t.Errorf("PartTwo() = %d, want %d", got, 4)
}
}

View File

@@ -0,0 +1,49 @@
package daythree
import (
"advent-of-code/internal/registry"
"fmt"
"os"
"strings"
)
func init() {
registry.Register("2016D3", ParseInput, PartOne, PartTwo)
}
func ParseInput(filepath string) [][3]int {
content, _ := os.ReadFile(filepath)
lines := strings.Split(string(content), "\n")
var result [][3]int
for _, line := range lines {
var a, b, c int
fmt.Sscanf(line, "%d %d %d", &a, &b, &c)
result = append(result, [3]int{a, b, c})
}
return result
}
func PartOne(data [][3]int) int {
count := 0
for _, triangle := range data {
a, b, c := triangle[0], triangle[1], triangle[2]
if a+b > c && a+c > b && b+c > a {
count++
}
}
return count
}
func PartTwo(data [][3]int) int {
count := 0
for idx := 0; idx < len(data)-2; idx += 3 {
for column := range 3 {
a, b, c := data[idx][column], data[idx+1][column], data[idx+2][column]
if a+b > c && a+c > b && b+c > a {
count++
}
}
}
return count
}

View File

@@ -0,0 +1,28 @@
package daythree
import "testing"
func TestPartOne(t *testing.T) {
input := [][3]int{{5, 10, 25}}
expected := 0
got := PartOne(input)
if got != expected {
t.Errorf("PartOne() = %d, want %d", got, expected)
}
}
func TestPartTwo(t *testing.T) {
input := [][3]int{
{101, 301, 501},
{102, 302, 502},
{103, 303, 503},
{201, 401, 601},
{202, 402, 602},
{203, 403, 603},
}
expected := 6
got := PartTwo(input)
if got != expected {
t.Errorf("PartTwo() = %d, want %d", got, expected)
}
}

View File

@@ -0,0 +1,101 @@
package daytwo
import (
"advent-of-code/internal/registry"
"fmt"
"os"
"strings"
)
func init() {
registry.Register("2016D2", ParseInput, PartOne, PartTwo)
}
func ParseInput(filepath string) []string {
content, _ := os.ReadFile(filepath)
return strings.Split(string(content), "\n")
}
func PartOne(instructions []string) int {
row, column := 1, 1
keypad := [3][3]int{
{1, 2, 3},
{4, 5, 6},
{7, 8, 9},
}
code := 0
for _, line := range instructions {
for _, move := range line {
switch move {
case 'U':
if row > 0 {
row--
}
case 'D':
if row < 2 {
row++
}
case 'L':
if column > 0 {
column--
}
case 'R':
if column < 2 {
column++
}
}
}
code = code*10 + keypad[row][column]
}
return code
}
func PartTwo(instructions []string) int {
row, column := 2, 0
keypad := [5][5]int{
{0, 0, 1, 0, 0},
{0, 2, 3, 4, 0},
{5, 6, 7, 8, 9},
{0, 10, 11, 12, 0},
{0, 0, 13, 0, 0},
}
isValidPosition := func(r, c int) bool {
return r >= 0 && r < 5 && c >= 0 && c < 5 && keypad[r][c] != 0
}
var codeBuilder strings.Builder
for _, line := range instructions {
for _, move := range line {
newRow, newColumn := row, column
switch move {
case 'U':
newRow--
case 'D':
newRow++
case 'L':
newColumn--
case 'R':
newColumn++
}
if isValidPosition(newRow, newColumn) {
row, column = newRow, newColumn
}
}
value := keypad[row][column]
if value < 10 {
codeBuilder.WriteByte(byte('0' + value))
} else {
codeBuilder.WriteByte(byte('A' + value - 10))
}
}
code := codeBuilder.String()
fmt.Println(code)
return 0
}

View File

@@ -0,0 +1,42 @@
package daytwo
import (
"bytes"
"os"
"strings"
"testing"
)
var testInput = []string{"ULL", "RRDDD", "LURDL", "UUUUD"}
func TestPartOne(t *testing.T) {
expected := 1985
got := PartOne(testInput)
if got != expected {
t.Errorf("PartOne() = %d, want %d", got, expected)
}
}
func TestPartTwo(t *testing.T) {
expected := "5DB3"
oldStdout := os.Stdout
r, w, err := os.Pipe()
if err != nil {
t.Fatalf("Failed to create pipe: %v", err)
}
os.Stdout = w
PartTwo(testInput)
_ = w.Close()
os.Stdout = oldStdout
var buffer bytes.Buffer
_, _ = buffer.ReadFrom(r)
got := strings.TrimSpace(buffer.String())
if got != expected {
t.Errorf("PartTwo() printed %q, want %q", got, expected)
}
}

View File

@@ -0,0 +1,9 @@
package year2016
import (
_ "advent-of-code/internal/2016/DayFive"
_ "advent-of-code/internal/2016/DayFour"
_ "advent-of-code/internal/2016/DayOne"
_ "advent-of-code/internal/2016/DayThree"
_ "advent-of-code/internal/2016/DayTwo"
)

View File

@@ -0,0 +1,64 @@
package dayfive
import (
"advent-of-code/internal/registry"
"os"
"unicode"
)
func init() {
registry.Register("2018D5", ParseInput, PartOne, PartTwo)
}
func ParseInput(filepath string) string {
content, _ := os.ReadFile(filepath)
return string(content)
}
func reactPolymer(data string) int {
stack := []rune{}
for _, char := range data {
if len(stack) == 0 {
stack = append(stack, char)
continue
}
top := stack[len(stack)-1]
if unicode.ToLower(top) == unicode.ToLower(char) && top != char {
stack = stack[:len(stack)-1]
} else {
stack = append(stack, char)
}
}
return len(stack)
}
func PartOne(data string) int {
return reactPolymer(data)
}
func PartTwo(data string) int {
unitTypes := make(map[rune]bool)
for _, char := range data {
unitTypes[unicode.ToLower(char)] = true
}
shortestPolymerLength := len(data)
for unitType := range unitTypes {
filtered := make([]rune, 0, len(data))
for _, char := range data {
if unicode.ToLower(char) != unitType {
filtered = append(filtered, char)
}
}
length := reactPolymer(string(filtered))
if length < shortestPolymerLength {
shortestPolymerLength = length
}
}
return shortestPolymerLength
}

View File

@@ -0,0 +1,21 @@
package dayfive
import "testing"
var testInput = "dabAcCaCBAcCcaDA"
func TestPartOne(t *testing.T) {
expected := 10
got := PartOne(testInput)
if got != expected {
t.Errorf("PartOne() = %d, want %d", got, expected)
}
}
func TestPartTwo(t *testing.T) {
expected := 4
got := PartTwo(testInput)
if got != expected {
t.Errorf("PartTwo() = %d, want %d", got, expected)
}
}

View File

@@ -0,0 +1,133 @@
package dayfour
import (
"os"
"regexp"
"slices"
"strconv"
"strings"
"time"
"advent-of-code/internal/registry"
)
var (
guardRegex = regexp.MustCompile(`Guard #(\d+) begins shift`)
timeLayout = "2006-01-02 15:04"
)
func init() {
registry.Register("2018D4", ParseInput, PartOne, PartTwo)
}
func ParseInput(filepath string) []string {
content, _ := os.ReadFile(filepath)
return strings.Split(string(content), "\n")
}
type record struct {
timestamp time.Time
action string
guardID int
}
func PartOne(data []string) int {
records := make([]record, 0, len(data))
for _, line := range data {
timeStr, action, _ := strings.Cut(line[1:], "] ")
timestamp, _ := time.Parse(timeLayout, timeStr)
guardID := -1
if matches := guardRegex.FindStringSubmatch(action); matches != nil {
guardID, _ = strconv.Atoi(matches[1])
}
records = append(records, record{timestamp, action, guardID})
}
slices.SortFunc(records, func(a, b record) int {
return a.timestamp.Compare(b.timestamp)
})
guardSleepMinutes := make(map[int]int)
guardMinuteCount := make(map[int]map[int]int)
currentGuard := -1
for i := range records {
if records[i].guardID != -1 {
currentGuard = records[i].guardID
if guardMinuteCount[currentGuard] == nil {
guardMinuteCount[currentGuard] = make(map[int]int)
}
}
if records[i].action == "falls asleep" && i+1 < len(records) {
start, end := records[i].timestamp.Minute(), records[i+1].timestamp.Minute()
guardSleepMinutes[currentGuard] += end - start
for m := start; m < end; m++ {
guardMinuteCount[currentGuard][m]++
}
}
}
maxGuard, maxMinutes := -1, 0
for id, minutes := range guardSleepMinutes {
if minutes > maxMinutes {
maxGuard, maxMinutes = id, minutes
}
}
maxMinute, maxCount := -1, 0
for m, count := range guardMinuteCount[maxGuard] {
if count > maxCount {
maxMinute, maxCount = m, count
}
}
return maxGuard * maxMinute
}
func PartTwo(data []string) int {
records := make([]record, 0, len(data))
for _, line := range data {
timeStr, action, _ := strings.Cut(line[1:], "] ")
timestamp, _ := time.Parse(timeLayout, timeStr)
guardID := -1
if matches := guardRegex.FindStringSubmatch(action); matches != nil {
guardID, _ = strconv.Atoi(matches[1])
}
records = append(records, record{timestamp, action, guardID})
}
slices.SortFunc(records, func(a, b record) int {
return a.timestamp.Compare(b.timestamp)
})
guardMinuteCount := make(map[int]map[int]int)
currentGuard := -1
for idx := range records {
if records[idx].guardID != -1 {
currentGuard = records[idx].guardID
if guardMinuteCount[currentGuard] == nil {
guardMinuteCount[currentGuard] = make(map[int]int)
}
}
if records[idx].action == "falls asleep" && idx+1 < len(records) {
start, end := records[idx].timestamp.Minute(), records[idx+1].timestamp.Minute()
for m := start; m < end; m++ {
guardMinuteCount[currentGuard][m]++
}
}
}
maxGuard, maxMinute, maxCount := -1, -1, 0
for guardID, minuteCounts := range guardMinuteCount {
for minute, count := range minuteCounts {
if count > maxCount {
maxGuard, maxMinute, maxCount = guardID, minute, count
}
}
}
return maxGuard * maxMinute
}

View File

@@ -0,0 +1,39 @@
package dayfour
import "testing"
var testInput = []string{
"[1518-11-01 00:00] Guard #10 begins shift",
"[1518-11-01 00:05] falls asleep",
"[1518-11-01 00:25] wakes up",
"[1518-11-01 00:30] falls asleep",
"[1518-11-01 00:55] wakes up",
"[1518-11-01 23:58] Guard #99 begins shift",
"[1518-11-02 00:40] falls asleep",
"[1518-11-02 00:50] wakes up",
"[1518-11-03 00:05] Guard #10 begins shift",
"[1518-11-03 00:24] falls asleep",
"[1518-11-03 00:29] wakes up",
"[1518-11-04 00:02] Guard #99 begins shift",
"[1518-11-04 00:36] falls asleep",
"[1518-11-04 00:46] wakes up",
"[1518-11-05 00:03] Guard #99 begins shift",
"[1518-11-05 00:45] falls asleep",
"[1518-11-05 00:55] wakes up",
}
func TestPartOne(t *testing.T) {
expected := 240
got := PartOne(testInput)
if got != expected {
t.Errorf("PartOne() = %d, want %d", got, expected)
}
}
func TestPartTwo(t *testing.T) {
expected := 4455
got := PartTwo(testInput)
if got != expected {
t.Errorf("PartTwo() = %d, want %d", got, expected)
}
}

View File

@@ -1,6 +1,8 @@
package year2018
import (
_ "advent-of-code/internal/2018/DayFive"
_ "advent-of-code/internal/2018/DayFour"
_ "advent-of-code/internal/2018/DayOne"
_ "advent-of-code/internal/2018/DayThree"
_ "advent-of-code/internal/2018/DayTwo"

View File

@@ -0,0 +1,155 @@
package dayfour
import (
"os"
"strconv"
"strings"
"advent-of-code/internal/registry"
)
const boardSize = 5
func init() {
registry.Register("2021D4", ParseInput, PartOne, PartTwo)
}
func ParseInput(filepath string) []string {
content, _ := os.ReadFile(filepath)
return strings.Split(strings.TrimSpace(string(content)), "\n")
}
type board struct {
numbers [boardSize][boardSize]int
positionMap map[int][2]int
rowCounts [boardSize]int
columnCounts [boardSize]int
marked map[int]bool
won bool
}
func newBoard() board {
return board{
positionMap: make(map[int][2]int, boardSize*boardSize),
marked: make(map[int]bool),
}
}
func parseBoards(lines []string) []board {
var boards []board
current := newBoard()
row := 0
for _, line := range lines {
line = strings.TrimSpace(line)
if line == "" {
if row == boardSize {
boards = append(boards, current)
current = newBoard()
row = 0
}
continue
}
fields := strings.Fields(line)
for column, field := range fields {
number, _ := strconv.Atoi(field)
current.numbers[row][column] = number
current.positionMap[number] = [2]int{row, column}
}
row++
}
if row == boardSize {
boards = append(boards, current)
}
return boards
}
func (b *board) mark(number int) bool {
if b.won {
return false
}
position, exists := b.positionMap[number]
if !exists {
return false
}
b.marked[number] = true
row, column := position[0], position[1]
b.rowCounts[row]++
b.columnCounts[column]++
if b.rowCounts[row] == boardSize || b.columnCounts[column] == boardSize {
b.won = true
return true
}
return false
}
func (b *board) sumUnmarked() int {
sum := 0
for row := range boardSize {
for column := range boardSize {
number := b.numbers[row][column]
if !b.marked[number] {
sum += number
}
}
}
return sum
}
func parseNumbers(line string) []int {
numbersStr := strings.Split(line, ",")
numbers := make([]int, 0, len(numbersStr))
for _, numStr := range numbersStr {
num, _ := strconv.Atoi(numStr)
numbers = append(numbers, num)
}
return numbers
}
func PartOne(data []string) int {
numbers := parseNumbers(data[0])
boards := parseBoards(data[1:])
for _, number := range numbers {
for idx := range boards {
if boards[idx].mark(number) {
return boards[idx].sumUnmarked() * number
}
}
}
return 0
}
func PartTwo(data []string) int {
numbers := parseNumbers(data[0])
boards := parseBoards(data[1:])
wonCount := 0
totalBoards := len(boards)
var lastWinner *board
var lastNumber int
for _, number := range numbers {
for idx := range boards {
if boards[idx].mark(number) {
wonCount++
lastWinner = &boards[idx]
lastNumber = number
if wonCount == totalBoards {
return lastWinner.sumUnmarked() * lastNumber
}
}
}
}
return 0
}

View File

@@ -0,0 +1,41 @@
package dayfour
import "testing"
var testInput = []string{
"7,4,9,5,11,17,23,2,0,14,21,24,10,16,13,6,15,25,12,22,18,20,8,19,3,26,1",
"",
"22 13 17 11 0",
" 8 2 23 4 24",
"21 9 14 16 7",
" 6 10 3 18 5",
" 1 12 20 15 19",
"",
" 3 15 0 2 22",
" 9 18 13 17 5",
"19 8 7 25 23",
"20 11 10 24 4",
"14 21 16 12 6",
"",
"14 21 17 24 4",
"10 16 15 9 19",
"18 8 23 26 20",
"22 11 13 6 5",
" 2 0 12 3 7",
}
func TestPartOne(t *testing.T) {
expected := 4512
got := PartOne(testInput)
if got != expected {
t.Errorf("PartOne() = %d, want %d", got, expected)
}
}
func TestPartTwo(t *testing.T) {
expected := 1924
got := PartTwo(testInput)
if got != expected {
t.Errorf("PartTwo() = %d, want %d", got, expected)
}
}

View File

@@ -1,6 +1,7 @@
package year2021
import (
_ "advent-of-code/internal/2021/DayFour"
_ "advent-of-code/internal/2021/DayOne"
_ "advent-of-code/internal/2021/DayThree"
_ "advent-of-code/internal/2021/DayTwo"

View File

@@ -0,0 +1,54 @@
package dayfour
import (
"advent-of-code/internal/registry"
"fmt"
"os"
"strings"
)
func init() {
registry.Register("2022D4", ParseInput, PartOne, PartTwo)
}
func ParseInput(filepath string) []string {
content, _ := os.ReadFile(filepath)
return strings.Split(string(content), "\n")
}
func PartOne(data []string) int {
count := 0
for _, line := range data {
parts := strings.Split(line, ",")
var firstRangeStart, firstRangeEnd, secondRangeStart, secondRangeEnd int
fmt.Sscanf(parts[0], "%d-%d", &firstRangeStart, &firstRangeEnd)
fmt.Sscanf(parts[1], "%d-%d", &secondRangeStart, &secondRangeEnd)
minStart := min(firstRangeStart, secondRangeStart)
maxEnd := max(firstRangeEnd, secondRangeEnd)
if (minStart == firstRangeStart && maxEnd == firstRangeEnd) || (minStart == secondRangeStart && maxEnd == secondRangeEnd) {
count++
}
}
return count
}
func PartTwo(data []string) int {
count := 0
for _, line := range data {
parts := strings.Split(line, ",")
var firstRangeStart, firstRangeEnd, secondRangeStart, secondRangeEnd int
fmt.Sscanf(parts[0], "%d-%d", &firstRangeStart, &firstRangeEnd)
fmt.Sscanf(parts[1], "%d-%d", &secondRangeStart, &secondRangeEnd)
if firstRangeStart <= secondRangeEnd && secondRangeStart <= firstRangeEnd {
count++
}
}
return count
}

View File

@@ -0,0 +1,28 @@
package dayfour
import "testing"
var testInput = []string{
"2-4,6-8",
"2-3,4-5",
"5-7,7-9",
"2-8,3-7",
"6-6,4-6",
"2-6,4-8",
}
func TestPartOne(t *testing.T) {
expected := 2
got := PartOne(testInput)
if got != expected {
t.Errorf("PartOne() = %d, want %d", got, expected)
}
}
func TestPartTwo(t *testing.T) {
expected := 4
got := PartTwo(testInput)
if got != expected {
t.Errorf("PartTwo() = %d, want %d", got, expected)
}
}

View File

@@ -0,0 +1,87 @@
package daythree
import (
"advent-of-code/internal/registry"
"os"
"strings"
)
func init() {
registry.Register("2022D3", ParseInput, PartOne, PartTwo)
}
func buildItemSet(items string) map[rune]bool {
itemSet := make(map[rune]bool)
for _, item := range items {
itemSet[item] = true
}
return itemSet
}
func findCommonItem(itemSet map[rune]bool, items string) rune {
for _, item := range items {
if itemSet[item] {
return item
}
}
return 0
}
func findIntersection(itemSet map[rune]bool, items string) map[rune]bool {
intersection := make(map[rune]bool)
for _, item := range items {
if itemSet[item] {
intersection[item] = true
}
}
return intersection
}
func getItemPriority(item rune) int {
if item >= 'a' && item <= 'z' {
return int(item - 'a' + 1)
}
if item >= 'A' && item <= 'Z' {
return int(item - 'A' + 27)
}
return 0
}
func ParseInput(filepath string) []string {
content, _ := os.ReadFile(filepath)
return strings.Split(string(content), "\n")
}
func PartOne(data []string) int {
totalPriority := 0
for _, rucksack := range data {
compartmentSize := len(rucksack) / 2
firstCompartment := rucksack[:compartmentSize]
secondCompartment := rucksack[compartmentSize:]
firstCompartmentItems := buildItemSet(firstCompartment)
commonItem := findCommonItem(firstCompartmentItems, secondCompartment)
totalPriority += getItemPriority(commonItem)
}
return totalPriority
}
func PartTwo(data []string) int {
totalPriority := 0
for i := 0; i < len(data); i += 3 {
if i+2 >= len(data) {
break
}
firstRucksack := data[i]
secondRucksack := data[i+1]
thirdRucksack := data[i+2]
firstRucksackItems := buildItemSet(firstRucksack)
commonInFirstTwo := findIntersection(firstRucksackItems, secondRucksack)
badge := findCommonItem(commonInFirstTwo, thirdRucksack)
totalPriority += getItemPriority(badge)
}
return totalPriority
}

View File

@@ -0,0 +1,28 @@
package daythree
import "testing"
var testInput = []string{
"vJrwpWtwJgWrhcsFMMfFFhFp",
"jqHRNqRjqzjGDLGLrsFMfFZSrLrFZsSL",
"PmmdzqPrVvPwwTWBwg",
"wMqvLMZHhHMvwLHjbvcjnnSBnvTQFn",
"ttgJtRGJQctTZtZT",
"CrZsJsPPZsGzwwsLwLmpwMDw",
}
func TestPartOne(t *testing.T) {
expected := 157
got := PartOne(testInput)
if got != expected {
t.Errorf("PartOne() = %d, want %d", got, expected)
}
}
func TestPartTwo(t *testing.T) {
expected := 70
got := PartTwo(testInput)
if got != expected {
t.Errorf("PartTwo() = %d, want %d", got, expected)
}
}

View File

@@ -1,6 +1,8 @@
package year2022
import (
_ "advent-of-code/internal/2022/DayFour"
_ "advent-of-code/internal/2022/DayOne"
_ "advent-of-code/internal/2022/DayThree"
_ "advent-of-code/internal/2022/DayTwo"
)

View File

@@ -0,0 +1,210 @@
package dayeight
import (
"cmp"
"container/heap"
"os"
"slices"
"strconv"
"strings"
"advent-of-code/internal/registry"
)
func init() {
registry.Register("2025D8", ParseInput, PartOne, PartTwo)
}
type JunctionBox struct {
X, Y, Z int
}
type UnionFind struct {
parent []int
size []int
}
type Connection struct {
firstJunctionBox, secondJunctionBox int
squaredDistance int
}
type ConnectionHeap []Connection
func (h ConnectionHeap) Len() int { return len(h) }
func (h ConnectionHeap) Less(i, j int) bool { return h[i].squaredDistance > h[j].squaredDistance }
func (h ConnectionHeap) Swap(i, j int) { h[i], h[j] = h[j], h[i] }
func (h *ConnectionHeap) Push(x any) { *h = append(*h, x.(Connection)) }
func (h *ConnectionHeap) Pop() any {
old := *h
n := len(old)
x := old[n-1]
*h = old[0 : n-1]
return x
}
func NewUnionFind(count int) *UnionFind {
parent := make([]int, count)
size := make([]int, count)
for idx := range parent {
parent[idx] = idx
size[idx] = 1
}
return &UnionFind{parent: parent, size: size}
}
func (uf *UnionFind) Find(junctionBox int) int {
if uf.parent[junctionBox] != junctionBox {
uf.parent[junctionBox] = uf.Find(uf.parent[junctionBox])
}
return uf.parent[junctionBox]
}
func (uf *UnionFind) Union(junctionBox1, junctionBox2 int) (bool, int) {
root1 := uf.Find(junctionBox1)
root2 := uf.Find(junctionBox2)
if root1 == root2 {
return false, root1
}
if uf.size[root1] < uf.size[root2] {
root1, root2 = root2, root1
}
uf.parent[root2] = root1
uf.size[root1] += uf.size[root2]
return true, root1
}
func parseJunctionBoxes(data []string) []JunctionBox {
var junctionBoxes []JunctionBox
for _, line := range data {
parts := strings.Split(line, ",")
x, _ := strconv.Atoi(parts[0])
y, _ := strconv.Atoi(parts[1])
z, _ := strconv.Atoi(parts[2])
junctionBoxes = append(junctionBoxes, JunctionBox{X: x, Y: y, Z: z})
}
return junctionBoxes
}
func generateAllConnections(junctionBoxes []JunctionBox) []Connection {
junctionBoxCount := len(junctionBoxes)
connections := make([]Connection, 0, junctionBoxCount*(junctionBoxCount-1)/2)
for i := range junctionBoxCount {
for j := i + 1; j < junctionBoxCount; j++ {
dx := junctionBoxes[i].X - junctionBoxes[j].X
dy := junctionBoxes[i].Y - junctionBoxes[j].Y
dz := junctionBoxes[i].Z - junctionBoxes[j].Z
squaredDistance := dx*dx + dy*dy + dz*dz
connections = append(connections, Connection{
firstJunctionBox: i,
secondJunctionBox: j,
squaredDistance: squaredDistance,
})
}
}
slices.SortFunc(connections, func(a, b Connection) int {
return cmp.Compare(a.squaredDistance, b.squaredDistance)
})
return connections
}
func findKSmallestConnections(junctionBoxes []JunctionBox, k int) []Connection {
junctionBoxCount := len(junctionBoxes)
connectionHeap := make(ConnectionHeap, 0, k)
heap.Init(&connectionHeap)
for i := range junctionBoxCount {
for j := i + 1; j < junctionBoxCount; j++ {
dx := junctionBoxes[i].X - junctionBoxes[j].X
dy := junctionBoxes[i].Y - junctionBoxes[j].Y
dz := junctionBoxes[i].Z - junctionBoxes[j].Z
squaredDistance := dx*dx + dy*dy + dz*dz
connection := Connection{
firstJunctionBox: i,
secondJunctionBox: j,
squaredDistance: squaredDistance,
}
if len(connectionHeap) < k {
heap.Push(&connectionHeap, connection)
} else if connection.squaredDistance < connectionHeap[0].squaredDistance {
heap.Pop(&connectionHeap)
heap.Push(&connectionHeap, connection)
}
}
}
connections := make([]Connection, 0, len(connectionHeap))
for connectionHeap.Len() > 0 {
connections = append(connections, heap.Pop(&connectionHeap).(Connection))
}
slices.SortFunc(connections, func(a, b Connection) int {
return cmp.Compare(a.squaredDistance, b.squaredDistance)
})
return connections
}
func ParseInput(filepath string) []string {
content, _ := os.ReadFile(filepath)
return strings.Split(string(content), "\n")
}
func PartOne(data []string) int {
junctionBoxes := parseJunctionBoxes(data)
junctionBoxCount := len(junctionBoxes)
targetPairs := 1000
if junctionBoxCount <= 20 {
targetPairs = 10
}
connections := findKSmallestConnections(junctionBoxes, targetPairs)
uf := NewUnionFind(junctionBoxCount)
for _, connection := range connections {
uf.Union(connection.firstJunctionBox, connection.secondJunctionBox)
}
circuitSizes := make(map[int]int)
for idx := range junctionBoxes {
root := uf.Find(idx)
circuitSizes[root] = uf.size[root]
}
sizes := make([]int, 0, len(circuitSizes))
for _, size := range circuitSizes {
sizes = append(sizes, size)
}
slices.Sort(sizes)
slices.Reverse(sizes)
return sizes[0] * sizes[1] * sizes[2]
}
func PartTwo(data []string) int {
junctionBoxes := parseJunctionBoxes(data)
connections := generateAllConnections(junctionBoxes)
uf := NewUnionFind(len(junctionBoxes))
var lastConnection Connection
for _, connection := range connections {
merged, root := uf.Union(connection.firstJunctionBox, connection.secondJunctionBox)
if merged {
lastConnection = connection
if uf.size[root] == len(junctionBoxes) {
break
}
}
}
return junctionBoxes[lastConnection.firstJunctionBox].X * junctionBoxes[lastConnection.secondJunctionBox].X
}

View File

@@ -0,0 +1,42 @@
package dayeight
import "testing"
var testInput = []string{
"162,817,812",
"57,618,57",
"906,360,560",
"592,479,940",
"352,342,300",
"466,668,158",
"542,29,236",
"431,825,988",
"739,650,466",
"52,470,668",
"216,146,977",
"819,987,18",
"117,168,530",
"805,96,715",
"346,949,466",
"970,615,88",
"941,993,340",
"862,61,35",
"984,92,344",
"425,690,689",
}
func TestPartOne(t *testing.T) {
expected := 40
got := PartOne(testInput)
if got != expected {
t.Errorf("PartOne() = %d, want %d", got, expected)
}
}
func TestPartTwo(t *testing.T) {
expected := 25272
got := PartTwo(testInput)
if got != expected {
t.Errorf("PartTwo() = %d, want %d", got, expected)
}
}

View File

@@ -0,0 +1,125 @@
package dayfive
import (
"os"
"slices"
"sort"
"strconv"
"strings"
"advent-of-code/internal/registry"
)
type freshRange struct {
start int
end int
}
func init() {
registry.Register("2025D5", ParseInput, PartOne, PartTwo)
}
func ParseInput(filepath string) []string {
content, _ := os.ReadFile(filepath)
return strings.Split(string(content), "\n")
}
func PartOne(data []string) int {
var freshRanges []freshRange
var ingredientIDs []int
separatorFound := false
for _, line := range data {
if line == "" {
separatorFound = true
continue
}
if !separatorFound {
startStr, endStr, _ := strings.Cut(line, "-")
start, _ := strconv.Atoi(startStr)
end, _ := strconv.Atoi(endStr)
freshRanges = append(freshRanges, freshRange{start: start, end: end})
} else {
id, _ := strconv.Atoi(line)
ingredientIDs = append(ingredientIDs, id)
}
}
slices.SortFunc(freshRanges, func(a, b freshRange) int {
switch {
case a.start < b.start:
return -1
case a.start > b.start:
return 1
default:
return 0
}
})
freshCount := 0
for _, id := range ingredientIDs {
idx := sort.Search(len(freshRanges), func(idx int) bool {
return freshRanges[idx].start > id
})
for i := idx - 1; i >= 0 && freshRanges[i].start <= id; i-- {
if id <= freshRanges[i].end {
freshCount++
break
}
}
}
return freshCount
}
func PartTwo(data []string) int {
var freshRanges []freshRange
for _, line := range data {
if line == "" {
break
}
startStr, endStr, _ := strings.Cut(line, "-")
start, _ := strconv.Atoi(startStr)
end, _ := strconv.Atoi(endStr)
freshRanges = append(freshRanges, freshRange{start: start, end: end})
}
slices.SortFunc(freshRanges, func(a, b freshRange) int {
switch {
case a.start < b.start:
return -1
case a.start > b.start:
return 1
default:
return 0
}
})
var mergedRanges []freshRange
for _, r := range freshRanges {
if len(mergedRanges) == 0 {
mergedRanges = append(mergedRanges, r)
continue
}
lastRange := &mergedRanges[len(mergedRanges)-1]
if r.start <= lastRange.end+1 {
if r.end > lastRange.end {
lastRange.end = r.end
}
} else {
mergedRanges = append(mergedRanges, r)
}
}
totalFreshIDs := 0
for _, r := range mergedRanges {
totalFreshIDs += r.end - r.start + 1
}
return totalFreshIDs
}

View File

@@ -0,0 +1,33 @@
package dayfive
import "testing"
var testInput = []string{
"3-5",
"10-14",
"16-20",
"12-18",
"",
"1",
"5",
"8",
"11",
"17",
"32",
}
func TestPartOne(t *testing.T) {
expected := 3
got := PartOne(testInput)
if got != expected {
t.Errorf("PartOne() = %d, want %d", got, expected)
}
}
func TestPartTwo(t *testing.T) {
expected := 14
got := PartTwo(testInput)
if got != expected {
t.Errorf("PartTwo() = %d, want %d", got, expected)
}
}

View File

@@ -0,0 +1,234 @@
package daynine
import (
"advent-of-code/internal/registry"
"os"
"slices"
"strconv"
"strings"
)
func init() {
registry.Register("2025D9", ParseInput, PartOne, PartTwo)
}
type Point struct {
x, y int
}
func ParseInput(filepath string) []string {
content, _ := os.ReadFile(filepath)
return strings.Split(string(content), "\n")
}
func parsePoints(data []string) []Point {
points := make([]Point, 0, len(data))
for _, line := range data {
parts := strings.Split(line, ",")
x, _ := strconv.Atoi(parts[0])
y, _ := strconv.Atoi(parts[1])
points = append(points, Point{x: x, y: y})
}
return points
}
func abs(x int) int {
if x < 0 {
return -x
}
return x
}
func minMax(a, b int) (int, int) {
if a > b {
return b, a
}
return a, b
}
func compressCoordinates(points []Point) ([]int, []int, map[int]int, map[int]int) {
xs := make(map[int]bool)
ys := make(map[int]bool)
for _, point := range points {
xs[point.x] = true
ys[point.y] = true
}
sortedX := make([]int, 0, len(xs))
sortedY := make([]int, 0, len(ys))
for x := range xs {
sortedX = append(sortedX, x)
}
for y := range ys {
sortedY = append(sortedY, y)
}
slices.Sort(sortedX)
slices.Sort(sortedY)
mapX := make(map[int]int, len(sortedX))
mapY := make(map[int]int, len(sortedY))
for idx, x := range sortedX {
mapX[x] = 2 * idx
}
for idx, y := range sortedY {
mapY[y] = 2 * idx
}
return sortedX, sortedY, mapX, mapY
}
func drawBoundary(grid [][]bool, points []Point, mapX, mapY map[int]int) {
for idx := range points {
current, next := points[idx], points[(idx+1)%len(points)]
cx1, cy1 := mapX[current.x], mapY[current.y]
cx2, cy2 := mapX[next.x], mapY[next.y]
if cx1 == cx2 {
minY, maxY := minMax(cy1, cy2)
for y := minY; y <= maxY; y++ {
grid[cx1][y] = true
}
} else {
minX, maxX := minMax(cx1, cx2)
for x := minX; x <= maxX; x++ {
grid[x][cy1] = true
}
}
}
}
func scanLineFill(grid [][]bool, points []Point, mapX, mapY map[int]int, _, height int) {
type edge struct {
x, yMin, yMax int
}
edges := make([]edge, 0, len(points))
for idx := range points {
current, next := points[idx], points[(idx+1)%len(points)]
if current.x == next.x {
minY, maxY := minMax(mapY[current.y], mapY[next.y])
edges = append(edges, edge{mapX[current.x], minY, maxY})
}
}
for y := range height {
crossings := make([]int, 0, len(edges))
for _, e := range edges {
if e.yMin <= y && y < e.yMax {
crossings = append(crossings, e.x)
}
}
slices.Sort(crossings)
for i := 0; i < len(crossings)-1; i += 2 {
for x := crossings[i]; x <= crossings[i+1]; x++ {
grid[x][y] = true
}
}
}
}
func forceEmptyGaps(grid [][]bool, sortedX, sortedY []int, width, height int) {
for idx := 0; idx < len(sortedX)-1; idx++ {
if sortedX[idx+1] == sortedX[idx]+1 {
cx := 2*idx + 1
for y := range height {
grid[cx][y] = true
}
}
}
for idx := 0; idx < len(sortedY)-1; idx++ {
if sortedY[idx+1] == sortedY[idx]+1 {
cy := 2*idx + 1
for x := range width {
grid[x][cy] = true
}
}
}
}
func buildPrefixSum(grid [][]bool, width, height int) [][]int {
sum := make([][]int, width+1)
for idx := range sum {
sum[idx] = make([]int, height+1)
}
for i := range width {
for j := range height {
value := 0
if grid[i][j] {
value = 1
}
sum[i+1][j+1] = value + sum[i][j+1] + sum[i+1][j] - sum[i][j]
}
}
return sum
}
func getSum(sum [][]int, x1, y1, x2, y2 int) int {
return sum[x2+1][y2+1] - sum[x1][y2+1] - sum[x2+1][y1] + sum[x1][y1]
}
func PartOne(data []string) int {
points := parsePoints(data)
maxArea := 0
for i := range points {
for j := i + 1; j < len(points); j++ {
dx := abs(points[i].x - points[j].x)
dy := abs(points[i].y - points[j].y)
if area := (dx + 1) * (dy + 1); area > maxArea {
maxArea = area
}
}
}
return maxArea
}
func PartTwo(data []string) int {
points := parsePoints(data)
sortedX, sortedY, mapX, mapY := compressCoordinates(points)
width, height := 2*len(sortedX), 2*len(sortedY)
grid := make([][]bool, width)
for idx := range grid {
grid[idx] = make([]bool, height)
}
drawBoundary(grid, points, mapX, mapY)
scanLineFill(grid, points, mapX, mapY, width, height)
forceEmptyGaps(grid, sortedX, sortedY, width, height)
sum := buildPrefixSum(grid, width, height)
compressedPoints := make([]Point, len(points))
for idx, point := range points {
compressedPoints[idx] = Point{mapX[point.x], mapY[point.y]}
}
maxArea := 0
for i := range points {
for j := i + 1; j < len(points); j++ {
p1, p2 := points[i], points[j]
dx := abs(p1.x - p2.x)
dy := abs(p1.y - p2.y)
if dx == 0 || dy == 0 {
continue
}
area := (dx + 1) * (dy + 1)
if area <= maxArea {
continue
}
cx1, cy1 := compressedPoints[i].x, compressedPoints[i].y
cx2, cy2 := compressedPoints[j].x, compressedPoints[j].y
minCX, maxCX := minMax(cx1, cx2)
minCY, maxCY := minMax(cy1, cy2)
totalCells := (maxCX - minCX + 1) * (maxCY - minCY + 1)
if getSum(sum, minCX, minCY, maxCX, maxCY) == totalCells {
maxArea = area
}
}
}
return maxArea
}

View File

@@ -0,0 +1,30 @@
package daynine
import "testing"
var testInput = []string{
"7,1",
"11,1",
"11,7",
"9,7",
"9,5",
"2,5",
"2,3",
"7,3",
}
func TestPartOne(t *testing.T) {
expected := 50
got := PartOne(testInput)
if got != expected {
t.Errorf("PartOne() = %d, want %d", got, expected)
}
}
func TestPartTwo(t *testing.T) {
expected := 24
got := PartTwo(testInput)
if got != expected {
t.Errorf("PartTwo() = %d, want %d", got, expected)
}
}

View File

@@ -0,0 +1,106 @@
package dayseven
import (
"os"
"strings"
"advent-of-code/internal/registry"
)
func init() {
registry.Register("2025D7", ParseInput, PartOne, PartTwo)
}
type Position struct {
row int
column int
}
func ParseInput(filepath string) []string {
content, _ := os.ReadFile(filepath)
return strings.Split(string(content), "\n")
}
func findStart(data []string) (int, int) {
for row := range data {
if column := strings.IndexByte(data[row], 'S'); column != -1 {
return row, column
}
}
return -1, -1
}
func PartOne(data []string) int {
rows, columns := len(data), len(data[0])
startRow, startColumn := findStart(data)
queue := []Position{{startRow, startColumn}}
activated := make(map[Position]bool)
splits := 0
for len(queue) > 0 {
current := queue[0]
queue = queue[1:]
row := current.row + 1
column := current.column
for row < rows && data[row][column] != '^' {
row++
}
if row < rows {
splitPosition := Position{row, column}
if !activated[splitPosition] {
activated[splitPosition] = true
splits++
if column > 0 {
queue = append(queue, Position{row, column - 1})
}
if column < columns-1 {
queue = append(queue, Position{row, column + 1})
}
}
}
}
return splits
}
func PartTwo(input []string) int {
rows, columns := len(input), len(input[0])
startRow, startColumn := findStart(input)
cache := make(map[Position]int)
var countTimelines func(row, column int) int
countTimelines = func(row, column int) int {
position := Position{row, column}
if count, exists := cache[position]; exists {
return count
}
r, c := row+1, column
for r < rows && input[r][c] != '^' {
r++
}
if r == rows {
return 1
}
total := 0
if c > 0 {
total += countTimelines(r, c-1)
}
if c < columns-1 {
total += countTimelines(r, c+1)
}
cache[position] = total
return total
}
return countTimelines(startRow, startColumn)
}

View File

@@ -0,0 +1,38 @@
package dayseven
import "testing"
var testInput = []string{
".......S.......",
"...............",
".......^.......",
"...............",
"......^.^......",
"...............",
".....^.^.^.....",
"...............",
"....^.^...^....",
"...............",
"...^.^...^.^...",
"...............",
"..^...^.....^..",
"...............",
".^.^.^.^.^...^.",
"...............",
}
func TestPartOne(t *testing.T) {
expected := 21
got := PartOne(testInput)
if got != expected {
t.Errorf("PartOne() = %d, want %d", got, expected)
}
}
func TestPartTwo(t *testing.T) {
expected := 40
got := PartTwo(testInput)
if got != expected {
t.Errorf("PartTwo() = %d, want %d", got, expected)
}
}

View File

@@ -0,0 +1,174 @@
package daysix
import (
"os"
"strconv"
"strings"
"advent-of-code/internal/registry"
)
func init() {
registry.Register("2025D6", ParseInput, PartOne, PartTwo)
}
func ParseInput(filepath string) []string {
content, _ := os.ReadFile(filepath)
return strings.Split(strings.TrimRight(string(content), "\n"), "\n")
}
func transpose(lines []string) []string {
maxWidth := 0
for _, line := range lines {
if len(line) > maxWidth {
maxWidth = len(line)
}
}
transposed := make([]string, maxWidth)
for column := 0; column < maxWidth; column++ {
var builder strings.Builder
for _, line := range lines {
if column < len(line) {
builder.WriteByte(line[column])
} else {
builder.WriteByte(' ')
}
}
transposed[column] = builder.String()
}
return transposed
}
func isSpaceColumn(column string) bool {
return strings.TrimSpace(column) == ""
}
func extractRowFromColumns(transposed []string, row, startColumn, endColumn int) string {
var builder strings.Builder
for column := startColumn; column <= endColumn && column < len(transposed); column++ {
if row < len(transposed[column]) {
builder.WriteByte(transposed[column][row])
} else {
builder.WriteByte(' ')
}
}
return builder.String()
}
func extractNumbers(transposed []string, startColumn, endColumn, operationRow int) []int {
numbers := make([]int, 0)
for row := range operationRow {
rowStr := extractRowFromColumns(transposed, row, startColumn, endColumn)
trimmed := strings.TrimSpace(rowStr)
fields := strings.FieldsSeq(trimmed)
for field := range fields {
if number, err := strconv.Atoi(field); err == nil {
numbers = append(numbers, number)
}
}
}
return numbers
}
func extractNumberFromColumn(column string, operationRow int) (int, bool) {
numberStr := strings.Map(func(r rune) rune {
if r >= '0' && r <= '9' {
return r
}
return -1
}, column[:min(operationRow, len(column))])
number, _ := strconv.Atoi(numberStr)
return number, true
}
func extractOperation(segment string) byte {
if idx := strings.IndexAny(segment, "+*"); idx != -1 {
return segment[idx]
}
return 0
}
func applyOperation(numbers []int, operation byte) int {
result := numbers[0]
if operation == '+' {
for idx := 1; idx < len(numbers); idx++ {
result += numbers[idx]
}
} else {
for idx := 1; idx < len(numbers); idx++ {
result *= numbers[idx]
}
}
return result
}
func PartOne(data []string) int {
operationRow := len(data) - 1
transposed := transpose(data)
total := 0
column := 0
for column < len(transposed) {
if isSpaceColumn(transposed[column]) {
column++
continue
}
startColumn := column
for column < len(transposed) && !isSpaceColumn(transposed[column]) {
column++
}
endColumn := column - 1
numbers := extractNumbers(transposed, startColumn, endColumn, operationRow)
operationRowStr := extractRowFromColumns(transposed, operationRow, startColumn, endColumn)
operation := extractOperation(operationRowStr)
if len(numbers) > 0 && operation != 0 {
result := applyOperation(numbers, operation)
total += result
}
}
return total
}
func PartTwo(data []string) int {
operationRow := len(data) - 1
transposed := transpose(data)
total := 0
column := len(transposed) - 1
for column >= 0 {
if isSpaceColumn(transposed[column]) {
column--
continue
}
endColumn := column
for column >= 0 && !isSpaceColumn(transposed[column]) {
column--
}
startColumn := column + 1
numbers := make([]int, 0)
for column := startColumn; column <= endColumn && column < len(transposed); column++ {
if number, ok := extractNumberFromColumn(transposed[column], operationRow); ok {
numbers = append(numbers, number)
}
}
operationRowStr := extractRowFromColumns(transposed, operationRow, startColumn, endColumn)
operation := extractOperation(operationRowStr)
if len(numbers) > 0 && operation != 0 {
result := applyOperation(numbers, operation)
total += result
}
}
return total
}

View File

@@ -0,0 +1,26 @@
package daysix
import "testing"
var testInput = []string{
"123 328 51 64 ",
" 45 64 387 23 ",
" 6 98 215 314",
"* + * + ",
}
func TestPartOne(t *testing.T) {
expected := 4277556
got := PartOne(testInput)
if got != expected {
t.Errorf("PartOne() = %d, want %d", got, expected)
}
}
func TestPartTwo(t *testing.T) {
expected := 3263827
got := PartTwo(testInput)
if got != expected {
t.Errorf("PartTwo() = %d, want %d", got, expected)
}
}

View File

@@ -0,0 +1,91 @@
package dayten
import (
"advent-of-code/internal/registry"
"os"
"regexp"
"strconv"
"strings"
)
func init() {
registry.Register("2025D10", ParseInput, PartOne, PartTwo)
}
func ParseInput(filepath string) []string {
content, _ := os.ReadFile(filepath)
return strings.Split(string(content), "\n")
}
func parseMachine(line string) ([]bool, [][]int) {
bracketRegex := regexp.MustCompile(`\[([.#]+)\]`)
parenthesisRegex := regexp.MustCompile(`\(([^)]+)\)`)
bracketMatch := bracketRegex.FindStringSubmatch(line)
targetString := bracketMatch[1]
target := make([]bool, len(targetString))
for idx, char := range targetString {
target[idx] = char == '#'
}
parenthesisMatches := parenthesisRegex.FindAllStringSubmatch(line, -1)
buttons := make([][]int, 0, len(parenthesisMatches))
for _, match := range parenthesisMatches {
buttonString := match[1]
parts := strings.Split(buttonString, ",")
button := make([]int, 0, len(parts))
for _, part := range parts {
light, _ := strconv.Atoi(part)
button = append(button, light)
}
buttons = append(buttons, button)
}
return target, buttons
}
func PartOne(data []string) int {
total := 0
for _, line := range data {
target, buttons := parseMachine(line)
numberOfLights := len(target)
numberOfButtons := len(buttons)
minimumPresses := numberOfButtons + 1
for mask := 0; mask < (1 << numberOfButtons); mask++ {
lights := make([]bool, numberOfLights)
presses := 0
for buttonIdx := range numberOfButtons {
if mask&(1<<buttonIdx) != 0 {
presses++
for _, light := range buttons[buttonIdx] {
if light < numberOfLights {
lights[light] = !lights[light]
}
}
}
}
matches := true
for idx := range numberOfLights {
if lights[idx] != target[idx] {
matches = false
break
}
}
if matches && presses < minimumPresses {
minimumPresses = presses
}
}
total += minimumPresses
}
return total
}
func PartTwo(data []string) int {
return 0
}

View File

@@ -0,0 +1,25 @@
package dayten
import "testing"
var testInput = []string{
"[.##.] (3) (1,3) (2) (2,3) (0,2) (0,1) {3,5,4,7}",
"[...#.] (0,2,3,4) (2,3) (0,4) (0,1,2) (1,2,3,4) {7,5,12,7,2}",
"[.###.#] (0,1,2,3,4) (0,3,4) (0,1,2,4,5) (1,2) {10,11,11,5,10,5}",
}
func TestPartOne(t *testing.T) {
expected := 7
got := PartOne(testInput)
if got != expected {
t.Errorf("PartOne() = %d, want %d", got, expected)
}
}
func TestPartTwo(t *testing.T) {
expected := 33
got := PartTwo(testInput)
if got != expected {
t.Errorf("PartTwo() = %d, want %d", got, expected)
}
}

View File

@@ -17,9 +17,9 @@ func ParseInput(filepath string) []string {
return strings.Split(strings.TrimSpace(string(content)), "\n")
}
func PartOne(input []string) int {
func PartOne(data []string) int {
sum := 0
for _, line := range input {
for _, line := range data {
for newRange := range strings.SplitSeq(line, ",") {
parts := strings.Split(newRange, "-")
start, _ := strconv.Atoi(parts[0])
@@ -38,9 +38,9 @@ func PartOne(input []string) int {
return sum
}
func PartTwo(input []string) int {
func PartTwo(data []string) int {
totalSum := 0
for _, line := range input {
for _, line := range data {
for rangeSpec := range strings.SplitSeq(line, ",") {
rangeStartStr, rangeEndStr, _ := strings.Cut(rangeSpec, "-")
rangeStart, _ := strconv.Atoi(rangeStartStr)

View File

@@ -1,8 +1,14 @@
package year2025
import (
_ "advent-of-code/internal/2025/DayEight"
_ "advent-of-code/internal/2025/DayFive"
_ "advent-of-code/internal/2025/DayFour"
_ "advent-of-code/internal/2025/DayNine"
_ "advent-of-code/internal/2025/DayOne"
_ "advent-of-code/internal/2025/DaySeven"
_ "advent-of-code/internal/2025/DaySix"
_ "advent-of-code/internal/2025/DayTen"
_ "advent-of-code/internal/2025/DayThree"
_ "advent-of-code/internal/2025/DayTwo"
)

View File

@@ -0,0 +1,9 @@
Vixen can fly 19 km/s for 7 seconds, but then must rest for 124 seconds.
Rudolph can fly 3 km/s for 15 seconds, but then must rest for 28 seconds.
Donner can fly 19 km/s for 9 seconds, but then must rest for 164 seconds.
Blitzen can fly 19 km/s for 9 seconds, but then must rest for 158 seconds.
Comet can fly 13 km/s for 7 seconds, but then must rest for 82 seconds.
Cupid can fly 25 km/s for 6 seconds, but then must rest for 145 seconds.
Dasher can fly 14 km/s for 3 seconds, but then must rest for 38 seconds.
Dancer can fly 3 km/s for 16 seconds, but then must rest for 37 seconds.
Prancer can fly 25 km/s for 6 seconds, but then must rest for 143 seconds.

View File

@@ -0,0 +1,56 @@
Alice would lose 57 happiness units by sitting next to Bob.
Alice would lose 62 happiness units by sitting next to Carol.
Alice would lose 75 happiness units by sitting next to David.
Alice would gain 71 happiness units by sitting next to Eric.
Alice would lose 22 happiness units by sitting next to Frank.
Alice would lose 23 happiness units by sitting next to George.
Alice would lose 76 happiness units by sitting next to Mallory.
Bob would lose 14 happiness units by sitting next to Alice.
Bob would gain 48 happiness units by sitting next to Carol.
Bob would gain 89 happiness units by sitting next to David.
Bob would gain 86 happiness units by sitting next to Eric.
Bob would lose 2 happiness units by sitting next to Frank.
Bob would gain 27 happiness units by sitting next to George.
Bob would gain 19 happiness units by sitting next to Mallory.
Carol would gain 37 happiness units by sitting next to Alice.
Carol would gain 45 happiness units by sitting next to Bob.
Carol would gain 24 happiness units by sitting next to David.
Carol would gain 5 happiness units by sitting next to Eric.
Carol would lose 68 happiness units by sitting next to Frank.
Carol would lose 25 happiness units by sitting next to George.
Carol would gain 30 happiness units by sitting next to Mallory.
David would lose 51 happiness units by sitting next to Alice.
David would gain 34 happiness units by sitting next to Bob.
David would gain 99 happiness units by sitting next to Carol.
David would gain 91 happiness units by sitting next to Eric.
David would lose 38 happiness units by sitting next to Frank.
David would gain 60 happiness units by sitting next to George.
David would lose 63 happiness units by sitting next to Mallory.
Eric would gain 23 happiness units by sitting next to Alice.
Eric would lose 69 happiness units by sitting next to Bob.
Eric would lose 33 happiness units by sitting next to Carol.
Eric would lose 47 happiness units by sitting next to David.
Eric would gain 75 happiness units by sitting next to Frank.
Eric would gain 82 happiness units by sitting next to George.
Eric would gain 13 happiness units by sitting next to Mallory.
Frank would gain 77 happiness units by sitting next to Alice.
Frank would gain 27 happiness units by sitting next to Bob.
Frank would lose 87 happiness units by sitting next to Carol.
Frank would gain 74 happiness units by sitting next to David.
Frank would lose 41 happiness units by sitting next to Eric.
Frank would lose 99 happiness units by sitting next to George.
Frank would gain 26 happiness units by sitting next to Mallory.
George would lose 63 happiness units by sitting next to Alice.
George would lose 51 happiness units by sitting next to Bob.
George would lose 60 happiness units by sitting next to Carol.
George would gain 30 happiness units by sitting next to David.
George would lose 100 happiness units by sitting next to Eric.
George would lose 63 happiness units by sitting next to Frank.
George would gain 57 happiness units by sitting next to Mallory.
Mallory would lose 71 happiness units by sitting next to Alice.
Mallory would lose 28 happiness units by sitting next to Bob.
Mallory would lose 10 happiness units by sitting next to Carol.
Mallory would gain 44 happiness units by sitting next to David.
Mallory would gain 22 happiness units by sitting next to Eric.
Mallory would gain 79 happiness units by sitting next to Frank.
Mallory would lose 16 happiness units by sitting next to George.

View File

@@ -0,0 +1 @@
reyedfim

View File

@@ -0,0 +1,953 @@
hqcfqwydw-fbqijys-whqii-huiuqhsx-660[qhiwf]
oxjmxdfkd-pzxsbkdbo-erkq-ixyloxqlov-913[xodkb]
bpvctixr-eaphixr-vgphh-gthtpgrw-947[smrkl]
iwcjapey-lhwopey-cnwoo-wymqeoepekj-992[eowpy]
mvhkvbdib-agjrzm-zibdizzmdib-317[bizdm]
excdklvo-lkcuod-dbksxsxq-146[ztwya]
ocipgvke-ejqeqncvg-octmgvkpi-908[prmku]
ktwbhtvmbox-vetllbybxw-vtgwr-vhtmbgz-tvjnblbmbhg-579[uvnyc]
dpmpsgvm-tdbwfohfs-ivou-tijqqjoh-389[emdac]
forwcoqhwjs-pibbm-igsf-hsghwbu-532[bhswf]
uzfqdzmfuazmx-nmewqf-ogefayqd-eqdhuoq-664[qfdem]
fnjyxwrinm-yujbcrl-pajbb-uxprbcrlb-277[brjcl]
aoubshwq-dzoghwq-ufogg-fsoqeiwgwhwcb-714[nkrmy]
pbeebfvir-rtt-fnyrf-975[frbet]
bnknqetk-qzaahs-trdq-sdrshmf-235[mtcqz]
odiih-ljwmh-lxjcrwp-orwjwlrwp-927[wjlrh]
sxdobxkdsyxkv-bkllsd-cobfsmoc-302[sbdko]
gzefmnxq-omzpk-ymzmsqyqzf-352[saomt]
tvsnigxmpi-gerhc-gsexmrk-qerekiqirx-854[eirgx]
ktfitzbgz-vtgwr-ftgtzxfxgm-267[tgfzx]
lxuxaodu-npp-orwjwlrwp-563[pwlor]
oazegyqd-sdmpq-pkq-xmnadmfadk-352[damqk]
wfruflnsl-gzssd-hzxytrjw-xjwanhj-177[bgxsp]
pbybeshy-qlr-qrfvta-455[tmios]
xmrrq-udskkaxawv-vqw-esfsywewfl-918[fdqsb]
vhehkyne-vahvhetmx-ltexl-917[uvhmy]
molgbzqfib-ciltbo-obzbfsfkd-393[htayl]
veqtekmrk-jpsaiv-wlmttmrk-256[ewyhq]
cvabijtm-lgm-apqxxqvo-512[dinjm]
oaxadrgx-nmewqf-qzsuzqqduzs-456[oevtg]
vehmsegxmzi-veffmx-wepiw-880[emfiv]
fruurvlyh-fubrjhqlf-fdqgb-frdwlqj-ghvljq-413[cgkzy]
otzkxtgzoutgr-inuiurgzk-sgxqkzotm-774[gtzko]
hwbba-eqpuwogt-itcfg-tcddkv-ujkrrkpi-154[ktbcd]
pynffvsvrq-cynfgvp-tenff-ynobengbel-377[fnevy]
aoubshwq-qcbgiasf-ufors-qvcqczohs-hsqvbczcum-558[hypcz]
kzeed-xhfajsljw-mzsy-knsfshnsl-281[nsmtd]
hwdtljsnh-hfsid-htfynsl-ijufwyrjsy-177[hsfjy]
excdklvo-zvkcdsm-qbkcc-psxkxmsxq-900[yznml]
diozmivodjivg-xviyt-pnzm-oznodib-239[iodvz]
nzcczdtgp-clmmte-lnbftdtetzy-743[tczde]
ejpanjwpekjwh-bhksan-iwngapejc-264[mgyfj]
ubhatstkwhnl-vhehkyne-xzz-wxiehrfxgm-917[hexkn]
vhkkhlbox-vtgwr-vhtmbgz-vnlmhfxk-lxkobvx-163[vhkxb]
irdgrxzex-tyftfcrkv-rthlzjzkzfe-373[rzfte]
cvabijtm-rmttgjmiv-lmdmtwxumvb-564[mtvbi]
hqfxxnknji-gfxpjy-xmnuunsl-151[brtjg]
odkasqzuo-dmnnuf-xasuefuoe-690[zyejx]
ixeumktoi-pkrrehkgt-sgtgmksktz-384[ktgei]
atyzghrk-igtje-iugzotm-uvkxgzouty-358[rmnqz]
ktwbhtvmbox-xzz-phkdlahi-865[nmsjb]
nzydfxpc-rclop-ojp-lylwjdtd-951[dlpcj]
vxupkizork-kmm-sgtgmksktz-280[yublv]
cvabijtm-kivlg-kwibqvo-twoqabqka-408[pgush]
hqcfqwydw-fbqijys-whqii-mehaixef-218[vzaur]
bpvctixr-rpcsn-rdpixcv-ldgzhwde-271[cifnu]
fnjyxwrinm-kjbtnc-lxwcjrwvnwc-199[nwcjr]
kzeed-idj-xmnuunsl-593[uazmr]
dsxxw-zyqicr-bcqgel-236[cqxbd]
gpewwmjmih-jpsaiv-wivzmgiw-230[iwmgj]
amjmpdsj-afmamjyrc-bcqgel-470[mszht]
eqpuwogt-itcfg-tcorcikpi-hnqygt-ujkrrkpi-596[nywzt]
pelbtravp-pnaql-erprvivat-533[parve]
yhwooebeaz-bhksan-wymqeoepekj-758[eoabh]
iruzfrtkzmv-upv-kirzezex-529[zpysg]
lxaaxbren-lqxlxujcn-mnenuxyvnwc-953[nxlac]
clxalrtyr-prr-nfdezxpc-dpcgtnp-457[prcdl]
sorozgxe-mxgjk-kmm-vaxingyotm-228[ugkxd]
vdzonmhydc-eknvdq-otqbgzrhmf-469[jnsrl]
gsvvswmzi-gspsvjyp-nippcfier-hizipstqirx-802[mvkcd]
xgvnndadzy-xviyt-xjvodib-yzkgjthzio-707[ncejo]
emixwvqhml-akidmvomz-pcvb-uizsmbqvo-538[mvibo]
dpotvnfs-hsbef-cbtlfu-usbjojoh-597[mnkij]
amjmpdsj-pyzzgr-jyzmpyrmpw-522[rxsqz]
fkqbokxqflkxi-yxphbq-ixyloxqlov-861[xjeyz]
vehmsegxmzi-tpewxmg-kveww-xvemrmrk-256[emvwx]
aietsrmdih-ikk-viwievgl-750[iekva]
zekvierkzferc-gcrjkzt-xirjj-nfibjyfg-763[jlbrc]
krxqjijamxdb-lqxlxujcn-lxwcjrwvnwc-537[opuqe]
dsxxw-zsllw-jyzmpyrmpw-652[hgyae]
mbiyqoxsm-mkxni-mykdsxq-kmaescsdsyx-770[otslp]
oqnidbshkd-vdzonmhydc-idkkxadzm-qdzbpthrhshnm-573[dhkmn]
jqwpihizlwca-moo-apqxxqvo-174[oqaip]
ahngzyzqcntr-azrjds-qdrdzqbg-573[zdqra]
bhksan-lqnydwoejc-472[gutvo]
jvsvymbs-zjhclunly-obua-zlycpjlz-175[ljyzb]
wrs-vhfuhw-hjj-ilqdqflqj-205[hjqfl]
egdytrixat-eaphixr-vgphh-ldgzhwde-661[duchs]
oxmeeuruqp-eomhqzsqd-tgzf-mocgueufuaz-196[uemoq]
ahngzyzqcntr-cxd-ehmzmbhmf-677[dqulm]
gspsvjyp-tpewxmg-kveww-wivzmgiw-568[ghntx]
pualyuhapvuhs-jvuzbtly-nyhkl-wshzapj-nyhzz-thyrlapun-149[kibhn]
nzcczdtgp-mfyyj-pyrtyppctyr-171[ypctr]
guahyncw-nij-mywlyn-vohhs-jolwbumcha-760[hnwya]
bgmxkgtmbhgte-xzz-vhgmtbgfxgm-397[gmbtx]
zixppfcfba-gbiivybxk-zrpqljbo-pbosfzb-653[psocz]
votubcmf-sbccju-nbslfujoh-935[bcufj]
gsrwyqiv-kvehi-nippcfier-irkmriivmrk-204[irkve]
jsvagsulanw-hdsklau-yjskk-ksdwk-632[ltnxs]
irdgrxzex-srjbvk-uvgcfpdvek-503[rvdeg]
krxqjijamxdb-ljwmh-bcxajpn-849[jxabm]
ajmrxjlcren-ljwmh-vjwjpnvnwc-407[yemcd]
ahngzyzqcntr-rbzudmfdq-gtms-btrsnldq-rdquhbd-755[dqrbn]
rzvkjiduzy-ezggtwzvi-hvmfzodib-291[yuzaf]
bwx-amkzmb-ntwemz-aitma-408[mabtw]
wihmogyl-aluxy-vumeyn-mufym-812[wymtu]
xjmmjndqz-nxvqzibzm-cpio-yzkgjthzio-889[mtsyf]
xmtjbzidx-ytz-nojmvbz-525[hyzbw]
bnmrtldq-fqzcd-tmrszakd-qzaahs-cdrhfm-131[wmcrn]
ftzgxmbv-wrx-kxtvjnblbmbhg-293[bxgmt]
gsvvswmzi-gerhc-wepiw-230[wegis]
pdjqhwlf-fdqgb-uhfhlylqj-699[fhlqd]
zsxyfgqj-kzeed-uqfxynh-lwfxx-ijuqtdrjsy-957[xfjqy]
rnqnyfwd-lwfij-uqfxynh-lwfxx-knsfshnsl-359[zbtyx]
wrs-vhfuhw-gbh-whfkqrorjb-231[hrwbf]
iuxxuyobk-hatte-rumoyzoiy-280[ouyit]
oqnidbshkd-bgnbnkzsd-nodqzshnmr-287[xnmzi]
atyzghrk-jek-jkyomt-540[anzom]
ibghopzs-pogysh-rsdofhasbh-818[hsobg]
wbhsfbohwcboz-foppwh-rsjszcdasbh-532[njpay]
excdklvo-mrymyvkdo-ecob-docdsxq-484[docek]
xgsvgmotm-yigbktmkx-natz-yzuxgmk-722[zwckh]
ajyqqgdgcb-afmamjyrc-qfgnngle-964[pzowt]
ugdgjxmd-jsttal-kzahhafy-138[cyirg]
irgyyolokj-iuxxuyobk-inuiurgzk-rumoyzoiy-982[sgadc]
qcbgiasf-ufors-gqojsbusf-vibh-qcbhowbasbh-870[njidq]
bkwzkqsxq-mrymyvkdo-wkxkqowoxd-146[hfdmy]
mybbycsfo-mrymyvkdo-bokmaescsdsyx-120[mlnky]
zuv-ykixkz-jek-ktmotkkxotm-852[mebdc]
dkqjcbctfqwu-lgnnadgcp-fgrctvogpv-648[cgdfn]
vehmsegxmzi-ikk-xvemrmrk-724[byndz]
upq-tfdsfu-cvooz-nbobhfnfou-155[xyskn]
gpewwmjmih-wgezirkiv-lyrx-hitevxqirx-360[ierwx]
rdggdhxkt-ytaanqtpc-bpcpvtbtci-817[mnjpk]
xlrypetn-clmmte-zapcletzyd-405[eltcm]
oxjmxdfkd-oxyyfq-abmxoqjbkq-861[nmhlv]
xjinphzm-bmvyz-kgvnodx-bmvnn-gjbdnodxn-395[nbdmv]
tpspahyf-nyhkl-jhukf-zopwwpun-799[phfkn]
jsvagsulanw-usfvq-mkwj-lwklafy-684[alswf]
ipvohghykvbz-kfl-ylhjxbpzpapvu-877[vmizu]
fydelmwp-awldetn-rcldd-afcnsldtyr-405[dlace]
gpbepvxcv-tvv-steadnbtci-609[vtbce]
tipfxvezt-upv-rthlzjzkzfe-581[ztefp]
bknsykmdsfo-oqq-vyqscdsmc-796[sqcdk]
ejpanjwpekjwh-zua-odellejc-914[ejalp]
ytu-xjhwjy-uqfxynh-lwfxx-jslnsjjwnsl-775[jxlns]
tinnm-aoubshwq-tzcksf-zopcfohcfm-376[cfohm]
xjgjmapg-ezggtwzvi-xpnojhzm-nzmqdxz-811[zgjmx]
tvsnigxmpi-fewoix-hiwmkr-386[tpuvk]
udglrdfwlyh-udeelw-vhuylfhv-829[ldhue]
luxciuwncpy-wbiwifuny-mniluay-786[iunwy]
ftzgxmbv-ktuubm-inkvatlbgz-865[btgkm]
xzwrmkbqtm-zijjqb-twoqabqka-486[erqyp]
diozmivodjivg-zbb-ncdkkdib-499[dibko]
kwvacumz-ozilm-kivlg-lmxizbumvb-980[milvz]
hwbba-dwppa-tgugctej-648[abgpt]
myxcewob-qbkno-bkllsd-cdybkqo-120[atghd]
zekvierkzferc-irsszk-uvjzxe-477[snqzi]
wlsiayhcw-dyffsvyuh-guleyncha-526[yhacf]
clotzlnetgp-ojp-opdtry-249[optlc]
dmybmsuzs-vqxxknqmz-eqdhuoqe-560[qmdes]
mtzslklcozfd-clmmte-dstaatyr-275[rtnyq]
cxy-bnlanc-lqxlxujcn-vjwjpnvnwc-823[ncjlx]
jshzzpmplk-zjhclunly-obua-bzly-alzapun-929[vcuxs]
yuxufmdk-sdmpq-ngzzk-oazfmuzyqzf-508[kghlv]
otzkxtgzoutgr-kmm-sgtgmksktz-722[tgkmz]
xgvnndadzy-xviyt-hvmfzodib-941[qbwmr]
qekrixmg-fyrrc-ywiv-xiwxmrk-230[ikjwl]
dpssptjwf-dpmpsgvm-qmbtujd-hsbtt-bobmztjt-337[tbmps]
tcfkqcevkxg-rncuvke-itcuu-ujkrrkpi-388[tabmn]
hjgbwuladw-tskcwl-xafsfuafy-528[afwls]
ygcrqpkbgf-ecpfa-gpikpggtkpi-154[gpkcf]
hqcfqwydw-sxesebqju-qdqboiyi-608[qbdei]
iehepwnu-cnwza-ydkykhwpa-iwngapejc-706[waenp]
jchipqat-ytaanqtpc-htgkxrth-115[mfnly]
pinovwgz-ezggtwzvi-xpnojhzm-nzmqdxz-967[yzosw]
yhwooebeaz-oywrajcan-dqjp-owhao-628[oaweh]
fhezusjybu-tou-skijecuh-iuhlysu-270[uhsei]
tcrjjzwzvu-upv-kirzezex-659[bdnty]
npmhcargjc-aylbw-amyrgle-qcptgacq-626[tkmzs]
ejpanjwpekjwh-ywjzu-ykwpejc-pnwejejc-160[lnqkc]
cybyjqho-whqtu-ryexqpqhteki-uww-tuiywd-946[qwyht]
cqwdujys-uww-bewyijysi-218[wyijs]
xekdwvwnzkqo-acc-pnwejejc-342[cewjk]
encuukhkgf-uecxgpigt-jwpv-ugtxkegu-440[kwmxr]
mbiyqoxsm-tovvilokx-cobfsmoc-224[doavb]
jvuzbtly-nyhkl-jhukf-zlycpjlz-591[jwxzi]
ncjzrpytn-clmmte-lylwjdtd-691[ltcdj]
enqvbnpgvir-enoovg-erprvivat-117[venrg]
gzefmnxq-ngzzk-ymdwqfuzs-612[zfgmn]
gokzyxsjon-cmkfoxqob-rexd-psxkxmsxq-302[zylnb]
aflwjfslagfsd-xdgowj-xafsfuafy-554[rgqmz]
ugdgjxmd-ujqgywfau-hdsklau-yjskk-kzahhafy-294[daelo]
mvkccspson-mrymyvkdo-nozkbdwoxd-718[odkmc]
egdytrixat-rwdrdapit-stepgibtci-817[ampoz]
qfmcusbwq-pogysh-fsgsofqv-194[gcthj]
wifilzof-qyujihctyx-luvvcn-qilembij-344[ilcfj]
gpbepvxcv-snt-apqdgpidgn-323[dnmyh]
kpvgtpcvkqpcn-gii-gpikpggtkpi-180[vyxnb]
ziuxioqvo-moo-mvoqvmmzqvo-512[omvqi]
fbebmtkr-zktwx-vtgwr-vhtmbgz-wxitkmfxgm-631[zilsp]
wihmogyl-aluxy-luvvcn-wihnuchgyhn-240[hlnuy]
eqnqthwn-lgnnadgcp-rwtejcukpi-726[jwvun]
hdgdovmt-bmvyz-ytz-yzqzgjkhzio-369[zydgh]
aflwjfslagfsd-usfvq-ugslafy-hmjuzskafy-138[vjmnt]
froruixo-iorzhu-uhdftxlvlwlrq-205[eslfx]
xekdwvwnzkqo-zua-skngodkl-368[kdnow]
xtwtelcj-rclop-clmmte-dpcgtnpd-353[jowtx]
lhkhszqx-fqzcd-cxd-nodqzshnmr-911[dhqzc]
fodvvlilhg-fdqgb-xvhu-whvwlqj-725[syfpw]
mtzslklcozfd-dnlgpyrpc-sfye-cpdplcns-873[zngtm]
rwcnawjcrxwju-yujbcrl-pajbb-jwjuhbrb-459[jbrwc]
hcd-gsqfsh-awzwhofm-ufors-suu-twbobqwbu-948[reunt]
pwcvonofrcig-pibbm-obozmgwg-688[zgthm]
vhehkyne-lvtoxgzxk-angm-wxiehrfxgm-345[xeghk]
ucynmlgxcb-njyqrga-epyqq-qrmpyec-938[mgnpj]
fruurvlyh-fdqgb-frdwlqj-uhvhdufk-699[fudhr]
hqfxxnknji-gzssd-yjhmstqtld-697[sdhjn]
qzoggwtwsr-rms-rsdofhasbh-402[gtlom]
gzefmnxq-ngzzk-dqeqmdot-638[yatsz]
rmn-qcapcr-njyqrga-epyqq-pcqcypaf-834[mpqie]
yknnkoera-ywjzu-zarahkliajp-186[yozsd]
clxalrtyr-eza-dpncpe-mldvpe-epnsyzwzrj-483[eplrz]
vkrhzxgbv-cxeeruxtg-vhgmtbgfxgm-137[fsxoz]
ymszqfuo-bxmefuo-sdmee-mzmxkeue-898[ndgcf]
dmbttjgjfe-sbccju-bdrvjtjujpo-649[vkijs]
wifilzof-wbiwifuny-guleyncha-136[ifwln]
oxmeeuruqp-vqxxknqmz-abqdmfuaze-196[baztd]
tinnm-qfmcusbwq-pogysh-gvwddwbu-636[aryhp]
lxaaxbren-ouxfna-bnaerlnb-693[anbxe]
nglmtuex-xzz-mktbgbgz-397[zqyrt]
xlrypetn-mfyyj-pyrtyppctyr-223[yprtc]
fodvvlilhg-fdqgb-vklsslqj-127[lvdfg]
ikhcxvmbex-lvtoxgzxk-angm-ehzblmbvl-761[xblmv]
fkqbokxqflkxi-ciltbo-qoxfkfkd-211[kfoqx]
lujbbrornm-bljenwpna-qdwc-fxatbqxy-589[bnajl]
eqpuwogt-itcfg-tcddkv-vgejpqnqia-258[besga]
lnkfaypeha-ydkykhwpa-zaoecj-108[zamyw]
lhkhszqx-fqzcd-atmmx-lzqjdshmf-859[hmqzd]
aflwjfslagfsd-tskcwl-vwhsjlewfl-190[xevmq]
pbafhzre-tenqr-wryylorna-fuvccvat-507[racef]
jvsvymbs-ibuuf-yljlpcpun-773[ubjlp]
fab-eqodqf-rxaiqd-etubbuzs-612[bqade]
cxy-bnlanc-ljwmh-nwprwnnarwp-251[nwacl]
hdgdovmt-bmvyz-pinovwgz-ytz-omvdidib-239[qfmcj]
wsvsdkbi-qbkno-mkxni-mykdsxq-bokmaescsdsyx-328[skbdm]
njmjubsz-hsbef-gmpxfs-tijqqjoh-727[ykelf]
foadouwbu-qobrm-oqeiwgwhwcb-142[owbqu]
cvabijtm-kivlg-ewzsapwx-538[posuz]
xgsvgmotm-igtje-gtgreyoy-696[gtemo]
oaddaeuhq-ngzzk-efadmsq-612[adeqz]
zgmfyxypbmsq-pyzzgr-yaosgqgrgml-470[efsgy]
wihmogyl-aluxy-vumeyn-zchuhwcha-110[eisnw]
hafgnoyr-fpniratre-uhag-phfgbzre-freivpr-663[rfaeg]
jqwpihizlwca-zijjqb-ewzsapwx-174[ognyv]
uwtojhynqj-hfsid-htfynsl-ijajqturjsy-619[jhsty]
hqfxxnknji-kqtbjw-wjhjnansl-177[ctzqd]
upq-tfdsfu-dboez-dpbujoh-mphjtujdt-103[dujpt]
tfiifjzmv-jtrmvexvi-ylek-wzeretzex-919[kuzli]
ugjjgkanw-hdsklau-yjskk-vwkayf-840[omzwl]
ugdgjxmd-kusnwfywj-zmfl-ogjckzgh-840[gjdfk]
vehmsegxmzi-fewoix-hitevxqirx-308[eixhm]
yflexwxoalrp-bdd-absbilmjbkq-419[esuky]
kwzzwaqdm-rmttgjmiv-lmxizbumvb-330[mzbit]
htqtwkzq-hfsid-yjhmstqtld-593[thqds]
tinnm-qobrm-qcohwbu-difqvogwbu-740[boqim]
tipfxvezt-jtrmvexvi-ylek-nfibjyfg-659[fqnis]
lzfmdshb-atmmx-qdzbpthrhshnm-859[hmbds]
nij-mywlyn-mwupyhayl-bohn-qilembij-292[vwady]
jchipqat-hrpktcvtg-wjci-gthtpgrw-999[tcghp]
dyz-combod-oqq-mecdywob-cobfsmo-250[obcdm]
dkqjcbctfqwu-ecpfa-vgejpqnqia-310[crelp]
gsrwyqiv-kvehi-gerhc-stivexmsrw-646[slxzf]
hmsdqmzshnmzk-bgnbnkzsd-cdozqsldms-261[sdmzn]
tfejldvi-xiruv-srjbvk-uvmvcfgdvek-217[kfcmn]
wrs-vhfuhw-exqqb-dqdobvlv-751[qvbdh]
willimcpy-jfumncw-alumm-mufym-682[dsbwk]
etaqigpke-lgnnadgcp-ceswkukvkqp-856[fnltm]
diozmivodjivg-nxvqzibzm-cpio-gvwjmvojmt-603[vywzn]
oxjmxdfkd-oxyyfq-absbilmjbkq-809[bxdfj]
uqtqbizg-ozilm-moo-wxmzibqwva-564[indml]
rdchjbtg-vgpst-uadltg-gtprfjxhxixdc-323[czknl]
pybgmyargtc-amjmpdsj-njyqrga-epyqq-mncpyrgmlq-808[rzoqv]
sbqiiyvyut-sxesebqju-huiuqhsx-582[suiqb]
clxalrtyr-dnlgpyrpc-sfye-epnsyzwzrj-873[rylpc]
amlqskcp-epybc-cee-bcqgel-756[ceblp]
jrncbavmrq-pnaql-pbngvat-qrirybczrag-377[rabnq]
cebwrpgvyr-onfxrg-qrcnegzrag-221[rgcen]
forwcoqhwjs-tzcksf-rsjszcdasbh-792[scfhj]
ckgvutofkj-pkrrehkgt-jkvgxzsktz-696[wxbfz]
kzeed-uqfxynh-lwfxx-qtlnxynhx-255[xnefh]
vhkkhlbox-vtgwr-hixktmbhgl-683[hkbgl]
mrxivrexmsrep-hci-viwievgl-464[msqei]
nsyjwsfyntsfq-idj-htsyfnsrjsy-931[syfjn]
awzwhofm-ufors-qobrm-qcohwbu-aofyshwbu-272[owbfh]
ahngzyzqcntr-bzmcx-cdoknxldms-651[cnzdm]
nsyjwsfyntsfq-hfsid-wjfhvznxnynts-671[dqrws]
krxqjijamxdb-npp-uxprbcrlb-589[vutpy]
ahngzyzqcntr-azrjds-knfhrshbr-209[qnogp]
pejji-bkllsd-crszzsxq-458[xlhso]
qcffcgwjs-gqojsbusf-vibh-zcuwghwqg-480[njzmp]
ziuxioqvo-moo-amzdqkma-174[zeuba]
ujqgywfau-aflwjfslagfsd-vqw-kwjnauwk-398[wafju]
elrkdcdugrxv-fdqgb-orjlvwlfv-101[mhsyz]
kpvgtpcvkqpcn-tcddkv-qrgtcvkqpu-700[ptqjs]
jfifqxov-doxab-avb-xkxivpfp-107[xfvab]
lsyrkjkbnyec-mkxni-mykdsxq-kmaescsdsyx-978[mbynk]
ocipgvke-lgnnadgcp-wugt-vguvkpi-206[hugza]
hcd-gsqfsh-qvcqczohs-rsgwub-142[dhpmf]
lsyrkjkbnyec-oqq-ckvoc-822[ckoqy]
vhkkhlbox-utldxm-vnlmhfxk-lxkobvx-787[xklhv]
vkppo-cqwdujys-vbemuh-qdqboiyi-504[qbdio]
qjopwxha-ywjzu-zaoecj-654[jaowz]
njmjubsz-hsbef-dipdpmbuf-efqbsunfou-311[bfusd]
ktiaaqnqml-jiasmb-lmdmtwxumvb-694[yxlgt]
vrurcjah-pajmn-lqxlxujcn-fxatbqxy-511[ztgdk]
vagreangvbany-qlr-znexrgvat-325[yblnw]
lgh-kwujwl-wyy-jwsuimakalagf-996[gsubl]
apuut-xgvnndadzy-ezggtwzvi-zibdizzmdib-343[qlykv]
pxtihgbsxw-utldxm-kxlxtkva-787[xtkla]
mfklstdw-esyfwlau-usfvq-vwkayf-762[kljiy]
eqpuwogt-itcfg-hwbba-fag-fgrnqaogpv-232[gafbo]
qzoggwtwsr-rms-rsdzcmasbh-688[srgmw]
yhkpvhjapcl-ibuuf-jbzavtly-zlycpjl-955[skwvb]
gpewwmjmih-hci-gywxsqiv-wivzmgi-620[txcfj]
lahxpnwrl-npp-vjatncrwp-537[aisyo]
ckgvutofkj-hatte-aykx-zkyzotm-436[ntzbr]
iehepwnu-cnwza-lhwopey-cnwoo-ykjpwejiajp-628[wepjn]
fkqbokxqflkxi-yxphbq-obpbxoze-471[napmi]
etyyx-cxd-lzqjdshmf-261[inzys]
ftzgxmbv-utldxm-ftkdxmbgz-267[wqkjm]
jyfvnlupj-jhukf-jvhapun-klwsvftlua-903[yrgnq]
zsxyfgqj-jll-qfgtwfytwd-489[sazdc]
oxjmxdfkd-zxkav-zlxqfkd-rpbo-qbpqfkd-263[vauwt]
dsxxw-cee-bcnyprkclr-470[ghzni]
enzcntvat-fpniratre-uhag-jbexfubc-533[aentb]
froruixo-mhoobehdq-dqdobvlv-803[odbhq]
raphhxuxts-qphzti-bpcpvtbtci-115[pthbc]
jvsvymbs-jhukf-jvhapun-shivyhavyf-955[yabwx]
ykhknbqh-ywjzu-odellejc-498[ehjkl]
avw-zljyla-ihzrla-zlycpjlz-201[uvdxz]
wdjcvuvmyjpn-nxvqzibzm-cpio-hvivbzhzio-967[vizbc]
xgjougizobk-pkrrehkgt-ktmotkkxotm-150[gnkzc]
kyelcrga-aylbw-rcaflmjmew-808[wsmtg]
laffe-atyzghrk-igtje-jkyomt-462[taefg]
hqtyeqsjylu-uww-ijehqwu-608[quweh]
kzgwomvqk-kivlg-kcabwumz-amzdqkm-200[cdavq]
avw-zljyla-jhukf-shivyhavyf-305[ahvyf]
guahyncw-vumeyn-xypyfijgyhn-370[ynghu]
kwtwznct-jiasmb-zmikycqaqbqwv-564[wbjnt]
sorozgxe-mxgjk-hatte-vaxingyotm-228[enmvq]
hqtyeqsjylu-sxesebqju-bqrehqjeho-348[nxucm]
qzoggwtwsr-awzwhofm-ufors-tzcksf-rsdofhasbh-948[sfowh]
jfifqxov-doxab-mixpqfz-doxpp-qbzeklildv-185[rydoa]
gsvvswmzi-vehmsegxmzi-fyrrc-irkmriivmrk-204[imrvs]
dlhwvupglk-qlssfilhu-ylzlhyjo-721[lhsuy]
crwwv-zxkav-absbilmjbkq-679[bakvw]
xzwrmkbqtm-lgm-zmkmqdqvo-720[mqkzb]
eqnqthwn-ecpfa-eqcvkpi-qrgtcvkqpu-570[qcepk]
ftzgxmbv-utldxm-nlxk-mxlmbgz-891[mxlbg]
xqvwdeoh-gbh-ghyhorsphqw-387[hgoqw]
rdchjbtg-vgpst-uadltg-pcpanhxh-141[mtvxn]
sebehvkb-vbemuh-udwyduuhydw-140[ubdeh]
gpsxdprixkt-qphzti-stktadebtci-921[tipdk]
nij-mywlyn-dyffsvyuh-omyl-nymncha-214[obtqu]
rdggdhxkt-rpcsn-rdpixcv-bpgztixcv-843[cdgpr]
pdjqhwlf-iorzhu-uhdftxlvlwlrq-803[rtwsz]
tinnm-dzoghwq-ufogg-twbobqwbu-428[bgown]
etyyx-qzaahs-lzmzfdldms-781[cmnek]
willimcpy-dyffsvyuh-fuvilunils-448[sjytb]
dpotvnfs-hsbef-qmbtujd-hsbtt-ufdiopmphz-831[zmvga]
hdgdovmt-bmvyz-ytz-xpnojhzm-nzmqdxz-109[hzpfs]
ksodcbwnsr-qobrm-aobousasbh-324[bosar]
myvybpev-tovvilokx-kmaescsdsyx-380[vsyek]
nbhofujd-cbtlfu-tbmft-571[mkltr]
sedikcuh-whqtu-uww-jusxdebewo-764[uwedh]
jvsvymbs-jhukf-klclsvwtlua-825[jxhaq]
crwwv-mixpqfz-doxpp-jxohbqfkd-575[serbn]
fmsledevhsyw-hci-xiglrspskc-646[scehi]
xekdwvwnzkqo-ywjzu-oanreyao-576[dwrqm]
gzefmnxq-vqxxknqmz-pqbmdfyqzf-352[xuyzs]
bqvvu-zua-hkceopeyo-706[eouva]
ytu-xjhwjy-gfxpjy-btwpxmtu-151[bynhm]
npmhcargjc-hcjjwzcyl-bctcjmnkclr-886[cjhlm]
xlrypetn-dnlgpyrpc-sfye-dlwpd-119[znfjd]
ejpanjwpekjwh-ydkykhwpa-hkceopeyo-758[patzv]
lhkhszqx-fqzcd-eknvdq-rsnqzfd-287[qdzfh]
froruixo-fdqgb-orjlvwlfv-179[optcg]
jvsvymbs-jovjvshal-jbzavtly-zlycpjl-253[zcnfy]
avw-zljyla-ibuuf-ylzlhyjo-149[xtcfz]
bnmrtldq-fqzcd-bzmcx-bnzshmf-cdudknoldms-157[whdus]
sno-rdbqds-idkkxadzm-rsnqzfd-703[dsknq]
vkppo-sxesebqju-tuiywd-504[epsub]
ryexqpqhteki-zubboruqd-husuylydw-790[nimls]
vetllbybxw-lvtoxgzxk-angm-kxvxbobgz-995[xbglv]
rdchjbtg-vgpst-qphzti-gtrtxkxcv-817[mayne]
dzczkrip-xiruv-irdgrxzex-vxx-rthlzjzkzfe-503[xwhmg]
qcbgiasf-ufors-pogysh-sbuwbssfwbu-454[nshbt]
qcbgiasf-ufors-qobrm-qcohwbu-igsf-hsghwbu-142[bsfgh]
zgmfyxypbmsq-pyzzgr-amlryglkclr-392[yglmr]
myxcewob-qbkno-cmkfoxqob-rexd-vklybkdybi-146[wxnuy]
amlqskcp-epybc-afmamjyrc-pcacgtgle-418[campe]
muqfedyput-isqludwuh-xkdj-huqsgkyiyjyed-660[nbtda]
vkppo-sqdto-vydqdsydw-114[pzbiy]
ziuxioqvo-jcvvg-lmxtwgumvb-668[fnbjv]
rdchjbtg-vgpst-rwdrdapit-stepgibtci-271[tdgip]
zbytomdsvo-zvkcdsm-qbkcc-zebmrkcsxq-614[nwmol]
sbnqbhjoh-fhh-efqbsunfou-103[hjxvu]
vagreangvbany-ohaal-nanylfvf-273[zfytn]
wihmogyl-aluxy-dyffsvyuh-lyuwkocmcncih-760[efwrt]
irgyyolokj-inuiurgzk-ykxboiky-332[ikyog]
gntmfefwitzx-xhfajsljw-mzsy-fhvznxnynts-437[mkuja]
tpspahyf-nyhkl-yhiipa-zhslz-539[yzmib]
encuukhkgf-rncuvke-itcuu-nqikuvkeu-700[ukcen]
mybbycsfo-mkxni-oxqsxoobsxq-198[oxbsm]
kyelcrga-zsllw-kypicrgle-730[nvjmt]
rdggdhxkt-uadltg-stktadebtci-713[btson]
dpssptjwf-qmbtujd-hsbtt-usbjojoh-623[miqos]
tcfkqcevkxg-dcumgv-vgejpqnqia-336[cgqve]
fodvvlilhg-gbh-orjlvwlfv-699[eykml]
bxaxipgn-vgpst-eaphixr-vgphh-ejgrwphxcv-817[rsizj]
pualyuhapvuhs-ibuuf-jvuahputlua-305[hlzmu]
qekrixmg-nippcfier-gsrxemrqirx-646[xhnfm]
pdjqhwlf-plolwdub-judgh-fdqgb-ghsorbphqw-543[aiewf]
fruurvlyh-vfdyhqjhu-kxqw-fxvwrphu-vhuylfh-647[hufvr]
ftzgxmbv-utldxm-ftgtzxfxgm-891[txfgm]
htsxzrjw-lwfij-gfxpjy-btwpxmtu-359[jtwxf]
gpewwmjmih-jyddc-hci-vigimzmrk-932[imcdg]
yuxufmdk-sdmpq-qss-oazfmuzyqzf-378[fmqsu]
oxmeeuruqp-eomhqzsqd-tgzf-efadmsq-508[oxhfu]
qzoggwtwsr-xszzmpsob-hsqvbczcum-610[scyrz]
avw-zljyla-ibuuf-ayhpupun-981[ualpy]
zloolpfsb-oxyyfq-bkdfkbbofkd-471[untjs]
tvsnigxmpi-jpsaiv-erepcwmw-308[nwfcx]
jvuzbtly-nyhkl-qlssfilhu-mpuhujpun-929[ulhjn]
yknnkoera-ydkykhwpa-pnwejejc-290[setqd]
tcrjjzwzvu-gcrjkzt-xirjj-ljvi-kvjkzex-659[jzkrv]
gntmfefwitzx-hmthtqfyj-xytwflj-307[tsebr]
gspsvjyp-wgezirkiv-lyrx-pefsvexsvc-412[svepg]
ugfkmewj-yjsvw-xdgowj-jwuwanafy-944[hysdk]
sbnqbhjoh-qmbtujd-hsbtt-tijqqjoh-597[bzawy]
vetllbybxw-unggr-tgterlbl-631[mfwxo]
tipfxvezt-avccpsvre-tljkfdvi-jvimztv-139[vtice]
hvbizodx-wpiit-yzkvmohzio-603[ytsvn]
sno-rdbqds-eknvdq-nodqzshnmr-209[dnqso]
rtqlgevkng-dcumgv-rwtejcukpi-960[yhfsz]
ugjjgkanw-tmffq-ksdwk-606[bqdtn]
jyfvnlupj-jhukf-jvhapun-ylhjxbpzpapvu-981[ygxts]
kzeed-gzssd-ijufwyrjsy-203[sdejy]
chnylhuncihuf-jfumncw-alumm-uwkocmcncih-864[btkms]
qfmcusbwq-suu-ghcfous-922[btras]
bgmxkgtmbhgte-ietlmbv-zktll-xgzbgxxkbgz-215[isyml]
pwcvonofrcig-xszzmpsob-zopcfohcfm-506[avfiu]
iruzfrtkzmv-dzczkrip-xiruv-treup-tfrkzex-fgvirkzfej-633[rzfik]
mrxivrexmsrep-nippcfier-qerekiqirx-776[ombwt]
iwcjapey-ywjzu-ykwpejc-ykjpwejiajp-420[ztgqm]
joufsobujpobm-qmbtujd-hsbtt-sfbdrvjtjujpo-467[jbotu]
xst-wigvix-yrwxefpi-gerhc-hiwmkr-230[mylsd]
ytu-xjhwjy-ojqqdgjfs-xmnuunsl-931[mvbrl]
zovldbkfz-avb-jxkxdbjbkq-159[bkdjv]
qvbmzvibqwvit-ntwemz-amzdqkma-226[mqvza]
eadalsjq-yjsvw-xdgowj-ljsafafy-840[nqijl]
dszphfojd-tdbwfohfs-ivou-bdrvjtjujpo-233[ximod]
gsvvswmzi-tpewxmg-kveww-erepcwmw-308[wizmq]
ktwbhtvmbox-ktuubm-hixktmbhgl-657[hynsw]
iuruxlar-vrgyzoi-mxgyy-sgtgmksktz-488[ufytd]
nzydfxpc-rclop-awldetn-rcldd-nzyeltyxpye-379[pusht]
iehepwnu-cnwza-ynukcajey-lhwopey-cnwoo-pnwejejc-212[enwcj]
vcibutulxiom-jfumncw-alumm-ijyluncihm-214[muicl]
pyknyegle-aylbw-qyjcq-392[hzumy]
atyzghrk-xghhoz-cuxqynuv-436[cmdsl]
vcibutulxiom-jfumncw-alumm-jolwbumcha-682[dgfeu]
cybyjqho-whqtu-isqludwuh-xkdj-cqdqwucudj-946[qudch]
lejkrscv-jtrmvexvi-ylek-uvgrikdvek-893[vekri]
nvrgfezqvu-upv-jkfirxv-789[vfrue]
fnjyxwrinm-ljwmh-lxjcrwp-bjunb-173[ljyap]
gsrwyqiv-kvehi-qekrixmg-fyrrc-wepiw-360[tnixb]
gsvvswmzi-fyrrc-hitevxqirx-308[irvsx]
nglmtuex-ynssr-vahvhetmx-wxlbzg-267[xeghl]
qjopwxha-acc-ykjpwejiajp-524[gjqhn]
wrs-vhfuhw-mhoobehdq-dqdobvlv-803[pdlvm]
otzkxtgzoutgr-inuiurgzk-uvkxgzouty-878[modya]
gvcskirmg-fyrrc-xvemrmrk-568[rmcgk]
xqvwdeoh-hjj-ghsduwphqw-231[hwdjq]
sbejpbdujwf-cvooz-nbslfujoh-441[nwsha]
zixppfcfba-oxyyfq-ixyloxqlov-315[xfoyi]
bdavqofuxq-rxaiqd-pqhqxabyqzf-846[yzpfi]
vhglnfxk-zktwx-vetllbybxw-ktuubm-hixktmbhgl-501[bkltx]
tinnm-qobrm-qcohwbu-zcuwghwqg-584[ejnps]
rmn-qcapcr-kyelcrga-cee-bcqgel-730[cerag]
apwmeclga-djmucp-ylyjwqgq-756[acgjl]
pybgmyargtc-amlqskcp-epybc-zsllw-pcacgtgle-392[cglpa]
jxdkbqfz-avb-tlohpelm-783[blade]
npmhcargjc-bwc-pcqcypaf-808[phjds]
rdchjbtg-vgpst-qphzti-itrwcdadvn-843[zueyn]
votubcmf-qmbtujd-hsbtt-sfdfjwjoh-259[tbfjd]
ujoon-gpqqxi-advxhixrh-661[mlyen]
ykjoqian-cnwza-lhwopey-cnwoo-iwjwcaiajp-576[waoci]
gpewwmjmih-wgezirkiv-lyrx-xvemrmrk-386[mreiw]
gzefmnxq-ngzzk-pqhqxabyqzf-352[drqzm]
nwilwcejc-nwxxep-oanreyao-394[lqxwm]
hdgdovmt-bmvyz-zbb-gjbdnodxn-785[bdgmn]
gsrwyqiv-kvehi-aietsrmdih-gerhc-gsexmrk-viwievgl-672[bsytl]
rdchjbtg-vgpst-tvv-rdcipxcbtci-999[ctvbd]
joufsobujpobm-fhh-tbmft-389[mnyql]
fnjyxwrinm-mhn-anbnjalq-147[nmbzl]
wfummczcyx-yaa-guhuaygyhn-578[yaucg]
qfkkj-mfyyj-dpcgtnpd-457[dfjkp]
ncjzrpytn-mfyyj-wzrtdetnd-509[qnwdl]
sno-rdbqds-bnknqetk-idkkxadzm-bnmszhmldms-365[dkmns]
wkqxodsm-cmkfoxqob-rexd-vyqscdsmc-380[cdmoq]
dpssptjwf-tdbwfohfs-ivou-tbmft-233[lbdah]
dpssptjwf-dipdpmbuf-xpsltipq-285[pdsfi]
qyujihctyx-wuhxs-wiuncha-jolwbumcha-214[zlbuy]
oxmeeuruqp-pkq-iadwetab-716[eapqu]
wfummczcyx-ohmnuvfy-xsy-womnigyl-mylpcwy-214[ymcwf]
xmtjbzidx-ytz-ncdkkdib-525[wmfvr]
qekrixmg-jpsaiv-xiglrspskc-204[dwvst]
kwtwznct-zijjqb-mvoqvmmzqvo-356[qmnjk]
ltpedcxots-ytaanqtpc-rdcipxcbtci-999[lkmsv]
zovldbkfz-yrkkv-abmxoqjbkq-913[kboqv]
yhkpvhjapcl-wshzapj-nyhzz-jvuahputlua-279[cnmzy]
pdjqhwlf-edvnhw-whfkqrorjb-257[unmsk]
rgllk-bdavqofuxq-rxaiqd-iadwetab-664[mkeil]
wdjcvuvmyjpn-nxvqzibzm-cpio-nzmqdxzn-343[nzmvc]
xzwrmkbqtm-kpwkwtibm-nqvivkqvo-486[dcwog]
rdchjbtg-vgpst-rpcsn-rdpixcv-hidgpvt-765[stnfw]
buzahisl-lnn-thuhnltlua-955[oschg]
enzcntvat-ohaal-bcrengvbaf-793[anbce]
eqpuwogt-itcfg-uecxgpigt-jwpv-hkpcpekpi-362[pgcei]
avw-zljyla-qlssfilhu-dvyrzovw-175[lvasw]
iuruxlar-xgsvgmotm-inuiurgzk-zxgototm-982[mlnut]
tyepcyletzylw-prr-opalcexpye-925[boymz]
hqcfqwydw-rqiauj-huiuqhsx-556[abndo]
tcrjjzwzvu-vxx-kirzezex-841[zxejr]
qspkfdujmf-sbccju-sfdfjwjoh-285[ktqja]
vcibutulxiom-wbiwifuny-guleyncha-682[uzxms]
ejpanjwpekjwh-bqvvu-ywjzu-nayaerejc-628[jeawn]
kwvacumz-ozilm-kivlg-lmdmtwxumvb-330[mlvik]
kzgwomvqk-kwvacumz-ozilm-zijjqb-bziqvqvo-460[zqvik]
wfintfhynaj-wfggny-qfgtwfytwd-775[fwgnt]
tcfkqcevkxg-hnqygt-vgejpqnqia-622[qgcek]
yrwxefpi-nippcfier-wepiw-386[ipewf]
xjinphzm-bmvyz-zbb-omvdidib-109[bimzd]
qlm-pbzobq-ciltbo-abmilvjbkq-107[jvsxc]
tfcfiwlc-gcrjkzt-xirjj-tfekrzedvek-295[wjhqa]
nchhg-moo-lmdmtwxumvb-382[mhobc]
bknsykmdsfo-lkcuod-myxdksxwoxd-692[azknp]
jxdkbqfz-yrkkv-qoxfkfkd-211[kfdqx]
jlidywncfy-dyffsvyuh-lyuwkocmcncih-344[ycfdh]
iuruxlar-igtje-iugzotm-lotgtiotm-358[tigou]
foadouwbu-gqojsbusf-vibh-qighcasf-gsfjwqs-116[sfbgo]
ucynmlgxcb-aylbw-nspafyqgle-288[fswap]
amppmqgtc-aylbw-qfgnngle-808[galmn]
kfg-jvtivk-irsszk-jrcvj-659[jkvir]
xjinphzm-bmvyz-ytz-yzqzgjkhzio-681[ubzyj]
plolwdub-judgh-fdqgb-ilqdqflqj-491[dlqbf]
crwwv-yrkkv-bkdfkbbofkd-783[inhxy]
nuatmlmdpage-otaoaxmfq-pqhqxabyqzf-612[qvdxy]
pualyuhapvuhs-ibuuf-jbzavtly-zlycpjl-435[znegj]
eza-dpncpe-clmmte-lylwjdtd-509[delcm]
tfejldvi-xiruv-irsszk-uvgcfpdvek-659[rvaql]
pybgmyargtc-aylbw-qcptgacq-600[oscut]
kdijqrbu-vbemuh-qdqboiyi-972[biqdu]
irgyyolokj-vrgyzoi-mxgyy-jkvruesktz-644[ygkor]
rgllk-uzfqdzmfuazmx-otaoaxmfq-oazfmuzyqzf-560[zfamo]
iqmbazulqp-eomhqzsqd-tgzf-fqotzaxask-378[qmsxo]
oqnidbshkd-atmmx-kzanqzsnqx-703[vztcl]
vjpwncrl-lqxlxujcn-mnyjacvnwc-615[cnjlv]
bkzrrhehdc-cxd-bnmszhmldms-807[dhmbc]
kgjgrypw-epybc-zyqicr-bcnyprkclr-704[mzsty]
apuut-ezggtwzvi-yzqzgjkhzio-265[pmlri]
rflsjynh-hfsid-htfynsl-qtlnxynhx-567[cqbst]
zilqwikbqdm-lgm-nqvivkqvo-330[wmxzv]
lahxpnwrl-ouxfna-anlnrerwp-355[nzkvm]
veqtekmrk-ikk-tyvglewmrk-386[kemrt]
sgmtkzoi-pkrrehkgt-rumoyzoiy-514[zytsw]
yflexwxoalrp-oxyyfq-mrozexpfkd-341[xfoye]
bwx-amkzmb-kivlg-kwibqvo-xczkpiaqvo-434[lkqrz]
clxalrtyr-nsznzwlep-opdtry-145[nczlj]
bjfutsneji-jll-wjhjnansl-125[szrni]
bcfhvdczs-cpxsqh-ghcfous-324[chsfb]
aflwjfslagfsd-kusnwfywj-zmfl-ugflsafewfl-216[flswa]
gcfcnuls-aluxy-wuhxs-jolwbumcha-578[uclah]
pyknyegle-pybgmyargtc-aylbw-qfgnngle-470[gyeln]
oazegyqd-sdmpq-gzefmnxq-qss-geqd-fqefuzs-508[qesdf]
xjmmjndqz-mvwwdo-yzkvmohzio-551[ypzog]
zekvierkzferc-treup-uvgcfpdvek-789[stzno]
ejpanjwpekjwh-xqjju-odellejc-576[enmtc]
ltpedcxots-tvv-sthxvc-115[skptq]
jshzzpmplk-yhiipa-zavyhnl-981[tluns]
mvhkvbdib-agjrzm-yzqzgjkhzio-629[wcyms]
yhwooebeaz-acc-paydjkhkcu-316[acehk]
gzefmnxq-otaoaxmfq-emxqe-326[emqxa]
frqvxphu-judgh-udeelw-pdqdjhphqw-335[orhsy]
frqvxphu-judgh-gbh-uhfhlylqj-153[hufgj]
cjpibabsepvt-cvooz-fohjoffsjoh-623[emnjh]
yflexwxoalrp-zxkav-zlxqfkd-xkxivpfp-783[xfklp]
froruixo-hjj-zrunvkrs-777[synml]
jvuzbtly-nyhkl-jhukf-jvhapun-jvuahputlua-929[ndjmy]
kwzzwaqdm-kivlg-kwibqvo-nqvivkqvo-460[yzmsr]
ktiaaqnqml-zijjqb-apqxxqvo-798[qaijx]
hqfxxnknji-hfsid-wjhjnansl-931[nhjfi]
xjmmjndqz-wpiit-vxlpdndodji-941[dijmn]
ksodcbwnsr-rms-cdsfohwcbg-896[xvuol]
eza-dpncpe-tyepcyletzylw-nsznzwlep-nzyeltyxpye-847[xydvf]
emixwvqhml-jiasmb-ivitgaqa-928[iamqv]
etyyx-idkkxadzm-ehmzmbhmf-313[josnm]
lhkhszqx-fqzcd-bgnbnkzsd-qdzbpthrhshnm-911[bqzra]
dzczkrip-xiruv-upv-wzeretzex-945[icynm]
wihmogyl-aluxy-mwupyhayl-bohn-lymyulwb-266[nuraz]
kmjezxodgz-xcjxjgvoz-zibdizzmdib-239[yzkgs]
hqfxxnknji-wfggny-hzxytrjw-xjwanhj-593[jnxhw]
oknkvcta-itcfg-eqpuwogt-itcfg-ecpfa-eqcvkpi-ucngu-986[cgtef]
ykhknbqh-oywrajcan-dqjp-qoan-paopejc-810[ondma]
nwilwcejc-ywjzu-ykwpejc-naoawnyd-238[zjwsh]
dzczkrip-xiruv-sleep-rercpjzj-451[wykfr]
gpewwmjmih-nippcfier-qerekiqirx-178[ieprm]
bqvvu-oywrajcan-dqjp-wjwhuoeo-420[jowaq]
kzgwomvqk-xtiabqk-oziaa-bziqvqvo-148[qaiko]
fab-eqodqf-eomhqzsqd-tgzf-fdmuzuzs-820[fqzde]
lzfmdshb-dff-sqzhmhmf-755[fhmds]
bpvctixr-gpqqxi-sthxvc-297[xcipq]
xjgjmapg-kmjezxodgz-xcjxjgvoz-vivgtndn-915[jhigl]
pbybeshy-qlr-bcrengvbaf-715[jwrxz]
uqtqbizg-ozilm-kivlg-tijwzibwzg-902[lrepd]
excdklvo-zbytomdsvo-zvkcdsm-qbkcc-crszzsxq-614[rpnqm]
ucynmlgxcb-njyqrga-epyqq-kylyeckclr-418[yclqe]
hqtyeqsjylu-sxesebqju-mehaixef-556[eqshj]
chnylhuncihuf-wifilzof-jfumncw-alumm-uwkocmcncih-734[cufhi]
wyvqljapsl-ihzrla-zhslz-669[ncmjb]
jlidywncfy-wifilzof-vohhs-omyl-nymncha-578[yfhil]
jfifqxov-doxab-bdd-abpfdk-913[dbfao]
xjgjmapg-wpiit-gjbdnodxn-551[zvmhq]
dkqjcbctfqwu-tcfkqcevkxg-ecpfa-eqcvkpi-tgegkxkpi-414[ckeqf]
tmrszakd-idkkxadzm-lzmzfdldms-365[hwgsv]
nglmtuex-vtgwr-vhtmbgz-mxvaghehzr-215[tsfmz]
uiovmbqk-rmttgjmiv-bziqvqvo-252[vimqb]
iehepwnu-cnwza-fahhuxawj-oanreyao-680[mavot]
tvsnigxmpi-glsgspexi-gsrxemrqirx-100[xwqld]
qcbgiasf-ufors-rms-aobousasbh-818[sabof]
sgmtkzoi-hatte-xkykgxin-722[ktgix]
nglmtuex-xzz-tvjnblbmbhg-787[kopjm]
ikhcxvmbex-vtgwr-xgzbgxxkbgz-683[ncalt]
tbxmlkfwba-molgbzqfib-zxkav-pbosfzbp-419[bfzak]
gspsvjyp-fmsledevhsyw-tpewxmg-kveww-eguymwmxmsr-568[nihyt]
gvcskirmg-gerhc-jmrergmrk-672[lrzta]
xmrrq-uzgugdslw-jwsuimakalagf-502[agulm]
shoewudys-hqrryj-tulubefcudj-530[ixkdy]
mrxivrexmsrep-hci-wxsveki-230[miwqn]
tmrszakd-bgnbnkzsd-otqbgzrhmf-599[qjfny]
rwcnawjcrxwju-kdwwh-fxatbqxy-355[jezwy]
hjgbwuladw-tmffq-ogjckzgh-528[gnlzr]
lxuxaodu-lxwbdvna-pajmn-ajkkrc-dbna-cnbcrwp-511[umnsy]
nsyjwsfyntsfq-idj-jslnsjjwnsl-619[ywpco]
ubhatstkwhnl-ktuubm-mktbgbgz-761[btkug]
lhkhszqx-fqzcd-bgnbnkzsd-dmfhmddqhmf-781[bdnsk]
vehmsegxmzi-ikk-vieguymwmxmsr-854[pnkle]
udskkaxawv-jsttal-esfsywewfl-528[sawef]
jxdkbqfz-avb-cfkxkzfkd-887[kfbdx]
jyddc-jpsaiv-gsrxemrqirx-386[rdijs]
tagzsrsjvgmk-wyy-umklgewj-kwjnauw-606[wgjka]
wyvqljapsl-ihzrla-huhsfzpz-409[znhcm]
jvuzbtly-nyhkl-zjhclunly-obua-jbzavtly-zlycpjl-331[lyjzb]
gvaaz-sbejpbdujwf-gmpxfs-vtfs-uftujoh-467[tsogk]
aczupnetwp-nsznzwlep-cplnbftdtetzy-535[nptze]
gifavtkzcv-vxx-jrcvj-815[vcjxa]
ytu-xjhwjy-uqfxynh-lwfxx-uzwhmfxnsl-255[yzalu]
eqttqukxg-ecpfa-eqcvkpi-cpcnauku-440[zotsy]
ncjzrpytn-nlyoj-nzletyr-nzyeltyxpye-639[zhytj]
bgmxkgtmbhgte-lvtoxgzxk-angm-phkdlahi-605[nyzfq]
ytu-xjhwjy-xhfajsljw-mzsy-qfgtwfytwd-801[rewpl]
gpsxdprixkt-rwdrdapit-prfjxhxixdc-349[qrskt]
ojk-nzxmzo-kgvnodx-bmvnn-hvivbzhzio-629[cvkyu]
ktwbhtvmbox-unggr-ybgtgvbgz-267[nbjvs]
wdjcvuvmyjpn-nxvqzibzm-cpio-kpmxcvndib-109[tndsr]
froruixo-gbh-zrunvkrs-439[roubf]
oazegyqd-sdmpq-otaoaxmfq-fdmuzuzs-352[admoq]
fruurvlyh-fdqgb-sxufkdvlqj-699[mynfj]
votubcmf-qmbtujd-hsbtt-efqmpznfou-441[wznfd]
emixwvqhml-akidmvomz-pcvb-abwziom-928[gwxum]
qcbgiasf-ufors-foppwh-sbuwbssfwbu-506[sbfuw]
mrxivrexmsrep-fyrrc-pskmwxmgw-100[pmxwc]
nsyjwsfyntsfq-uqfxynh-lwfxx-uzwhmfxnsl-125[bwtze]
kwtwznct-kpwkwtibm-nqvivkqvo-928[kwtvi]
lahxpnwrl-ouxfna-vjwjpnvnwc-953[nwajl]
ydjuhdqjyedqb-hqrryj-ixyffydw-114[cwzyi]
rgndvtcxr-snt-igpxcxcv-661[uqvtr]
bgmxkgtmbhgte-pxtihgbsxw-vahvhetmx-tvjnblbmbhg-371[bghtm]
pwcvonofrcig-tzcksf-fsoqeiwgwhwcb-428[swzyd]
yaxsnlcrun-ajkkrc-bqryyrwp-641[ycnxl]
jef-iushuj-hqrryj-bqrehqjeho-738[zaytn]
bdavqofuxq-bxmefuo-sdmee-xmnadmfadk-352[dmaef]
qcffcgwjs-qobrm-rsdzcmasbh-350[mezyn]
jxdkbqfz-yxphbq-tlohpelm-289[wfvbo]
hdgdovmt-bmvyz-wvnfzo-yzndbi-915[dvzbm]
hqcfqwydw-sxesebqju-vydqdsydw-712[smhbn]
qfmcusbwq-qobrm-qcohwbu-zcuwghwqg-636[qwbcu]
jvsvymbs-msvdly-jvuahputlua-955[vsuaj]
hqcfqwydw-rkddo-huiuqhsx-218[dhquw]
shoewudys-uww-jhqydydw-816[jysaf]
dyz-combod-zvkcdsm-qbkcc-dbksxsxq-562[cdbks]
tcrjjzwzvu-treup-tfrkzex-rercpjzj-217[fewxh]
pynffvsvrq-cynfgvp-tenff-grpuabybtl-481[fnpvy]
yhtwhnpun-jyfvnlupj-wshzapj-nyhzz-huhsfzpz-773[zyogh]
bnqqnrhud-bzmcx-lzqjdshmf-443[jmvdf]
yrwxefpi-glsgspexi-hitevxqirx-282[bzvyj]
iuxxuyobk-hgyqkz-zkinturume-540[ukixy]
gpsxdprixkt-rpcsn-prfjxhxixdc-271[ewstq]
vrurcjah-pajmn-ouxfna-anlnrerwp-615[qsfhg]
mrxivrexmsrep-tpewxmg-kveww-hiwmkr-854[votlz]
irgyyolokj-ixeumktoi-jek-rghuxgzuxe-904[egiko]
dsxxw-zyqicr-pcacgtgle-912[swjtv]
yhkpvhjapcl-kfl-ylhjxbpzpapvu-955[phlaj]
gsrwyqiv-kvehi-tpewxmg-kveww-hitevxqirx-724[mnsyt]
muqfedyput-rkddo-vydqdsydw-998[mlqhr]
ykhknbqh-ywjzu-iwngapejc-628[hjknw]
uwtojhynqj-gzssd-ywfnsnsl-619[snjwy]
emixwvqhml-kpwkwtibm-zmkmqdqvo-148[mkqwi]
upv-uvjzxe-347[uvejp]
cqwdujys-ryexqpqhteki-rkddo-skijecuh-iuhlysu-738[uyvln]
fydelmwp-nsznzwlep-dezclrp-379[elpzd]
yknnkoera-fahhuxawj-wymqeoepekj-914[kwucf]
hwbba-vqr-ugetgv-lgnnadgcp-ugtxkegu-908[guabe]
xqvwdeoh-ixccb-udeelw-fxvwrphu-vhuylfh-803[heuvw]
xekdwvwnzkqo-acc-iwjwcaiajp-784[mswzt]
rdchjbtg-vgpst-qphzti-jhtg-ithixcv-609[thgic]
cqwdujys-vbemuh-iqbui-608[ubiqc]
htsxzrjw-lwfij-gfxpjy-rfsfljrjsy-489[jfrsl]
rtqlgevkng-dcumgv-wugt-vguvkpi-362[gvukt]
oxaflxzqfsb-mixpqfz-doxpp-zrpqljbo-pbosfzb-185[pbfox]
lqwhuqdwlrqdo-hjj-sxufkdvlqj-569[qdjlh]
wihmogyl-aluxy-wuhxs-wiuncha-nywbhifias-994[ztysn]
hwbba-oknkvcta-itcfg-dwppa-tgugctej-492[tacgb]
mybbycsfo-oqq-wkxkqowoxd-120[oqbkw]
tyepcyletzylw-dnlgpyrpc-sfye-xlcvpetyr-249[xawqz]
hjgbwuladw-tmffq-ugflsafewfl-684[flwag]
sbnqbhjoh-kfmmzcfbo-bobmztjt-493[jnism]
ykjoqian-cnwza-lhwopey-cnwoo-zarahkliajp-602[ihrlb]
pynffvsvrq-fpniratre-uhag-erfrnepu-585[kwurl]
vetllbybxw-utldxm-mxvaghehzr-787[lxbeh]
ktfitzbgz-lvtoxgzxk-angm-nlxk-mxlmbgz-787[gxzkl]
emixwvqhml-rmttgjmiv-tijwzibwzg-876[tszyl]
esyfwlau-udskkaxawv-hdsklau-yjskk-ksdwk-658[ksadu]
jsvagsulanw-tskcwl-jwuwanafy-216[oklsn]
wfummczcyx-mwupyhayl-bohn-xymcah-552[xcazi]
tbxmlkfwba-oxyyfq-xkxivpfp-705[xfbkp]
ytu-xjhwjy-rflsjynh-uqfxynh-lwfxx-ijuqtdrjsy-853[ztoub]
cvabijtm-jiasmb-tijwzibwzg-564[qatln]
jef-iushuj-uww-ixyffydw-816[ptbea]
zntargvp-fpniratre-uhag-svanapvat-715[dnmgz]
mvydjvxodqz-zbb-jkzmvodjin-343[fxmnr]
xlrypetn-nlyoj-dlwpd-873[ldnpy]
jrncbavmrq-pnaql-pbngvat-ybtvfgvpf-117[hgwjo]
guahyncw-dyffsvyuh-uhufsmcm-786[ufhyc]
ide-htrgti-rpcsn-rdpixcv-igpxcxcv-115[ciprx]
nwilwcejc-ydkykhwpa-qoan-paopejc-628[acpwe]
udpsdjlqj-sodvwlf-judvv-oderudwrub-673[dujvl]
xekdwvwnzkqo-lhwopey-cnwoo-zarahkliajp-966[zdklq]
ixccb-iorzhu-xvhu-whvwlqj-803[emzxn]
gpbepvxcv-gpqqxi-prfjxhxixdc-297[utzsx]
zntargvp-wryylorna-fuvccvat-871[dxepl]
jvyyvzpcl-ipvohghykvbz-yhiipa-yljlpcpun-149[aupdo]
lzfmdshb-okzrshb-fqzrr-lzmzfdldms-651[ndpcm]
krxqjijamxdb-bljenwpna-qdwc-mnyuxhvnwc-381[njwxa]
apuut-xviyt-yzkvmohzio-395[iotuv]
rzvkjiduzy-kgvnodx-bmvnn-mzxzdqdib-187[tayqb]
pkl-oaynap-xwogap-owhao-888[zlbay]
ynukcajey-nwxxep-paydjkhkcu-394[kyace]
fnjyxwrinm-ouxfna-mnbrpw-771[nfmrw]
lejkrscv-tfcfiwlc-irsszk-nfibjyfg-399[fcisj]
dwbcjkun-ljwmh-anlnrerwp-589[nwjlr]
hdgdovmt-bmvyz-ojk-nzxmzo-wpiit-omvdidib-291[nmqdz]
nwzekwypera-xwogap-hwxknwpknu-810[wknpa]
htwwtxnaj-ojqqdgjfs-wjxjfwhm-567[jwfhq]
ynukcajey-zua-lqnydwoejc-420[xqrgw]
pelbtravp-cynfgvp-tenff-npdhvfvgvba-559[vfpna]
ibghopzs-foppwh-aobousasbh-142[ranfu]
qxdwpopgsdjh-tvv-rdcipxcbtci-713[wscpi]
vkppo-sbqiiyvyut-vbemuh-husuylydw-452[uyvbh]
lqwhuqdwlrqdo-vfdyhqjhu-kxqw-orjlvwlfv-699[qlwdh]
tcrjjzwzvu-gcrjkzt-xirjj-vexzevvizex-113[gusom]
wsvsdkbi-qbkno-lexxi-kmaescsdsyx-614[mnoyt]
kmjezxodgz-xviyt-xjvodib-jkzmvodjin-681[jdiov]
kgjgrypw-epybc-kyelcrga-njyqrga-epyqq-asqrmkcp-qcptgac-990[cgpqy]
tagzsrsjvgmk-hdsklau-yjskk-xafsfuafy-736[sakfg]
iwcjapey-xqjju-wymqeoepekj-472[wshmz]
ckgvutofkj-xghhoz-zxgototm-618[dapcq]
excdklvo-bkllsd-zebmrkcsxq-692[sdyzv]
ugdgjxmd-jsttal-ogjckzgh-320[nxksp]
dmbttjgjfe-gmpxfs-fohjoffsjoh-675[emswj]
esyfwlau-wyy-kwjnauwk-762[zfkst]
htsxzrjw-lwfij-gzssd-xytwflj-359[jswfl]
bnmrtldq-fqzcd-bzmcx-bnzshmf-cdozqsldms-157[rchap]
enqvbnpgvir-wryylorna-hfre-grfgvat-247[rgnva]
rzvkjiduzy-mvwwdo-hvivbzhzio-629[vzidh]
rgllk-omzpk-ymzmsqyqzf-742[ytshk]
wyvqljapsl-kfl-shivyhavyf-175[lvyaf]
zloolpfsb-molgbzqfib-oxyyfq-absbilmjbkq-731[rdypn]
wlqqp-srjbvk-glityrjzex-399[jlqrb]
foadouwbu-qvcqczohs-hsqvbczcum-402[coqub]
gsrwyqiv-kvehi-wgezirkiv-lyrx-wlmttmrk-334[dxqri]
apwmeclga-afmamjyrc-amlryglkclr-470[dvjwq]
amjmpdsj-aylbw-amyrgle-bcqgel-756[fmsjn]
pbybeshy-sybjre-ynobengbel-507[beyns]
jchipqat-rpcsn-hwxeexcv-505[yozns]
excdklvo-nio-bomosfsxq-458[bhmlt]
oaxadrgx-ngzzk-ymzmsqyqzf-534[eqjfa]
ajyqqgdgcb-zsllw-umpiqfmn-262[sdmlk]
wkqxodsm-lexxi-cobfsmoc-510[tpnbi]
tcfkqcevkxg-ecpfa-eqcvkpi-octmgvkpi-986[ckepv]
pbybeshy-onfxrg-qrcyblzrag-845[bryga]
rdggdhxkt-hrpktcvtg-wjci-gtrtxkxcv-479[tgckr]
willimcpy-jfumncw-alumm-lywycpcha-500[utskn]
qyujihctyx-luxciuwncpy-yaa-mbcjjcha-942[tzusp]
pelbtravp-pnaql-fgbentr-585[pabel]
jef-iushuj-vbemuh-tuiywd-140[jvndh]
rwcnawjcrxwju-kjbtnc-mnyuxhvnwc-355[cnwjr]
dszphfojd-tdbwfohfs-ivou-ufdiopmphz-285[dfohp]
uqtqbizg-ozilm-kivlg-kwibqvo-ewzsapwx-538[iqwzb]
njmjubsz-hsbef-cbtlfu-bobmztjt-649[dtsjy]
zlilocri-zxkav-zlxqfkd-pefmmfkd-887[zijtp]
iwcjapey-ydkykhwpa-oanreyao-576[jfnpy]
pybgmyargtc-zgmfyxypbmsq-zyqicr-mncpyrgmlq-600[gzfir]
houngfgxjuay-yigbktmkx-natz-ygrky-228[gykan]
lnkfaypeha-zua-odellejc-680[gmnlj]
vhglnfxk-zktwx-cxeeruxtg-kxlxtkva-319[xkteg]
wfintfhynaj-gzssd-qfgtwfytwd-541[mztfn]
amlqskcp-epybc-aylbw-nspafyqgle-886[alpyb]
iuruxlar-pkrrehkgt-ygrky-774[tsflj]
xtwtelcj-rclop-clmmte-opgpwzaxpye-145[tskxr]
bqvvu-ywjzu-ykwpejc-hwxknwpknu-862[wkujn]
enqvbnpgvir-zntargvp-cynfgvp-tenff-ybtvfgvpf-585[vfngp]
rzvkjiduzy-xviyt-xjvodib-xjiovdihzio-967[pjzrk]
njmjubsz-hsbef-sbnqbhjoh-cvooz-pqfsbujpot-623[bjosh]
zixppfcfba-mixpqfz-doxpp-zlkqxfkjbkq-653[pfxkq]
hdgdovmt-bmvyz-kgvnodx-bmvnn-rjmfncjk-239[rpovu]
hdgdovmt-bmvyz-xviyt-yzndbi-109[pdslu]
xjinphzm-bmvyz-kgvnodx-bmvnn-vivgtndn-525[nvmbd]
eqnqthwn-eqttqukxg-hnqygt-rwtejcukpi-544[qteng]
zvyvgnel-tenqr-sybjre-grpuabybtl-793[lyfvq]
tcorcikpi-ecpfa-eqcvkpi-ugtxkegu-596[teibn]
nwzekwypera-fahhuxawj-lqnydwoejc-810[mszph]
mhi-lxvkxm-cxeeruxtg-kxvxbobgz-605[palbn]
wfummczcyx-jlidywncfy-vumeyn-mylpcwym-838[ijqrb]
fhezusjybu-zubboruqd-cqdqwucudj-374[ubdqc]
kgjgrypw-epybc-aylbw-amyrgle-qcptgacq-314[mjlic]
tcfkqcevkxg-dwppa-ucngu-362[trzmu]
oazegyqd-sdmpq-gzefmnxq-eomhqzsqd-tgzf-qzsuzqqduzs-560[dmrkq]
jlidywncfy-vohhs-xypyfijgyhn-110[yhfij]
ftzgxmbv-lvtoxgzxk-angm-hixktmbhgl-163[gxmtb]
xgjougizobk-vrgyzoi-mxgyy-cuxqynuv-644[yntxg]
yknnkoera-lhwopey-cnwoo-odellejc-524[qypjt]
eza-dpncpe-upwwjmply-zapcletzyd-769[pezac]
cvabijtm-ntwemz-zmikycqaqbqwv-564[mqabc]
irgyyolokj-kmm-rghuxgzuxe-410[gkmor]
ahngzyzqcntr-idkkxadzm-sdbgmnknfx-807[ndkza]
surmhfwloh-fkrfrodwh-pdqdjhphqw-829[myflz]
elrkdcdugrxv-edvnhw-xvhu-whvwlqj-387[mhtue]
sbejpbdujwf-xfbqpojafe-ezf-mphjtujdt-155[tqslv]
shoewudys-rkddo-tuiywd-686[sntpq]
qcffcgwjs-dzoghwq-ufogg-igsf-hsghwbu-350[psevy]
ibghopzs-qobrm-qcohwbu-zopcfohcfm-740[obchf]
atyzghrk-vrgyzoi-mxgyy-sgtgmksktz-150[tjpiv]
luxciuwncpy-dyffsvyuh-nluchcha-994[cuhyf]
vcibutulxiom-xsy-uwkocmcncih-214[ciumo]
vkppo-rkddo-cqdqwucudj-140[dckop]
ftzgxmbv-vtgwr-kxlxtkva-163[tvxgk]
jlidywncfy-vumeyn-womnigyl-mylpcwy-682[ylmnw]
mtzslklcozfd-nlyoj-nzletyr-qtylyntyr-639[xswlz]
ixccb-fkrfrodwh-fxvwrphu-vhuylfh-283[fhrcu]
ykjoqian-cnwza-oywrajcan-dqjp-qoan-paopejc-212[tsrfk]
yhkpvhjapcl-yhiipa-jbzavtly-zlycpjl-617[ftaes]
qmpmxevc-kvehi-wgezirkiv-lyrx-xvemrmrk-516[emrvi]
fmsledevhsyw-veffmx-wivzmgiw-204[efmvw]
zlkprjbo-doxab-zxkav-zlxqfkd-obxznrfpfqflk-237[rqgnd]
ksodcbwnsr-qobrm-qcohwbu-aobousasbh-142[bosac]
yrwxefpi-glsgspexi-qevoixmrk-828[atyoc]
dlhwvupglk-wshzapj-nyhzz-klzpnu-877[fbewu]
bjfutsneji-idj-hzxytrjw-xjwanhj-359[wyrxt]
zsxyfgqj-bjfutsneji-hfsid-htfynsl-zxjw-yjxynsl-229[jsfyn]
pualyuhapvuhs-ibuuf-klwsvftlua-643[ualfh]
yknnkoera-ydkykhwpa-klanwpekjo-420[kanye]
iehepwnu-cnwza-ydkykhwpa-zaoecj-420[pozyv]
ftzgxmbv-ktuubm-mxvaghehzr-605[mbght]
gntmfefwitzx-xhfajsljw-mzsy-ywfnsnsl-983[woefn]
xmtjbzidx-wpiit-ncdkkdib-863[idbkt]
ktiaaqnqml-uqtqbizg-ozilm-kpwkwtibm-ivitgaqa-850[ywdzl]
dyz-combod-sxdobxkdsyxkv-mkxni-wkxkqowoxd-224[isamh]
nsyjwsfyntsfq-rnqnyfwd-lwfij-kqtbjw-uzwhmfxnsl-151[roxtn]
ykjoqian-cnwza-xqjju-nayaerejc-524[yvwax]
ixccb-iorzhu-ilqdqflqj-569[fcjsy]
ovbunmneqbhf-ohaal-qrfvta-819[abfhn]
glrcplyrgmlyj-zyqicr-pcyaosgqgrgml-626[glryc]
ajyqqgdgcb-bwc-ylyjwqgq-262[qgybc]
fhezusjybu-rkddo-bewyijysi-608[ybdei]
aflwjfslagfsd-kusnwfywj-zmfl-xafsfuafy-632[wltdc]
iuxxuyobk-lruckx-vaxingyotm-644[xuiko]
jyfvnlupj-kfl-thyrlapun-773[lfjnp]
eqpuwogt-itcfg-tcfkqcevkxg-dcumgv-qrgtcvkqpu-934[ionzm]
hqcfqwydw-sqdto-seqjydw-bqrehqjeho-998[qdehw]
xst-wigvix-ikk-wivzmgiw-724[rtszg]
tinnm-pibbm-zcuwghwqg-766[mfgbn]
vkppo-rqiauj-cqdqwucudj-348[qucdj]
bnmrtldq-fqzcd-ahngzyzqcntr-atmmx-dmfhmddqhmf-989[mdqfh]
vkrhzxgbv-unggr-tgterlbl-319[tsrkm]
wihmogyl-aluxy-wuhxs-uhufsmcm-526[uhmls]
nzydfxpc-rclop-awldetn-rcldd-pyrtyppctyr-951[pcdry]
egdytrixat-eaphixr-vgphh-pcpanhxh-921[hpaxe]
nwzekwypera-lhwopey-cnwoo-hkceopeyo-654[eowpy]
zovldbkfz-zlkprjbo-doxab-zxkav-ixyloxqlov-367[olxzb]
lgh-kwujwl-xmrrq-kusnwfywj-zmfl-hmjuzskafy-372[gmait]
ipvohghykvbz-jhukf-ylzlhyjo-357[awkcb]
dmybmsuzs-otaoaxmfq-dqmocgueufuaz-976[muaod]
zbytomdsvo-bkllsd-cdybkqo-796[eufzt]
sbqiiyvyut-fbqijys-whqii-iqbui-998[ebfqa]
qyujihctyx-wbiwifuny-guleyncha-838[ejitg]
ikhcxvmbex-unggr-kxvxbobgz-683[ejuzo]
hafgnoyr-ohaal-jbexfubc-923[bjmzn]
shmml-wryylorna-genvavat-455[almnr]
yknnkoera-xqjju-klanwpekjo-420[empdo]
upq-tfdsfu-kfmmzcfbo-efwfmpqnfou-415[nmfed]
xcitgcpixdcpa-rdchjbtg-vgpst-hrpktcvtg-wjci-stepgibtci-557[ctgip]
fydelmwp-nsznzwlep-opgpwzaxpye-769[pewzl]
glrcplyrgmlyj-cee-pcqcypaf-548[ymzlj]
xmtjbzidx-wpiit-xjiovdihzio-265[ztyda]
rwcnawjcrxwju-ljwmh-mnbrpw-901[wjrcm]
wlqqp-tyftfcrkv-ivtvzmzex-841[tvfqz]
thnulapj-wshzapj-nyhzz-zopwwpun-669[pzhnw]
bpvctixr-rdggdhxkt-hrpktcvtg-wjci-pcpanhxh-401[chptg]
eza-dpncpe-awldetn-rcldd-dlwpd-743[delpa]
pbybeshy-sybjre-npdhvfvgvba-299[bvyeh]
qmpmxevc-kvehi-jpsaiv-viwievgl-802[viemp]
jrncbavmrq-pnaql-pbngvat-qrcyblzrag-715[arbnq]
ugjjgkanw-wyy-kzahhafy-736[clxvm]
mwupyhayl-bohn-nluchcha-682[hacln]
qjopwxha-xwogap-ykjpwejiajp-108[jpawo]
avw-zljyla-jhukf-huhsfzpz-175[hzafj]
lzfmdshb-okzrshb-fqzrr-cdoknxldms-573[olwsf]
cqwdujys-sbqiiyvyut-uww-iuhlysui-426[cwfuy]
yaxsnlcrun-ljwmh-bqryyrwp-901[rylnw]
cebwrpgvyr-pelbtravp-enoovg-znantrzrag-455[raegn]
nbhofujd-qmbtujd-hsbtt-efwfmpqnfou-389[fbtud]
pynffvsvrq-pnaql-pbngvat-ynobengbel-507[nmyvz]
ltpedcxots-gpqqxi-ldgzhwde-739[bkapm]
nglmtuex-vahvhetmx-wxiehrfxgm-527[zwksp]
kgjgrypw-epybc-aylbw-amyrgle-qyjcq-626[ygabc]
yflexwxoalrp-avb-abmilvjbkq-445[siqmz]
jshzzpmplk-kfl-klclsvwtlua-331[lkpsz]
ujoon-eaphixr-vgphh-prfjxhxixdc-193[hyzjx]
dfcxsqhwzs-qobrm-zcuwghwqg-168[qwcgh]
bqvvu-ydkykhwpa-klanwpekjo-966[kapvw]
aoubshwq-pibbm-kcfygvcd-740[wnucy]

View File

@@ -0,0 +1 @@
L2, L3, L3, L4, R1, R2, L3, R3, R3, L1, L3, R2, R3, L3, R4, R3, R3, L1, L4, R4, L2, R5, R1, L5, R1, R3, L5, R2, L2, R2, R1, L1, L3, L3, R4, R5, R4, L1, L189, L2, R2, L5, R5, R45, L3, R4, R77, L1, R1, R194, R2, L5, L3, L2, L1, R5, L3, L3, L5, L5, L5, R2, L1, L2, L3, R2, R5, R4, L2, R3, R5, L2, L2, R3, L3, L2, L1, L3, R5, R4, R3, R2, L1, R2, L5, R4, L5, L4, R4, L2, R5, L3, L2, R4, L1, L2, R2, R3, L2, L5, R1, R1, R3, R4, R1, R2, R4, R5, L3, L5, L3, L3, R5, R4, R1, L3, R1, L3, R3, R3, R3, L1, R3, R4, L5, L3, L1, L5, L4, R4, R1, L4, R3, R3, R5, R4, R3, R3, L1, L2, R1, L4, L4, L3, L4, L3, L5, R2, R4, L2

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,5 @@
UDRLRRRUULUUDULRULUDRDRURLLDUUDURLUUUDRRRLUUDRUUDDDRRRLRURLLLDDDRDDRUDDULUULDDUDRUUUDLRLLRLDUDUUUUDLDULLLDRLRLRULDDDDDLULURUDURDDLLRDLUDRRULDURDDLUDLLRRUDRUDDDLLURULRDDDRDRRLLUUDDLLLLRLRUULRDRURRRLLLLDULDDLRRRRUDRDULLLDDRRRDLRLRRRLDRULDUDDLDLUULRDDULRDRURRURLDULRUUDUUURDRLDDDURLDURLDUDURRLLLLRDDLDRUURURRRRDRRDLUULLURRDLLLDLDUUUDRDRULULRULUUDDULDUURRLRLRRDULDULDRUUDLLUDLLLLUDDULDLLDLLURLLLRUDRDLRUDLULDLLLUDRLRLUDLDRDURDDULDURLLRRRDUUDLRDDRUUDLUURLDRRRRRLDDUUDRURUDLLLRRULLRLDRUURRRRRLRLLUDDRLUDRRDUDUUUDRUDULRRULRDRRRDDRLUUUDRLLURURRLLDUDRUURDLRURLLRDUDUUDLLLUULLRULRLDLRDDDU
DRRRDRUDRLDUUDLLLRLULLLUURLLRLDRLURDRDRDRLDUUULDRDDLDDDURURUDRUUURDRDURLRLUDRRRDURDRRRDULLRDRRLUUUURLRUULRRDUDDDDUURLDULUDLLLRULUDUURRDUULRRDDURLURRUDRDRLDLRLLULULURLRDLRRRUUURDDUUURDRDRUURUDLULDRDDULLLLLRLRLLUDDLULLUDDLRLRDLDULURDUDULRDDRLUDUUDUDRLLDRRLLDULLRLDURUDRLRRRDULUUUULRRLUDDDLDUUDULLUUURDRLLULRLDLLUUDLLUULUULUDLRRDDRLUUULDDRULDRLURUURDLURDDRULLLLDUDULUDURRDRLDDRRLRURLLRLLLLDURDLUULDLDDLULLLRDRRRDLLLUUDDDLDRRLUUUUUULDRULLLDUDLDLURLDUDULRRRULDLRRDRUUUUUURRDRUURLDDURDUURURULULLURLLLLUURDUDRRLRRLRLRRRRRULLDLLLRURRDULLDLLULLRDUULDUDUDULDURLRDLDRUUURLLDLLUUDURURUD
UDUUUUURUDLLLRRRDRDRUDDRLLDRRLDRLLUURRULUULULRLLRUDDRLDRLUURDUDLURUULLLULLRRRULRLURRDDULLULULRUDDDUURDRLUDUURRRRUUULLRULLLDLURUDLDDLLRRRULDLLUURDRRRDRDURURLRUDLDLURDDRLLLUUDRUULLDLLLLUUDRRURLDDUDULUDLDURDLURUURDUUUURDLLLRUUURDUUUDLDUDDLUDDUDUDUDLDUDUUULDULUURDDLRRRULLUDRRDLUDULDURUURULLLLUDDDLURURLRLRDLRULRLULURRLLRDUDUDRULLRULRUDLURUDLLDUDLRDRLRDURURRULLDDLRLDDRLRDRRDLRDDLLLLDUURRULLRLLDDLDLURLRLLDULRURRRRDULRLRURURRULULDUURRDLURRDDLDLLLRULRLLURLRLLDDLRUDDDULDLDLRLURRULRRLULUDLDUDUDDLLUURDDDLULURRULDRRDDDUUURLLDRDURUDRUDLLDRUD
ULRDULURRDDLULLDDLDDDRLDUURDLLDRRRDLLURDRUDDLDURUDRULRULRULULUULLLLDRLRLDRLLLLLRLRRLRLRRRDDULRRLUDLURLLRLLURDDRRDRUUUDLDLDRRRUDLRUDDRURRDUUUDUUULRLDDRDRDRULRLLDLDDLLRLUDLLLLUURLDLRUDRLRDRDRLRULRDDURRLRUDLRLRLDRUDURLRDLDULLUUULDRLRDDRDUDLLRUDDUDURRRRDLDURRUURDUULLDLRDUDDLUDDDRRRULRLULDRLDDRUURURLRRRURDURDRULLUUDURUDRDRLDLURDDDUDDURUDLRULULURRUULDRLDULRRRRDUULLRRRRLUDLRDDRLRUDLURRRDRDRLLLULLUULRDULRDLDUURRDULLRULRLRRURDDLDLLRUUDLRLDLRUUDLDDLLULDLUURRRLRDULRLRLDRLDUDURRRLLRUUDLUURRDLDDULDLULUUUUDRRULLLLLLUULDRULDLRUDDDRDRDDURUURLURRDLDDRUURULLULUUUDDLRDULDDLULDUDRU
LRLRLRLLLRRLUULDDUUUURDULLLRURLDLDRURRRUUDDDULURDRRDURLRLUDLLULDRULLRRRDUUDDRDRULLDDULLLUURDLRLRUURRRLRDLDUDLLRLLURLRLLLDDDULUDUDRDLRRLUDDLRDDURRDRDUUULLUURURLRRDUURLRDLLUDURLRDRLURUURDRLULLUUUURRDDULDDDRULURUULLUDDDDLRURDLLDRURDUDRRLRLDLRRDDRRDDRUDRDLUDDDLUDLUDLRUDDUDRUDLLRURDLRUULRUURULUURLRDULDLDLLRDRDUDDDULRLDDDRDUDDRRRLRRLLRRRUUURRLDLLDRRDLULUUURUDLULDULLLDLULRLRDLDDDDDDDLRDRDUDLDLRLUDRRDRRDRUURDUDLDDLUDDDDDDRUURURUURLURLDULUDDLDDLRUUUULRDRLUDLDDLLLRLLDRRULULRLRDURRRLDDRDDRLU

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,601 @@
10,80,6,69,22,99,63,92,30,67,28,93,0,50,65,87,38,7,91,60,57,40,84,51,27,12,44,88,64,35,39,74,61,55,31,48,81,89,62,37,94,43,29,14,95,8,78,49,90,97,66,70,25,68,75,45,42,23,9,96,56,72,59,32,85,3,71,79,18,24,33,19,15,20,82,26,21,13,4,98,83,34,86,5,2,73,17,54,1,77,52,58,76,36,16,46,41,47,11,53
3 82 18 50 90
16 37 52 67 28
30 54 80 11 10
60 79 7 65 58
76 83 38 51 1
83 63 60 88 98
70 87 5 99 14
85 3 11 16 33
72 69 97 36 49
26 17 58 13 2
30 80 64 53 69
36 0 32 46 70
13 31 22 95 15
12 35 5 84 21
39 60 68 83 47
77 93 26 62 88
87 76 80 10 63
32 7 28 82 44
43 30 31 16 74
33 86 42 45 47
95 86 93 45 67
20 58 63 35 97
84 79 10 54 49
48 66 75 23 61
5 30 6 56 71
75 8 85 12 98
37 51 91 24 23
50 54 81 53 33
72 57 52 25 6
56 40 95 87 22
52 19 53 9 32
23 99 48 26 73
10 8 54 20 79
49 45 34 74 90
27 72 30 13 57
1 60 72 85 64
62 39 56 93 78
90 17 87 48 7
9 13 45 23 69
44 80 86 55 21
86 57 25 98 18
42 75 38 9 66
54 19 99 87 49
33 32 53 8 6
17 68 24 58 95
2 5 80 10 61
27 16 40 67 78
66 13 24 42 75
25 7 35 11 85
93 38 4 31 77
52 81 68 88 95
82 50 46 87 20
3 54 59 75 51
92 93 38 72 4
8 77 61 31 56
45 16 8 44 62
92 23 42 20 74
73 83 65 9 84
55 13 21 70 59
34 2 98 47 37
3 54 85 79 76
42 29 45 12 46
60 59 24 67 80
89 15 99 68 48
40 7 95 44 70
75 31 99 16 32
80 56 43 30 36
66 73 35 20 61
67 28 89 23 54
47 26 69 70 50
35 91 81 13 15
73 1 37 68 28
98 29 9 22 56
12 59 82 67 31
77 47 32 79 52
22 73 39 14 46
99 0 27 34 40
4 5 38 23 18
64 26 89 59 79
71 76 53 49 62
14 37 27 67 94
76 16 79 61 83
8 43 36 28 75
10 4 24 56 44
26 1 88 9 86
14 78 43 10 30
56 29 1 61 9
7 95 39 35 25
33 87 71 97 21
72 0 4 2 24
88 0 72 42 6
53 79 58 80 20
57 84 15 21 64
98 17 43 8 95
2 22 59 63 78
78 21 33 57 72
10 69 85 73 16
92 60 87 39 63
40 15 77 80 56
6 62 99 50 3
38 72 34 41 74
90 29 9 6 91
94 39 56 71 67
53 21 22 32 10
73 48 79 47 85
5 49 73 24 8
75 12 11 47 69
66 70 89 62 48
99 3 29 88 30
10 40 32 33 43
61 93 2 58 84
47 62 51 16 82
80 22 50 31 65
76 85 83 4 40
86 59 68 14 69
52 5 74 9 72
84 69 38 1 27
78 90 46 97 95
57 21 32 93 29
11 66 20 51 48
2 3 58 18 53
11 96 63 33 13
55 47 30 9 46
98 85 79 19 65
87 94 77 27 75
54 97 46 33 90
99 93 22 0 51
83 53 34 29 38
35 65 80 82 9
56 30 19 49 15
43 40 51 67 37
4 30 85 24 21
83 94 69 91 99
13 32 82 86 12
66 9 60 65 97
71 96 55 92 6
83 8 63 56 18
4 0 74 70 34
15 87 44 80 29
68 33 99 14 47
76 86 46 6 8
90 80 77 30 62
97 66 55 59 36
1 43 27 15 57
54 70 38 21 89
75 96 97 54 29
62 43 69 57 88
36 46 73 84 28
18 98 38 63 4
59 35 99 90 58
66 29 60 25 95
91 4 87 76 41
26 19 45 96 74
7 82 3 81 31
17 64 51 93 71
41 51 14 70 26
35 38 50 25 13
95 60 88 36 24
66 94 62 97 83
21 10 37 1 96
38 90 81 96 14
40 82 71 18 83
78 17 65 46 84
7 92 63 79 49
55 21 89 95 72
60 35 26 67 42
59 77 15 6 75
18 16 21 55 4
98 49 38 43 30
0 85 69 96 19
93 22 87 66 94
7 43 98 18 57
29 20 91 60 21
28 51 17 10 14
96 12 15 25 37
12 69 27 41 36
58 11 42 44 9
8 56 33 7 30
70 64 78 17 61
22 28 94 0 99
16 64 88 22 48
65 42 23 7 26
97 12 63 57 45
29 94 91 21 54
95 43 0 85 46
9 50 54 98 35
45 37 84 87 5
40 23 14 17 18
73 43 86 41 59
69 77 78 15 60
79 9 45 59 85
38 56 64 95 60
39 22 14 57 66
98 53 83 76 16
62 94 72 54 82
77 44 6 66 46
9 89 11 84 63
81 94 87 83 21
22 90 1 93 92
24 65 34 45 99
36 93 59 5 43
76 49 51 0 68
71 34 55 7 73
14 10 45 63 95
30 94 79 67 11
93 98 82 96 91
3 79 55 70 24
68 56 87 12 76
19 31 67 1 54
49 62 23 15 10
10 74 98 15 6
14 31 66 38 86
68 84 60 80 26
34 72 87 92 61
81 56 73 12 53
11 69 4 6 23
38 47 16 99 96
7 13 40 41 78
12 5 1 18 88
20 42 10 82 73
66 97 72 55 99
26 59 6 79 53
74 80 98 28 69
25 95 17 29 34
85 64 84 90 42
95 50 58 51 66
48 27 81 94 0
35 82 57 71 16
32 93 70 40 25
31 73 46 12 90
39 94 52 9 88
3 23 59 77 29
2 40 93 85 38
74 97 12 50 1
22 36 68 65 37
70 15 44 90 55
42 20 82 0 78
10 49 62 3 22
91 73 84 40 28
72 13 11 60 19
58 95 66 36 22
91 99 77 94 44
70 14 85 13 52
49 6 2 50 35
47 42 15 98 63
35 1 99 21 68
93 32 30 76 5
79 96 10 85 16
19 69 81 78 70
66 36 26 94 39
78 51 55 4 97
21 36 53 1 26
77 42 20 12 65
17 52 6 40 16
19 85 2 24 23
95 68 76 14 30
19 11 64 99 60
63 55 8 40 65
41 75 62 53 83
26 34 46 72 79
68 6 35 62 77
43 14 88 7 11
40 45 98 86 64
3 53 56 87 30
28 37 48 10 72
13 69 72 93 17
1 46 8 56 37
78 27 49 64 59
81 99 33 76 79
84 98 51 82 31
57 41 45 15 10
65 72 79 17 29
67 0 33 32 69
56 96 92 46 53
88 3 18 87 51
97 52 58 67 17
51 69 43 20 63
1 26 27 47 99
53 23 14 90 86
4 56 13 36 11
88 11 57 73 89
43 34 91 15 58
9 39 18 12 14
1 98 29 77 52
84 97 96 68 10
99 5 69 53 45
10 43 24 60 55
64 57 30 3 0
22 65 68 32 83
52 38 74 97 20
27 25 33 41 67
54 42 3 1 55
66 92 44 98 35
14 82 5 10 39
52 79 69 76 48
64 58 60 91 42
45 55 35 9 72
36 74 99 33 26
67 4 25 50 14
15 2 96 82 11
34 84 90 95 26
8 66 52 43 63
79 98 36 85 41
47 24 33 88 71
86 91 83 40 18
79 68 49 64 35
23 57 27 77 71
95 39 43 19 98
78 62 65 58 60
52 73 82 4 32
22 54 57 45 3
43 85 30 60 94
35 46 28 55 6
82 42 13 83 59
76 70 41 61 1
76 89 34 96 1
95 60 55 23 88
37 13 61 92 62
98 77 32 82 31
33 74 71 58 86
73 91 92 49 44
53 6 29 8 95
4 31 54 20 97
98 57 2 65 75
43 88 1 58 0
49 91 70 1 79
17 90 33 65 54
56 47 63 83 52
8 45 72 84 39
43 37 71 97 59
90 93 20 31 96
98 84 2 87 73
97 16 19 24 38
14 11 94 92 36
4 10 27 44 30
20 77 81 80 28
35 51 93 24 62
54 56 41 68 79
29 67 89 60 12
63 91 18 90 99
28 48 94 50 73
20 27 34 59 43
66 55 35 98 57
40 53 21 99 4
17 74 80 5 12
76 22 6 61 23
70 67 69 33 9
87 2 12 68 27
13 52 82 15 84
24 51 89 53 38
96 23 91 97 10
50 8 68 67 0
65 3 92 4 70
53 77 59 86 66
41 78 44 52 71
62 19 17 63 75
43 88 15 84 13
41 7 47 16 23
12 71 8 83 50
36 31 22 5 79
71 95 17 90 63
64 52 32 3 93
70 13 99 40 5
22 18 83 11 55
47 59 78 45 29
9 98 73 46 79
5 51 84 26 40
64 62 0 66 18
33 83 47 1 63
89 31 99 54 36
98 15 86 9 50
67 7 75 85 17
96 27 64 81 19
80 30 29 54 52
49 25 36 5 90
39 29 40 16 69
38 55 67 71 59
42 72 51 10 45
94 75 21 27 0
84 6 22 33 30
33 64 82 97 39
79 7 62 49 99
26 3 13 66 10
37 98 15 80 47
1 35 30 50 43
56 92 41 82 34
68 79 11 0 65
70 84 26 76 96
1 72 31 80 8
9 38 98 17 7
12 19 6 29 89
96 87 70 75 77
84 74 64 54 13
16 68 44 79 43
61 47 69 26 50
43 20 45 21 87
80 50 83 26 49
64 99 71 75 9
18 96 6 94 88
76 97 51 11 74
85 47 25 72 93
96 36 81 55 27
63 18 57 1 29
9 35 83 88 98
90 21 3 67 82
58 94 55 10 98
2 24 71 93 57
74 34 21 35 73
89 88 6 16 8
76 81 38 28 83
36 53 63 67 18
51 74 60 69 85
32 22 80 58 98
34 92 13 12 26
46 61 31 96 47
90 1 5 10 48
12 76 95 83 17
24 84 65 44 28
81 80 41 79 15
29 61 75 94 40
65 22 40 75 86
93 77 46 35 87
88 5 91 48 74
92 28 66 47 30
69 2 29 67 94
78 38 1 53 68
84 70 26 7 72
92 87 55 47 6
51 82 36 73 28
75 58 35 49 56
61 85 60 19 24
16 23 71 74 33
42 7 57 82 70
14 97 59 99 49
46 30 89 79 41
5 24 92 19 65
0 80 33 78 23
4 37 31 16 41
79 73 88 36 67
86 29 62 61 71
40 51 27 57 85
53 68 31 60 83
48 69 24 17 96
54 89 22 77 64
95 26 21 65 41
48 7 20 68 21
31 22 1 99 96
82 63 78 2 70
18 83 58 92 51
81 64 98 44 89
23 74 99 75 6
81 14 37 8 85
12 36 55 20 47
88 7 90 87 43
3 44 83 15 2
97 15 69 76 95
13 44 31 10 14
40 83 49 11 65
43 98 55 92 89
90 33 73 32 53
25 79 77 83 68
5 10 23 15 19
18 4 92 51 76
17 90 70 49 39
74 63 75 42 67
46 66 18 17 28
75 76 78 72 44
57 39 97 27 99
36 58 62 90 82
14 45 48 64 1
51 90 58 6 37
28 30 57 54 10
45 80 39 4 0
29 17 66 18 55
96 44 36 76 34
94 50 0 71 99
11 67 96 87 64
48 30 31 68 40
89 55 23 92 42
16 62 37 83 33
66 42 91 70 72
28 69 96 17 71
99 5 2 26 19
60 87 51 83 76
77 33 64 61 54
61 93 90 82 88
80 11 25 40 28
60 29 34 39 21
24 13 72 77 2
19 95 47 17 0
86 97 50 42 87
7 18 80 23 30
41 6 96 92 98
36 45 77 71 38
19 40 47 39 53
83 7 80 86 65
37 22 19 84 92
29 17 76 4 33
97 50 1 12 21
15 58 39 38 74

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,300 @@
hqBqJsqHhHvhHHqlBvlfpHQQwLVzVwtVzjzttjQVSjMjwL
gRTRnCRsFNGbTzLjwcSTMmSz
dGgsRWPGdWgZJqBBqhfpPq
HNCNJHCWJRRLqNJWlfrrrwsmlwGmmf
dddvLdLjdDvjvswlmGwlZQtjrt
dvcpbLVcvNJJHNPHSp
QDprSpLQRLQrQDmQcQFZjbbhZwdRsRFbbBss
gWGGPgNvJlgJzDlNGHCGPNZZgFBbsjbFFBwZwfhdZbZB
lHTlGMHlGCPNvClzGzJHvGcrMcVtLqMLcrrQVcVDrqrm
SrBpJFfldlFNslFJBZwsmwgVGGsCCVmZZD
jLtjvzLQMtWjbbQvDZZwGRJGgwggGZgv
MzqqjznQPqnnjznnctnFlSddPfHflhfBJFNdHd
mPNNGVCRngnSbgNw
WqsqlTssgvqvZWZzhsTzWhScdHtfJJnfbtSJwfczdtSS
sqTvhpqQvWZQLmDpDGMDGrgL
DQRcLQVLbbcbrFPcRtTBBBJnTZrrnmZTrMgJ
slGjjjdlhMfvdMQTvg
jlzNhWHhhWjHlwwwGLDSDtPQVtRzRbSzpp
DzDgfvzfDczfHCHSlgHLCmWG
PrpNPJtpPMBssmmVdmSVVr
PSRMwPnMpBNtNBTnnZwDqzQFfwhjZZqfhh
fzfBwhBJFbCwbwwg
strtgtrPgmPgFRsMdRnZRMFn
mrmLPDvGmmtSLDgmSqvHchhcHQzcQQJHBfBh
NsgwPPDgsPHqsTqqmLbLrDRhmrRVrbVW
lFpGFtfFlvSFplGFzptSGSSlhZbhjhfrmWbhLhmLbCZVZjWr
ccplJQSGcSSpVFvNqqsqPNqPQPTwqd
HFhPNNZGqSZrCDBVZBCB
RJTtwczTzCRVQrRHpR
mfgblfltwgwwmlJgcHNnGhSbFNnFsFjFqG
tSRqNRHpHnMSTqpcmrWWfqfmrCQCrW
lhGDtbgVVgDsDbhfldfwrzrfcdzwcr
vtDDhsgFBTNZFBHS
LcNpLLBNgdmHGmsBCrRBQDDwnwRj
hSWfZVhfPJJhfVWbhzbnQqQnRRRqPvCCrjvjwj
ztJSSJhzzSTJrZSbzzJTfzbZmLmggdmNMFNpmtmMGFFGNpmt
TRdFfLbTnLvZVlZvznQV
pgJGprJNhghhNjjPgPNrhNqqlVVlQVVQqQjfzBfQvZzB
rmGmSwJPwJprrNDbsfMRsdTDcDWHfM
QMpZZTtwMBttJMMbVqPpqLqbVlbqqN
rjCFGrdGRwdDHSnqflPVLqqVNllrfl
DHGDRvhvwTZhJWBQ
LcQCCpLQVhrdcFQCJrmmmwDwvDtJJnnw
TsZqqTzMRqZjfsjTTDjsNJnmnStRSHnnSJmnJSNH
sMMZZbDjZFdbVCFphV
FCcdFFGBsdDrbMNSmSdmQR
tVttHVLhvVgfTTtffNSMQRMZSRmMQNmHSb
gngvvwJtVVTvVvvvfwvJThhCzGcnsCjmCDmscPcGCsGsmz
fsnzRNZswZszPRZSLflPpDhlhvgWHmjWvJjh
bVcCqjbdjbcMdBrddrQphvHHmHWlggpWpppqJJ
FBTdFQGrTjLNsNtL
MSWWgMdgdbWbbfdgsPmddgCmSLZvSFvLQvnLrFNZvZFLlLLl
hjpJjGthjRNRptwJJqVBllnvrrlTTQFZqnTZnn
tjDGHwhHHjwjjJGpwjwjjJpwsdgffmbgMsmbDNcMcdmCPdsm
MlDrrgnTDLlCCmCRFgRSCR
HHhbbNQMccQFSNBmmpJNSJ
MwbMbshsswVbHQsbcVMcrtDllTlLqfTGVzLGrTlT
gSFzqQTpmVpQVpLFLrzJJRthlsQBlPsZsBhZst
rwrNDdbHdBhRhZbsjB
vvvMHwHcwGCwwNfMVSrqffWpSfSFzLmT
RNgMgRCCgCfPNfvNgVQmhPVWWjWjLLdLBj
JhJqqqwGDchsBVbdjldmBLmG
schZzDwTJzFTsctHFMtfftgMttpM
GHHWqWFWfWHqbRWsFZFmqZbhNjNDNppNjrjDcQdbpddhjr
wCLCVPfwgVSnPNrQhnDcjcNpDD
TPgLlggJLVwPVVPPwgTwvtSCFmzGGqzGZsGRqWBGfFRFJFRB
LfFLmGTPHBfpHmzBLdZfBfZTbWWttWSDJtWVDJDtSWJzVCCV
RssRRRhrRwQqMQQwnPngQrwvVSjttjJSjSVtWWCWjbVb
hQPnnRnQgNcQqqQQcsZTNTLpdZZfpZFHNpBp
VTCVVnwfFTvFmTCvWwJHdlhHWBJhJBRWNHgh
ZbSMZbctGtScQSZsSpZpPpplhBhtdJDRDJjhdtlRJRjNRj
rLsbBQSMBGspPGcMPQvnqmwzwmCVLmqVmwTF
GVrrQVHHHQGTllQjPHGrlCQpZZpJFWZFzzjBssDJghzhFZ
NSMmWmtqMWqSNbcctdLcdghpgpppssZgbgzpFzJJFs
cfLqLwMRdtNLMlQrvflWTQPffQ
FjtGflGsbNqjsmjGGGbmqQQQBQBTjdpTpJTWvJBddj
CPrVRMnvvLSRHLnBpwdWTRBQwQzBzR
SnZMZPcHMlqchsvGGb
nnJnswzPCtmZDCpmhphD
rSVVLQQQGQjwpdmdNmpS
VvBcQvGcQgGLBgWrwznfJsncltJsJnssPM
dhbwLStzSGmmmzJJvFgJNvnrgvhv
VTsTsRscRsVBMRVTTsjZVPCnDNvfrPfDvNCfBrPNDJ
scHHQTpJZjHwzLSHHtqHSt
MHmFsBDmGpGTBfmCfWCffhzgvf
wcjwnRLPZRVbtCjtNttGCh
ZLGVJRrnPPPwQwPppqDHFpBFTpqFDr
GzMgVfGRdRVngDjhqcjctrtrzzzs
QbQSHwHSLbWwJJFwJPLPSWTQjrhqtjflThccsclCcscCCmmj
JFbNSbLvHHLQFLvwQJFWSBVgMNGdBBnBMVfddpGngB
sZHNJwMsvHswwvMWqBzhChWPMBzd
bHQQQRDHRcRcDljttBldlPBdggBCqB
QjnDbDjjjncRjbQnfZpvssZNHnppFNpvvp
NdmfPNMHMdNMHcffHBCwwsvsRRllvwlcqjwscw
VLhVGLpLShgvrjwFhjqfls
pppnnQtVpGZVWtzGgVzgSSfnCCDmdPBMDbmmDMmdNMBmWNmm
rrfgCrrMllfnBhBrdCFfWLFmmVFVWQvWwtwV
TmSGSqNzvwwTFVvj
NSGSmNbDzpmSpbHmSJqqlMgdMndcgdccdpgllRRh
bbPtLnLcLJzTjcJbbTcttLcSgwmvWfVvfVvBgfmWVJMJMJMW
ZsDNNGDRsrHzpNRwMlgRlgmMWvffWM
FGzQpZGGLFjnSFbF
DQZVDdWWNBtgWnJCnL
SSHSmbHRFqGrmqJrbbGzjmzCwrvgvwnBwnCvprwvpwwPvv
qFFFSmsRRzzFjcFsSsjmzJzflhlZTTThdhVflZlVDDhMcN
cdvrFddqDtDvqgCDtFtrvvvFSmShPShJVJmMJSJbVBgTlmbM
GzjpHzGHHfQNfJSlPQbJBSTJBM
HWpspsWjNsGRHfpwNszzLfGqnCnZtdvvcZvwqFCcZqMZCv
rhHhDhhDrRNwDRhNRLRqNPHjHSpVpVlljSSMnlHnjS
sVVBsFBJBtBSPSjtjPPZZS
JmddVTzsffcGNwzCqNqR
nQfqFtZWFZnFJWfpGqhDsGLLPLVbrPhr
CzjwMTgBgTNSGLVVDPbjbS
wMCmgNNdgvzGdRQcFGFdfJ
CbqCDnwFpDpCVfBPmPffPfRfpB
svcsjlGJGnlnvjvzgQQgGzsZPhBRcRPhWfBZBhPhWRRhPN
sJngnjSGGTGzgJGrrbCqLHrCLwSFqV
hnRnJrwMHnQRRRwMhRrnJRBLZtBPdPSdtZZjjstsLHBP
pBBzzcbTbzCcFzTvlSCZLCtSvvttdZ
FWmNzBFNDnRqNRDM
lvzlSPRDSpDJmNwNGgFpfsFN
WBHrtrLBbhWHtdrFwFFsjzwfFjsdsF
HWnrHnTWhWTCTzTBnRZqDDDCqZcclRvSJR
qcdVbpcMFQcdMGcMFjjpbCnCGmCnJHDHDGJChzCJCJ
wWwlSfBRgRNBDPJnCgCrgzms
tBTfTRwlwRLNwTRmWtNwQFZtqcjcdcqpbdQMqMdd
jJRzwDdwFdJddcjjFCFvQLvNlBhSBhCC
gMMpbHpmnHpWfnlCSBQCPmPllQSs
nHWHVfTGdTSjZzDT
sCVTsBPltgDSbLvRMMDT
WNrjNmWZwmZwfVLvLRbRNvMp
mrHGrmnjqVzjGqdmCltlhFFllgsHBPCg
wbglgTFRblnMRltJBNrDDWQbtdbN
dqCpcjPLGfHZQBJNGGvQDZ
SPssjVSqPCLpScfCgFRVmTlRwndlRwTR
hWMWMhTTDgWMzGMszQShGWJPCQmPVCNPffPfVJftqNQC
nbnHHwLrnswwPVCPZV
nsRvFHLsvplvrcsSWDDDddjjDlMTjT
HRCnhWZhCddgwRcwhdWZHHQLJzSLsSzjJwSjztsmtzsmLF
VlVVNNVqTlMVbTVVMqvqvrDTjQfFtjstJmzftfzsSbtStJQb
pQvvPpBqNBccPWWhcWWc
glJTndVWCTDDVFvnVndVlCvwmBmqBBwQmwPwmMPggGsPGm
NhcSrhNZHhZzRtHcNRrSMSMSFBMGmsQQGLMPPF
hcpRzbcHjRhRbZRzZRztzRpJVdCdnfCnlFvdDTnJCVDjWd
dqWvjjBdWWqMjdvvMJjWWjMGgcfchhzrhwbrwShwgzSqNb
mmmmsVTlVlsLQmnpsNcfgfwNLgczhcGhzw
RslpsnGGGlWdCZFMMRWR
pfSpZSrdSMVDVVLMMDDZpdgRWMPGqqPGqmqqGGhGHNRN
wwQBwtjvvJlvsnbTbvBRHgPmlqhlqWWHqZZgNm
JnQwJvjTtzTZwJnbzzfCrfLCfdfdddfD
PZcnljZFTVmQdlQh
JCLLqBBCSNCCqzJNzStBpStBmsdhVTdmVWsWmdhfLhWVdfrR
BpMzzqSzppMMqpJqqgzPFcjZjnTjgcjbPjPDPZ
HLHWmqBHHqWbMHFtbgWcdhspPcPchndPpn
ZRVSQZRfVZGRgnfsdhLgLndL
jzJRwJRSJJvSlZQGRVwlSGZDMqmmCCCmtNbCmtCMzFNLbF
fDhlBhhZmQRRfHwLdjHFFWQQjQ
ZMTssVVzvbCqJddsLwwH
TzgTbgGGzztMbbvzvVbGvSPBrlShRrfnNrnBDlNcRDZRZB
bjfqGfvFfcHvRwGFRHjbgQtddlQljWpWnQgdWWll
TSPVVSVwSzSDTDlntDndnlWddt
hTrrNCBCVrCrrVshThHHbZvFGscwbfFGRJcZ
jNhMjcgvMNgWggvttcFtchvPFFzdPPrQrrGGQQszRPQrRG
wSCqCmmppbTwPnGHrQdrGCCD
LlqwGmGScLcVthVt
dGGrWWDqmCnwCCQMQrMbFHbMHsPFgPVZbgFPgg
tLRTBwfvTBJcZFNFZRHSHPVN
zjJLTvjcwDzqqhGD
DzrWszFFrtBBhnhNCClHlnHbSbmlSn
ZLwLcVVZcLVpvRwLgMLpLJgPmmQSNSTNbtTvQmCHQCClCHCt
cfgZJwwVLJZPPVpRwzhzrrfGGBrGtDrBsf
BTsdCQsQnwwdcCqqdCnsFvGFpFBvGzrLLmmzpvfG
pjZjgPVlJVMVtgJSWLPvfFFFbNNmNbvbmL
ggVplgJtHSSggdCHsscChhdnnR
JddZcSlvvGFJNWVWFgQgVtFWhg
nDqsHqCszwjCCPMnfhfBhtdWggfg
bqppHqqHHbPLjLCppbwDdRNvdmcTmlNZGGbTTcNv
lcZDSvztcHHcMSZVHVvMZBqBNNFNhBNTTmssBqBcFB
bbGJQdQPpGfQJQdJfLFhmznhzLLNTFhNhf
JGpWpPJddbPpPwpjbtZSzltDgWDSgvtrVv
lJcNlNjPcmtFzHtHBJFg
VPZdwGGWVrsdPWhWwhzzCzzFppDFMBtttFCr
wshsLVfWTnGswdhwcmRjRmScqTcjlPNq
BsBshRZQQsVdsZQZSdsPDwJDHNNHBztNNFMGGwMF
nSTpLjcvHppzwwNt
jcqncjjvfmgrCfvqrnZbmdmSsdbVWlsmhRdW
FjjqRZjZFZWFqPvNvvPQpmbPDCmt
GSnHSnrScncHhrtncGshVbmTmbpVvppCmpCTmTCmCC
rHfnddwdfctlzFFgwqlj
wBwlBmmhwRVThVBmFHnvHMnfsmFfHq
jzwGSGJNZCCssHfsCPfv
GJbzbZdbwJdtdQphRVWQ
ztFZccVHFWHHLSDBpSBPhhZw
fmjsCmqnNTJnvbTvLRPDlCpBSPBpRShl
JqsGTSNJGqvqvNvttGQQGdFrQctrrF
mNZqjTFrZqrTNTTGSSSbrhrhRFRHcnLCzcCdHcLBdccHLzRC
JDDfJswJDWsvgVgwpWnRBlBzGCnlCLBlcCDl
vVGpfQWJpsPQMVgvppVwgWPJrqSZTrZqhTQTrhjbjqSSjZqt
fMSDzDHzpDDVsStdDgwwFZFrrMPCNngCZP
WmLnbWmvvWTTLWWQWRGQvLvrPFZJcgJFCZNrCgGCFCPNPF
QLhlqhljWvRQbbqlqnfStnHdBqVVfzpq
qWZtSQTSvJJvBfJVBBVFNDNHbbdRVPdpNFRF
fGcwwmCgsLhgwLchbpHdrrrphdPRPh
gMjllmcjwsLMgcwlMnSWzSqjSZJqZqZfjQWv
cdRHPjRFRdFVHGcFfFTHQTHVLSQBsbsqSCLqllBJqqbSqLJC
WwWppWgtNrnzzWDmrrmNvWJClJSSbqLJJCGbsCgJbLLg
MnvWpmwvWnvtGPjVRcHRRHMj
dLMDhdHGrcLTvvvstB
nPqgGGNPqRgRSjgmlWjbbTTPPBvpvpTcswwsTF
NRGmgjRnWgnZJqllmSqjnqSDhQzVrdQHDfDrDJQDMHDJzM
RgmcPmGNQwwNmSRwPPgfmrBlCDlGbvFFvtrCsvlrBB
nfdVnjHdMWnTqflFtbjrllrlsCDl
TZJVMhnfMnVMHnpRRNRzgJRzSzgwPR
nTbsblzlnGllmsNnbDwbcWQWwWBFJBQcWQvPWFJM
HRZRdSRdCdLdRftrHHZfSQBMWJMgMzQPFWMJCFWgvQ
HVzrLrrjRjLGnlTnlDlsjj
RQdTdZhWqlZhTdWTqblhNmTMVnnrQsnnpvgMVMHMgHMrgP
fjSSfjcCzGNBjCjsnpMVpnpzvpzsHp
GGwLGSccwjwLwBcGLGSqZWmmdLZLWThmRNZmWR
ncmBrmfdfcVcfGnQdVWRBRvgqNvDvWqzLRqg
PlpPbSbLFPLpFstsbqRqZMqWZqMWSDRzvq
sjtjHCwJwlHfdfjccmmLLQ
tGMtLHQGWzLHFVQtVfQtMWtbgrZNbdfSbccggrcTjTrfbm
swRChnwqhBCCCmSjcNSdcd
vnlnqDRlsRnJJqswJvGMFVMMdWtpVJFMQQFL
ffcHLzGmfvqqfWfF
rJrrRSPCPMCrPRQMNNWJQjJCnqFVVVTStqVnSBdqppBVtpqd
jNQQPjQMCRQwwQbRQbjMgwbNhwWZHHmzmlchlHHHDcLmWzhD
JzvrRHHJvCRZFPFnPgsQVVQNzQTQDttVsB
GSMjpqdbGNppBtDhPN
MbmqMwGbZPmPHJmv
ggVSVWzCNbbNCbRM
DfVhVsVQcQDmpmQTTQLjPjMjbDGNlbRMlNGG
sftTFJJccnphcfncTsfBvwZvrzgzZzZvBrVnzq
qqlClBNSCNSRQMvdrwFvnBrr
GDfhDtszhhsThpTDzsfpprMrFvQvrnnfvQrwHFbfFH
VtggWhpsmGVTGJWMjWjNjPWjLL
NSnShnjsswSsRPNsrnwcwMHfFwGqbvqCbFfg
LDJtzzmgVVlvqGbzvFfzff
mlJmQQpmJpZpBJJdjBNhrnnRdTTgNN
RtRRvbhDFPHHlhtPhRvPRtqjmzqzzwLjHQHLLLQVmVjq
WNNBBZfgfWnqVQwNqzmQcm
MZGfzSrTTnWrrWsTWnfSGbGllPCbGlJRvlPllCtt
phgcNfqgfpZsjjpdsS
brHHnWPbDPDbTPlDJJvJJPrMVVzRSdFzwdZZzFnsdzzVdVZs
SbStvJMDQgNmmtgg
lzDMDhfFRlfMFTfMGPMbFTlMpBHrmpjjCFjmBmrqBjtCmjjq
VvVswLLHZnJJwdndNsSSNBpCpjqjmNgrmCNtmmqm
nHcZWcSVsScTDlPPlTPb
DFMQSlMDpSpFDtDFccHvmqzvbHZjJmvzmmQH
CSgffrPssdgqRbqzzRqZ
dsdsfGsrBPsTVcMctMVNNhtStW
MDWRDWpgDvWpNptvNMnJCHJHMwHCndJfZn
blcrqTFmmcbhLTTTmlBZbjBJdBfBnCbQBdfn
TzlnhcnzTmhLRvSDsRzDPzWR
nwmmPnnPDjclhhjfFzzzwqbFFNHwVqVq
vSQrbpWCvMWQQWQMLgFJVHqzBzJVNqzBFL
CvCvQtWWQmcbtntPcb
qzvtzCCtLsLLzmQCHqpSsHSmfrnNrTrNWWMNGnWZTMZGBvWn
PglVFJwPhbcghVTBpBnWWhWnTMhB
FgjcJccVpwDcwFgVDsqzddqLqSDSCQQL
PLHsSVGGPvSLTffjMJWJJBjfBL
gNhwgTqDcqwpDqNhFpDFhFWfnndjcMJjMWzzBtntJBnW
DFhhQRRwbCbwRQChppmTHCVGTlslrsvrrSVZ
hHnRfSMmsSVrFvQqrmDPgr
jjcBzjZLpWccJLczBjZjWGwCnNzDvrgPCgQvFggvqrQFnr
jtZGpLwjWBpBWcfMTttfbHRnHTbT
swSHffFTVrJlHFSWrTpMZMPhMNBqBhTvhhqZ
bQbLQGGjQLdRCcQjGZBzpzBZqMBBBVdBqh
RjQDQGmgmVVbVcjjmjgcnWtJfrwsfrtHlwswnfHSFw
bVHbbMFDcbDbcmbbHVRbMRFgzSmdzSSTBtTjBdQTzlSldQjT
nqpqCMwJffqQSzTBQlqd
wvJhnnfrfsJrCNffvspRrPPFMbPMRRPPMZgZHR
FnJZnssHvMdJWJpW
mlDlllGrSGmttwlGvZgrzZNWgggzTzdT
bCltZCthtRcbcFbjFL
JGmHrJwGzzpllRZdzZLRcW
htbPSbVtFbbgjhffgPSfTVSDcHDDDLWscRdsZjdZcRssWc
vhfFbFvVHbtTVgFPhmJBCvBNrqBBrGCqQB
BcNQcvcBchSQNccLLvhTqbJZTrHrrrzzqTZMZMFZ
tpHDsnDRslllCCHtwnpsfjRgrJrVMfMmMrFrzVJFzrVZbZrr
tnDpjCwPLNSPdhPH
qnjvvBwBhSSFPgDQLVVDqgLr
WbszTbHTbsbHJWHLLMVZmJPQDrvmZL
ctlRbtCWWtvlSfjljjhBnBNB
TsnvssDDQlRbzMzjDMqHwq
tSGjZCfFZtCFLtVGWGZFbcqwHbhWdbzbwHbdwbdw
ZGBFJFZVBLjStZPBBZLRvlmsPTvsgrrnrTllvs
PgQdNsQFsdNwWqQBsQrTrTLpbrnTpGngnbTG
hCzzMJVDmfzmBDMCfSfhTMGcnpnTcjGrpjbMGjbL
CVVfvCflSHNHvPdBHW
DwlMjMNjStgmthMghg
PTlpHnJJTcZvTTbHZWZTvpqdHhmLgrgdfrhLLsmshmsLts
vncqTbPqcpCnbCPvccZbDBCGzzNBwjDlVVGFjjVR
QsdGGCztZVRddPgndf
DrNNBbwNHNwlbjFbbCNjNwDWWDPPVfDMgfmVMfnMWmmP
rvJBbbBNcLCtJZQL
NfLlqLhbNPddLPqLhpgHwFFwFHHTwRHWwPFTrT
MSMSCnjBnBjCscjVDVljTvHmmWnrwTrwFTrvTWTT
JCMMBzDMJcZZCjDzSBDNJgdfdQlqlLNdhgGLhp

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,496 @@
97652,50353
97652,51578
98177,51578
98177,52782
97848,52782
97848,54028
98180,54028
98180,55220
97818,55220
97818,56391
97377,56391
97377,57573
97103,57573
97103,58738
96759,58738
96759,59924
96540,59924
96540,61136
96426,61136
96426,62265
95966,62265
95966,63548
96058,63548
96058,64735
95776,64735
95776,65881
95363,65881
95363,67069
95062,67069
95062,68316
94887,68316
94887,69336
94154,69336
94154,70373
93489,70373
93489,71299
92620,71299
92620,72393
92107,72393
92107,73844
92218,73844
92218,74552
91010,74552
91010,75746
90632,75746
90632,76770
89971,76770
89971,77508
88904,77508
88904,78805
88625,78805
88625,79864
87996,79864
87996,80347
86660,80347
86660,81783
86473,81783
86473,82435
85370,82435
85370,83144
84354,83144
84354,84268
83764,84268
83764,84688
82487,84688
82487,86007
82050,86007
82050,86384
80770,86384
80770,87439
80068,87439
80068,88568
79399,88568
79399,89172
78320,89172
78320,89820
77280,89820
77280,90654
76363,90654
76363,91139
75221,91139
75221,91388
73952,91388
73952,91921
72863,91921
72863,92719
71913,92719
71913,93621
70997,93621
70997,93862
69761,93862
69761,93895
68452,93895
68452,94308
67319,94308
67319,94922
66259,94922
66259,95857
65296,95857
65296,95455
63892,95455
63892,96596
62960,96596
62960,96344
61633,96344
61633,97187
60582,97187
60582,97323
59360,97323
59360,97241
58106,97241
58106,97077
56855,97077
56855,97914
55741,97914
55741,97491
54474,97491
54474,98186
53310,98186
53310,98313
52091,98313
52091,97963
50859,97963
50859,97993
49644,97993
49644,98131
48423,98131
48423,97674
47227,97674
47227,97818
46001,97818
46001,97541
44809,97541
44809,97674
43568,97674
43568,97153
42418,97153
42418,97018
41212,97018
41212,96839
40011,96839
40011,96908
38747,96908
38747,96211
37669,96211
37669,95612
36582,95612
36582,95958
35205,95958
35205,95395
34106,95395
34106,94919
32984,94919
32984,94904
31675,94904
31675,93591
30909,93591
30909,93627
29561,93627
29561,93181
28420,93181
28420,92249
27530,92249
27530,91650
26476,91650
26476,91293
25278,91293
25278,90408
24395,90408
24395,89733
23389,89733
23389,89410
22133,89410
22133,88221
21495,88221
21495,88098
20055,88098
20055,86954
19408,86954
19408,86000
18627,86000
18627,85174
17744,85174
17744,84290
16917,84290
16917,83949
15543,83949
15543,82524
15272,82524
15272,82014
14033,82014
14033,81229
13071,81229
13071,80009
12633,80009
12633,79298
11563,79298
11563,77911
11393,77911
11393,77034
10537,77034
10537,76109
9737,76109
9737,75227
8849,75227
8849,74191
8199,74191
8199,72849
8104,72849
8104,71723
7650,71723
7650,70806
6775,70806
6775,69808
6032,69808
6032,68422
6177,68422
6177,67599
4974,67599
4974,66360
4800,66360
4800,65212
4392,65212
4392,63906
4498,63906
4498,62834
3855,62834
3855,61672
3502,61672
3502,60414
3559,60414
3559,59362
2664,59362
2664,58173
2368,58173
2368,56862
2875,56862
2875,55672
2668,55672
2668,54503
2191,54503
2191,53257
2581,53257
2581,52087
1778,52087
1778,50859
2032,50859
2032,50331
94803,50331
94803,48426
1962,48426
1962,47196
1792,47196
1792,46022
2423,46022
2423,44825
2604,44825
2604,43540
2118,43540
2118,42384
2636,42384
2636,41104
2401,41104
2401,39959
2912,39959
2912,38754
3117,38754
3117,37500
3158,37500
3158,36316
3485,36316
3485,35167
3921,35167
3921,34151
4732,34151
4732,33078
5330,33078
5330,32041
5990,32041
5990,30813
6188,30813
6188,29525
6294,29525
6294,28756
7492,28756
7492,27549
7785,27549
7785,26435
8276,26435
8276,25150
8492,25150
8492,24090
9110,24090
9110,23448
10355,23448
10355,22560
11193,22560
11193,21191
11371,21191
11371,20292
12203,20292
12203,19636
13320,19636
13320,18789
14184,18789
14184,17567
14633,17567
14633,16387
15159,16387
15159,15698
16203,15698
16203,15120
17332,15120
17332,14042
17994,14042
17994,13241
18913,13241
18913,12731
20068,12731
20068,12034
21059,12034
21059,10932
21755,10932
21755,10488
22931,10488
22931,9468
23716,9468
23716,9203
24989,9203
24989,8064
25730,8064
25730,8168
27185,8168
27185,7292
28092,7292
28092,6335
28981,6335
28981,5999
30176,5999
30176,5479
31284,5479
31284,5717
32690,5717
32690,5150
33766,5150
33766,4409
34793,4409
34793,4363
36052,4363
36052,3890
37175,3890
37175,3302
38277,3302
38277,2760
39406,2760
39406,3329
40768,3329
40768,2470
41844,2470
41844,2397
43068,2397
43068,1912
44237,1912
44237,2403
45515,2403
45515,1733
46683,1733
46683,2489
47943,2489
47943,2215
49143,2215
49143,1549
50359,1549
50359,2310
51562,2310
51562,2412
52767,2412
52767,1685
54039,1685
54039,1939
55247,1939
55247,2436
56416,2436
56416,2774
57593,2774
57593,2803
58820,2803
58820,3228
59973,3228
59973,3694
61107,3694
61107,3625
62374,3625
62374,3718
63614,3718
63614,4723
64574,4723
64574,5009
65751,5009
65751,5104
67006,5104
67006,5837
68021,5837
68021,5991
69272,5991
69272,6559
70350,6559
70350,7123
71427,7123
71427,7230
72746,7230
72746,7872
73792,7872
73792,8795
74668,8795
74668,9195
75855,9195
75855,9964
76812,9964
76812,10693
77792,10693
77792,11903
78411,11903
78411,12115
79776,12115
79776,13307
80374,13307
80374,13750
81588,13750
81588,14917
82171,14917
82171,15618
83170,15618
83170,16626
83871,16626
83871,16952
85285,16952
85285,17879
86086,17879
86086,19186
86436,19186
86436,20037
87307,20037
87307,21153
87842,21153
87842,22036
88678,22036
88678,23106
89256,23106
89256,23660
90616,23660
90616,25133
90560,25133
90560,26184
91150,26184
91150,26973
92220,26973
92220,27937
93010,27937
93010,29308
92984,29308
92984,30226
93888,30226
93888,31507
93990,31507
93990,32600
94512,32600
94512,33798
94761,33798
94761,34939
95152,34939
95152,35910
96099,35910
96099,37037
96604,37037
96604,38375
96308,38375
96308,39427
97144,39427
97144,40708
96973,40708
96973,41904
97176,41904
97176,43128
97185,43128
97185,44263
97870,44263
97870,45488
97885,45488
97885,46729
97606,46729
97606,47920
98042,47920
98042,49141
97867,49141
97867,50353

View File

@@ -0,0 +1,142 @@
......................................................................S......................................................................
.............................................................................................................................................
......................................................................^......................................................................
.............................................................................................................................................
.....................................................................^.^.....................................................................
.............................................................................................................................................
....................................................................^.^.^....................................................................
.............................................................................................................................................
...................................................................^.....^...................................................................
.............................................................................................................................................
..................................................................^.^...^.^..................................................................
.............................................................................................................................................
.................................................................^.^.^...^.^.................................................................
.............................................................................................................................................
................................................................^.^...^.^.^.^................................................................
.............................................................................................................................................
...............................................................^.^.^.......^.^...............................................................
.............................................................................................................................................
..............................................................^.^...^...^.^.^.^..............................................................
.............................................................................................................................................
.............................................................^.^.^.^.^.^.....^.^.............................................................
.............................................................................................................................................
............................................................^.......^.^.^...^...^............................................................
.............................................................................................................................................
...........................................................^...^.^.^...^...^...^.^...........................................................
.............................................................................................................................................
..........................................................^.^.^.....^.......^...^.^..........................................................
.............................................................................................................................................
.........................................................^...^.^.^.^.....^.....^.^.^.........................................................
.............................................................................................................................................
........................................................^.......^.^.^.^.^.^.^.....^.^........................................................
.............................................................................................................................................
.......................................................^.^.^.^.....^.^.^.^.^.^.^.^...^.......................................................
.............................................................................................................................................
......................................................^.........^.^...^.^.^.^...^.^.^.^......................................................
.............................................................................................................................................
.....................................................^...^.^.^.^...^.^.^.^...^.^.^.^.^.^.....................................................
.............................................................................................................................................
....................................................^.^...^...^.^.^.^.^...^.^.^...^...^.^....................................................
.............................................................................................................................................
...................................................^.^...^.^...^.^.^.^.^.^.^.....^.^.....^...................................................
.............................................................................................................................................
..................................................^.....^.^.....^.^.^.......^.....^...^.^.^..................................................
.............................................................................................................................................
.................................................^...^.^...^.^.^.^...^.^.^.^.^.^.^...^.....^.................................................
.............................................................................................................................................
................................................^...^.^.^.^.^.^.^.^.......^...^.^.^.^...^...^................................................
.............................................................................................................................................
...............................................^.^...^.^...^...^.^.^.^...^.^.....^...^.^.^.^.^...............................................
.............................................................................................................................................
..............................................^...^.^...^...^.^...^.^.^.^...^.^...^.^.^...^.^.^..............................................
.............................................................................................................................................
.............................................^.^.........^.^.....^.^.^.^.^...^...^...^.....^...^.............................................
.............................................................................................................................................
............................................^.^.^...^.^...^...^.^.^.^.^.^.....^.^.^.....^.^...^.^............................................
.............................................................................................................................................
...........................................^...^.^.^.^.^.^...^...^...^.^.......^...^.^.^.^.^.^.^.^...........................................
.............................................................................................................................................
..........................................^.......^.^.^.^.^...^.^.^.^...^.^...^.^.^.....^...^.^...^..........................................
.............................................................................................................................................
.........................................^...^.^...^...^...^.^...^.^.^.^.^...^.....^...^...^.^.^...^.........................................
.............................................................................................................................................
........................................^.^.^.^.^.....^.^.^.....^...^.^.^.^.^.^.^.^...^.^...^...^...^........................................
.............................................................................................................................................
.......................................^...^.^...^.^.^...^.^...^.........^...^.^.....^.^...^.^.^.^...^.......................................
.............................................................................................................................................
......................................^...^...^.....^...^.......^.^...^...^.....^...........^.^.^.^.^.^......................................
.............................................................................................................................................
.....................................^...^.^.^.^.^.^.....^.^.^.^.^.^.....^...^.^.^.^...^.....^.^.^...^.^.....................................
.............................................................................................................................................
....................................^...........^...^.......^.^.^.^.........^.^.^...^.....^.^.^.^.......^....................................
.............................................................................................................................................
...................................^.^.^...^.^.^.....^.....^.^.^.^.^.^.^...^.^.^.^.^...^.^...^.^.^.^...^.^...................................
.............................................................................................................................................
..................................^...^.^...^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^...^.^.^...^...^.^.^.^.^.^.^.^..................................
.............................................................................................................................................
.................................^...^.^.^.^.^...^.^.^.^.^.^.^.^.^.^.^.^.^.^...^.^...^.^.^.^...^.^.......^.^.................................
.............................................................................................................................................
................................^.^.^.^.^...^.^.......^.^.^.^.^.^.....^.^.^...^.......^...^...^.^.^.....^...^................................
.............................................................................................................................................
...............................^.....^.^.......^.^...^.^...^.^.^...^...^.^.^.........^.^.^.^.^.....^...^...^.^...............................
.............................................................................................................................................
..............................^.^.^...^.....^.^...^.^.^.^.^.^.^.^.........^.^...^...^...^.^.^...^...^.^.^.....^..............................
.............................................................................................................................................
.............................^.^.....^.......^.^.^.^.^.^...^.....^.^.^.^...^.^.^...^.^.^.^.^.^...^.^.^.^...^.^.^.............................
.............................................................................................................................................
............................^.......^...^.^.^.....^...^.^.^.^.^.^.^...^...^.......^.^...^.^.^.^.........^.^...^.^............................
.............................................................................................................................................
...........................^...^...^.^.^.^...^.^...^...^.^...^.^.^.^.^.^.....^...^.^.....^.^.^.^...^.........^...^...........................
.............................................................................................................................................
..........................^.^.^.^.^.^.....^...^...^.^.^.....^...^.^.^...^.^.^.^.^.^.^.....^.^.^.^.^.^.^.^.....^...^..........................
.............................................................................................................................................
.........................^.^.^.......^.^.^.....^.^.^.^...^.^.^...^...^...^.^...^.^.....^.^.^.........^.....^.^.^...^.........................
.............................................................................................................................................
........................^.^.^.....^.^...^.^.......^.^.^.....^.^.^.......^.^.....^.^.^.^.^.^.^...^.....^.^.^.^.^.^...^........................
.............................................................................................................................................
.......................^.^.^.....^.^.........^.^.........^...^...^.^.....^.^.^.^.....^...^.^.^.^.^.....^.^.^...^.....^.......................
.............................................................................................................................................
......................^...^.^.^.....^.^.^...^.^.^.^.^...^...^...^.^.^.^...^.^...^.^.^.^.^...^.^...^...^.^.....^...^...^......................
.............................................................................................................................................
.....................^...^.^.^.....^.^.^...^.^.^...^.^.^.....^...^.......^.^.^.^...^.^.^.^.^.^.^.^...^.^.....^.^.^.^...^.....................
.............................................................................................................................................
....................^...^.^.^.....^...^...^.^...^...^...^.....^.^...^...^...^.......^...^.^...^.^...^.......^.^.......^.^....................
.............................................................................................................................................
...................^.^.^.............^.^.^...^.^.^.....^...^...^.^...^.^.^.^.^.................^.^.^.^.^.^.^.^.^.^...^.^.^...................
.............................................................................................................................................
..................^.^.....^.^.^.....^.^...^.^...^.^.^.^.^.^...^.^.^.^.^.^...^...^.^.^.^.......^.^.^.^.^.^.^.^.^.....^.^.^.^..................
.............................................................................................................................................
.................^.....^...^.....^...^.^.^...^...^.^...^...^.^.^...^.^.^.^...^...^.^.^.^.^...^.^.....^...^.^...^.^.......^.^.................
.............................................................................................................................................
................^.^...^...^.^.^...^.^.^.^.^.^.....^...^.^...^.^...^...^.^.....^...^...^.^...^...^...^...^.^...^.^.^.....^...^................
.............................................................................................................................................
...............^.^...^.^.^.^.^.^.^...^.^.^.^.^.^.^...^.....^.^.^.......^.....^.^.^.......^.....^.^...^.^...^...^.^.^.^.....^.^...............
.............................................................................................................................................
..............^.^.^...^.^.^.....^.^.^.......^...^.^...^.^.^...^.^.^.^.^.^.........^.^.^.^.^.^...^...^.^.......^...^.^.....^.^.^..............
.............................................................................................................................................
.............^...^.......^...^.^.^.^...^.^.......^.^.^.^.....^.^.^...^...^.....^.^...^.^...^.^...^.^.^.^...^.......^.^.....^.^.^.............
.............................................................................................................................................
............^.^.^...^...^...^.^.^...^.......^...^...^.....^.^.^...^...^.^...^.^.^.^...^.^...^.^.^...^.^.^...^.^.^.^.^.^.....^...^............
.............................................................................................................................................
...........^.^.^...^.......^.^.^.^.^.....^...^...^.^.^.^.....^...^...^...^.^.^.^.^.^.^.^.^.^.^.^...^.....^.^.^.^.^.^.^.^.^.^.^.^.^...........
.............................................................................................................................................
..........^.^.....^.^...^.....^...^.^.^...^.^.^.^.^...^...^.^...^.^.^...^.......^.^.^.^.^.^.......^.....^...^...^.^.......^...^...^..........
.............................................................................................................................................
.........^.^.....^.^.^.^.^.^.^...^...^.....^.^.^.....^.^.^.^.^.^...^...^...^.^.^...^.^.^.^.....^...^.^.^...^.^...^.^.........^.^.^.^.........
.............................................................................................................................................
........^.^.^.^.^.....^.^...^.^.^...^.^.^.^.......^...^...^.....^.^.....^.^.^...^.^.^...^.^...^.^...^.^.....^...^.....^.^.^.^.^.^...^........
.............................................................................................................................................
.......^.....^...^...^.....^.^.....^...^.^.^...^.^.....^.^.^.^.^...^...^.^.^.^.....^.^.^.^.^.^.^.^...^.^.^...^.^...^.^...^...^...^.^.^.......
.............................................................................................................................................
......^...^...^.......^...^.^...^.^.^.......^.^.^.^.^.....^.^.....^...^.^.^.........^...^...^.^.^...^.^...^.^.^.^.^...^.^.^.^.^.^.....^......
.............................................................................................................................................
.....^...^.^.^...^...^.^.......^.^.^.^.^.^.....^...^...^.^.^.^.^.^.^.......^...^.^...^.^.^.^.^...^.^.^.^.^.^...^.^.^.^.^.^...^.^.^.....^.....
.............................................................................................................................................
....^.........^.^.^...^.^...^.^.^.^...^.^.....^.^.^.^.....^.^.^.^.....^.^.^...^.....^.^.^...^.^.^.^.....^...^.......^.^...^.^.^...^.^...^....
.............................................................................................................................................
...^.......^...^.^.^.^...^.............^.^...^.^.^.^...^.^.^.^.^.^...^.^.^.^.^.^.....^...^.^.^.....^.^.^...^.^.^.^.^.........^.^.^.^.^.^.^...
.............................................................................................................................................
..^.^.^.^...^...^.^.^.^...^.^.......^...^.^.^.^.^.^.^.^.^...^.^...^.....^.^...^.^.........^.^...^.^.^.^.....^.^.^...^.....^.^.....^.^.^.^.^..
.............................................................................................................................................
.^...^.^.^.^...^.^.^.^.^.....^...^.....^.^.^...^...^.^.....^.^.^.^.^.^.^.^.^.^.^.^.^.^.........^.^.^.....^.^.^.^.^.^.^.^...^...^.^.^...^...^.
.............................................................................................................................................

View File

@@ -0,0 +1,5 @@
466 4 959 38 9 64 6664 96 946 235 8 55 427 71 77 826 61 19 923 39 64 51 2529 1 8 671 928 12 5 259 54 968 178 489 1 69 32 2356 7 1 391 396 57 384 676 69 459 8951 727 927 6 726 675 776 93 343 4985 2246 95 8 1 12 115 79 98 412 16 3 66 2 7 89 5235 769 91 2 7 7447 447 7 19 36 644 27 4 7 936 11 92 94 5 25 198 164 4232 9 38 41 44 44 99 41 57 99 778 9 42 69 17 44 1 394 127 73 6262 28 15 231 5792 5 437 282 926 3416 19 9811 143 76 35 3683 926 37 72 84 59 8 5 3 4 68 756 7995 2 778 32 17 68 6335 8 622 8171 16 8 32 597 799 587 97 527 34 298 56 773 1 2 41 7 1 4348 492 782 123 7418 73 3 443 1 88 61 93 6 9 99 94 15 615 76 42 981 13 598 75 38 75 149 5383 75 76 8 12 87 499 8 321 31 375 18 51 9966 62 1359 2 87 12 42 7888 1 2 582 36 126 841 984 123 1532 449 786 544 39 2 3 284 73 5 81 514 47 96 75 75 57 94 34 8 3 91 93 5 7 18 239 67 35 671 17 8 9 46 884 22 7 988 24 53 18 417 889 71 4288 354 83 6 11 496 227 53 75 8862 86 32 1 55 8 91 257 61 639 248 893 993 563 73 76 215 995 74 8 774 8118 5 93 46 9 6773 91 86 17 292 39 12 5 86 7 12 2 195 83 568 3339 3 87 227 1 52 151 636 12 479 64 58 726 91 464 92 7752 41 66 916 41 8233 73 59 62 548 328 483 11 44 5543 31 7 863 416 12 3 143 78 26 561 25 623 1 91 29 5 96 847 984 54 4 618 78 3 17 25 66 2 78 5 28 89 34 46 95 98 428 93 64 9682 19 826 858 58 15 7 3 71 2 699 23 85 92 42 718 36 981 799 11 594 18 272 3 69 41 121 99 693 64 184 495 51 38 35 82 41 114 4 37 98 131 18 25 81 3 633 56 6 7 5 14 449 17 36 62 95 14 5839 2722 12 99 2165 7216 12 13 43 74 7 91 71 98 11 24 4 6 65 77 52 818 76 16 94 94 787 7 3 31 65 92 728 2 77 464 93 39 581 2 395 97 79 16 939 79 48 93 9 51 68 2 34 28 397 1 32 6 875 9131 6273 4 367 44 8572 1119 98 3 1 88 4 695 19 1944 547 9 6963 3 18 21 923 84 444 66 41 8 381 42 932 8592 967 41 7236 63 68 63 168 44 3 338 117 6153 784 78 1 43 34 616 835 395 9 8 72 623 1 2 79 492 37 11 46 653 59 285 16 5 54 7 2431 42 816 524 87 68 1 334 87 57 28 6 7 25 52 863 9 795 71 522 32 4559 62 47 37 6537 58 9 52 54 29 89 1 39 94 295 194 1 39 68 2 72 86 68 254 781 75 14 7 86 9793 29 96 4 82 5897 79 5 25 2413 3 3 41 58 82 3329 52 8 32 336 6583 577 13 67 17 5318 69 17 59 88 7 3 18 9131 15 129 9956 55 5 859 759 5 1677 189 45 49 1 41 25 28 975 266 42 26 5 53 726 43 74 29 646 1 983 79 73 9551 44 75 5 73 46 575 93 755 9619 9 6 1 6874 533 2256 43 7247 72 89 292 913 67 6445 6988 29 35 7 47 18 42 42 948 4 557 55 279 454 887 6 13 4 1686 9 8532 43 657 4 56 81 92 93 31 963 3 943 7 83 4324 18 42 99 53 166 6 9 37 7553 962 3 78 964 99 443 74 69 42 54 48 32 81 247 325 38 31 469 37 5 915 4157 986 736 59 93 1538 3269 49 85 8264 73 134 96 55 2 78 51 8 6 9 4422 68 47 74 74 2 54 869 4 299 834 269 654 545 4746 3 69 481 883 8833 2 46 8 4 54 838 348 4 226 2 843 8 469 6874 8 61 39 88 41 62 36 6 2999 65 3 8443 38 33 48 1 47 213 74 5363 35 59 7 9229 51 8 741 1 955 665 567 27 498 1 12 154 14 63 521 25 1 859 99 682 886 84 8 44 69 97 3 83 48 211 59 37 69 3345 9 843 83 17 65 6 26 5 38 5 8 86 8 89 3 142 88 394 6 773 55 1 7 2 612 97 52 975 31 253 97 71 228 17 171 47 3 638 791 4 241 748 38 971 6 42 63 896 5 61 75 366 7 7145 7 91 48 7 147 666 6467 487 49 87 315 96 75 99 48 78 15 811 76 9 95 3 3791 13 4 14 2 656 984 2 51 621 356 499 2269 1 86 9152 686 8 41 245 29 7 58 53 3 463 47 5 85 1 175 986 1121 82
819 95 1621 22 27 65 6644 76 697 854 162 561 553 8999 51 663 7571 71 415 91 52 25 9111 7 82 869 163 45 31 394 95 642 8567 771 81 787 448 971 947 2 1489 639 23 826 957 83 12 446 947 776 64 249 299 397 65 672 7847 4577 966 8 71 41 322 655 79 524 51 54 31 8911 557 83 2796 494 33 7 48 2349 742 615 78 59 156 9 44 2 17 69 18 366 8 142 739 56 1244 7 63 77 456 61 19 81 18 44 358 42 2 57 947 498 982 833 678 373 5682 15 93 559 6236 23 947 566 865 8489 453 144 448 27 88 526 864 29 81 97 1 16 44 3 33 73 911 3852 586 249 24 66 58 8277 8 434 7627 419 38 47 922 176 624 34 433 1171 126 2 934 55 14 18 222 3 924 455 364 291 7869 66 34 4297 44 15 278 37 4 861 35 71 82 445 62 282 588 96 587 46 3 18 751 6441 97 52 3 75 289 253 4 378 41 567 34 27 515 71 1973 71 85 69 16 4591 4 19 514 58 795 384 252 112 3574 41 842 779 5529 99 43 377 6318 33 64 745 63 45 17 13 983 697 671 6 87 8678 396 98 91 439 429 986 6 462 11 58 15 14 647 15 2 237 97 43 3784 777 876 74 4114 998 27 653 49 116 923 92 41 1145 79 89 2 584 989 8926 713 34 462 41 961 282 739 96 15 741 595 8 885 615 8714 6 483 22 72 6452 26 95 27 472 23 965 74 76 9 46 3 532 68 726 7143 1 42 718 7 17 175 871 85 556 98 59 116 66 751 76 1375 85 711 399 94 1734 55 71 81 286 238 2986 47 87 9416 98 8 141 758 76 9 297 41 24 369 695 111 27 343 56 42 68 389 693 93 837 336 98 95 59 35 17 12 66 316 41 49 945 43 52 47 521 189 44 2821 11 217 244 88 67 67 39 56 56 249 4 47 13 8 881 29 574 254 21 174 13 421 97 69 31 773 93 7 346 938 232 56 99 36 37 55 346 5 75 66 263 37 96 83 68 912 56 4932 49 83 31 332 41 15 84 98 76 8616 8217 89 35 2117 879 1112 92 24 56 24 389 61 74 66 19 294 74 3194 29 62 521 261 75 65 83 137 9 633 283 22 29 139 84 57 712 62 31 493 26 768 89 872 35 478 62 88 85 72 51 8 33 979 34 599 4 868 47 312 9535 424 18 474 38 9936 2881 28 241 8 94 3 462 67 195 785 1 5623 3 11 65 495 5623 241 4 54 3 594 38 795 3144 155 76 981 17 66 693 571 18 13 571 515 519 747 94 48 59 14 1416 994 483 427 23 42 587 83 9 22 863 351 8 47 49 43 598 76 416 279 49 1448 9 184 673 15 14 7 49 53 5528 54 4 842 38 77 17 7 675 55 456 54 1398 59 29 47 257 41 68 49 48 463 29 45 52 27 743 228 9 53 96 8 34 43 215 271 73 993 21 1 31 6641 76 49 19 32 8571 244 78 73 9441 32 663 99 17 52 4683 214 348 62 159 3292 6836 94 11 563 7584 31 851 38 53 4 36 52 9196 27 891 5671 73 551 616 616 61 1223 558 43 88 76 54 67 7229 839 438 11 23 9 67 763 98 563 42 474 12 794 762 999 5855 615 73 5 85 31 168 63 734 9519 44 89 19 9718 368 2348 93 6634 23 72 792 289 86 5936 5936 48 68 3 25 97 85 6 466 4 258 51 112 645 946 82 64 2 213 7 532 81 26 84 67 81 541 85 57 883 35 671 24 89 4336 55 55 96 29 691 34 58 47 8563 682 85 32 662 45 515 24 36 44 914 42 32 85 364 354 89 96 526 62 65 758 5269 334 276 27 16 2219 4313 82 73 1334 498 416 299 13 48 73 261 3 2 2 7953 67 89 53 48 32 98 159 8 712 687 331 329 99 9338 318 18 261 659 5258 37 33 617 6 88 881 627 99 683 79 877 9 281 5847 64 64 84 49 96 54 37 25 5453 36 3 2494 16 15 51 983 69 243 713 3623 777 22 317 9291 76 78 6213 663 767 698 174 98 298 6 76 867 61 92 395 3 34 89 46 295 22 855 73 723 686 81 933 9 412 546 28 32 44 6122 9 953 87 98 96 8 53 36 66 4 9 772 378 35 8 238 72 8 65 68 21 8 89 7 915 37 5774 354 97 395 1425 31 431 32 972 1464 91 463 922 26 631 154 87 156 96 732 91 567 73 45 18 618 9 1773 6 57 36 171 925 625 9494 886 81 97 682 19 37 93 65 94 77 155 84 1 84 5 2236 85 1 79 772 298 543 22 37 556 962 715 9689 66 58 9186 841 12 866 916 17 3 83 67 2 685 42 86 53 46 282 112 3384 82
39 428 3812 46 55 14 378 78 176 984 329 348 226 6737 36 894 8935 9 934 2 65 38 73 18 65 331 194 59 756 2 44 745 7169 541 87 629 214 868 125 4 7135 843 7 143 898 71 81 76 754 813 59 42 551 116 68 876 8496 5168 762 76 47 5 3953 1366 97 56 625 676 15 7913 225 27 249 822 87 26 73 2116 241 222 95 18 919 5 81 76 2 86 54 8493 594 7847 26 9 2254 2 9 84 7237 7 47 18 86 71 945 99 4 88 344 875 812 418 92 1915 9424 41 46 54 4699 99 813 45 42 4296 5733 995 5851 82 26 85 293 286 22 28 9 54 432 98 116 28 48 33 362 464 17 16 58 617 92 7712 2165 611 414 17 62 634 928 86 37 6885 6 7 345 23 41 45 549 78 331 694 785 732 8672 83 3826 7184 21 39 387 17 2 812 64 66 2 738 4 751 718 181 582 73 7 39 517 819 76 48 6 22 761 944 76 124 63 412 77 21 472 683 647 82 35 34 1 786 46 97 124 61 381 883 64 245 652 64 38 965 4752 43 38 749 2859 38 68 947 17 6 561 31 817 163 678 883 373 7877 378 474 47 119 425 842 1 64 99 23 39 43 91 13 39 855 17 6 5334 56 398 12 2139 851 33 929 86 696 171 97 657 2145 73 55 81 188 738 7994 89 84 934 89 9143 798 421 55 23 924 44 7 447 27 4598 41 165 774 45 1449 32 46 8 59 41 461 111 14 57 33 26 8838 81 663 512 62 91 414 16 27 645 742 93 841 378 546 9322 56 414 1956 193 468 796 244 895 86 49 94 77 233 255 8442 35 83 516 65 16 897 94 5 11 765 43 55 1686 375 382 643 9323 45 462 71 86 145 96 134 25 55 259 5 71 62 15 95 283 118 2 237 49 645 11 312 899 89 673 99 882 31 17 95 14 85 52 44 124 2 25 27 9 633 52 727 461 52 53 87 18 65 97 89 387 487 7 6389 227 65 11 6 99 69 57 436 35 51 56 886 8 481 416 67 471 45 5471 16 32 211 584 1 93 325 52 32 3525 9939 92 67 683 71 5523 17 33 6 526 417 23 858 63 74 492 224 4773 55 84 735 359 57 51 85 319 52 942 443 58 5 436 61 632 659 94 76 785 949 8 82 312 73 7819 58 55 9 74 58 9 73 677 32 17 84 578 36 16 9325 94 54 365 22 419 299 714 555 38 42 7 192 64 81 483 49 645 9 117 28 216 2177 556 8 2 81 491 11 565 8375 499 934 845 91 82 133 5 7 68 734 197 558 398 37 18 67 17 8858 96 755 461 19 95 68 683 31 67 391 912 9 46 2 7 489 692 8365 736 7573 982 5 929 556 59 186 27 16 12 6889 26 856 457 62 23 86 83 127 78 294 64 431 83 82 24 616 16 233 2 38 317 3 544 4 29 261 621 46 57 87 9 699 39 9841 495 87 9636 9 38 51 8461 28 42 86 13 984 944 82 36 9761 12 427 411 8 24 2681 785 774 89 253 4854 6723 86 11 267 5635 37 317 65 25 7 77 67 312 95 488 2631 24 5253 963 636 561 496 768 4 6979 99 67 71 4725 641 577 218 92 92 13 562 52 692 72 8243 48 464 628 246 586 552 773 15 37 625 749 25 87 721 42 9833 23 1432 883 7976 77 1887 29 52 331 794 96 5434 3619 996 27 73 67 72 12 4 2536 56 567 8 277 476 778 81 91 73 32 36 481 86 27 45 12 41 628 2 22 175 386 591 55 375 728 15 946 79 84 133 11 6361 88 6434 569 43 52 72 541 9967 373 62 89 658 14 57 45 24 3397 92 2 923 63 38 513 6247 99 526 82 69 23 3526 56 631 5617 746 961 877 69 21 77 4865 96 4 2 443 72 187 22 779 91 1 459 66 158 812 633 312 99 53 218 39 648 6271 292 61 165 738 92 48 331 59 361 964 42 663 11 235 62 38 67 1 25 98 281 18 72 6414 3 768 7992 11 41 49 467 11 533 595 5341 929 98 528 477 73 55 3179 934 19 82 714 1 316 69 8 487 45 59 717 4 98 2 23 149 61 325 95 3574 216 9 969 9 591 288 228 69 43 3838 97 326 3 17 1 96 71 18 53 8 33 354 365 689 188 34 9 9 56 62 39 588 23 84 4 321 9626 2629 47 224 1135 75 895 87 79 8423 42 651 35 82 836 77 47 112 95 724 285 876 389 35 16 653 44 1541 571 9 35 1892 738 51 1532 487 33 21 651 264 81 281 95 98 821 95 16 8 36 15 457 131 51 9 691 688 7544 54 34 727 315 293 384 88 49 635 82 79 773 865 84 46 62 4 71 398 17 88 57 72 716 274 518 81
3 764 4592 46 94 43 589 67 83 933 466 475 684 3377 83 873 8357 2 12 3 19 3 44 54 37 882 16 39 772 9 39 717 3773 194 94 872 957 774 383 287 9785 225 9 63 6 9 5 31 2196 646 81 82 573 382 52 639 54 84 497 77 94 9 5692 6288 74 9 983 137 79 8617 272 61 49 3 2 65 943 998 693 118 45 32 777 2 49 81 6 61 12 9169 989 3353 95 7 63 95 9 9 5121 9 785 31 38 5 21 92 7 95 177 249 195 68 4 8276 123 6 97 8 442 12 636 29 54 8842 5797 333 1586 5 3 8 65 621 82 7 2 25 161 95 171 4 51 8 671 757 6 76 39 731 36 2848 98 523 449 69 68 26 11 6 9 8754 1 2 768 28 35 5 678 78 9 645 89 841 3836 9 8356 9223 47 84 154 76 17 844 75 46 8 919 9 837 356 118 33 81 6 66 918 8 78 4 81 3 269 992 99 72 2 669 62 857 675 751 46 91 44 34 6 59 15 35 489 97 261 377 12 2 2 6 93 962 3595 35 54 65 7323 41 1 6 2 6 214 569 111 228 522 984 128 9416 259 976 44 714 945 428 8 33 6 26 258 32 87 277 65 669 89 1 5785 92 77 13 62 961 24 623 8 94 898 95 797 64 25 34 17 239 136 8549 9 4 337 1 5478 833 94 9 72 12 11 9 836 9 616 43 286 1892 66 874 37 61 6 2 84 875 891 71 13 41 32 6496 13 34 7 58 2 69 29 19 881 96 9 365 473 129 6147 91 773 9161 527 316 837 43 483 5 8 83 88 263 446 6258 95 63 799 7 42 311 3 2 13 662 97 29 6635 643 916 572 1686 6 783 4 64 4545 5 885 2 93 196 5 14 2 62 9 332 818 1 597 2 741 43 54 928 96 758 89 21 89 4 16 85 15 42 65 7 9 3 16 5 44 2 675 489 59 19 2 28 15 71 59 4 493 4 1328 64 7 6 7 8 25 7 77 96 19 57 896 2 9698 352 46 149 91 4991 66 65 148 565 1 46 523 623 72 878 2397 95 55 319 56 1622 51 72 2 329 573 13 475 19 4 639 8268 1372 7 82 6 985 46 85 79 724 46 567 813 45 5 557 79 242 8 19 19 6276 388 2 88 6734 8 3334 81 76 5 67 52 4 26 7689 41 34 46 935 61 15 2279 9 97 8 78 75 96 5572 256 58 26 28 452 38 87 217 38 92 15 132 37 829 9634 664 2 6 82 47 67 683 433 69 271 816 78 2 762 9 2 72 82 36 42 518 3 32 4 9 2622 21 516 797 793 87 2 918 815 16 2 711 6 78 3 2 42 163 8482 964 5886 185 7 99 5 45 854 96 16 83 3764 956 193 448 4 36 98 15 21 67 77 3 238 4 32 53 876 22 388 5 96 331 9 728 1 5 366 615 29 21 44 94 396 84 9876 348 43 5459 9 96 14 5 55 42 597 95 276 921 62 28 317 983 572 987 9 27 17 845 241 4 5 753 7459 98 91 539 2768 81 276 67 79 69 93 47 11 38 61 41 85 6932 4 25 876 815 78 1 6168 17 74 978 4835 76 243 297 51 32 7 17 573 232 65 4142 46 878 276 845 656 863 765 12 64 853 996 56 93 43 222 1382 836 592 239 2537 44 4283 35 99 2 938 91 3 8785 485 74 71 1 59 62 6 1312 69 6689 4 31 91 977 76 91 57 99 49 875 89 28 37 9 93 378 2 81 472 644 231 21 172 52 84 742 34 16 85 43 6479 38 2422 2 36 56 74 951 5631 336 9 99 897 29 3 77 15 6289 48 5 289 8 59 839 3751 6 22 7 7 3 642 1 256 36 131 82 816 98 84 8 1133 59 36 38 78 76 244 38 114 85 1 21 39 78 55 35 898 8 73 743 44 276 7321 829 738 419 146 68 6 3 55 947 819 16 895 43 774 46 92 2 6 6 4 435 18 73 342 8 523 571 4 31 33 333 96 6 7489 96 126 38 457 62 94 93 3417 373 3 86 86 1 366 57 8 416 73 3 36 9 29 4 757 378 68 487 29 8692 336 4 795 6 564 8 198 739 34 344 254 35 4 5 9 63 63 52 7 69 38 9147 3748 165 437 93 5 2 28 1 84 734 24 71 9 872 9531 4745 56 93 4695 2 9 853 4 6471 29 84 1 96 357 64 24 18 19 616 158 843 589 75 23 74 35 1278 543 8 72 3987 68 3 8 22 87 21 712 326 91 515 1 1 372 35 72 11 49 754 42 517 91 7 439 13 7324 434 1 199 892 329 92 93 65 6 64 98 491 481 7 44 8 8 42 4 96 34 36 91 87 71 74 37
* * + * + + + * * + + * + + + * + * * * + * + + * + * + * * * * + + * * * + * * + * * * * * * + + + * + + * * + + + + + * * + + * * * * * + * * + + * * + + + * * + + * + * + + * + * + * * + + * * + + + * + + + + + * * * + * + + + + + + + * * + * + + + + + * + * * * * * + + * * + * + * * * + + + * + + * + * + * * * * + + + + * * * * + + * * * + * + + + + * * * * + + * * * + * * * * + + + + + + + + + + * * * * + * + + + * + * * + * * * * * + * + + + + * + * * + + + * + + + * * * * + * + + + + * * * + + + * * + * * + + * * + + * * * + * * + + + * * + + * * + + + + * * + + + * + + * + + * + + + * + + * + + * + + * * + + + + * + * + + * * * * * + + * + + * + * * + + * * * + + * * * + * + * + + * + * + * + * * + + * + * + * * * + + + + * * * * * + + * * * * + + + * * * * + + + * * * + * * + + + * + + + * + + * + * * * + + * * * + + * * + * + + + + * * + * + + * * * + * + * + + + * * * + + * * + + + * + * + + + + * + * + + * * * + * + * * + + * + * * + + * + * + * * * + + + * * * * + + * + * + * * + + + + + + * + + + + + * * + + + * * + * + + + + * * + * + * + + * * + + * + * * * * + + + + * + * + * + + + + * + + + * * * * * + * * + * + + * + * * + * * + + * * * * * * * + * * + + + * + + * * * * * + * * * + * * * + * + * + + + + + + * + + + * * + + * + + * * * + + + * + * * + + * + + + * + + * * * * + + * + * + + * + + * * + * + * + * * + * * * + * * * + + * + * + + * * * * + + + + * + * + * + + + + * * * * + + * * * * * * + + * + * * + + + * + + * + * * * * * * * + * * + * * + * + * + * * + + + + * * * * + * + * * + * * * + + * * + * + + * * * * + + * + + * * + * + * + * + + + + + * * + * * * * + * * * + + + * + + * + + + + + * * * * + * * + + + + + * + + + + * * + + * * * * * + + + + + + * * + + * * + + * * + * + + * * * * * * + * + + + + * + * + * * + + + + + + + * + + + * + + + + * + * * + * * + * * * + + + * + + * * * + + * + * + * + * + * + * + * * + + + + * * * + * * + * * + + * * * + * * * * + * + + * + * * * + + * * * + + + * + + * + + * + * * + * + * * + + * + *

View File

@@ -0,0 +1,156 @@
[.#...#...#] (3,5,7,8) (0,3,4) (0,1,2,3,4,7,9) (0,1,3,4,6,7,9) (1,4,5,6,8) (0,1,6,9) (0,2,3,4,5,7,8,9) (1,2,5,6,7,9) (0,2,3,5,6,7,8,9) (0,2,3,4,5,7,8) {46,36,54,60,41,78,47,75,59,57}
[.#...#.] (0,1,2,3,4) (0,1,2,3,4,5) (3,5,6) (0,2,4,5) (1,2,5) (3) (0,3,4,5,6) (1,2,4,6) {48,163,178,40,179,32,133}
[##.##.###] (0,1,3,4,6,7,8) (1,4) (1,2,3,5) (3,7) (0,3,4,7) (0,3,8) (1,5,7) (1,2,3,4,5,6,7,8) {29,156,20,68,149,33,23,61,43}
[.###.] (1,2,4) (0,2,4) (0,1,3,4) (2,4) {23,23,40,3,43}
[...####.#.] (1,3,5,9) (0,1,2,3,5,6,7,8,9) (1,2,4,8) (4,6,8,9) (1,2,7) (1,2,7,9) (2,6) (9) (0,2,3,6,7,8,9) (0,1,4,5,6,7) (2,3,5,6,7,8) (2,3,4,5,7,8,9) (4,5,8) {18,56,78,48,75,58,55,52,83,73}
[..#..###] (0,1,2,3,6) (1) (0,1,2,3,4,7) (3,6) (3,5,6) (0,1,3,5,7) (1,3,5,6) {41,47,33,69,13,24,48,21}
[##.####...] (3,8) (1,5,7) (1,4,7,8,9) (0,2,3) (0,3,4,7,8,9) (1,2,4,5,6,7,8,9) (0,2,3,4,5,8,9) (0,1,3,4,7) (1,4) {31,56,25,36,50,41,11,48,30,25}
[#....#..#] (0,1,2,3,4,7) (4,5,8) (1,3) (1,2,8) (2,8) (0,4) (1,2,3,4,5,6,8) (0,2,3,6) (2,3,5,6,7) {28,40,41,45,39,22,21,16,26}
[.#.#] (0,1,2) (0,2,3) (2,3) (1,3) {12,0,12,12}
[#...#.] (1,3,4,5) (0,2,3,5) (0,1,2,4) (1,4,5) (1,2,3) {156,17,167,169,6,162}
[.##..] (0,1) (2,3) (0,1,2,4) (0,2,3,4) (1,2) (0,4) {36,23,36,21,28}
[.###] (0,1,2) (1,2) (2,3) (0,3) {16,11,13,9}
[####..#.#] (1) (0,4,6) (0,2,8) (1,8) (0,4,6,8) (0,2,4,5,6,7) (0,1,3,7) (0,1,2,3,4,6,7) (4,5,6,7) (1,2,6,7) {67,51,52,21,62,30,70,59,28}
[.####] (0,2) (0,2,4) (1,2,3) (1,2,3,4) {187,8,195,8,6}
[###..#] (1,2,4) (0,1,2,5) (1,2,3,5) (0,2,4,5) {31,167,186,146,28,177}
[##....#] (0,1,3,4,5,6) (0,1,3,5) (1,2,4) (1,2,3,5,6) (0,2) (1,5) {41,46,44,31,24,32,20}
[#.#.] (1,2) (1,3) (2,3) (2) (0,3) (0,1,2) {20,51,60,38}
[#.##..####] (0,2,3,4,5,6,7,9) (1,3) (1,2,3,4,6,7) (2,4) (0,2,4,5,6,9) (4,5,8) (0,3,4,9) (0,1,3,6,7,9) (0,1,4,7,8,9) (1,2,4,6,8) {48,58,62,58,83,12,67,41,21,48}
[..##] (2,3) (1,2,3) (3) (0,1,3) (0,1) {18,37,37,41}
[##.#.##.] (0,1,3,4,7) (0,6,7) (3,6) (0,1,2,3,4) (3,4) (0,1,2,3,5,6,7) {211,199,196,234,30,185,216,200}
[#...#.##] (1,4) (1,2,3,4,6,7) (0,3,4,5,7) (2,5) (0,1,2,4,6) (5) (1,4,5,7) (2,3,4,7) (1,5,6) {15,54,49,34,60,70,33,47}
[.#.#] (0,2,3) (1,3) {20,12,20,32}
[#..#.] (4) (0,3) (1,2) (0,2) (0,2,3) (2) {21,13,48,4,9}
[.######] (2,5) (0,2,3,5) (0,5,6) (4) (0,1,6) {45,18,22,9,18,40,36}
[##..#.#.#] (3,7) (1,5) (2,3) (0,1,2,3,4,6,8) (0,1,2,3,4,5,8) (6,8) (0,8) (1,2,8) (1,4,5) (0,1,3,5,6,7,8) (1,2,3,4,5,6,7) {37,61,43,33,21,30,26,7,55}
[#.##] (1,2,3) (0,1,2) (0,2,3) {18,2,18,16}
[...#] (0,1,3) (0) (0,1) (0,1,2) {46,34,8,15}
[.###..#.] (0,1,2,3,4,5) (4,7) (5,6) (1,2,3,5,6,7) (0,2,4,7) (1,2,3,6,7) (0,2,5,7) (1,2,3,4,6) (3,4,6,7) (0,2,3,4,7) {29,24,52,165,163,42,163,190}
[.#.###] (0,1,3,4,5) (3,4,5) (0,2) (1,4,5) (0,2,3) (1,2,4,5) {48,30,31,45,44,44}
[.....#...] (2,3,5) (1,2,3,5,7) (4) (0,3,4,6,7,8) (0,1,4,5,6,7) (4,5,6,7,8) (0,3,6,8) (0,1,3,4,6,7,8) (0,1,6,8) (1,2,5,8) (5) {63,64,34,57,217,221,225,221,225}
[#.#.#####] (4,5) (2,4,6,7,8) (3,5,6,8) (1,3,4,7,8) (0,2,4,5,6,7,8) (1,2,3,5,6,7,8) (1,8) (0,2,3,4,5) (0,6,8) {34,15,58,37,54,58,53,45,56}
[.#..#.] (3) (1,2,3,5) (0,4) (1,2,3) (0,2,4,5) (3,4) (0,1) (0,1,3,4) {190,199,34,195,185,18}
[##..#.###] (1,2,3,5,6,7) (4,6,8) (3,6,7) (3,5,6) (0,2,4,6,7,8) (0,5,6,7,8) (1,2,5) (0,1,2,4,6,8) (1,2,3,6,8) (0,6,7) {54,41,60,49,46,39,113,59,64}
[##.#####.#] (1,3,4,5,6,7,8,9) (4,6,7,8,9) (1,2,4,6) (0,3,4,6) (0,2,4,5,6,8) (0,1,2,5,8,9) (0,2,4,9) (0,1,4,5) {199,27,185,28,209,39,57,19,48,184}
[##..] (0) (0,3) (1,2) (1,2,3) (0,2,3) (0,1) {37,28,14,25}
[.....##..#] (0,1,3,4,5,7,8,9) (7) (0,2,4,8,9) (0,1,2,5,6,7) (0,1) (0,4,5,9) (6,9) (1,3,5,6,7,8,9) (0,1,2,5,7,9) (2,6) {39,38,37,7,8,34,46,44,8,50}
[.###.####.] (0,1,2,3,4,5,7,8,9) (4,9) (1,2,5,7,9) (0,1,2,3,5,6,7,8,9) (0,2,4,6,8,9) (2,3,4,6,9) (3,7,9) (8) (3,8) (0,1,4,5,6,7,8,9) (1,5,8) (0,1,3,4,5,8,9) {37,40,38,45,42,40,32,32,63,72}
[...#.#] (3,5) (0,1,2,5) (1,2) (0,3,4) {12,14,14,10,2,18}
[.###.] (0,2,4) (0,4) (2,3,4) (0,3) (1,2,3) {11,5,30,29,25}
[.#..#] (3) (1,3,4) (1) (2,4) (0,3) (0,2) (1,2,3,4) {28,25,43,31,29}
[##.##.] (0,1,3,4) (2,3,4) (0,1,4,5) (0,2,4,5) (0,1,2,3) (2) (1,3,5) (1) {41,54,43,59,36,17}
[#.....#] (0,1,3,6) (1,2,3,5) (0,1,2) (0,3,4,5,6) (0,4) {158,34,22,43,142,31,25}
[.#.#..#.] (0,1,2,4,6,7) (0,1,2,3,4,5) (1,5) (0,1,3,5,6,7) (0,1,2,3,4,5,7) (1,3,6,7) {207,233,190,213,190,221,29,40}
[.#.##] (0) (0,1) (1,2,3) (1,2,4) (2,4) {120,34,41,9,32}
[.#.#..##.] (1,2,4,6) (0,1,2,3,6,7,8) (2,3) (1,2,3,4,6,8) (0,7,8) (1,2,5,8) (0,2,5,6,8) {24,18,36,21,12,8,26,16,29}
[#..###.] (1,2,3,4,5,6) (0,2,4) (0,1,2,4) (3,5,6) (0,2,3,4,5,6) (0,3,5,6) (0,1,2,3,5,6) (4) (0,1,2,3,5) {77,44,66,199,46,199,190}
[...##..##] (1,2,3,5,6) (0,1,3,4,5,7) (1,2,3,4,5,7,8) (1,2,3,6,8) (0,1,6,7,8) (0,1,2,3,4,5,7) (0,2,3,4,8) (0,1) (1,2,3,4,5,7) (0,3,4,5,6) {75,122,93,109,78,80,57,77,68}
[.######.] (0,3) (0,3,4,5,7) (0,2,4,7) (2,3,5,7) (2,4) (0,1,2,3,4,7) (1,5,6) (5,6,7) {69,29,62,61,67,57,30,83}
[##.#.#.#.#] (0,3,4,6,7,8,9) (0,4,5,6,7) (2,4,6) (0,3,5,6) (1,4,5,9) (0,2,3,4,5,6,7,9) (3,5,8) (0,1,2,3,5,6,7,8,9) (1,5) (0,1,2,5,6,7,8,9) (4,8,9) {75,55,56,57,75,97,92,67,89,81}
[##...] (3) (2,3) (3,4) (0,1,2) (0,3) (1,4) (0,1,4) {25,31,36,35,20}
[.####...] (1,2,3,4,5,7) (1,4,5,6) (1,7) (1,5,6) (0,2,4,6) (0,3,4) (0,2,4,5,6) (2,5,6,7) (2,3,4,5,6,7) {37,56,77,44,75,87,79,68}
[..###.#] (1,2,4) (0,1,5) (1,3,5,6) (2,3,4,6) (0,2) (0,2,3,4,5,6) {193,41,194,36,35,47,36}
[.####.##.] (0,1,4,5,6,8) (0,1,3,4,8) (2,6,7) (2,3,4,5,6,7,8) (0,3,5,6,8) (0,1,2,3,4,6,7,8) (1,3,5,6,8) {37,29,6,39,17,42,48,6,49}
[.###.] (1,2) (0,1,3) (0,1) (0,1,4) {27,44,17,12,11}
[#..###..] (1,2,4,6,7) (0,1,4,7) (0,4,5) (0,5,7) (0,2,3,4,5,6) (0,1,3,5,6) (0,3,4,5,6) (2,4,6,7) (0,1,3,4,5,7) (3,7) {64,50,26,50,55,64,42,58}
[.####.#] (3,5,6) (0,1,4,6) (0,1,2,5,6) (2,4,6) (2,3,4) (0,1,3,4,6) (1) (0,1,2,3) {35,39,33,29,32,5,30}
[..#######.] (0,1,2,4,5,6,7,8) (3,4,6,8,9) (0,2,3,4,6,7,8,9) (0,1,3,7,9) (0,2,3,4,5,6,7,8) (0,2,4,5,6,7,8,9) (0,1,3,4,6,7,8) (3,5,8) (2,5,6,8) (0,1,2,3,5,6,9) (0,1,4,5,7,9) {63,45,22,67,61,46,45,62,60,57}
[##.#.] (1,2,4) (0,1,3) (0,1,4) {20,190,170,13,177}
[####..#.##] (1,4,8) (0,1,3,4,5,6,7,8) (1,3,4,9) (0,1,2,3,7,9) (1,3,4,6,7,8,9) (0,2,4,5,6,8) (0,3,4,5,9) (2,6,7) (0,1,2,4,5,6,7,8,9) (0,1,5) (1,2,8) (8) (2,3,4,5,6,7,8,9) {69,258,242,57,90,67,71,74,262,61}
[##.#] (0,1) (0,3) (2,3) (1,2,3) {33,27,21,37}
[#...###.##] (0,1,2,5,8,9) (5,6) (2,3,4,5,7) (3,4,8) (1,4,6,7,8) (1,6,8) (0,1,2,5,6,7,8) (1,2,4,5,7,9) (3,7,9) (2,8) (1,5,8) (0,1,2,3,4,5,6,8,9) (0,4,5,7,9) {71,97,88,63,90,129,70,78,125,64}
[..##.##.#.] (0,1,2,4,5,6,8,9) (1,2,3,4,5,6,7,9) (0,1,2,5,6,7,8,9) (0,1,2,3,5,8,9) (1,2,7,8) (0,6) (0,1,3,4,5,6,7,8) (0,3,4,5,7,9) (2,9) {79,74,70,46,50,78,52,64,71,74}
[.#..#...##] (1,3,6,9) (1,3,5,6,7,8,9) (2,3,4,5,7,8,9) (1,3,4,7,9) (1,2,3,4,5,6,9) (0,1,2,3,7,9) (3,6,9) (0,1,2,5,6,8,9) {12,179,160,196,149,168,187,29,24,200}
[##.###...] (4,5,7,8) (0,4,6,7,8) (3,4,7,8) (1,2,3,6,7,8) (2,3,5,6,7,8) (0,2,6) (0,1,2,5,6,7) (0,1,2,3,7,8) (1,4,5,7) (1,2) {38,38,49,37,47,40,37,76,60}
[.#.###] (0,1,3,5) (0,4) (2,3) (1,4) (2,3,4) {16,18,13,20,22,7}
[....#..#] (1,2) (0,2,3,5) (4,7) (3,5,6) (0,7) (0,2,4,5,6,7) (1,2,3,4,5,6,7) (3,4,5,6,7) {27,8,21,31,171,42,40,185}
[####] (1,2) (1,3) (0,1,2,3) {13,40,21,32}
[#.#.] (3) (0,2) (0) (0,3) (0,1) (1,3) {51,6,18,31}
[#.#.####..] (0,2,3,4,9) (1,5,9) (0,2,4,6) (3,5) (0,1,3,7,8,9) (2,5,6) (1,3,4,5,6,8,9) (2,3,7,8) (0,1,4,6,7,8) {48,39,41,65,53,38,40,22,40,54}
[.#...##] (0,2,6) (0,1,2,4,5) (0,3,4,6) (2,3,4,5,6) (1,2,3,4,5) (2,3,4,6) (1,5,6) {188,50,227,45,61,54,210}
[.#.#] (1,3) (2,3) (0,2) (0,3) (1) {22,26,21,16}
[#...##.#.] (0,1,4,8) (1,2,5,6,7) (0,3,4,5,6,8) (1,2,3,7,8) (0,1,2,3,4,5,6,7) (0,6,7,8) (0,1,2,3,4) (1,3,4,5,6,7,8) (4,5,6,8) {42,28,19,20,28,8,25,25,34}
[....#..#] (1,2,4,6) (1,2,3,5,6,7) (1,3) (0,1,3,4,5,6) (0,2,4,7) (1,2,4,5) (0,1,3,7) (0,1,2,3,4,5,6) (4,5,6,7) {28,193,172,188,18,168,169,174}
[#..#.##] (0,1,2,3,6) (1,2,4) (3,4,6) (0,1,2,4,5,6) (1,2,5) (0,1,5) (0,1,4,5) (1,2,3,4,6) (0,1,2,3,5,6) {23,44,32,31,49,25,42}
[#...#...#.] (0,1,3,5,7,8) (0,2,5,6,7,9) (0,1,3,6,7,9) (0,1,2,8) (0,4,8) (1,2,3,5,6) (0,1,2,4,5,6) (6,7,8) (2,9) (0,1,2,3,4,5,9) (7,9) {31,34,22,33,4,20,37,40,5,42}
[#.#.#.#.] (0,1,5,6,7) (0,5) (0,2,4,5,6,7) (0,2,6,7) (1,2,7) (0,5,6) (0,1,2,3,4,5) (3,4,5,7) {74,43,50,18,36,73,63,65}
[#..###..#.] (0,1,5,8) (2,3,4,5,7) (0,4,6,9) (7) (0,3,4,7,8,9) (0,2,3,4,9) (0,2,4,5,6,7,8,9) (3,4) (0,1,3,5,6,7,8,9) {41,11,23,37,40,25,21,50,26,39}
[..#...#..] (1,2,4,5) (2,3,4,5,6,8) (4,8) (0,1,2,4,5,6,7,8) (6,7,8) (0,3,7) (1,2,4,5,6,7,8) (2,6,7,8) (1,2,3,4,5,6,8) (0,1,4,5,7,8) {20,23,31,18,37,23,42,62,58}
[.#..##] (0,2,4,5) (0,5) (1,3,5) (2,4,5) (1,2,5) (0,1,4) (1,2,3,4) (1,2,4,5) {28,173,163,15,156,176}
[..##.#.] (3,5) (1,6) (1,4,5) (2,3,5) (0,1,2,4,5) (0,3,4,5,6) (0,1,6) (0,2,3,4,6) {192,198,29,36,34,55,180}
[.#...] (0,2,3,4) (3) (2,4) (2,3,4) (0,1,3) {20,5,23,39,23}
[.###.#.#.] (0,1,2,4,5,6,7) (0,1,5,6,8) (3,5,7,8) (1,2,4,8) (0,1,5,8) (2,3,4,7) (3,4,5,6,8) (0,1,2,3,4,6,7,8) {33,46,30,38,48,61,34,28,67}
[#.#.] (0,2) (0,1,3) {20,15,5,15}
[##.#] (1) (0,1) (0,2,3) (0,2) (1,3) (0) {175,26,160,156}
[#.#...] (0,1,2,5) (0,1,2,4,5) (1,3,4) (2,5) (0,1,2,3) (1) (1,4) {32,64,38,23,33,27}
[##..###] (0,1,2,4,5,6) (0,4,6) (0,1,2,3,4) (3,5) (0,2,3,4,5) (1,5,6) (1,6) {38,43,36,32,38,58,40}
[#...#...#.] (1,4,6,8,9) (0,1,2,3,8,9) (4,7,8) (1,2,3,5,7) (0,1,2,4,6,7,8) (0,4,6,9) (1,5,8) (1,2,3,5,6,7,8) (0,1,2,3,4,5,8,9) (0,1,2,3,4,5,7,8,9) (1,2,3,5,6,7,8,9) (1,3,8,9) {222,258,228,230,246,216,68,67,272,243}
[.#.#] (1,3) (0,2) {0,181,0,181}
[#...#..] (0,1,3,5) (0,2,3,4) (1,2,3,4,5,6) (1,3,5,6) (0,2,3,6) {34,20,19,39,19,20,5}
[..##..#] (2,3,6) (4,5) (0,2,4,5) (0,1,2,3,5) (0,6) (0,1,3,4) (1,2,3,5) (0,1,3,5) (1,5,6) {63,81,46,70,29,86,31}
[#.##] (1,2,3) (0,2,3) {8,11,19,19}
[..#.#.] (0,1) (0,2,4,5) (2,4) (0,1,2,3) (1,2) {33,34,47,7,20,19}
[##...####.] (0,6,8) (1,3,4,5,6,8,9) (0,1,2,3,4,5,7,8,9) (1,5,7) (2,5,7) (1,2,4,5,6,7,8) (6,7,8,9) (3,4,6,8) {19,41,30,162,166,51,157,39,173,36}
[...##.] (0,3,5) (0,1,3,5) (0,2) (5) (0,2,3,4,5) (3) (0,1,2,4,5) (3,4,5) {60,7,37,242,24,49}
[#..#.###.] (0,3,5,6,7) (0,1,2,3,5,7,8) (4,5) (0,1,4,6,7,8) (3,5,7) (0,1,2,6) (0,2,3,4,5,8) {36,26,22,20,25,31,22,24,23}
[.....#..##] (0,1,2,3,4,7,8,9) (4,5,7,9) (1,2,3,5,6,7,8,9) (0,2,6) (1,4,6,9) (0,7) (1,2,5,6,8,9) (1,2,4,8) (2,3,4,7,8) (0,1,3,5,7,8) (0,1,2,3,5,7,8,9) (0,1,2,3,4,5,6,7,8) (1,5,6,7,8,9) {61,127,89,74,48,100,78,106,123,85}
[#...#] (2,3,4) (1,4) (0,2,3) (0,4) {22,4,37,37,25}
[##.#.####.] (1,3,4,7,8) (0,1,2,3,5,6,7,9) (0,3,5) (1,2,3,4,7) (1,5) (3,4) (1,3,4,8,9) (1,5,6,9) (0,1,3,4,5,6,7) (2,7,8) (0,2,5,7) {45,68,47,75,45,72,28,59,19,25}
[.####] (1,2,3,4) (0,1,2,3,4) (2,4) {19,19,28,19,28}
[#.##.#] (0,1,2,3) (5) (1,3,4,5) (0,3,5) (0,2,3,5) (2,3,4,5) {25,8,25,45,20,50}
[..###] (3,4) (0,3) (0,2,3) (0,2,4) (0,1,2,4) (2,3,4) {44,20,49,54,54}
[.##.#] (0,3) (1,2,4) (0,1,2,3) (1,2,3) (4) (0,2,4) (0,1,3) {49,57,40,64,199}
[##.#..#..#] (3,6,8) (2,4,9) (1,2,3,4,5,6,7,8,9) (0,4,8) (1,2,4,5,6) (2,4,7,8) (1,3,4,6,8,9) (0,2,3,5,7,8,9) (1,2,4,6,7) (0,4,6,9) (6) (0,2,3,4,5,9) (0,6,7,8) {35,38,57,25,67,35,54,35,28,30}
[##...#] (0,1,5) (0,1,3,5) (0,2,3,5) (1,3,5) (1,2,3,4) (2,4) {31,44,36,36,25,50}
[..#.#..] (0,1,2,3,5) (1,3,4,5) (0,2,3,5,6) (0,1,2,6) (2,3,4,5,6) {16,19,36,41,25,41,22}
[#..##] (2,4) (0,2,3) (0,1,4) {6,5,10,1,14}
[##..###] (1,3,4,5) (3,4) (3,6) (0,1,2,3,4,6) (0,1,2,4,5) (0,2,4) (0,1,3,4,5) {36,43,28,49,53,28,24}
[#.###] (0,3) (1,3) (0,1,2) (0,3,4) (0,2,3) {37,25,18,32,3}
[.###.] (0,1,2) (0,1,4) (0,3) {25,11,2,14,9}
[..##..] (0,3,4) (0,1,5) (0,1,2,5) (2,5) (0,1,3) (0,3,4,5) {55,30,20,45,25,43}
[.##.#...] (3,4) (1,2,3) (0,3,4,6,7) (0,3,6,7) (0,1,4,6) (0,1,3) (0,2,3,4,5,6) {42,38,14,41,30,1,33,16}
[#.#....] (0,3,5,6) (4,6) (0,1,3,5) (0,1,3,4,6) (0,2,3,5) (2,3,4,5) (4,5,6) {60,30,201,241,223,230,52}
[...#..####] (0,1,3,6,7,9) (1,2,5,6,9) (5,6,8) (3,6,7) (2,5,6,7,9) (0,1,2,3,4,5,6,9) (1,3,4,6,8,9) (0,1,2,4,5,6,7,9) (1,4,6,9) (2,3,5,6,7,8) (0,2,3,6) (3,5,6,8) {59,89,84,93,59,86,149,79,35,97}
[..#####.] (0,2,3,4,5,7) (2,3,4,5,6) (1,3,4,5,7) (0,1,2,5,6,7) (4,5,6) (0,6,7) (0,1,4,5,7) {34,19,26,33,40,44,43,45}
[..#.] (0,1,3) (1,2) (2,3) (0,2) (1,3) {28,195,198,23}
[.####..] (2,4) (3,5) (0,2,5,6) (0,3,4,5,6) (1) (1,2,3,4,5) {26,12,19,24,25,34,26}
[##..#.#..] (2,4,7) (1,2,3,4,6) (3,8) (0,4,5,6,7,8) (2,4,8) (0,1,2,3,4,6,8) (4,5,8) (1,2) (0,2,5,7) {13,22,53,17,55,7,18,13,38}
[.###.##] (0,4,5) (0,2,3,4,5) (2,5) (1,2,3,4,5,6) (0,1,2,4,6) (1,2,4,6) (0,1,4,5,6) (0,1,2,6) (2,4) {56,38,82,8,72,50,38}
[..#.###] (0,1,2,3,4,6) (1,2) (0,1,2,6) (0,1,3,4,5) (1,3,4,6) (0,2,3) {47,57,46,46,31,12,34}
[.....#] (0,4) (0,2,4,5) (1,4,5) (1,3,5) (0,2,3,4) (4,5) (1,4) {13,43,13,29,54,58}
[.#...] (0,2,3,4) (3,4) (1,4) (1,2,3,4) (1,3,4) (1,2) {18,62,45,53,68}
[#.#.#.##.] (0,1,4,5,7) (0,2,3,5,6,7,8) (0,3,5,8) (2,3) (0,2,3,4,5,6,7,8) (0,1,4,5,6,8) (0,1,2,3,4,5,6) (0,1,2,3,5,6) (0,1,5,6,8) (0,1,2,3,5,6,7,8) (2,3,4,5,8) {88,62,55,67,42,90,69,24,55}
[###.] (1,2,3) (0,1,2) {10,29,29,19}
[#.##....] (0,3,4,5,6,7) (0,1,2,4) (1,6,7) (0,2,5,6,7) (0,1,3,6,7) (1,2,4,6,7) (3,4,7) (3,4,5,7) {36,37,20,30,26,15,41,54}
[...###...#] (0,1,3,4,5,6,7,8,9) (3,7,8) (1,2,3,5,6,7,9) (0,2) (0,2,4,5,7,8,9) (1,4,6,8,9) (0,2,3,4,5,6,9) (0,1,2,9) (1,8,9) {50,20,46,33,37,34,30,29,33,44}
[#.###...] (0,1,2,6,7) (0,3) (0,1,3,4,6) (4,6,7) (1,2,6) (1,5) (2,4) {149,152,18,146,165,1,171,23}
[.#...##] (0,1,3) (0,2,3,4,5,6) (0,4,5) (4) (0,2,3,4,5) (2,5,6) (1,5,6) (0,1,2,4,6) {55,42,54,39,45,64,55}
[##.######] (1,2,5,6,7) (0,1,2,6,8) (2,4) (1,2,3,5,6) (0,1,2,3,4,5,7) (0,2,3,5,6,7,8) (0,3,8) (2,3,7) {18,31,54,28,24,33,20,43,5}
[..#..#..] (1,2,3,4,6,7) (3,5) (0,2,3,6) (2,5) (3,4,5,6,7) (0,2,6) {20,10,42,38,16,36,36,16}
[####] (0,1,3) (1,2,3) (0,1,2) (0,1) (1,2) (1,3) {22,46,14,23}
[#.#..###.] (2,3,4,8) (0,1,4,5,8) (0,1,3,4,5,6,7,8) (1,2,3,4,8) (0,4,5,8) (0,2,5,7) (0,2,5,6) (5,6,7,8) {49,39,56,51,61,201,182,178,213}
[#..####.] (0,1) (0,4,5,6,7) (2,3,5,6) (2,3,4,6,7) (3,6) (1,2,4,5,6,7) (0,1,3,4,5,6,7) (0,3,4,5,6) (1,2,7) (0,1,2,4,5,6) {55,47,43,70,72,72,97,41}
[#.##..###] (0,3,5,6,7,8) (0,1,2,3,4,5,8) (0,1,4,6,7) (1,5,6,7,8) (2,4,6,8) (0,3,4,7) (0,6,7) {45,56,24,27,47,40,42,45,44}
[...##..#] (0,3,4,5,6,7) (0,5,6) (0,1,3,5,6,7) (0,2,4,5,6,7) (1,2,3,4,5,7) (0,1,2,3,5,6) {45,15,14,23,15,46,45,22}
[####.] (0,3,4) (0,4) (0,1,3,4) (3) (2,4) (1,3,4) (0,3) {41,29,18,54,67}
[#####.##] (0,2,3,4,5,6) (3,7) (0,5,6,7) (0,1,2,5,7) (1,3,6,7) (0,3,4,5,6) (0,1,2,4,6,7) (0,1,4,5) (1,2,3,4,6) {228,224,48,57,234,212,84,42}
[#.#.] (0,2,3) (0,2) (0,1) (2) (1,3) {24,1,199,14}
[#...##.#..] (4,6) (0,1,2,3,6,7,8,9) (1,2,3,4,6,8,9) (0,2,4,5,6,7) (1,2,4,7,8) (0,1) (9) (2,3,7) (0,1,3,4,8,9) (0,4,5,6) (0,1,3,4,6,7,8) (3,5,7,8) {56,45,47,209,70,207,65,233,217,16}
[......#.] (0,1,3,6) (2) (0) (1,3,4,5,6) (0,3) (2,3,4,6,7) (0,1,4,5,7) (0,2,3,4,7) (0,1,2,4,5,7) (0,5,7) {60,41,52,69,65,33,40,49}
[.#####] (1,3) (1,4) (1,4,5) (0,1,5) (2,4,5) {2,18,20,1,35,25}
[#..#....#.] (0,3,7,8,9) (1,8,9) (2,3,4,5) (0,1,3,5,6,7,8) (1,2,3,4,6,7,9) (2,7) (3,4) (0,2,4,5,7,8) {33,21,12,48,27,26,20,36,34,14}
[##..###.] (1,2,3,5) (0,1,2,3,5,7) (1,3,4,5,7) (0,1,5) (1,4,5,6) (2,5) (0,2,3,4,6,7) (0,3,6,7) {39,43,34,47,31,62,39,42}
[#.#.] (0,2) (0,2,3) (1,3) {23,18,23,28}
[#.#.####.#] (0,1,4,6) (1,4,7,8,9) (6,7) (1,3,5,6,7,8) (0,1,2) (0,2,4,6,9) (0,2,3,7) (1,3,7) (0,1,2,3,5,7,8) (2,3) {39,46,53,50,30,17,54,52,23,26}
[#..#.#.#.] (1,2,4,5,6,7,8) (0,2,3,4,6,7,8) (0,2,3,4,7,8) (0,6) (0,1,4,5,6,7) (1,2,3,6,7,8) (2,3,5,7,8) {159,43,190,170,179,53,60,205,190}
[##....] (0,2,3,5) (2,3,4) (0,4) (1,4) (0,1,2,5) (1,3,5) (0,5) {61,45,24,19,33,55}
[##..#.#.] (0,1,2,3,4,5) (0,1,2,3,4,7) (0,1,2,5,6) (0,1,2,3,4,5,6,7) (1,2) (1,5,6) (0,3) {49,56,48,34,20,33,25,12}
[...##.] (2,4) (1,3,4,5) (0,2,4,5) (2) (1) (2,3) (0,4,5) {18,12,48,23,25,22}
[..#..] (0,2,4) (0,1,3) (0,4) (0,1,2,3) {223,29,196,29,194}
[#.##...] (0,1,2,3) (1,5) (5) (4,5,6) (1,2,3,5) (0,2) (0,1,2,3,5,6) (1,2,5,6) (1,2,4,5,6) {42,69,65,34,23,75,57}
[#.##.] (1,4) (0,1,2,4) (0,2,3) (0,1,4) {34,24,26,10,24}
[#.#..#] (0,1,2,5) (0,2,4) (0,1,3,4,5) (0,1,3) {29,17,17,12,21,14}
[.#..###..] (6,7) (2,4,8) (1,2,3,4,5) (0,1,3,4) (2,3,6,7,8) (0,1,7) (6) (2,4,5,6,7) (0,7) (0,2,5,7) (1,2,4,5,7,8) {39,45,62,38,64,27,40,66,55}
[#.#.##] (0,4,5) (3,4) (2,3,4) (0,1,4,5) {37,20,155,155,192,37}
[.##.##] (0,1,2,3) (0,1,2,4) (1,2,3,5) (2,3) {134,145,153,22,131,11}
[.#.#] (0,2,3) (1,3) (2,3) {20,164,33,197}