Pārlūkot izejas kodu

Merge branch 'runningAhead'

Jonatan Gezelius 3 gadi atpakaļ
vecāks
revīzija
3aedbe002c
15 mainītis faili ar 4777 papildinājumiem un 0 dzēšanām
  1. 27 0
      2020/.vscode/launch.json
  2. 41 0
      2020/03/a.py
  3. 52 0
      2020/03/b.py
  4. 11 0
      2020/03/example.txt
  5. 323 0
      2020/03/infile.txt
  6. 111 0
      2020/04/a.py
  7. 13 0
      2020/04/example.txt
  8. 1100 0
      2020/04/infile.txt
  9. 39 0
      2020/05/a.py
  10. 3 0
      2020/05/example.txt
  11. 874 0
      2020/05/infile.txt
  12. 37 0
      2020/06/a.py
  13. 44 0
      2020/06/b.py
  14. 15 0
      2020/06/example.txt
  15. 2087 0
      2020/06/infile.txt

+ 27 - 0
2020/.vscode/launch.json

@@ -0,0 +1,27 @@
+{
+    // Use IntelliSense to learn about possible attributes.
+    // Hover to view descriptions of existing attributes.
+    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
+    "version": "0.2.0",
+    "configurations": [
+        {
+            "name": "Python: Real data",
+            "type": "python",
+            "request": "launch",
+            "program": "${file}",
+            "console": "integratedTerminal",
+            "justMyCode": true,
+            "cwd": "${fileDirname}",
+            "args":["infile.txt"],
+        },
+        {
+            "name": "Python: Example data",
+            "type": "python",
+            "request": "launch",
+            "program": "${file}",
+            "console": "integratedTerminal",
+            "justMyCode": true,
+            "cwd": "${fileDirname}"
+        }
+    ]
+}

+ 41 - 0
2020/03/a.py

@@ -0,0 +1,41 @@
+import os, argparse
+tree = '#'
+
+def hit_function(map, x, y):
+    wrapped_x = x % len(map[0])
+    print(wrapped_x)
+    return map[y][wrapped_x] == tree
+
+def check_stage(map, n):
+    x = 3*(n+1)
+    y = n+1
+    return hit_function(map, x, y)
+
+def solve_task(filename):
+    toboggan_slope = []
+    with open(filename) as infile:
+        for raw_line in infile:
+            line = raw_line.rstrip()
+            toboggan_slope.append(line)
+
+    trees_hit = 0
+    for n in range(len(toboggan_slope)-1):
+        if check_stage(toboggan_slope, n):
+            trees_hit += 1
+    
+    print(f"Totally {trees_hit} trees hit")
+
+    os.system("pause")
+
+def parse_arguments():
+    parser = argparse.ArgumentParser(description="Script that solves the case",epilog="Have a nice day!")
+    parser.add_argument('filename', nargs='?', default="example.txt", help='Input file')
+    args = parser.parse_args()
+    return args
+
+def main():
+    args = parse_arguments()
+    solve_task(args.filename)
+
+if __name__ == "__main__":
+    main()

+ 52 - 0
2020/03/b.py

@@ -0,0 +1,52 @@
+import os, argparse
+tree = '#'
+
+def hit_function(map, x, y):
+    wrapped_x = x % len(map[0])
+
+    if (map[y][wrapped_x] == tree):
+        return 1
+    else:
+        return 0
+
+def number_of_hits(map, right, down):
+    trees_hit = 0
+    stages = len(map)//down
+    for n in range(stages):
+        trees_hit += hit_function(map, n*right, n*down)
+    return trees_hit
+
+def solve_task(filename):
+    toboggan_slope = []
+    with open(filename) as infile:
+        for raw_line in infile:
+            line = raw_line.rstrip()
+            toboggan_slope.append(line)
+
+    tactics = [(1,1),
+    (3,1),
+    (5,1),
+    (7,1),
+    (1,2)]
+
+    score = 1
+    for tactic in tactics:
+        hits = number_of_hits(toboggan_slope, tactic[0], tactic[1])
+        score *= hits
+        print(f"Hit {hits} trees")
+
+    print(f"Score: {score}")
+    os.system("pause")
+
+def parse_arguments():
+    parser = argparse.ArgumentParser(description="Script that solves the case",epilog="Have a nice day!")
+    parser.add_argument('filename', nargs='?', default="example.txt", help='Input file')
+    args = parser.parse_args()
+    return args
+
+def main():
+    args = parse_arguments()
+    solve_task(args.filename)
+
+if __name__ == "__main__":
+    main()

+ 11 - 0
2020/03/example.txt

@@ -0,0 +1,11 @@
+..##.......
+#...#...#..
+.#....#..#.
+..#.#...#.#
+.#...##..#.
+..#.##.....
+.#.#.#....#
+.#........#
+#.##...#...
+#...##....#
+.#..#...#.#

+ 323 - 0
2020/03/infile.txt

@@ -0,0 +1,323 @@
+...#....#.#...##......#.#...##.
+.#..#...##..#....##........##..
+..##.##...##.#.#....#..#......#
+....#....#..#..#.#....#..###...
+####.....##.#.##...##..#....#..
+#........##...#..###..#.#.#.##.
+.......###........##...#...#...
+#.#...#..#..#...#...##.##......
+..#...........#......##.#.#....
+#..#.#......##.#...#..#.#..#...
+.#....#....#..#.....#..###..#.#
+.##....................#.###.#.
+..#......#.#......#..###.......
+#.###..##..###....#........#..#
+.....#...#.......#.#.#...#....#
+....##..#.##..#.##..#.#....#...
+.#..#..#......#..##.#.#....##.#
+.....#.....#.##...#.#.##.#.....
+.#...#..##.....#.........#.#...
+.....#........#........#..#..#.
+#......##....#..#.#...#...#....
+#......#.#.......##.#..#.#.#...
+...###...##.#..........#...#...
+...#.##...#......#.##....#.#...
+#...#.....#........#..#....##.#
+##.#....##...##.####.##.......#
+..#..#...#.#.......#.##.#......
+##.........#.##....#.#...#.....
+##..#......#....#.....#...#....
+......##.#.#.....#.#.###...#...
+##.......#......#.#..#...#.##..
+#....#....#..#.#..#.#..........
+...#....#.#.#.#.....##.#..#.##.
+......#.#.#....#...##.#..#.....
+..##..#.##....#...#.....#..#.##
+.#...#.#.##..##........#.#...#.
+##.##.##....#.#....##.###......
+#...........#....##..#......#..
+...##..#.....#....#....#.#..##.
+.#..#.##..##..#.........#.....#
+.##......##.#.#......##....#...
+.....##.#....#...#...........##
+..#.....#..##...#.#..#.........
+...#.####..#.###.....#.....##..
+.....#..##..#.###........#.#...
+#..#.#.....#.....#...#...#....#
+.#...........#..#.........##...
+...#.#.#.......#..............#
+.##.#..#...#........#.##.#.#.#.
+....#....#.......#......#.#....
+##.#..##.....##..#...#....#..#.
+#.........#.#..###...#....#..#.
+....##.###...#........##...#.##
+.#...#..##.##...........##...##
+.....#.##........#.#.......##..
+.....#......#..#..#...#.#...#..
+.....#.....#.#..#.###......####
+........#.......#...........#..
+...#.##..#....######..#.#...#..
+#...##...####..##.....##...#...
+.#.......#.###..#.##..#..#.#.#.
+....#..#....##.....#........#.#
+.#..#....##..#........#...#...#
+#.#..#.#...##...#..........#.#.
+##.####....##....#...##.####...
+..##......##....#.....#...#..#.
+...#......#..#...#..#.#....#.#.
+......#...#....##....#.##......
+.##...#.........####..#....#..#
+...#..#.#......#.....#.#.#.#...
+...........#.......#........##.
+#.#....#....#.##.#...#...#.#...
+#..#.....#..#..#.#...#........#
+.....#.#.##...#............#.##
+..#.#.#...#...#..###.#.....#...
+....#.....##.......#......#....
+.#.#....#.##......##.#.#.....#.
+.....#.##.....#.#...#....#....#
+...#.......#..#.#.###.#.###....
+.#...#..#..#....#...###.#.##...
+.#....#........#..........##...
+##.#......#..#.#..........#.#..
+...#..#.......#.##..###....#.#.
+.#.....#..........#..#.........
+...##...##.#.......#..#....#...
+.....#.##....#.#.#...#.......#.
+...#.#..#.#.......#.....##..#..
+.#.#.......#.#..........#...#.#
+#........#...#....###.#...#....
+..##....#.#.#.....###.#.#......
+..#.....#.#...#.#.....#.#......
+.#.....##......#....##.#.#....#
+...##..........#.#####...#..#..
+#....#......##.............#...
+......#.....#...##..#.#....#..#
+..###.#.###.#.##.#.##..#.....#.
+#...#....#.#....#..##...#...#.#
+...#....#...#.#......#......#..
+#......#.....#.#..#........#...
+...##...##...##..###...###.#...
+#..#...#...#.....#..###...##...
+.#.....#.......#....#....##....
+......#......##.#.#......#.#...
+..#....#.#..........#..#...#..#
+###...#..............#.........
+.###.##..#.#..#.....#.#.##....#
+..#......#.##....##......#....#
+.##....###.#..#.#.............#
+..##..#..#.#.#....#..##.#..#..#
+##.#.....##...#..#...#..#.#.#..
+.#.#..............#.#...#......
+#....##...#....#..#...#........
+...#..#..#.#........#..#..#..##
+...##.#.#.#....#.......#....#..
+.##.#......#.##........#...##..
+.#.##..#.....###..#.#......#..#
+#....#..#......#....##...#..#.#
+..##....#.##...#..#.##....##..#
+#....#..#...#.......#...#......
+#.#......#....#.#..............
+..##..#..#.#.......#.#.#...##..
+...##.##......#..#.##.#.......#
+.##.........#............#.#...
+........#...#.....#....#....#..
+#....##...#........#......##...
+.###....#..#.#......#....#.#...
+#.#...........#...#....#..#.#.#
+.#....##.###...#.##....##..#..#
+........#.............#.#...#.#
+#.##..#.##....##.......#.......
+.#.....#..#.##..##.....#.......
+....#.#......#.#.............#.
+..#.#.......#...#......##..#...
+......##..###....##.#.###..##.#
+..#..#.##...#...#....#.##..#..#
+#.##...##.##.#.#........#......
+...#.#.......##....#.......#...
+.#....#.##.#..#.......#.....##.
+#..#...##.####..###.....#......
+..#...##...#...#.#......#...#.#
+.##.##.#...#.....#.##..##......
+.#...#.#.##.###..#...#...#.....
+.#..##..#....##.##....##....##.
+..#...##....#..###........##...
+.#..#..#.#....#.#...#.#......#.
+.##.....#...#..#..#..#...###...
+.#...#....#..#...........###...
+.....#...........##.#......#...
+.....#....##......##..#.#......
+.#.#..#..#...#.#..#..##..#.#...
+..#..#####.#..#.#.#.....#.#....
+#......#.##.#......#.#......#..
+.#...............#..#.#.......#
+...##...##.....##.##......#..##
+#.......##.#...........#....#..
+#...##.#...#.#..#..###...##....
+#..##..#..#......#.#...###..#.#
+.#.#..###.##..##.....#.........
+##.#..##.#..........#.......#..
+.###..##....##..#..#...##......
+........#..##.##....#....#.....
+.....#.#.#........#...#....#.#.
+..#..#.#.....#.##....##........
+...#....................#....#.
+..#....#..###.##......#..#.#.##
+.....#.#....#......#...#......#
+###...##.......#.#.#.....#....#
+..#..###.##..#..#....##.......#
+#...#.###..#...#.##..##........
+..#..#....#...........##..#....
+.#............##..#...##.#..#..
+.#.......#.#.........##..#..#..
+....#.###.#...##....#.#.##.....
+#.......#........#..#.##......#
+#.....###....#....#..#....#....
+...........#...#........#.....#
+..##...#...#.##...##.#.#..#...#
+##.##..#.......##..........#..#
+............#.....#...#..#....#
+.....#.#......#...#..#.#...#..#
+............##.##.....##...#..#
+##.#..#..#.#......#......#..##.
+..#..#.........#...#..#.#.#....
+#..#........#.......###.#......
+...#.#.#....#......#.#...#.....
+#...............#...#......##..
+###.#...#......##.....#..##.##.
+#.##...##.......###.##.........
+.#.#.........#..#.....#........
+..##..#............#.....#...##
+......###...#.#...#..#...##....
+#.........#.#.##.........##....
+.#....##....#....##....#.##....
+.#...##.#...#.......#...#....##
+#................#......##.....
+##..#......#.#.........##...##.
+...#.#.#...#..#..##..#....#.#..
+.##........#.#......##...#..#..
+...##....#.#.....##..#.........
+........###.#.#....###.##.#....
+.............#....###.#..#.#...
+.#...........##....#...#.......
+#..#.......#.....##..#.........
+..#.#..#....##...##.#.......#.#
+#.###.#.........#..#.........#.
+.......#.........##....##.#..##
+.##...###..........#....#.#..##
+.#.....#......##..#...#........
+##..#..###........#.......#....
+........#...#.##...........#.#.
+.....#..#..###.............#..#
+...######.##.....#...#......#..
+.#...#....###...###......#.##..
+...##.####.........#...#...##..
+..##....#.......#.....#..#.....
+#.##....#.#........#.....##....
+.....#.#.###...........#...##.#
+.............###........#......
+...#..#...##.#....#..##.#.....#
+....#.#.....#...#......###..##.
+........#.......#..#...........
+....#.#...#......#.#.....###...
+..#.............####.##.....#..
+..........#...#.#..............
+..#.#...........#.#..##...##..#
+.......#...#........#..##....##
+#...#.....#.#.##...#.#.#...#..#
+.....#..#....#.###.#.....#.#..#
+....#.#.#...#.................#
+#..#........##.###....#....#...
+..##...##..............##....#.
+...#.#...#.#...##........#...#.
+##..##.#..#.#.#..#.#...#.#.#.##
+..#.#..#....#..#.###.........#.
+..#.....#..#..#........#.......
+...#...#......##...###.....##..
+#....#.##.....#.##..##..#..#...
+......##..#.#.#..#.###...#...#.
+.##.....##............#.#......
+..#.#........##....#..#.####.#.
+.#....###..#.......#...........
+##...........#..#...#.....#.#..
+.#..#....#..#....#.#.........#.
+.#.###....#.....##.....##......
+.#.#.......#.......#.###.#...#.
+...###..#..#....#..####.##....#
+..........##...#...#...........
+.#.....#.#..##..##...##..#.....
+##.......#.#...#..###..#..##...
+..#.##......###..#........#..##
+....###...#..........#.#..#.#..
+#..#.#..##.......##....#.#..##.
+.#...#...#..#....#...###.......
+.##.#.#.#.....#.....#.#.#.....#
+...##.#.....#..#.#...#.####.#..
+#...##.....####..#.###.##..#.##
+..###..##....#####......##.....
+###..............#.#..........#
+#...##......##....#...#..##..#.
+.#..#...#....##.##.....#....##.
+...#.#...#..#..#.......#.##....
+.#...#..#.......#.##.#..#...#.#
+.#..#.##...#...#.............#.
+.#.#.#....##..#.#.#.#.#......##
+..#....#.#...##.##.#...#.#.#.#.
+...#..#..##.........##..#.....#
+....#..........#.#.......#.....
+........#....#.#..#.....#.#.#..
+.#...#.......#..#.##.........#.
+##......#.....#...........#.#..
+....#....##...#..#####.####...#
+.....##....#....#..#.....#..##.
+.#...#.#..###....#......#...#..
+.#.#.#.#.....##..........#....#
+...#.....#.....#..#............
+...#.#..#.....#.............#..
+......#....#.#.....#.##...#..#.
+...#....#.#...##..#....###.....
+...#..#............##...##.##..
+..#....#..............#.....#..
+.#..#.......#.#.##......#.###..
+..#...#.........#..#.....#.....
+#..........#.....##............
+##.#.#.#....##......#..#....#.#
+.#..#.....#.#..#.....#..##.....
+...#.#.....#..#..#..#.##.###...
+...##.#.....#.....#.......#....
+.....................##.#...#..
+...#.#...#...#...###..#..#.#...
+#....##..###.#...##.#......#..#
+.##...##..##...##......##.#....
+............#.....#.##.#.##.#.#
+.#...##.#..........###......#..
+.....##.....##....#.#....##..#.
+...#....#.....#....#.....#.#...
+................##.#...#....##.
+#..###.......#......###......#.
+###..#.........#.#.#.....#....#
+..#.#......#....#.#......##...#
+#...#......#.#.#.#..#...#..###.
+.#...#..#...##..#...##....###..
+#.#.#.#..###................#.#
+...#.####....##.#.....#..#.....
+#.#...##..#.#...###.#..#...#...
+#..####........#.#..#...##..##.
+..#..###..#..........##.###...#
+.....#..###.#.#....#....##....#
+.###..#.#.#....#...##.......##.
+#..#..........#...............#
+.#.#...#.....#.###..##......##.
+#...#...#...##...##.....##..#..
+.....##..###...........#.......
+........###..##........#..##..#
+#....#...##..##..#.#.#.###...#.
+.#..#......##.#..#...#.........
+.#....#.##.....................
+#.##.##...........#.####..#....
+......##....#..#.....#.#....#..
+....##.#........#.#.#.#.#..#..#
+.#..##..##..#.....#...#.#.....#
+...#..#.#.....#..#..##....##..#
+..#....#.....#........#.....#..
+#.#.#..#..#.#..#...###.#.#....#

+ 111 - 0
2020/04/a.py

@@ -0,0 +1,111 @@
+import os, argparse, re
+
+def parse_line(line):
+    pairs = {}
+    for m in re.finditer("([^\s:]+):([^\s:]+)", line):
+        print(f"Found {m.group(1)}:{m.group(2)}")
+        pairs[m.group(1)] = m.group(2)
+    return pairs
+
+def validate_number(val, min, max):
+    if not re.match("^\d{4}$", val):
+        return False
+    if int(val) < min or int(val) > max:
+        return False
+    return True
+
+def validate_height(val):
+    m = re.match("^(\d+)(cm|in)$", val)
+
+    if not m:
+        return False
+
+    len = int(m.group(1))
+    
+    if m.group(2) == "cm":
+        if len >= 150 and len <= 193:
+            return True
+    elif m.group(2) == "in":
+        if len >= 59 and len <= 76:
+            return True
+    return False
+
+def validate_hair_color(val):
+    m = re.match("^#[\da-f]{6}$", val)
+    if not m:
+        return False
+    return True
+
+def validate_eye_color(val):
+    if val not in ["amb", "blu", "brn", "gry", "grn", "hzl", "oth"]:
+        return False
+    return True
+
+def validate_passport_number(val):
+    m = re.match("^\d{9}$", val)
+    if not m:
+        return False
+    return True
+
+def validate_field(key, value):
+    match key:
+        case "byr":
+            return validate_number(value, 1920, 2002)
+        case "iyr":
+            return validate_number(value, 2010, 2020)
+        case "eyr":
+            return validate_number(value, 2020, 2030)
+        case "hgt":
+            return validate_height(value)
+        case "hcl":
+            return validate_hair_color(value)
+        case "ecl":
+            return validate_eye_color(value)
+        case "pid":
+            return validate_passport_number(value)
+    return False
+
+def validate_passport(passport):
+    mandatory_fields = ["byr", "iyr", "eyr", "hgt", "hcl", "ecl", "pid"]
+    for k in mandatory_fields:
+        if not k in passport:
+            print(f"Invalid passport! Missing {k}")
+            return False
+        if not validate_field(k, passport[k]):
+            print(f"Invalid field! {k}:{passport[k]}")
+            return False
+    print("Passport valid!")
+    return True
+
+def solve_task(filename):
+    valid_passports = 0
+    current_passport = {}
+    with open(filename) as infile:
+        for raw_line in infile:
+            line = raw_line.rstrip()
+            if line == "":
+                if validate_passport(current_passport):
+                    valid_passports += 1
+                print("")
+                current_passport = {}
+                continue
+            current_passport.update(parse_line(line))
+
+    if validate_passport(current_passport):
+        valid_passports += 1
+
+    print(f"\nTotal number of valid passports: {valid_passports}")
+    #os.system("pause")
+
+def parse_arguments():
+    parser = argparse.ArgumentParser(description="Script that solves the case",epilog="Have a nice day!")
+    parser.add_argument('filename', nargs='?', default="example.txt", help='Input file')
+    args = parser.parse_args()
+    return args
+
+def main():
+    args = parse_arguments()
+    solve_task(args.filename)
+
+if __name__ == "__main__":
+    main()

+ 13 - 0
2020/04/example.txt

@@ -0,0 +1,13 @@
+ecl:gry pid:860033327 eyr:2020 hcl:#fffffd
+byr:1937 iyr:2017 cid:147 hgt:183cm
+
+iyr:2013 ecl:amb cid:350 eyr:2023 pid:028048884
+hcl:#cfa07d byr:1929
+
+hcl:#ae17e1 iyr:2013
+eyr:2024
+ecl:brn pid:760753108 byr:1931
+hgt:179cm
+
+hcl:#cfa07d eyr:2025 pid:166559648
+iyr:2011 ecl:brn hgt:59in

+ 1100 - 0
2020/04/infile.txt

@@ -0,0 +1,1100 @@
+ecl:grn
+cid:315 iyr:2012 hgt:192cm eyr:2023 pid:873355140 byr:1925 hcl:#cb2c03
+
+byr:2027 hcl:ec0cfd ecl:blu cid:120
+eyr:1937 pid:106018766 iyr:2010 hgt:154cm
+
+byr:1965 eyr:2028 hgt:157cm
+cid:236 iyr:2018 ecl:brn
+hcl:#cfa07d pid:584111467
+
+eyr:2029 ecl:hzl
+iyr:1972 byr:1966
+pid:2898897192
+hgt:59cm hcl:z
+
+pid:231652013 hcl:#602927 hgt:166
+ecl:grn eyr:2025
+byr:2008 iyr:1986
+
+byr:1928 hgt:167cm
+hcl:#18171d iyr:2012
+ecl:oth pid:237657808 eyr:1944
+
+hgt:73in ecl:grn byr:1931 pid:358388825 iyr:2020
+hcl:#602927 eyr:2020
+
+hcl:#efcc98 eyr:2024 ecl:hzl
+byr:2030 hgt:192cm
+iyr:2013 pid:7479289410
+
+pid:053467220 iyr:2012 hgt:169cm
+cid:149 hcl:#866857
+eyr:2030
+byr:1995 ecl:oth
+
+hgt:162cm hcl:#efcc98 ecl:grn byr:1985 pid:419840766
+eyr:2022
+iyr:2020
+
+pid:22086957 hcl:c69235 ecl:#c458c5 eyr:1986 byr:2014 hgt:72cm iyr:1934
+
+hcl:#866857
+ecl:brn eyr:2024
+iyr:2017
+pid:505225484 cid:144
+byr:1980
+hgt:170cm
+
+hcl:#866857 ecl:gry
+byr:1972 iyr:2019 eyr:2023
+cid:234 pid:721290041 hgt:191cm
+
+pid:346301363
+eyr:2020
+hcl:#733820 iyr:2019 hgt:177cm
+byr:1998
+
+hgt:157cm byr:1963
+pid:898055805
+hcl:#fffffd ecl:blu iyr:2017 cid:87
+eyr:2030
+
+pid:605900764 iyr:2011
+hgt:73in ecl:hzl eyr:2024
+hcl:#888785
+cid:281
+
+iyr:2010 eyr:2026 hcl:#4f7e76 pid:883386029 byr:1946 ecl:brn
+
+hcl:z
+iyr:2020 pid:9121928466 byr:2014 ecl:zzz eyr:2025
+hgt:172in
+
+hgt:151cm cid:163 pid:670884417 iyr:2012
+ecl:oth hcl:#ceb3a1
+eyr:2028
+
+hcl:z cid:92 hgt:69cm
+byr:2008 pid:492284612
+eyr:2020 iyr:2023
+ecl:hzl
+
+byr:1933
+hcl:#7d3b0c eyr:2020 hgt:170cm
+pid:949064511 iyr:2010
+ecl:oth
+
+eyr:2025 byr:1989 ecl:oth cid:100 hgt:182cm
+pid:629190040 iyr:2017 hcl:#b6652a
+
+ecl:hzl cid:76 hcl:#e71392 eyr:2021 iyr:2013 byr:1995
+pid:762177473
+hgt:179cm
+
+pid:198500564 eyr:2029 hcl:#733820 cid:51 iyr:2012
+hgt:70in byr:1938 ecl:oth
+
+hgt:190cm ecl:brn byr:1952 iyr:2015 hcl:#623a2f
+eyr:2023
+
+hgt:169cm hcl:#602927 byr:2001 pid:823979592 iyr:2016 eyr:2029
+
+iyr:2010 ecl:gry
+eyr:2022 hgt:156cm byr:1953 pid:434063393
+hcl:#733820
+
+pid:091724580 hcl:a7069e eyr:1984 ecl:#95d01e byr:2012 iyr:2005
+
+eyr:2022 byr:1972 hcl:#866857 ecl:hzl pid:227453248
+hgt:153cm cid:324 iyr:2018
+
+cid:195 pid:049871343
+eyr:2024 hgt:169cm
+byr:1952 iyr:2010 ecl:grn
+
+eyr:2035 pid:189cm
+hgt:77 iyr:1973 ecl:#dc83d5
+hcl:z byr:2004
+
+byr:2027
+pid:89338932 hcl:1de39e ecl:grn hgt:159in eyr:2034 iyr:1937
+
+pid:076534920
+hgt:152cm
+byr:1969
+ecl:blu
+hcl:#866857 iyr:2011 eyr:2024
+
+iyr:2019 eyr:2028
+ecl:blu hgt:169cm
+hcl:#888785 pid:332202163 byr:1923
+
+hgt:65in byr:1964 iyr:2019
+pid:287612987 ecl:hzl cid:213 eyr:2023 hcl:#ceb3a1
+
+hcl:#623a2f pid:182484027
+iyr:2016 ecl:brn byr:1943
+hgt:71in eyr:2021 cid:344
+
+hcl:#cdee64 iyr:2011 ecl:brn eyr:2026 hgt:176cm
+byr:1985 pid:978641227
+
+eyr:2029 ecl:brn hgt:173cm byr:1920 cid:211
+hcl:#866857
+iyr:2016 pid:289769625
+
+hcl:#7d3b0c pid:770938833 iyr:2010 byr:1941 ecl:oth eyr:2029 hgt:161cm
+
+hgt:172cm iyr:2015 ecl:gry byr:1948
+eyr:2029
+pid:466359109 hcl:#341e13
+
+cid:74 pid:405199325 ecl:blu
+hcl:#6b5442
+eyr:1980 byr:2024 hgt:174cm iyr:2011
+
+hgt:183cm pid:075760048 cid:78 byr:1960 ecl:hzl eyr:2030 hcl:#6b5442 iyr:2014
+
+cid:264 hcl:#7d3b0c
+ecl:blu iyr:2011 eyr:2020 hgt:182cm
+byr:1929
+
+pid:435338286 byr:1931
+hcl:z ecl:amb iyr:2013 hgt:73in
+cid:165 eyr:2027
+
+pid:511898552 eyr:2025 hgt:184cm hcl:#602927
+iyr:2018 byr:1989 ecl:hzl
+
+iyr:2016
+hgt:168in
+hcl:#623a2f
+eyr:2025 pid:310738569 ecl:#0c3039
+byr:2027
+
+pid:158cm byr:1946 ecl:grt
+iyr:1920 cid:189
+hcl:389bce hgt:165cm
+
+pid:973732906 hcl:#cfa07d iyr:2010 eyr:2020 hgt:180cm
+byr:1930
+ecl:brn
+
+pid:930994364 byr:1967 hgt:151cm
+iyr:2011 eyr:2022
+
+eyr:1968 hgt:75cm cid:241
+iyr:2011 pid:5493866745
+ecl:grt
+byr:1976 hcl:#a97842
+
+eyr:2026 ecl:oth
+iyr:2016 hcl:#c0946f
+byr:1929
+hgt:175cm
+pid:9421898537
+
+eyr:2028 iyr:2016 byr:1962
+ecl:grn hgt:186cm hcl:#cfa07d pid:432962396
+
+iyr:2010 byr:1934 eyr:2023 hgt:180cm hcl:#cfa07d ecl:gry
+
+cid:168
+byr:1978
+eyr:2027 hgt:189cm pid:802710287
+hcl:#2f980b iyr:2014
+ecl:grn
+
+eyr:1970
+pid:576329104
+ecl:xry iyr:1954 hcl:#341e13 byr:2026
+hgt:74in
+
+eyr:2027 hgt:153cm
+ecl:oth
+hcl:#866857
+pid:290407832 byr:1956 iyr:2017
+
+iyr:2011
+cid:128
+ecl:amb hcl:#7d3b0c hgt:68in pid:743606119 eyr:2020
+
+ecl:oth hcl:#cfa07d
+byr:2016 pid:#de98ae iyr:1984 cid:194
+hgt:170cm
+eyr:2034
+
+pid:526098672 hgt:168cm
+hcl:#7d3b0c cid:167 byr:1923 ecl:blu iyr:2016
+eyr:2030
+
+pid:495569197 hcl:#866857 hgt:193cm
+iyr:2013 eyr:2021 byr:1921 ecl:amb
+
+ecl:amb
+hcl:#a97842 pid:862249915 iyr:2012 byr:1964
+cid:325
+eyr:2021
+
+iyr:1958
+byr:2003
+hgt:160 hcl:#18171d
+ecl:hzl eyr:2020
+
+iyr:2019 byr:1997 ecl:brn
+pid:342735713 hcl:#efcc98
+hgt:181cm cid:307
+eyr:2027
+
+pid:817121616 eyr:2020
+iyr:2012
+hgt:185cm
+hcl:#18171d byr:1969 ecl:hzl
+
+pid:381399203
+ecl:oth byr:1930
+iyr:2014 hcl:#6b5442 hgt:71in cid:156 eyr:2025
+
+byr:2002 hcl:#18171d iyr:2017
+pid:398245854 hgt:64in ecl:gry eyr:2025 cid:127
+
+eyr:2028 hcl:#341e13
+ecl:amb iyr:2012
+pid:079796480 hgt:69cm
+byr:1995
+
+cid:315 iyr:2028
+pid:775929239
+hgt:162cm ecl:dne byr:1940 eyr:1952 hcl:#c0946f
+
+iyr:2015
+hgt:154cm byr:1997
+ecl:grn
+cid:125 eyr:2024 pid:834780229
+hcl:#18171d
+
+ecl:hzl hcl:#a97842 pid:553710574 eyr:2028
+hgt:183cm cid:196
+iyr:2014
+
+pid:377912488 hgt:159cm ecl:amb eyr:2024 byr:1974
+iyr:2014
+hcl:#ceb3a1
+
+eyr:2024
+byr:1947 hgt:63in ecl:brn
+cid:69
+pid:185228911 hcl:#b6652a iyr:2016
+
+eyr:2024
+hgt:168cm hcl:#602927
+iyr:2013
+byr:1993
+pid:681091728 ecl:gry cid:203
+
+pid:037922164 iyr:2020
+byr:1990 hgt:156cm eyr:2023 hcl:#866857
+cid:97 ecl:grn
+
+hgt:170cm pid:980455250
+iyr:2011 ecl:hzl byr:1957
+eyr:2030 hcl:#cfa07d
+
+hgt:158cm
+hcl:#602927
+byr:2002 ecl:hzl iyr:2013
+cid:99
+eyr:2020 pid:48646993
+
+byr:1955 pid:814033843 eyr:2030 hcl:#a97842
+hgt:191cm iyr:2019
+
+pid:111196491 hgt:191cm iyr:2012 ecl:blu hcl:#a97842
+eyr:2026 cid:131 byr:1979
+
+hcl:#fffffd hgt:68in
+cid:121 ecl:oth eyr:2024 pid:343836937
+byr:1955
+iyr:2020
+
+eyr:2025 byr:1954
+pid:737517118
+cid:343 hcl:#b6652a
+iyr:2017 ecl:hzl
+hgt:175cm
+
+ecl:brn
+iyr:2011 hgt:171cm cid:102 pid:066348279 byr:1981
+
+ecl:oth iyr:2018 byr:1975
+eyr:2029
+hgt:185cm cid:226
+pid:978243407 hcl:#341e13
+
+iyr:2015 pid:918017915 hcl:#3e52b7
+byr:1999 ecl:brn cid:314
+eyr:2025 hgt:192cm
+
+hcl:#19d1fa byr:1984 ecl:dne hgt:76in
+iyr:2015 cid:118 pid:417075672
+eyr:2020
+
+iyr:2019
+cid:120 hgt:186cm
+hcl:#733820 eyr:2024 pid:423238982 ecl:brn byr:1968
+
+hgt:70cm cid:173 pid:767014975
+hcl:#866857 eyr:2039 ecl:brn byr:1985
+
+pid:340424924
+eyr:2027 hcl:#7d3b0c
+hgt:168cm ecl:hzl iyr:2016
+byr:1994
+
+ecl:hzl byr:1933 pid:580425691
+iyr:2010 hcl:#c0946f eyr:2024
+hgt:64in
+
+hcl:#9fe6b0 pid:913184461 ecl:grn eyr:2030
+cid:262 iyr:2014
+
+ecl:amb pid:640007768 eyr:2030 byr:2017 iyr:1988 hcl:z
+
+byr:1977 cid:54
+eyr:1939 pid:882762394 iyr:2030 hcl:#ceb3a1 ecl:blu
+
+iyr:2011 hcl:#7d3b0c byr:1928
+pid:340969354 cid:199 hgt:168cm eyr:2029 ecl:hzl
+
+pid:729464282
+iyr:2012 hcl:baae60
+eyr:2026 ecl:hzl hgt:166cm byr:2019
+
+pid:930997801 iyr:2019 eyr:2030
+hcl:#866857 ecl:oth byr:1960 cid:235 hgt:73in
+
+ecl:brn
+byr:1988 hgt:179cm iyr:2017
+pid:864768439 cid:305 hcl:#c0946f
+eyr:2029
+
+hcl:#7d3b0c ecl:grn
+hgt:182cm eyr:2021 pid:719891314
+byr:1920 iyr:2017
+
+hgt:62cm
+cid:71 ecl:brn hcl:#fffffd iyr:2025 eyr:1997
+pid:175cm byr:2022
+
+hcl:#cfa07d cid:239 eyr:2025 ecl:hzl hgt:189in byr:1980 iyr:2020
+pid:703047050
+
+byr:1951
+eyr:2030
+ecl:hzl
+pid:130992467 hgt:157cm hcl:#341e13
+
+hgt:175cm
+hcl:#623a2f
+cid:68 eyr:2025
+byr:2001 ecl:oth pid:253618704 iyr:2016
+
+hcl:#fffffd pid:379344553 ecl:grn
+eyr:2026
+hgt:72in byr:1974 iyr:2013
+
+ecl:#b4e952 byr:1970 hcl:z
+eyr:2039 pid:6056894636 iyr:2021 hgt:165cm
+cid:328
+
+hcl:#602927 iyr:2014 pid:890429537 byr:1957 hgt:68in eyr:2020 ecl:hzl
+
+cid:265 byr:1961 hcl:#ceb3a1 eyr:2022 iyr:2016 hgt:184cm pid:921615309
+
+byr:1951 eyr:2024
+hcl:#341e13
+ecl:amb pid:414644982
+iyr:2010 hgt:159cm
+
+iyr:2015 cid:319
+eyr:2029 ecl:brn pid:380237898
+hcl:#efcc98 hgt:157cm byr:1972
+
+pid:237156579 ecl:#312a91
+hgt:167cm iyr:2011 hcl:#c0946f eyr:2021 byr:1953
+
+ecl:hzl iyr:2015 pid:10160221 eyr:2025 hgt:175cm hcl:z byr:1939
+
+hgt:59in hcl:#18171d byr:1962 ecl:hzl
+iyr:2019 eyr:2025
+cid:337 pid:491938615
+
+ecl:utc hgt:82 pid:51674655 byr:2020
+eyr:1954 iyr:2029 hcl:z
+
+pid:119530189
+cid:103
+iyr:2010 byr:1979
+hgt:168cm hcl:#a97842 ecl:brn eyr:2029
+
+hgt:177cm ecl:brn
+byr:1990
+pid:015089628 eyr:2028 hcl:#733820 iyr:2020
+
+ecl:blu iyr:2020 hgt:189cm
+hcl:#efcc98 byr:1982 pid:346500376 eyr:2021 cid:160
+
+ecl:brn hgt:173cm iyr:2011 cid:259 hcl:#6b5442 eyr:2026
+byr:1995
+pid:654875035
+
+ecl:grn eyr:2025 pid:147155222 byr:1942
+cid:341 hcl:#602927
+hgt:165cm
+iyr:2016
+
+pid:543171646
+hgt:153cm
+iyr:2019 hcl:#fffffd byr:1985 cid:266
+eyr:2027
+ecl:hzl
+
+ecl:blu
+eyr:2022
+pid:667939101 byr:1974
+cid:259 hcl:#888785
+
+eyr:2030 byr:2016 iyr:2022
+pid:86902982
+ecl:zzz hgt:72 hcl:ceb867
+
+hcl:#fffffd
+ecl:grn pid:046978329
+byr:1924
+eyr:2025 hgt:158cm iyr:2011
+
+hgt:150cm eyr:2028 byr:1985 ecl:gry hcl:#866857 pid:340615189
+iyr:2017
+cid:50
+
+cid:171 hcl:#18171d pid:009562218 byr:1981 hgt:175cm eyr:2024 ecl:oth iyr:2017
+
+iyr:2019
+eyr:2022
+ecl:brn hcl:#cfa07d pid:050270380 cid:159
+hgt:151cm
+byr:1951
+
+hcl:#7d3b0c hgt:176cm iyr:2015 byr:1923 pid:348188421 ecl:blu eyr:2029
+
+byr:1997 hgt:162cm eyr:2023 pid:445685977
+iyr:2012 ecl:amb hcl:#efcc98
+
+iyr:2017 ecl:oth eyr:2028 pid:791977055 hgt:170cm byr:1991
+hcl:#623a2f
+
+byr:1998 hcl:#fffffd
+eyr:2020
+ecl:gry pid:039483695 hgt:163cm iyr:2020
+cid:165
+
+ecl:hzl hgt:74in iyr:2016 pid:026214321
+cid:152 hcl:#a1f179
+eyr:2036 byr:2001
+
+pid:257900949 cid:80 byr:1956 iyr:2012 hgt:165cm eyr:2030
+
+pid:918371363
+ecl:xry
+iyr:2012
+byr:2012 hgt:65cm
+eyr:2029
+
+pid:041789006 iyr:2018 byr:1945 eyr:2024 ecl:blu
+hcl:#5ab31e hgt:171cm
+
+ecl:gry
+byr:1956 cid:318 iyr:2020 hcl:#623a2f
+eyr:2030 pid:020576506 hgt:184cm
+
+hgt:173cm iyr:2025
+eyr:2023
+ecl:amb pid:958983168 hcl:#866857 byr:1935
+
+byr:1974
+eyr:2040 pid:57104308 iyr:1980 hcl:z
+hgt:192in cid:295 ecl:amb
+
+pid:180cm hcl:1109f7 eyr:2039 byr:2020
+ecl:dne hgt:189in iyr:1921
+
+iyr:2013 byr:1961
+hcl:#866857
+eyr:2025 hgt:158cm ecl:gry
+
+ecl:brn iyr:2013 eyr:2021 pid:978650418 byr:1980
+hcl:#ceb3a1 cid:110
+hgt:166cm
+
+pid:864880558 ecl:hzl hcl:#c0946f byr:1955 eyr:2027 hgt:169cm iyr:2011
+
+eyr:2023 hgt:191cm hcl:#866857
+pid:454509887
+ecl:grn byr:1938 iyr:2015
+
+pid:793008846 eyr:2025 ecl:grn hcl:#341e13
+hgt:187cm
+byr:1973 cid:224
+iyr:2013
+
+hcl:#866857 eyr:2022 pid:802335395 hgt:171cm ecl:amb
+iyr:2015 byr:1991
+
+hcl:#888785 pid:768625886
+hgt:180cm
+eyr:2026 ecl:oth cid:178 byr:1958
+
+pid:921387245 cid:82 hgt:190cm hcl:#c0946f ecl:grn
+iyr:2015 eyr:2023
+
+pid:0704550258 hcl:1ba8f6 iyr:2010 byr:1978 cid:130
+eyr:2030 ecl:dne hgt:66cm
+
+pid:626293279 hcl:#7d3b0c hgt:185cm ecl:oth
+eyr:2020 byr:1937 iyr:2012
+
+hgt:175
+eyr:1933 ecl:gry
+hcl:#7d3b0c byr:2003 pid:#5d8fcc
+iyr:2012
+
+eyr:2027
+byr:1927 cid:154
+ecl:gry pid:683668809 hgt:164cm
+hcl:#a97842 iyr:2011
+
+byr:1940 iyr:2014 hgt:172cm eyr:2024 pid:033678324 hcl:#10fded
+cid:292 ecl:oth
+
+iyr:1970 ecl:#201515 pid:#4cd485 eyr:2034 hgt:162
+byr:2005 cid:67
+hcl:#c0946f
+
+cid:306
+byr:1948
+hcl:#efcc98
+eyr:2024 hgt:171cm pid:440657854 iyr:2015 ecl:brn
+
+hgt:172cm ecl:brn byr:1958 pid:054926969 hcl:#4b8065 iyr:2019
+
+pid:45977569 ecl:amb byr:2002 hgt:71cm hcl:z iyr:1983
+
+pid:811407848 hcl:#866857 cid:112 hgt:180cm byr:1986
+ecl:brn eyr:2026
+
+ecl:amb
+byr:1992
+cid:288 pid:417117245 hcl:#623a2f
+iyr:2011 hgt:181cm
+eyr:2021
+
+byr:1974 hgt:192cm cid:172
+eyr:2022
+ecl:blu
+hcl:#cfa07d iyr:2014
+
+eyr:2024 ecl:gry
+pid:874569675 byr:1960 iyr:2017 hgt:186cm
+hcl:#6b5442
+
+byr:1988 eyr:2024 iyr:2020 ecl:oth hcl:#866857 pid:227304269 hgt:170cm
+
+ecl:grn iyr:2019 byr:2002 cid:150 hcl:#efcc98
+pid:600740993
+hgt:167cm eyr:2027
+
+pid:553824537 iyr:2019 ecl:blu eyr:2025 hcl:#e21269 hgt:193cm
+byr:1923
+
+byr:2030 iyr:2019 ecl:#cb0911
+hcl:#cfa07d hgt:74in eyr:2012
+pid:7647207386
+
+cid:289 hgt:128 pid:178cm iyr:2025 ecl:#4ad977 byr:2020 eyr:2036 hcl:#efcc98
+
+cid:119 hgt:150in
+hcl:z
+iyr:2012
+ecl:brn eyr:1975
+byr:2007 pid:#0dcd32
+
+hcl:8a1ce7 pid:0434291854
+eyr:2034 iyr:2005
+hgt:62cm byr:2029 ecl:utc
+
+ecl:gry hcl:#ceb3a1 byr:1976 eyr:2024 iyr:2010 hgt:188cm
+pid:636312902
+
+hcl:#888785 byr:2027 hgt:178in iyr:2017 pid:973095872 eyr:1952
+
+hgt:179cm iyr:2015 hcl:#ceb3a1
+byr:1944 pid:182079308 cid:317
+eyr:2025 ecl:hzl
+
+hcl:#6b5442 ecl:grn eyr:2023 hgt:71in pid:829794667 byr:2000
+iyr:2014 cid:192
+
+iyr:2014 pid:096659610 hcl:#c0946f ecl:oth byr:1991 cid:180
+hgt:177cm
+eyr:2023
+
+byr:2017
+eyr:2036 iyr:1933
+cid:225 ecl:gmt hgt:179in
+hcl:b5c44d pid:99932231
+
+hcl:#18171d
+hgt:187cm eyr:2023 byr:1934 cid:286 pid:878541119 iyr:2020 ecl:amb
+
+hgt:185cm
+pid:754207134 ecl:oth eyr:2023
+hcl:#a97842 cid:313 byr:1966
+iyr:2015
+
+hcl:#ceb3a1 byr:1921 eyr:2022 pid:799265846 cid:285
+hgt:67in iyr:2015
+
+iyr:2011 byr:1941
+hcl:#341e13 cid:65 pid:413556937
+hgt:169cm
+ecl:amb eyr:2020
+
+iyr:2016
+hgt:158cm ecl:grn byr:1931 hcl:#7d3b0c
+
+pid:574299170 iyr:2013 byr:1961 ecl:hzl hcl:#866857 hgt:168cm eyr:2022
+
+eyr:2022 pid:245416405
+iyr:2019 hgt:173cm hcl:#c0946f
+ecl:brn
+byr:1965
+
+byr:1980 hgt:162cm ecl:brn pid:239318191
+hcl:#fffffd
+cid:58 eyr:2025 iyr:2020
+
+pid:892646915
+iyr:2012 hcl:#733820 byr:1991 eyr:2021
+hgt:157cm ecl:oth
+
+pid:310597466 eyr:2025
+hcl:#cfa07d byr:1944 iyr:2018 ecl:oth
+hgt:183cm
+
+iyr:2010 hgt:187cm ecl:oth
+pid:975763328
+hcl:#866857 eyr:2023 cid:283 byr:1997
+
+iyr:2020 cid:225 hcl:#efcc98 pid:424680047 ecl:blu
+hgt:154cm
+byr:1968 eyr:2027
+
+ecl:oth eyr:2020 hgt:183cm hcl:#623a2f
+pid:771851807
+byr:1990
+iyr:2017
+
+hcl:#efcc98 ecl:blu byr:1991 hgt:191cm pid:266021118
+cid:124
+eyr:2025
+
+byr:1993
+ecl:hzl eyr:2020
+hgt:163cm
+iyr:2015 pid:831538073 hcl:#18171d
+
+hgt:74in hcl:#420afb eyr:2028
+ecl:grn pid:264469103
+byr:1993
+
+eyr:2020
+cid:79
+byr:1972
+pid:084953331 hcl:#a97842 ecl:brn iyr:2010
+hgt:170cm
+
+iyr:2014 ecl:gry pid:094812116 eyr:2026 hgt:190cm byr:1965 hcl:#944667
+
+hcl:#fffffd byr:1953 iyr:2014 ecl:hzl hgt:164cm
+cid:123 eyr:2023 pid:546394433
+
+iyr:2012 hgt:155cm byr:1998 pid:#2c9be6 eyr:2023 hcl:#ceb3a1 ecl:gry
+
+eyr:2029 ecl:gry pid:752489331 iyr:2015 hgt:167cm hcl:#18171d cid:70 byr:2002
+
+byr:1938
+ecl:gry
+pid:764937909 iyr:2014
+hcl:#7d3b0c
+eyr:2022 cid:145 hgt:184cm
+
+cid:340
+byr:1924 hgt:169cm eyr:2026
+iyr:2013 ecl:amb
+pid:499844992 hcl:#18171d
+
+pid:838417672 hgt:175cm
+ecl:grt iyr:2017 eyr:2025 hcl:17aa1a
+
+eyr:2020
+byr:1925 hcl:#341e13
+ecl:brn cid:342 pid:047426814 hgt:156cm iyr:2012
+
+iyr:2011 hcl:#341e13 byr:1959
+ecl:amb pid:969679865
+
+byr:1978 cid:320 hgt:180cm hcl:#435ceb pid:363518544 eyr:2023 iyr:2016 ecl:blu
+
+iyr:2010 eyr:2028
+pid:183cm byr:1948
+ecl:oth cid:133
+hcl:#8d3298 hgt:190cm
+
+hcl:#6b5442 byr:1929 iyr:2019 pid:207713865 eyr:2029
+hgt:166cm ecl:gry
+
+ecl:blu iyr:2019
+byr:1985 eyr:2030 hcl:#866857 hgt:155cm pid:659180287
+
+ecl:hzl
+eyr:2020 iyr:2016 pid:440624039
+cid:147
+hgt:61in byr:1976 hcl:#733820
+
+hcl:#341e13 pid:178082907 eyr:2023
+iyr:2015 byr:1956
+ecl:amb hgt:163cm
+
+eyr:2023
+iyr:2011 hcl:#cfa07d hgt:164cm
+pid:291621559 byr:1960 ecl:gry
+
+hcl:#efcc98 byr:1976
+iyr:2017 pid:394566091 cid:248
+hgt:176cm ecl:hzl eyr:2026
+
+iyr:2013 eyr:2029 hgt:152cm ecl:gry byr:1984 hcl:#623a2f pid:511780941
+
+pid:953716819 iyr:2010 hgt:156cm ecl:amb
+byr:1947
+hcl:#18171d eyr:2025
+
+eyr:2025 ecl:amb
+iyr:2016
+hcl:#cfa07d byr:1925 pid:322787273 hgt:168cm
+
+hgt:59in iyr:2012
+pid:916978929 byr:1959
+hcl:#c0946f eyr:2021
+ecl:brn
+
+byr:2018 eyr:1929 hgt:187in
+hcl:z
+iyr:2003 pid:0377361331 ecl:utc
+
+byr:1949 hcl:#fffffd pid:071791776 eyr:2030 iyr:2015 hgt:71in ecl:hzl
+
+hcl:#341e13
+hgt:154cm byr:1927 eyr:2023 ecl:blu iyr:2017
+pid:639867283
+
+hcl:z pid:315276249 byr:2026
+hgt:151cm
+iyr:2028 eyr:2020
+ecl:hzl
+
+hcl:#341e13 eyr:2027 byr:1981 cid:342 pid:999898177 hgt:187cm
+ecl:blu iyr:2011
+
+byr:2009
+hgt:73cm iyr:1921 hcl:z
+pid:181cm
+ecl:xry
+
+ecl:hzl
+byr:1925
+pid:034183103 hcl:#341e13 hgt:158cm eyr:2029 iyr:2010
+
+byr:1976
+iyr:2011 hgt:177cm pid:833479839 hcl:#dcab9d ecl:blu eyr:2020
+
+cid:230 hcl:#7d3b0c byr:1954
+iyr:2014 eyr:2026 pid:122150889
+ecl:brn hgt:182cm
+
+hcl:#a97842
+ecl:brn hgt:187cm
+eyr:2028
+pid:427631634 iyr:2002 byr:2004
+
+pid:912516995 ecl:hzl iyr:2017 hcl:#ceb3a1 byr:1929 eyr:2028
+hgt:155cm
+
+pid:019809181
+cid:128 iyr:2013 hcl:#f5b9f7 byr:1931
+hgt:161cm
+ecl:amb
+
+hgt:64in byr:1924
+iyr:2016 eyr:2029 ecl:hzl pid:474940085 hcl:#c0946f
+
+pid:172419213
+ecl:grn
+hgt:193cm iyr:2010 byr:1973 hcl:#6b5442
+eyr:2027
+
+ecl:#7b5cfd iyr:2019
+byr:2016
+eyr:2040 hgt:191in
+cid:187 hcl:z pid:#c61084
+
+eyr:2032 iyr:2014 pid:430247344 byr:1967
+hcl:#ceb3a1
+cid:241
+ecl:brn hgt:178in
+
+hcl:#623a2f iyr:2017 cid:235
+eyr:2020 byr:1978 ecl:blu hgt:175cm
+
+iyr:2013 ecl:amb hgt:174cm hcl:#866857 pid:285533942 byr:1954
+
+hgt:152cm ecl:blu pid:952587262 eyr:2024
+iyr:2019 cid:268 hcl:#602927 byr:1947
+
+hgt:176in cid:245 byr:2011 iyr:2018
+eyr:1987
+hcl:z
+pid:346518170
+ecl:utc
+
+hgt:180cm
+iyr:2015 ecl:brn eyr:2027 pid:807494368 cid:324 byr:1980
+
+byr:1936 hcl:#866857 ecl:blu
+eyr:2021 hgt:187cm
+iyr:2016 pid:244556968
+
+byr:1950 cid:125
+iyr:2020 hgt:168cm hcl:#c0946f eyr:2030 pid:758313758 ecl:blu
+
+eyr:2021
+pid:618915663 hcl:#cfa07d iyr:2018 byr:2002
+hgt:157cm ecl:blu
+
+byr:1967
+ecl:brn hcl:#c0946f pid:200495802 eyr:2021 iyr:2020
+cid:335
+hgt:181cm
+
+byr:1996
+ecl:brn iyr:2015
+eyr:2030
+hcl:#fffffd cid:207
+pid:022460311 hgt:158cm
+
+eyr:2022 hgt:59cm iyr:2023
+byr:1974 pid:354098699 hcl:b244f7
+ecl:#219505
+
+hcl:#866857 eyr:2025
+pid:370874666
+byr:1947
+cid:162 ecl:oth hgt:186cm iyr:2011
+
+ecl:hzl eyr:2029
+byr:1981
+iyr:2012 pid:433430792 cid:252
+hgt:171cm
+
+pid:512473844 hgt:186cm iyr:2012 eyr:2028 byr:1949 ecl:hzl hcl:#18171d
+
+hgt:60cm iyr:1934
+ecl:#4a4017 pid:3067366202 hcl:1161df
+eyr:1938 byr:2008
+
+pid:119509757 hcl:#cfa07d eyr:2022 hgt:174cm byr:1983
+iyr:2015
+ecl:blu
+
+byr:1955 eyr:2023
+cid:114
+hcl:f1aa8a pid:609049659 ecl:grn hgt:177cm
+iyr:2015
+
+eyr:2027 cid:284
+pid:654627982 byr:1964 iyr:2018 hgt:168cm
+hcl:#fffffd ecl:oth
+
+iyr:1988
+hgt:191cm hcl:b87a62 byr:1990 ecl:xry
+pid:996624367 eyr:1960
+
+pid:641466821 eyr:2028 hcl:#7d3b0c
+iyr:2010 hgt:175cm ecl:gry
+
+hcl:#b6652a
+ecl:oth
+byr:1926 eyr:2030 iyr:2019 hgt:183cm
+pid:057196056
+
+iyr:2017
+eyr:2022 pid:936841429
+ecl:blu hcl:#6b5442 cid:179 byr:1927 hgt:161cm
+
+eyr:2021
+cid:289 hgt:174cm iyr:2013
+ecl:grn pid:329574701 byr:1970
+
+eyr:2021 byr:1939 ecl:gry pid:933505139 iyr:2014 hgt:173cm hcl:#7d3b0c
+
+cid:116 hcl:045bff eyr:2030 iyr:1920
+ecl:brn
+byr:2030
+pid:#38f7f3
+hgt:155in
+
+eyr:2028
+pid:225829241 byr:1928 hcl:#cfa07d iyr:2019
+ecl:oth
+hgt:166cm
+
+cid:80 byr:1936
+iyr:2017
+hgt:94 hcl:#2e7503 ecl:oth eyr:2030
+pid:597284996
+
+ecl:oth
+iyr:2019 hgt:76in
+byr:1956 pid:821874039
+
+eyr:2026 hgt:168cm
+pid:019015588
+iyr:2010
+ecl:amb byr:2009 hcl:#623a2f cid:159
+
+iyr:1980 hgt:167in
+pid:380644909 eyr:1966 ecl:blu byr:2004 hcl:z
+
+eyr:2020 iyr:2013
+hcl:#08ad66 pid:540886868
+ecl:oth byr:1980 hgt:158cm
+
+eyr:2026 hgt:186cm byr:1995
+cid:275
+hcl:z iyr:1958 ecl:blu
+
+eyr:2026 iyr:2012
+hgt:61in byr:1936 pid:390833536 cid:298 ecl:grn hcl:#623a2f
+
+pid:393878498 eyr:2023 ecl:gry byr:1943 iyr:2010 hcl:#888785 hgt:158cm
+
+hgt:191cm cid:197 iyr:2014 byr:1945
+hcl:#fffffd
+eyr:2020
+pid:183948344 ecl:amb
+
+ecl:gmt hgt:88
+cid:260 iyr:2024 byr:2022 eyr:2031 hcl:z pid:#532c6e
+
+hcl:#a97842
+hgt:160cm eyr:2024 ecl:blu iyr:2015 byr:1970
+
+byr:1964 hgt:178cm
+eyr:2025
+pid:813643223 ecl:brn iyr:2014
+hcl:#ceb3a1
+
+byr:1965 eyr:2024 iyr:2018
+hgt:165cm hcl:#18171d ecl:grn pid:475669993
+
+hgt:116
+iyr:2024 eyr:1974 hcl:504345 byr:2010 cid:206 pid:166cm ecl:zzz
+
+iyr:2014 eyr:2020 pid:096460673 byr:1948
+hgt:153cm
+ecl:blu hcl:#341e13
+
+hcl:#ceb3a1
+iyr:2017 hgt:67cm
+pid:178cm byr:2028 ecl:brn
+cid:293
+
+hgt:157cm
+hcl:#602927 byr:1941
+iyr:2012 pid:611003211 eyr:2029
+
+iyr:2019 byr:2000 pid:083917767 eyr:2024 hgt:172cm
+cid:248 hcl:#7e4d15
+
+byr:1946
+hgt:160cm iyr:2020 hcl:#559278 pid:989139577
+ecl:amb eyr:2020
+
+pid:165cm byr:1927 cid:178 hcl:#733820 iyr:2017 hgt:156in
+eyr:2029 ecl:brn
+
+hcl:#18171d hgt:163cm eyr:2022 byr:1962 pid:639124940 cid:258 ecl:hzl
+iyr:2015
+
+cid:123 pid:4542006033
+eyr:1987 byr:2010 iyr:2029 ecl:amb
+hgt:191cm hcl:#18171d
+
+hcl:z
+byr:1928 iyr:1965
+eyr:2022 hgt:75 ecl:oth pid:400765046
+
+hcl:#c0946f hgt:62in
+ecl:blu byr:1978 iyr:1923
+cid:260 eyr:2021 pid:404628742
+
+pid:#bf1611 ecl:grn
+iyr:2018 cid:146 byr:1948
+eyr:2025 hcl:#fffffd hgt:87
+
+pid:767547618
+iyr:2018 hcl:#b6652a eyr:2029 hgt:165cm ecl:hzl byr:1937
+
+ecl:blu iyr:2019 pid:960083875 eyr:2027 hgt:71in hcl:#c0946f
+byr:1921
+
+iyr:2011
+pid:9562042482
+hcl:z hgt:59cm
+eyr:1994 cid:258 ecl:#6c1bcc byr:2025
+
+eyr:2028 pid:494999718 byr:1928 hgt:176cm
+iyr:2015 ecl:oth hcl:#733820
+
+cid:78 eyr:2020 hgt:160cm byr:1947 ecl:blu
+hcl:#b6652a iyr:2016 pid:069457741
+
+hcl:#6b5442 iyr:2010
+byr:1971
+eyr:2028 hgt:169cm ecl:brn pid:528961949
+
+eyr:2028
+hcl:#7d3b0c
+byr:1952
+ecl:hzl
+cid:317 iyr:2016
+pid:832169844
+
+hcl:#c0946f
+ecl:brn
+iyr:2017 eyr:2028
+pid:161390075 byr:1993 cid:50
+hgt:171cm
+
+ecl:#ae12d3 hgt:74cm cid:239 hcl:z pid:345439730 iyr:1924 byr:2029 eyr:2031

+ 39 - 0
2020/05/a.py

@@ -0,0 +1,39 @@
+import os, argparse
+
+mapping = {'F': '0', 'B': '1', 'R': '1', 'L': '0'}
+
+def solve_task(filename):
+    highest = 0
+    occupiedSeats = []
+    with open(filename) as infile:
+        for raw_line in infile:
+            line = raw_line.rstrip()
+            rowRaw = line[0:7]
+            colRaw = line[7:10]
+            row = int(''.join([mapping[x] for x in rowRaw]),2)
+            col = int(''.join([mapping[x] for x in colRaw]),2)
+            id = row*8+col
+            #print(f"Row: {row}, col: {col}, id: {id}")
+            highest = max(highest, id)
+            occupiedSeats.append(id)
+    print(f"Highest: {highest}")
+    occupiedSeats.sort()
+    #print(occupiedSeats)
+    for i in range(len(occupiedSeats)):
+        k = occupiedSeats[i+1]
+        if occupiedSeats[i]+1 != k:
+            print(f"Sit the fuck down!: {occupiedSeats[i]+1}")
+            break
+
+def parse_arguments():
+    parser = argparse.ArgumentParser(description="Script that solves the case",epilog="Have a nice day!")
+    parser.add_argument('filename', nargs='?', default="example.txt", help='Input file')
+    args = parser.parse_args()
+    return args
+
+def main():
+    args = parse_arguments()
+    solve_task(args.filename)
+
+if __name__ == "__main__":
+    main()

+ 3 - 0
2020/05/example.txt

@@ -0,0 +1,3 @@
+BFFFBBFRRR
+FFFBBBFRRR
+BBFFBBFRLL

+ 874 - 0
2020/05/infile.txt

@@ -0,0 +1,874 @@
+FBFBFFFLLL
+FFBBBBFLRR
+BFBFBBBLLL
+FFBBBBBLLL
+BFFBBBBRLL
+BBBFFBFRLL
+FFBBFFFRRR
+FFBFFBBLRL
+FBFFBFBRRR
+FBFFBFBRLL
+BFFBFFFRLR
+FFFBBFFRRR
+BFBFBBFLLL
+FBFBBFFRRL
+BFFBFBFLRL
+FBFFFBFRRL
+FBFBFFBRRR
+FBFBFFBRLL
+BFBFFFBLLL
+BFBFFBBLRL
+FBFFFFBRRL
+BFFFBFFRRL
+FBFBFFFRLR
+BFFFFBBLLR
+FFBFFFFRLR
+BBFBBFFLLL
+FFBFFBFRRR
+FBFBFBBRRR
+BBBFFFFLRR
+FFFBFFBRRR
+BFFBFBFLRR
+BFFFBBBRLL
+FFBFBBBRLR
+FBFFFFBLLR
+FBBFBFFLRL
+FBFFFFFRLL
+FBBBBFBRLL
+BFBBBBFLLL
+FBBBFBBRRR
+BFFFBFBLLL
+FBBBBBFLRL
+BFBBBFFLRR
+BFBBFBBLRR
+FFBBBFFLRR
+FFBBBBFRLR
+BFFFBFFLLR
+FBBFFFBRRL
+FBBBFBBLRR
+FFBBFBFRRL
+FFFBFBBLRR
+FBFBBBBRLR
+FBFFBFBLLL
+FBBFFFFRLL
+BBBFFFBLRL
+FBBFBBBLLL
+FFBBFBBLLR
+FBFFFBBRLR
+BBFBBFFRRL
+FFFBBFFRLL
+FBFFBBBLRL
+BFFBFFFLRL
+FFFFBBFRRR
+FBBFBBFLLR
+BFBFBFBRRL
+BBFBFBBRRR
+BBBFFFBLLL
+BFBFFBFRLL
+FFBBFFBRRR
+BFBBFFFRRL
+BFBBBFBRRL
+BFBBBBBRRR
+BBFBFBFRLL
+BBFFBFFLRL
+BFFBBFFLLL
+BFBFBFFLLL
+FBBBFFFRLR
+BFFFBBBLRL
+FBFBFFFLRR
+FBBBFBBLRL
+FFBBFBBRLR
+FBBFFFFLRL
+FFFBFBBLLL
+FBFBFFBRRL
+BBFFBBFRRR
+BFFFFBFRLR
+FBFBFFBLRL
+FFBFFBBLLL
+FBFBBFBRLR
+BFFBBFBRLR
+FFBFBFBLLL
+FFBBFFBRLR
+FBBBBBBLLL
+FFFBBBBRRL
+BFBBFBBRLL
+BBFFFBFLLR
+FFBBBBFRRR
+BFBFFFBRLL
+BFBFFBFLRR
+FFFFBBBLLR
+FBFFBBFRLL
+FFFFBBBRRL
+FFBFFBBLLR
+FBFFFBBLLL
+FFBBBBFRLL
+BBFFBFFLLL
+BFBBBBBRRL
+BFFBFBFLLL
+FFBFBBFLLR
+FFBFBBBLRL
+BFFBFFBLRL
+FBBBFFFRRR
+FBBFFBBRRL
+FBBFFBBLLR
+BBFBBBFLRR
+BBFFFBFRRL
+FBFBFBFRRL
+FFBFBBFRRR
+FBFFBBBLLR
+BBFBFFBRLL
+BFBBBFBLRL
+FFBBFFFLRR
+BFFFBFFLRL
+BFFBBBFLLL
+FBBFFFBLRL
+BBBFFBFLLL
+BFBBFBBRLR
+FBBBBBFRLL
+FBBBBFBLRR
+FFBFBBFRLR
+BBFFFFBLLL
+FBFBBBFRLR
+FBBFBBBLRL
+BBFFBBBRLL
+FFBFBFFLLR
+FFFBBFBRLL
+FFBBBFFRLL
+BFBBFFFLRR
+FBBBFBFRLL
+BBFBFBFLRR
+BFBBBFFRLL
+FFBFFFFRRR
+BFBBBBBLLR
+FBBBBBBRRR
+BBFBBFFLRR
+BFBFFBBLRR
+BFFBFBBLRR
+BFFBBFFRLR
+FBBBFFBRRR
+FFFFBBBRLR
+FBFFFFFLLL
+BBFFFBFLRR
+BFFFFBFLRL
+BFFBFFBLLL
+BFFBBFBRRL
+FFFBBFFLLR
+FBFFFFBLRL
+FBFFFBFLLR
+FFBBFBBRLL
+FFBFFBBRLR
+FFBFFFBRRL
+FFFBFBFLRR
+BBFFBFFRRR
+BBFFFFFLLL
+FBBFBFBRLR
+BBFBBFBLLR
+BBFBBBFRRL
+BFBFFBBLLR
+FBBFFFFLLR
+FFBFBFFRRL
+FFFBFFBRRL
+FBFBFFBRLR
+BFBBFBFRLL
+BBFBBBBLLR
+BFBBBFFLLL
+BBFBBBBRRL
+BFBFBFBRLR
+BFFFBFBRRL
+BFFBBBFRRL
+BFFFBFBRLL
+FBFBFBFLRR
+FFBFFBFLRR
+BBFBBBBRLL
+BFBBBFFLRL
+FBBBBFBLLL
+BBFBBBFLRL
+BFBBFBFLLL
+FBBBBBBLRL
+FFBFFFBLLL
+FFBBBBBRRL
+FBBFFFBLLL
+FBBBFFBLRR
+BBBFFBFLLR
+FFFFBBBLLL
+FBBBBBBRLR
+FFBFFBBRRR
+BFFFBFFRLL
+BBBFFFBRRR
+FBBFBFFLLL
+FBFBFBBRLR
+FBFFFFFLRL
+FFBBBBBRLR
+FBBBFFBRRL
+BFBBBBFRRL
+FBFBBFBLLR
+BBFFBBBLLL
+BBBFFBFRLR
+FFBBFFFLLL
+FFBFFBBRRL
+FBBBBFFLLL
+FBBBBBFRRR
+FBFFBBFLLR
+FFFBFFFLRL
+FFFBFBBRRL
+BFFFBFFLLL
+FBBBFBBLLL
+FFBFBBBLLL
+BFFFFFBLRL
+FBBBFBFLRR
+BBFFBBFLLR
+FBFFBBBRLR
+BFBFFFFLLR
+BFBBBFBLLL
+BBFBFBBRLR
+FFFBBFBLLR
+BFFBFBBRRL
+BBFFBBFLRR
+BFFBBBFLRR
+FBFBBBBRRL
+BFBFBFFRRL
+BBFBBFFRLR
+BBFBBBBRLR
+FFBBFFFLLR
+BBFBFBBLRR
+FBFBFBFLLL
+BFFFFBBRRR
+BFBBBBFRRR
+BFFFFFFLRL
+BBBFFBFLRR
+FFFBBBBRLR
+FBBFFFBRLL
+BBFFBBFLRL
+FFBBBBBRRR
+BBFFBFFRLL
+BFFFFFBRRR
+FBBFBFBRRR
+BFFFFBFRRR
+FBBFBBBRLL
+FFFBFBBRLR
+FBBBBFFRLR
+FBBFFFBLLR
+FFBBFFBLLR
+BFBFFFBLRR
+FFBFBBBRRR
+BFBFBFBLRR
+BFFBBFBLRR
+FBFFBFFRLL
+BFFBBBFRLR
+FBFFFBFRLR
+FFFBFBFRLL
+FBBFBBFLLL
+BFBBFFFLRL
+FBBFBFFLRR
+BBFFFBFRRR
+FBBFBFBLRL
+FBBBFBFLLR
+FBFBBBBLLR
+BBBFFFFLLR
+BFBBFBFRRR
+FFBFBFFRLR
+FFBBFBBLLL
+BFFFFFBLLR
+FBBBFBFLLL
+FBBFBBFRLR
+BBFFFFFRLL
+BFBFBFFLRR
+FBFBBFFLRR
+BBFBBFBRLR
+BFFFBBFRLR
+FBFFBBFRRR
+FBFFFBFLLL
+FBBFBBBRRR
+BBFFFBBLRL
+FFBFFBFLLR
+BBFFBFFLLR
+BBBFFBFRRL
+FBFBBFBRRR
+FBBBBBBRLL
+FBFFFBBLRR
+FFFBFFFLLL
+BBFBBFFRLL
+BBFFFBFRLL
+BBFFFBFLLL
+FFBBFBBRRL
+FFFFBBFLRL
+BFBBBBFLRL
+BBFBBFFLLR
+BBFFBFBRRR
+FBFBBFFRLL
+FBFBBFBLLL
+BFBBBFFRRR
+FFBBBFBRLL
+FFBFBBBRRL
+BFBBFBFRLR
+BBFBFBFRLR
+FBFBBBFLLR
+FBFBBBFLRL
+BBFFBBFRLR
+FFBBFFFLRL
+FFFFBBFLRR
+FFFBBFFLRL
+FFFBFBFRRR
+FBBFFBBLRR
+BBFBBFBLRR
+BFFBBBFLRL
+FBFFBFFRLR
+FBFFFBFRRR
+BFFBBFFRRL
+BFFFBBFRLL
+BFBFBBBLRR
+FFBFFFBLRL
+FBFBBFBRLL
+FBBBBFBLLR
+FFBFBFBLRL
+FBFBBBFLRR
+FFBBBBBLRR
+FFBFFFBLLR
+BBFFFBBRLL
+BBFFBBFLLL
+FFFBBFBLRL
+FBBBFBFRRR
+BBFBBBBRRR
+FBBBFFBLLR
+FBBBBFBLRL
+FBFBFFFRRL
+FBBFFFFLRR
+BFFFBFBLRL
+BFFBFFBRLL
+BFBFFFBLRL
+FBFBFBFRLL
+BBFBFBFLLL
+FBBBBBFRRL
+BFFBFFFRLL
+FBBBFBBRRL
+BFBBFFBRLR
+FFBFBFFLLL
+FFBBBBBLLR
+FFBFBFBRRL
+FFFBFFBLRL
+BBFFFBFLRL
+FBFBFBBRRL
+BFFBFFBRRL
+BBFBFBBLRL
+BBFBFBFRRR
+FBFFBBFRLR
+FBFBBFBLRR
+FBBFFFFLLL
+FFFBFFFLRR
+FFFBBBBRRR
+BBFFFBBRLR
+FFBFFFFRLL
+FBFFBFBRLR
+FBFBFBBRLL
+FBBBBFFLRR
+FBBFBFBRLL
+FBBBFBFLRL
+BBFBBBFLLR
+FFBFBBBLLR
+BFFBBBFRRR
+FFBBFBFLLL
+BFBBBFBRLR
+FFBFBBBRLL
+FFBFBFFLRR
+FBFBFBBLLL
+BFBBBBFLLR
+FFBBFBFRRR
+FBFBFBBLRR
+BFFFBFBLLR
+BFFBFBFRRL
+FFFBBBFRLR
+FFFBBFFRRL
+FFFBBBFLRL
+FFFFBBFLLL
+BBBFFFBLRR
+FBFFFFBRRR
+FFFFBBFRRL
+FBFBBFFRLR
+BFFBBBBLRL
+FBFFFFBLRR
+FFFBBFBLRR
+FFFFBBFRLL
+FFFBBFBRRR
+FBFFBBBRRL
+BBFFFFFLRL
+BBFFBBFRRL
+BFFFBBBLLL
+FBBBBBBLRR
+FBBBFFFRLL
+FBFFBFFLRR
+FFBFBBFLLL
+FFBBBFBRRR
+BFFFBFBRRR
+BBFFBFBRRL
+BFFFBBBRLR
+FBFFFBBRRR
+BBFBBFBRLL
+BBFFBBBRRR
+FBFFBFBLLR
+FFBFFBBLRR
+FBBFBBFLRL
+FFBFFBFLLL
+FFFBFFFRRL
+BBBFFFBRLL
+BFBFBBBRRL
+FFBFBFBLLR
+FFFBBBFRLL
+BFFFBBFRRR
+BFBBFFFRLR
+FBBFFBBRLL
+BFBBBBBLRL
+BBFBFBFLRL
+BFBBBFBLLR
+FBBFFBBRRR
+BFFFFBBLRR
+FBBFBBBLLR
+BFBFBFBRLL
+BFBFBFBRRR
+BFFFFBFRRL
+FBFBBFFLLR
+FBBFBBFRRL
+BBFBFBBLLL
+BFFBFFBRRR
+FBBFBFBLRR
+BFFBBFBLLR
+BFBFBBBRLL
+FBFFBBBLRR
+BBFFBFBLRR
+BBFFFFFRLR
+BBBFFBBLLR
+BBFBBFFRRR
+BBFFFBBLLR
+BFFBFFBRLR
+FBFFBFFLLL
+BFBBFFFRLL
+FFFBFBBRLL
+FBFBFBBLRL
+FFFBBBFRRL
+BFBFBBFRLR
+BBFFFFFRRL
+FBBFBFFLLR
+BFFFBBFLRR
+BBFBBFBRRR
+BBFFBBBLRR
+FBFBBFFRRR
+BFFFBFFRLR
+FFBBFBFLLR
+FBFBFFBLRR
+FBFFBFBLRL
+FFBFBFBRLR
+FBBFBBBRRL
+FFBBFFFRLR
+FFFBFBBRRR
+FBBFBFFRLL
+FFBFBFFRLL
+FFBFBBBLRR
+FFBBBFFLLR
+BFBFFFFLRR
+FFBBBFBLRL
+BBFFFBBRRL
+FFBFFBFRRL
+FFBBBFBRLR
+BFBFFBFLLL
+BBFBBBFRLR
+BFBFFBFRLR
+FFBBBBBLRL
+FFFBBFFLLL
+BBFFBFFRRL
+BFBBFBBLRL
+BFFBFFFLRR
+BBBFFFFLRL
+BFBFFBBRLL
+FBBBFFBLLL
+FBBFFBBLLL
+BBFFFFFLLR
+FFBBFFBLRR
+BFBBFBFLRR
+BBFFFFFLRR
+BFFBFBFLLR
+FBFBBBBLLL
+FBBBFFBRLR
+FBBBFBBLLR
+BFBFBBBLRL
+BFFFBFBRLR
+FBBFFBFRRR
+BFFFBBFLLL
+FFBFFFBRLR
+FFBFFFBRRR
+FFFBFFBRLR
+BBFBFFFRLL
+BFBFFBFRRL
+BFBFBBFRRL
+FBBBBBFLRR
+BFFBBBBLRR
+FFBFFBFLRL
+BFBFBBFLRL
+BFFFFFFLLR
+FBFFBBBRRR
+BFBFFBBRLR
+FBBFBFFRLR
+BFFBBBFLLR
+BFBFFFBLLR
+FFBFFFFRRL
+FFFBBBBLRR
+FFFBBFBLLL
+BFFBFBBLLR
+FBFFBFBLRR
+FFFBBBBRLL
+BBBFFFBRLR
+BFBBFFFLLL
+BFBBBFFLLR
+BFBFBFFRRR
+BFFFFBFLLR
+FBBBBFBRLR
+BFFBBBBRRL
+FBFBFBFRLR
+FFBFBBFRRL
+BFFFBBFLLR
+FFBBBFBLLL
+FFBFBBFLRR
+BFFFFBFLLL
+FBBBBBFRLR
+BBFBBBFLLL
+FBFBBFBRRL
+FFBBFBFRLL
+BFBFFFFRRR
+FBFFFFFRLR
+FFBBFFBLRL
+BBFBBBBLRL
+FBBFFBFLRL
+BFFFBFBLRR
+FBFFFBBRRL
+BBFBFFBRLR
+FFBBFBBLRL
+FBBBBFFLRL
+BFFFFBBRLR
+FBFFBBFLRR
+FFBFBFFRRR
+FFBBFBFLRR
+BFFBFFFRRL
+FBBFFBFRLR
+FBBFBFBLLR
+BFBFFBBRRL
+FBFFFBFLRR
+FBFBBFBLRL
+BFFFFBFRLL
+BFBFBBBRRR
+FFFBFFFLLR
+FBBBFFFLRR
+FFBFBBFLRL
+BFFFFBBLRL
+BBFFBFFLRR
+FBBFFFFRRR
+FFFBFBBLRL
+BFFFBFFLRR
+BFBBFBFLRL
+FBFFBFBRRL
+BFBFFFFLRL
+FBBFFFBRRR
+FFBBFFBRLL
+FFBFFBFRLL
+BBFBFBBLLR
+BFBFBFFLLR
+BFFFBBBRRL
+BBFBFFFLLR
+FBFBFFFLRL
+BFFBBFFRRR
+BFFBFBBRLR
+BBBFFBFLRL
+BBFBFFBLRR
+BBFBFFFLLL
+FFBBBBFLLL
+BFBBFBBRRR
+BBFFFFBRRL
+FFBFFBBRLL
+FBBFFFBLRR
+FFFFBBBLRL
+FFBFBFFLRL
+FBBBBFBRRR
+BFFBBFBRRR
+BFFFBBBLLR
+BFFBFBFRLR
+BFFBBBFRLL
+FFFFBBBLRR
+BFBFBBBRLR
+BFBFBFFRLL
+FFBBFFFRRL
+FBBFFBFRRL
+BBFFBBFRLL
+FBBFFBBRLR
+BFBBFFFRRR
+BFBBFFBRRL
+FBFFFBBRLL
+FBBBBBBRRL
+FBFFFFBRLR
+BFBBFFBLLR
+BBFBFFBRRL
+BFFBBFFLLR
+BFFFFBBRLL
+BBFFBFBLLL
+FBBFFFFRLR
+FBBFFBFLRR
+BFFBBFFRLL
+BFBBFBBLLL
+FBFBFBFLLR
+BFFFBBBLRR
+BFBFBFBLRL
+BBBFFFFRRR
+FFBFBFBRLL
+FBFFBFFRRR
+FFBFFFBRLL
+FBBFBBFRRR
+FFFBBBFRRR
+FBFFBFFRRL
+FFBBFFBRRL
+FBBBFFFLLR
+BBFBBFBRRL
+BBFBFFFRRL
+FFFBBBBLRL
+FBBBFFFRRL
+BFBBFFBLRL
+FBFFFFFLRR
+FBFFBBFLRL
+BBFFBBBRRL
+BBBFFBBLLL
+FBFFBBBRLL
+BBBFFFFRLL
+FFBBBFFRLR
+BBFFFFBRLL
+FBFFFBBLLR
+BFFBFBFRRR
+FBFFBBBLLL
+FBFBBBFRLL
+BFFFFFBLRR
+BFFBBFFLRL
+FFBBFBBRRR
+FBFFBFFLLR
+BFFBBBBLLR
+BFFFFFFRRR
+BBFBBBFRRR
+BBFFFFBLRR
+BFFBBFBLLL
+FFBBFFBLLL
+BBBFFFFRRL
+FBBFBBFLRR
+FBBFFFBRLR
+FBFBBFFLRL
+FBFBFFFRLL
+FBBFFBBLRL
+BFFBBBBRRR
+FFFFBBFLLR
+BBFFBBBRLR
+BFFFFFFRLL
+FBBBBBBLLR
+BBFFFBBLRR
+BFFFFFBLLL
+FBBBBFFLLR
+BBFBFFFRRR
+FBFBFFBLLL
+FBFFFFBLLL
+FFBFFBFRLR
+BFBFFBBLLL
+BFFBBFFLRR
+FBBBBBFLLL
+FFBBBFBLRR
+BFFFFFBRLR
+BBFBFBBRRL
+BBFFFFBRRR
+FFFBFBFLRL
+FBFBBBBLRR
+BFBFFBBRRR
+FFBFFFFLLL
+BFBFFBFLLR
+FBBFBBBRLR
+FFFBFFFRLL
+FFFBFBFRLR
+FFBBBFFLRL
+BFFBBBBRLR
+FBFFBBFLLL
+FFFBBFFLRR
+BBFBFBFLLR
+FFBBFBFLRL
+BBFFBBBLRL
+BBFFFFBLLR
+FFBFFFBLRR
+BFBBFBFLLR
+BFBBBBBLLL
+BBFBBFBLRL
+BBFBFFFRLR
+BFFBFFFLLL
+BBFBFFBRRR
+FBFBBBFRRR
+FBBBBFFRLL
+BFFBBFBLRL
+BBFBFFBLRL
+BFBBFFBRRR
+BBBFFFFLLL
+BFBFFFFRRL
+FBFFFFFRRR
+BFFFFBBLLL
+BFBBFFBRLL
+FFBBBBBRLL
+BFFBFBBRRR
+BFBBFFFLLR
+BFBBFBBLLR
+FBBBBFBRRL
+FBFBFBFLRL
+BFBBBBFRLL
+FFFBFFBLLL
+BFFBFFFLLR
+BFBBBFBRLL
+FFFBBFBRRL
+FFBFBFBRRR
+FFFBFBBLLR
+BFBBBFBRRR
+FBBFBBFRLL
+BFBBFBBRRL
+BFBBBBFRLR
+FFFBBBBLLL
+BBFFFBBLLL
+FFBBBBFLRL
+BFBBBBBRLL
+FBBFFBFRLL
+FBFFFBBLRL
+FBBFBFFRRR
+FFFBFBFLLR
+FFBBBFFRRL
+FBBBFBBRLR
+BBFBFFFLRR
+FBFBBFFLLL
+BBFFBFFRLR
+BBFBFFFLRL
+FBBBBFFRRR
+FFBBBFBLLR
+BBBFFFBRRL
+FBFBFFFLLR
+BBFBFFBLLL
+FFFBBFBRLR
+FBFFFBFLRL
+BFFBFBBLLL
+BBFBFBBRLL
+FBFFBBFRRL
+BFBFFFFRLL
+BBBFFBBLRL
+FFFBFFBLLR
+BFFBFBBRLL
+FFBFBFBLRR
+BBFBFBFRRL
+FBBBFBFRRL
+FFFBBBBLLR
+FBBBFBBRLL
+BFBFBBFLRR
+BFFFFFFLLL
+FFFBFFFRLR
+BFBBBFFRLR
+BFFFFFBRLL
+FBFFFFFLLR
+FBBBFFBRLL
+FBBFFBFLLR
+BFFBFFBLRR
+FBFBBBFLLL
+FBFFFFFRRL
+BBFFFFBLRL
+BFBFFFFRLR
+FBBFFFFRRL
+BFFBBBBLLL
+FFFFBBBRRR
+FFBBFBBLRR
+FBBFFBFLLL
+BFFFFBBRRL
+FFBBBBFRRL
+BFFFFBFLRR
+BFFFBBFRRL
+BFBBBFFRRL
+BFFFBFFRRR
+FBFBBBBRRR
+FBFFBFFLRL
+FBBBBBFLLR
+BFBFBBFLLR
+BBBFFBFRRR
+BFBBFFBLRR
+FBBFBFFRRL
+BBFBBFBLLL
+BFBBFFBLLL
+FFBBBFBRRL
+BFBFBFBLLL
+BFFBFBFRLL
+BBFFBBBLLR
+FFFBFBFLLL
+FFBBBBFLLR
+FFFBFBFRRL
+BFBFFFBRRR
+FFBFBBFRLL
+FFFBBBFLLR
+FBBFBFBLLL
+BBFFFFFRRR
+FFFBFFFRRR
+BFFFBBBRRR
+FFBFFFFLRL
+FFFBFFBLRR
+FFBBFBFRLR
+FBBFBBBLRR
+BFFBBFBRLL
+BBFFFBBRRR
+FFFFBBFRLR
+FBBFBFBRRL
+FBFBFFBLLR
+FBFBFBBLLR
+BFBFBBFRRR
+BBFFBFBLLR
+FFBBBFFLLL
+BBFFBFBRLL
+BFFFBBFLRL
+BFBFBFFRLR
+BFBFFFFLLL
+FFBBBFFRRR
+BBFBFFBLLR
+BFBBBBFLRR
+BFFBFBBLRL
+FFBBFFFRLL
+FFBFFFFLLR
+BFBFFFBRRL
+BFBFBFFLRL
+BFFFFFFLRR
+BBFBBFFLRL
+FBFFFFBRLL
+BBFFBFBRLR
+FBBBFFFLLL
+FFFBBBFLLL
+BFFBFFFRRR
+BBFBBBBLLL
+BBFFFBFRLR
+FBFBFFFRRR
+FFFBBFFRLR
+BFFBFFBLLR
+BBFFBFBLRL
+BFBFBFBLLR
+FBFFFBFRLL
+BBFBBBFRLL
+BFBBBBBRLR
+BFBFFFBRLR
+FFFBBBFLRR
+BFBFFBFLRL
+BBFBBBBLRR
+BFBFBBFRLL
+FFFFBBBRLL
+BFBBBBBLRR
+FBFBBBBRLL
+BFBBFBFRRL
+BBFFFFBRLR
+FBBBFBFRLR
+BFBFFBFRRR
+FBFBBBBLRL
+BFBFBBBLLR
+FFBFFFFLRR
+FBFBBBFRRL
+FBFBFBFRRR
+BFFFFFFRLR
+FBBBBFFRRL
+BFFFFFBRRL
+BBBFFFFRLR
+FBBBFFBLRL
+FBBBFFFLRL
+FFFBFFBRLL
+BFFFFFFRRL
+BBBFFFBLLR

+ 37 - 0
2020/06/a.py

@@ -0,0 +1,37 @@
+import os, argparse
+
+
+def solve_task(filename):
+    with open(filename) as infile:
+        total = 0
+        thisGroup = {}
+        for raw_line in infile:
+            line = raw_line.rstrip()
+            if line == "":
+                #print(len(thisGroup))
+                total += len(thisGroup)
+                thisGroup = {}
+                continue
+            for c in line:
+                if c in thisGroup:
+                    thisGroup[c] += 1
+                else:
+                    thisGroup[c] = 1
+        #print(len(thisGroup))
+        total += len(thisGroup)
+        print(f"Total: {total}")
+            
+    os.system("pause")
+
+def parse_arguments():
+    parser = argparse.ArgumentParser(description="Script that solves the case",epilog="Have a nice day!")
+    parser.add_argument('filename', nargs='?', default="example.txt", help='Input file')
+    args = parser.parse_args()
+    return args
+
+def main():
+    args = parse_arguments()
+    solve_task(args.filename)
+
+if __name__ == "__main__":
+    main()

+ 44 - 0
2020/06/b.py

@@ -0,0 +1,44 @@
+import os, argparse
+
+
+def solve_task(filename):
+    with open(filename) as infile:
+        total = 0
+        thisGroup = {}
+        groupSize = 0
+        for raw_line in infile:
+            line = raw_line.rstrip()
+            if line == "":
+                groupWeight = [x for x in thisGroup.values()].count(groupSize)
+                #print(groupWeight)
+                total += groupWeight
+                thisGroup = {}
+                groupSize = 0
+                
+                continue
+            groupSize += 1
+            thisGuy = {}
+            for c in line:
+                if c in thisGroup:
+                    thisGroup[c] += 1
+                else:
+                    thisGroup[c] = 1
+        groupWeight = [x for x in thisGroup.values()].count(groupSize)
+        #print(groupWeight)
+        total += groupWeight
+        print(f"Total: {total}")
+            
+    os.system("pause")
+
+def parse_arguments():
+    parser = argparse.ArgumentParser(description="Script that solves the case",epilog="Have a nice day!")
+    parser.add_argument('filename', nargs='?', default="example.txt", help='Input file')
+    args = parser.parse_args()
+    return args
+
+def main():
+    args = parse_arguments()
+    solve_task(args.filename)
+
+if __name__ == "__main__":
+    main()

+ 15 - 0
2020/06/example.txt

@@ -0,0 +1,15 @@
+abc
+
+a
+b
+c
+
+ab
+ac
+
+a
+a
+a
+a
+
+b

+ 2087 - 0
2020/06/infile.txt

@@ -0,0 +1,2087 @@
+v
+vx
+v
+vx
+nclmbv
+
+odgpnwqxhbits
+pqwsnxihogdbt
+pogiwxdhqbsnt
+
+q
+o
+
+apulnqresohvktxcymzibdwg
+sigdvakmlyxhetopnubwzrqc
+iushndtclbeyowxpqmkgzavr
+
+ow
+wo
+
+phegq
+eqgph
+hgpque
+
+xispjzq
+sqkzcupi
+ikspqyzue
+
+hgfesyvn
+dnsvtkhglea
+heygnqbcvs
+
+qmrpy
+pmrck
+vcprum
+mrkcp
+mrp
+
+kgjx
+jghk
+kjgu
+enlgdwzqkjr
+vjgk
+
+ungsdozkphlxy
+nbkgzaifsovjpdt
+geoskuyznpcd
+
+qw
+qw
+
+x
+r
+sl
+v
+s
+
+kxcn
+kxn
+wxtkn
+xkcn
+xkn
+
+peionmzqyda
+apdinomqzey
+npmqoiedzay
+dmpzoyqiane
+
+gpaedw
+mwda
+daw
+awbd
+
+fyxeptlrmisjhdzquv
+xfqydzruvmjepsilth
+sipulvdzmftqeyhrxj
+
+kzofrcamenxyvwgpq
+zqkrapxwomvycgnef
+ywxvpazgcenrqkfmo
+kgcvezmfqwrpnxaoy
+
+zhf
+zegfhd
+fhz
+hfz
+
+iqspn
+bytmd
+sq
+gwx
+
+begosk
+gnbskz
+sgkb
+
+ok
+ek
+ek
+k
+
+hbucsatqvdryfojxlz
+tufzxjvbrwasemg
+
+d
+ef
+k
+
+p
+mrp
+
+kuywroetvjnf
+wjvtkreufyn
+frkyjwevntu
+frtewnkjvuy
+
+iu
+wzi
+axbcgpldyi
+seoiz
+
+ekjmbsuwglftpvya
+esmwuftgpvyjalkb
+vflbtyekmjupasgw
+tepmwgksulybavjf
+psawvbtgjfelmyuk
+
+jsmoydnvkiql
+lqdojsvnik
+
+ayrtxivjlpeuzohnk
+whjitnkfyealoguxprzc
+bzjiruohtlakxnedypm
+pmyxeizqjhkntoarul
+
+vnrcwouidfb
+bufrwnociv
+unrvefbcwo
+cvnswubfro
+
+hmnoazwvtcrigqsujldpk
+qeflzdwyongvtjishpacumr
+
+ytwpgkvceaolhrz
+agyepkhwlzvctr
+yvpkwcgerzhtaq
+pcaeygktzwhrv
+rgvpkwtylzhcea
+
+io
+oi
+io
+ito
+
+ckmfawyb
+glvfiymobadc
+jnsfbmapcy
+jfysmathnbc
+
+uxbfdygqwpom
+sxmuwbdporyvqh
+rbuqmwxydpo
+ncpuyowqildjxebmk
+wxuysoqhvbampd
+
+keo
+oz
+jdorxbia
+lo
+ok
+
+zk
+zco
+
+bhwmscnrqeou
+rlqenzswohbmu
+
+synmfzljkdebq
+cmdyzlfekjbns
+nkgzsmvlydpjobfute
+lsfjkmnzdeby
+
+xshlzwcndtjefi
+wcnljfditsexzh
+ehtsjwidflcznx
+
+zry
+vyqz
+
+owfcybsdipnqlthavu
+psdiqfhwctrzvaybon
+ybmpdciqhvtsfawon
+givjcetkhwbdyponfsaq
+cvotsnhqfywplidab
+
+cibwptjnu
+ncruhi
+hnuic
+
+apzjqbdlwyicfgxv
+apxodvwlzyfbgqcij
+pcdxjvzwqfliyagb
+rixjaclsdpvyzgwqmbfe
+
+timpsox
+poxsm
+
+fres
+refs
+fersq
+
+w
+z
+r
+w
+r
+
+xz
+x
+x
+x
+
+ciyhkpjswqvxz
+xyskvphmowjzcia
+kywsxihpc
+wtpnflcsekhbgxud
+
+qrtweigjlbucfxnkos
+iwlbgmnosuxfetkrqc
+sfbwxcotierqukldn
+euroqfdxywclsitkbn
+qelfbarchnwuxtsiok
+
+gj
+woh
+g
+jr
+
+lpcdqf
+qdfupwzcl
+dpcqgtl
+
+zlnkeyroq
+rtyoleqnkz
+leykztqnor
+ahoukcelrxjqynpz
+
+twxjdbuhclzgnop
+fgeqkcbvziwtludop
+
+ylukhwtcf
+aikdrxfov
+
+ucbklojiyxmz
+ulkjco
+kroljuch
+
+rfhyj
+fhy
+
+cmtedvxioy
+infmacweshtuo
+tpoimecz
+
+kylduhw
+yublkhd
+kdulyh
+dyuhlrk
+zhfgkudly
+
+laoemdcgpyhtnb
+ygclebodtmpnha
+zomgnqpalhebxwtcd
+
+bmogrnztvyil
+vlotrzngbmiy
+lvyogrzbimtn
+
+zjcgheblotdramsn
+mlgbshrzotcnjawd
+otgsjdnmbrchlza
+dbazlpfkhgtmsvocnjqr
+sgrazcjondmlhbt
+
+ryhifaxpemsgcdubvtjzwnol
+bduiojqhcsvlyrxefntpgwma
+pvebfwitculrgyjshkdxmaon
+
+lqmopgwbesjhk
+mgbkhqejlswop
+wqklaeogsdxhfbmjp
+sjgphokmqewlb
+kesrghbmpjlowq
+
+tu
+rp
+r
+rgh
+
+tfeyhjbnpaqwz
+rxuefvgiaybzqth
+
+pwx
+lk
+iahyv
+jr
+p
+
+ezsghqtdnjbfox
+dsucq
+sduqp
+cusvdqy
+dslwqm
+
+dm
+gf
+g
+xtg
+
+mfihn
+mhyifot
+
+iabeswqrzlcxvkpmtnug
+qexctgrkwbpusazinmv
+riztmgqsewunxbapkcvj
+avbuxqizmrkeswtpncg
+
+ozrwipdmgajlkfuxcnhtyveqs
+fntcigalzdxmyuesjkqwo
+dtfyeqklgjmwxunosizca
+efclkowaujqzigbtymdxsn
+
+jkiupmatwxqhdrs
+midjhwutq
+dmhujzqwyit
+dwuqhymtji
+
+ziqfh
+hnboqe
+qhktzdfp
+
+qohbywgtlucajf
+ltahuywfjbmc
+
+arfpqdcbtnw
+kfzonycewxbghvr
+
+tdxqelwnu
+luenxdtqw
+udlteqxnw
+wxendqlut
+
+pvkrgaushqidfmnjz
+eajzrkhndfitsqvmwugyp
+sgohxqcvrzunapjfdmki
+vinodpkazgfrmcushjq
+jmufirnszpdqoahgkv
+
+uvcmgfrk
+fugmrvck
+kfuvrmcg
+cmrfgkuv
+kcvumfgr
+
+kmrb
+krbm
+rkb
+bekrt
+rbmk
+
+mzbrfsnxgjpywavcohuqlkitde
+xpekistdzlrgmcawnvuqfohjby
+
+vrjew
+rvj
+
+qlefnd
+fdleo
+pxcehwdfy
+
+amftbpvo
+
+ljcyn
+cynosjum
+jync
+yrqbwjzc
+jcy
+
+tmdcuk
+ckudm
+mucdk
+cdkum
+
+icsvhmefaztoxkgndq
+sbyqivkrdplwjemou
+
+jtrhafpkbwzdox
+hbrwpzajokfx
+jbkfaphxzcrwon
+
+bqg
+qgb
+bgq
+qbg
+qgb
+
+ljte
+jle
+
+tvhjx
+hvjwxrt
+vtjxh
+dtjvhx
+vjxht
+
+zsdejcrvab
+kbjzrscaedv
+
+oehivmku
+igfhuxozy
+
+x
+xs
+x
+x
+x
+
+klqnrzftv
+iqgfaupt
+fdqgswyjt
+
+opjeslcx
+psohecjxl
+yxelsjoc
+lescojvx
+molnextcsj
+
+sf
+cps
+fos
+
+crxbjzkivydsgfpehmq
+wnhfgljeptzrmikcy
+
+bghydvqxicsfunlzpart
+rsyugqcxtvdzanpblihf
+
+v
+gnvw
+lv
+v
+lv
+
+mpzvdjqhxnuocr
+chidrnuvxmkjqpt
+suhdxgvbcnrpmj
+
+ewpfugobznrqydsj
+ivgxtjludcm
+
+enytuvzoqmljfwd
+satbgwcrndzyk
+
+fuzl
+ful
+lu
+lpuxy
+
+qrhltkesazpmo
+puaedmzsqhot
+
+vcktz
+zqtjsbuiaomwf
+ygzkthx
+
+zt
+tdz
+
+fvpjlcarqdukio
+luotiqzkjfrwahcdvm
+rcykufoadqxilvj
+
+kfpuwxi
+wpfxuik
+
+xjzpf
+cyqsouwf
+xzf
+zf
+bifpj
+
+q
+cw
+n
+nu
+q
+
+lscdtzvhajkqpm
+vdpklhqscm
+pvcdqskljh
+hcjdqklsyvp
+eqshcdklvp
+
+muyldxobakfq
+ecjvfm
+
+jkas
+ws
+s
+ws
+
+qbjzcolnuy
+jyulobzncq
+izqlnycoubj
+
+yvsoztedn
+eotvydz
+yzetodv
+edvoyczt
+
+tcfqkxrib
+fozbtnlwucq
+qvagfdebtc
+qcpftbk
+
+amlcyk
+acempy
+aymcv
+cayml
+
+gsybwf
+ybsfgw
+bsgywf
+bfwygs
+fsygbw
+
+hypxicwobt
+pciytbxwh
+xhycspitbw
+pcibytrhxw
+yckhxtebwpi
+
+olneqtcpzfiahbj
+oitbqejcahpnfmzl
+bpnjyhfkqmlczteoai
+hlpjefoaqznbtci
+jdwtzsfcviaqnobhpxel
+
+mkflqourwyh
+kqmylohfu
+lyohqumfk
+fyhukomplq
+
+cfegzaprw
+prvbgiymj
+
+besuka
+hsnkua
+slaguxky
+
+smwuovdpnjfyl
+mcjvguors
+qjvsmiou
+abotmkxujvs
+uhmoqsvje
+
+udrmcxqay
+dqyhumca
+mfwcujskglbedqt
+
+xewpyrsjzktgbaochuni
+xjaohuwligysztekpnc
+tfghodxyjsnapmquwcziekv
+
+fxypwlo
+wpsxleyfo
+ylmpxfzwo
+
+ok
+rspbkt
+mauyxcw
+rqdkz
+
+fsehripoyjawt
+styheviwfrn
+
+onxrvplyuzqcj
+vlzuyrcpxoqjn
+nuoqyrzjcpvxl
+ljyuoqvnzprcx
+
+o
+ac
+c
+c
+
+hwxmesjuzo
+hylvoxzpfbntsr
+shoquzx
+
+pidfxg
+igrxm
+
+gshkfbcujpyztoevxdlmaw
+kzvmejbygdpaxufhlcotws
+hfgamkstbwjoyxlczupevd
+
+p
+p
+ltf
+
+iufdzosnagkhtw
+dzkhlgvsitucoa
+adtgzokhsviuc
+
+jywe
+wy
+yw
+wzy
+yw
+
+ghvadykiscnfxo
+noxckgivyhdaf
+gfxmtodbwvnkhipaqy
+
+ifsp
+xnivluaq
+fioe
+wisydc
+siw
+
+jxbmclnevwztqug
+keptqcrmzufglhi
+tleqgyvjbumzdc
+xzdmslqcutge
+
+ogdxpnjbti
+ipgnotx
+ipehgonkcxrtfa
+ntdiygpox
+
+wxhcjtredknifvulymp
+vgksmwqzctybidjofha
+
+lxmficysbt
+jslmrn
+
+pcoxigrdtkul
+sjmhtbxulyord
+uxlcpdktoarv
+
+crgundohktjfasebzvxl
+gdsvcufrnljazotkxehb
+onbgcjfeirxkhzvudtsla
+njcheafbokgzvsxrudlt
+ekgvfruchstjldoxzabn
+
+wmkivpgfqdrsl
+wmcjvofkhnz
+kfwbuvam
+jtmwhfkvz
+
+thy
+hy
+yhe
+yh
+dqbyh
+
+xtbhkovsjcga
+xqkoeavjsch
+xacvkjhds
+mcjuwskavnrixyh
+
+lhfwqr
+ypkruwqs
+xcgdwmj
+
+eyiwrundqsflgcavxk
+fejmwtyulodkhrzbp
+
+yvz
+expa
+
+aohj
+ejoai
+ldypfnejoa
+dcxpjoatv
+
+vuinj
+prv
+v
+vlr
+
+sqpdmrnlwa
+nlgasrpqomd
+padlqsmrn
+
+r
+pjd
+d
+azbhs
+
+hfotieypnlwdkjzv
+jlfveimtdckongwzpy
+
+af
+zaf
+afn
+abf
+
+csjx
+scrk
+ucws
+csj
+sjc
+
+juwtder
+dtjrwe
+werjdt
+djreywut
+rceoqjwdt
+
+nazufjeomxpkc
+xmeopajcunkzf
+pfcuazejknmxo
+nkzceomfapxju
+
+epiykxforjz
+fylzbxjeoipg
+ahfyxvpmsujiedzon
+eoyxcqwpikjzfg
+
+umfrlqhakzdn
+mshjfdkqungrzv
+
+opxjdgemsvailruzfbcq
+ozmgbdirxelyfsqpjvuc
+iqbucpflxsvzdoetjrm
+ysiqolmberzvjnctdxgufp
+bxfemdhcukplzrijsqvo
+
+yocg
+g
+uqg
+rzy
+vjbmw
+
+vljzumo
+ujzvmo
+vujomz
+vjzomu
+zmjuov
+
+srwagukx
+ahjroqmxy
+
+cgkj
+jcgknvs
+jgkyc
+kcjgy
+jrgck
+
+ugcwvx
+gfuzaxw
+
+n
+o
+n
+n
+n
+
+vsmd
+mcdvbs
+cdmxy
+tadr
+
+znsokugwejfylica
+iwpnfyolqzkcuaegdsj
+
+azuver
+remzau
+arezu
+zerau
+
+wevbmlq
+bwalcodevx
+ewtuxlbv
+zivypeswlb
+ebwvaln
+
+qjrdgxmc
+hrcozqdxj
+
+mpcogjzyrhisuxlv
+mskpazxdfvqc
+
+xtzyl
+lxyt
+xytl
+xlyt
+oxslyt
+
+jrteqswkcazlbfhog
+tsqafcbgrelzokhjw
+
+fjqlibpwukcoznavyrtd
+bzdtupklrqivanwyojfc
+lvjarpkyubndzqiwoftc
+bdrcniwvktylpajoqzuf
+uycprvalqdiwonbjztkf
+
+lwga
+dgswz
+zgwy
+nwugcrik
+gwsy
+
+gwmvxakicou
+avugcmowixk
+ckxugomwvia
+ukwacxogmiv
+xiwavcgmkou
+
+znvgeymhb
+rztconyiq
+lwzayn
+jswnuzyk
+fnwuxlypz
+
+etkdwlgscmzyuafvhbo
+vhctfgkmwouaylesbzd
+vfcetldzsyobghmuwka
+tsgzmkufeajlvwcyodbh
+gazdhmkotswlfuvbcey
+
+zdsjweg
+sezjgd
+dsgzei
+
+zi
+z
+
+tbg
+fbtg
+
+g
+g
+g
+g
+
+rid
+jvi
+inxo
+id
+
+dbrjtfupcyvzlqmwei
+zqbwfmljvcdirtyepu
+
+jmhubvclsdprw
+cpswbmldjrveu
+rpbsvucmdfjlw
+
+qk
+ekniz
+
+kvlmhegzcryd
+zrlmdgvefyhc
+zhgvrqueymdca
+remdfyhzcgv
+
+zxhiaqs
+hxiqsa
+
+sumrbd
+qgrbuw
+ubqgr
+
+dkmqsebjznylwucxot
+ewyqhjrlpcfotbis
+
+ti
+kxi
+
+dvgmlyepfnhscui
+isbvmudynplf
+nzqldwmfyuvtpi
+finlydpourvme
+dulnypvsrafmik
+
+zemctnsralu
+trnaelzmsuc
+azrstumnecl
+mltrceasnuz
+rtazlucenms
+
+aydgxnwehomujpv
+nedjuaxhopwvmg
+dvgwhfojpanmuxe
+wjaenpdvmohugx
+vanuomdxjehgwp
+
+xchjblnwmogv
+coxlngbwjmhv
+mjbwoclgxvnh
+
+br
+rohb
+
+knpclsvozb
+slcvbznk
+klcbnvzs
+lsvbkncz
+
+cehpgtzmawkjndufrlixb
+anrtxfdbhiwmcjzplkeug
+rkmwtcunzxhjpgbafdeil
+
+rqlstcwxkmoz
+thsvxzkueymrlqw
+rqlskomwzpaxt
+wcxrzmptqkls
+
+tshv
+hfzdlpij
+hmces
+
+kfjmaedcoqltuwp
+jrngliqdohsce
+bgclzdhjqxyero
+
+urndaqxz
+fyw
+wzqua
+ehglomjvbk
+
+guhfvqlnkydpiz
+ljgyoiqarzksuwet
+
+yutebcorzh
+slxcdkqnhjga
+
+fivxqukh
+kixqzvu
+vqxuki
+xnpiuqvk
+kvqfxudie
+
+rpsfdkmc
+cdefrksmp
+khmsfrdpc
+pdmkrcfs
+
+hwn
+whn
+
+rxhbzyedclofgwmuktsp
+xlmozsbgkcfeyurthdw
+psgtkcfazdwomblhyerxu
+ytvfsxukgwmlrzdhobec
+
+nrvyx
+vytxn
+xyvn
+nxvy
+xnyv
+
+qct
+cqt
+tcq
+
+y
+dy
+lcwtunshbmy
+fy
+ry
+
+cnboedgyxatrk
+ktdbeocgnay
+wbkgtecnyahmodq
+nxbtgzcsyeukrado
+ydagcekbfont
+
+jytulh
+yhtlz
+fwtrkhly
+bylht
+
+huigqrok
+ikhrong
+bighkwor
+kgxrhosi
+
+zbkrpelxtsohdaw
+ewzkvcxrdtboas
+rabkdwoxyneszt
+axhkbzrwdteos
+rtbowkelsxzad
+
+aonplewqryh
+euyqrfncsovkld
+byalnwiezroq
+enobxrlqy
+pmgzeryonql
+
+akxpsmecuj
+kfgsexjm
+oxqfeskjm
+yervixmdktlshbj
+
+r
+r
+r
+r
+r
+
+rdghefnubpzkma
+dhubafromtpekzgn
+knmhfjduebpgraz
+zpekdbfamrnihug
+
+ybcgsmlwhovidfezp
+omfpzqugycwrhbs
+
+x
+x
+
+vjahspyncxzmie
+zmpu
+krpmzog
+tfpmkz
+
+morafxw
+xyckafoqwjm
+ialpowmf
+xhrsmwokbfjazu
+anmfowdbq
+
+gdpblscxazjrmikoyth
+exrolqfahdbymcwpksjt
+gtmadncysrlhpojvxkib
+
+nxdilkwregfbaoqp
+exnjrbsifwypkqovag
+fgrotinqbwpkxae
+flndzeoxkwgrcptibqa
+
+sidjln
+mjslodni
+ztdoxjnise
+odnsehfjti
+dnsyij
+
+qx
+wmxtj
+wxzmtucqy
+godkvenhxpb
+xrztj
+
+xofhvkjytqus
+ytdqjkufimvx
+uwyqntcvfpxkj
+
+rdtqukinob
+wzufpcolmskynvteh
+
+vnab
+kouvrfe
+ljvcd
+wqbdpvsy
+bighvnmx
+
+frgsavwjel
+fjlrwsaveg
+afeljgrwsv
+jlvsrewafg
+kvfesjlwgra
+
+ygdszflehmwcnbopiatxju
+jdnupgzmilsywaechoft
+
+da
+rzfvailh
+bhorq
+ctgujpmsw
+
+ymbnzldsi
+ltvsfm
+mgcsl
+emslgw
+
+taqecxvdypifblzgk
+cekxfvgplrnqbty
+vejogtfwqbyknlrpxc
+
+souwzdkcbqf
+awzqgvbscukdpxn
+bcszjdfkuimwq
+sdbcuzqkw
+
+avrlf
+kerlgmuahvc
+wavfibznrol
+
+upnkam
+xmjt
+milex
+
+rxotufwczkpvia
+pajkvhwtme
+gpnektwljasv
+pknaqwtvey
+wpadktnlvjb
+
+kpfj
+syurwad
+asyvld
+
+p
+bpz
+po
+
+s
+u
+s
+
+ksvbeno
+uyfivq
+kbjodvh
+czptrmawg
+
+xtiqze
+xtisdz
+
+pylbdvkncjurmgh
+yhbdoltvrpiknmjucg
+vbmlhynrcugjpdk
+
+byoavnixtlzepjds
+sapxunqeizdvblyho
+qvlmeoisanzyhdxpb
+
+ifykcw
+iyckw
+
+u
+p
+s
+s
+
+f
+f
+f
+f
+
+fvbjxaiklos
+ufqnvcgxikdpalobt
+bixlarfkvo
+
+ygpsxce
+cpdsfygaxueb
+ycgsxep
+epcxsgty
+pctxesgy
+
+meawzoqnidgh
+hodmagqnzew
+mwhzndaqgjoe
+cdhseoqauwngzmx
+oawmeqfdnhzg
+
+yrlvejxocsh
+hvjrsmloyne
+nsrvyojlhe
+
+zhufxvrkcdmwqlsa
+lergvwdqnaosxtzchukbj
+
+xbvyt
+ybvndgxt
+gzxtonyb
+xbcuwtyp
+
+creoxajkgvq
+vgljkrexacwmhq
+
+wckjovuftgmb
+boktfjuvgmwc
+
+cguaojyvre
+ohiknuqags
+lcazjyguor
+
+inhyfk
+kify
+
+uhtqci
+tfoqacim
+srvcjytkqgx
+hqctz
+qmctahizn
+
+vekplqxuhrm
+kmeuprlvqxh
+vhlrkmpxuqe
+
+at
+tagexyi
+mpt
+yxta
+
+uezmyjqvbgspirlc
+fydbljgwmzxquecop
+zptrgeybcqmluj
+pelzjcugymtbvq
+
+fakguojpbsic
+ubcfgyjakpiso
+bliusctfvkampjog
+fybsicjawkupog
+
+kmxerqlautij
+zxidayte
+
+imbngcehtvs
+oipfmkrqusnwxdzyl
+imasjvn
+
+pek
+e
+ei
+ep
+ex
+
+yuw
+uyw
+wdysu
+
+omikta
+zjvatmw
+txsma
+cm
+lndgqmry
+
+cwazbkolvys
+liyoveacbswj
+siwokbavleyc
+rocsyndufablvwx
+aylbvcojesw
+
+nazfjsrouhgtv
+zgsprothnufav
+
+ptmshxwqk
+sebqodwi
+euqsw
+zwousq
+
+uqltjsikhpvefdawycbzg
+plyhvtieubakzswqcfjgd
+wehjvikyfpcsgaqtlbuzd
+sfibzvquyljekgthpwcda
+cgbtvdolizaeqypfksxjuhw
+
+izeqstg
+sgiqzet
+
+fqbmpoxscydhrtljzga
+cfqodxevmajhbrplzt
+oecfrzvbpdaqhtjlxm
+adfbxrmqlctzpjho
+
+dsmewbhpvrfuknj
+opcvhwtrqkue
+rwvkguhpzoe
+vxpghreuiwqk
+
+fjzi
+ftmizn
+
+xumjz
+ujxymg
+zumjx
+ujmx
+
+n
+l
+l
+x
+
+ghwfslriojz
+rfzliwoe
+flrziobw
+ifcpozlrw
+
+smvfnglxaeczqwukojhbi
+uieagsoqbhvlmjcfxwknz
+nxoacfwemhijsgqvzbkul
+qanmsiwvflcjbxzoeugkh
+
+pzciwneljbghoufdvymtqar
+exlhrjvkpnmdoqbtzusiwcgf
+
+uxjwpobgcflndqairke
+oktwumrzjlyedagxbinsfp
+
+oibhmyeguqkxjrcpawzfvds
+vhsauyxdrobwcjmkzqepgif
+gxhiwozfkbsecamrypudvjq
+mxywofehvsczapkbuidqjgr
+xsmvybwqdgrzeucfahpojik
+
+gdtlkuomn
+ytkueoglh
+
+xgimja
+gjxibma
+mjbagix
+xaiojmg
+mgjaxi
+
+sgnfdiz
+dto
+
+yhkvqrzw
+hyknjrzvq
+xtrhdsvkzoqy
+ykqvzhr
+zkqyhanegrv
+
+tzqrhavysuodmjp
+abvpofyzhmrjqdt
+yzopriuqnvmtahjd
+atmryjpzhovqgd
+
+cyljrwofasq
+afoqswrjclu
+carljswfkoq
+ljwsfocqyra
+xjolqcwfars
+
+r
+o
+ak
+xdje
+
+lfyjxpoeau
+yhlgcftszpr
+pkylfomw
+
+lunijqekwg
+vafgdsjqeklniw
+yeglwqkjin
+leqgjkniyw
+
+mpvlijnfbz
+jzmfbplnvih
+jqdlpvbmnzif
+
+tk
+tk
+qkst
+kt
+tk
+
+mdowpcnxgbvuytqezljsk
+tbnzcduipewvxlkqrsmjyga
+
+ilumzjpqotcv
+fgtmowyx
+gdsotkrm
+
+yncslevbgrqmizwu
+brclynqgzvuewisfm
+lgbzcesuvqnrwmyi
+
+bjmzopcdiqlyueh
+olyupebiqcmzjhd
+
+eubsjrvwmyinzkaqdgcf
+icqzjksbyregauvfdwnm
+jugdnbsczwqfarvkyiem
+benyrimfwzaqvukdscjg
+ndcuvaziekbwyjrqgsfm
+
+g
+c
+c
+
+gvyfqupnxtswb
+uvtykbjxgifcqz
+lhvobuxgqfetmy
+
+dpzgaulb
+plqugbrdmac
+
+htr
+kgrt
+rt
+tr
+trg
+
+o
+qv
+lr
+m
+l
+
+qotxnerijpfbkcagylh
+nilhcfrpkjgboxaqey
+ognqxipefrbjhlkacy
+kojtilqxyrhbpancgfe
+qjilgekcfsnhxapomrby
+
+fes
+feoijn
+ef
+ef
+ef
+
+dlzga
+tlsidg
+gdl
+lpdgh
+
+onysxwkqlcgdemhup
+mzlscwgkdnouexyp
+kzdubeoyslgnpcxm
+dymulpowksnegxc
+kpusvxldgyaonemrci
+
+xh
+e
+
+utbirhymae
+yzehmoukq
+
+ijvulcmbrgkyxao
+uvrajglcbomkxiy
+
+xo
+zo
+o
+xo
+o
+
+mbghatcenlifqjdkp
+ejscikpgvtomhnxqzf
+
+stpvo
+cjvpthsl
+spvdnyrt
+qvypftsx
+
+obrxaqyudvinmk
+qlimnvosubahydgkecrx
+yrftzoxkjqvbaidm
+kvqaxdmboirwy
+
+dxj
+xdj
+jxd
+jxd
+djx
+
+hfjeucmkrvnwxs
+nxujekrqmsbofhc
+
+ezarol
+lebz
+bzel
+
+jgmzcl
+jlzcmg
+cmlzjg
+jmclzg
+gmcjzl
+
+o
+u
+
+bdfqljiuacptzvgrxoe
+pauvztlihdqrjofgx
+xtrjvzuaipfldgoq
+jzrdtxqlwiavungfpo
+
+cjurgpeyvlzhafx
+aurhsfbvpeyxgjzc
+gzvhejlkpxyfocura
+
+rvyfbicazduolwtgqk
+qklnrgyaofdzvciwut
+
+qsw
+qs
+
+nrfgxpujobhk
+rxmpnokdgbjfi
+lxbngkrfyjvcoz
+
+e
+e
+zegkx
+e
+e
+
+kon
+k
+k
+
+ekvi
+iekv
+ekvi
+ivek
+
+jfbyxwhrne
+nxjhrfbdwy
+bewhryfjtnx
+mfhoxyjbrsnw
+
+bn
+n
+sxv
+d
+
+egrzknhbxfvqtdcu
+edhrioxvjgnzbf
+
+yjoskmhw
+kdtqfehazbyu
+
+zq
+zq
+qz
+uqz
+
+ilbpcz
+ibcqplz
+gczbpil
+
+nikychwgab
+caibgwklndy
+ckbenqwuafyg
+
+qubikjdz
+jkiuzdb
+
+gwmavrpfsdnkyizuelt
+yuqnvjmlogpizcfetx
+
+tnsf
+thnfs
+tfsn
+sntf
+nstf
+
+vflagunhs
+aiwvlhjfsunxg
+ulvhgfsna
+
+yajtfdwh
+hzdpalftjb
+
+nazpqismug
+pznuismgq
+mgiqnupwsz
+mgptzusniq
+boifzpmsuqgn
+
+ohu
+ht
+hpygo
+ijkdfhcb
+uhno
+
+kfzmrhyjvw
+hzgxpjbkwvyr
+zykmfrvwshj
+
+yqsezgcojbw
+zjsgcoeqby
+jgfsbozqyec
+czsgoyfbjqe
+
+fjywktd
+yjktfwd
+
+nwvrodtpqy
+xtrvnosihzgq
+
+gdwcmlxiqtynsjozapeur
+xwlgsjatqzycnodprmue
+adxtgqujrcopnlwsmezy
+
+snep
+shwz
+
+unvpgc
+guncvp
+
+suctpbxogra
+kcxvgteayu
+ztgxuacy
+
+pewbhlvjtg
+omskldnz
+iafryucxq
+
+zoucjefxpdta
+xbfijrelpucsot
+ktoexjpcauf
+jtezoxkpfhcduw
+
+xiaszncr
+asxnircz
+xzncrsai
+rixseuzanc
+nzaicrsx
+
+owtvxqcizrapl
+alqxivcprzowt
+
+ltrhdykufvwex
+ekxvfldwuhrt
+ervktduwlhfjax
+
+ylvgpjthiex
+snmbgjfzduxqearikc
+
+eml
+bkhyl
+rzsoitwqn
+dacupjev
+fldc
+
+uqigoj
+ojui
+
+zgbsumeycaxvontwdkij
+jbtelqcxnumsoakiwyvg
+waseyvijugnkobptcmx
+atesbkmjuhcvfngxywoi
+
+pc
+pc
+ikyp
+
+xtgvlenosarwubmfihz
+txganvweourhbqslfmiz
+lientrsuwghobfmvxaz
+taluorneizhswmbxgvf
+zginuholscexmftrbwva
+
+xjkv
+xtouw
+tywx
+oxwt
+
+zk
+cz
+bz
+
+qcp
+qpc
+
+ogptyeunzsqmarjc
+jrvlopzynes
+xoszpnjryle
+zbrnypsoej
+
+nuigyflbxs
+yxunspgj
+vnuscztymqowgxr
+ixnyshgu
+
+pdn
+cyskxdp
+
+ewlkgbdxqtiz
+eqgxitldbzkw
+kbdexzgitwql
+
+c
+p
+t
+v
+gqh
+
+uvigbjqk
+ibvugq
+vbuiqg
+
+wzdca
+dzawc
+cawzyd
+
+mfaigwlu
+pygxjmufwal
+ugfwlam
+glmafuw
+
+bewfkxsvl
+yxdqnmaturov
+
+fdrbt
+mxjnfdqpc
+wdltfo
+adwletfr
+
+t
+pgo
+e
+tiabc
+
+zbthk
+zbkhatr
+zbhtk
+
+flxwhbzkei
+lwkhxfezbi
+xelfwbzhik
+bhzefxkliw
+klizhwbfxe
+
+btmwkoqs
+bstomkqw
+wskomtbqi
+kswtbmqo
+kqbswotm
+
+kdfbzj
+bfdzjm
+
+bf
+ef
+f
+fut
+bf
+
+bvl
+lvu
+
+kezwynmfrgahlbqsjtdxiovpu
+wmaukoqsldvheztxrgjpifbny
+qgkrwvaiznhpmtlxjubesdoyf
+osverdamnxjufcybpkztqighwl
+
+nza
+anz
+
+wfjsdaq
+iwlrou
+ykwftq
+
+zgtuvqxmljwyaifcbp
+pcgytlqjvbaxwzimf
+cmqzwaljvbufyigptx
+sxgvcbweymiflqajtkpz
+fhgmjpwclzibtvaqxy
+
+rohqjmnvlsdaigywbxe
+xmhiarjdogqwbvnlsey
+
+jhz
+jhz
+jzh
+
+oemyvhgznpblsq
+hpsvzycebqlmng
+elhnwqdpbsgzyvm
+cenomgyzhqlsbvp
+
+gdnc
+wncd
+
+tnlprwbcsaygzqxuoev
+rxqdasecgwbzmfvntpl
+
+jtucglizkohrafs
+ebjhogu
+hdugoj
+
+ncyvqk
+oulfaxqnerid
+ptmsynbvkwq
+
+mxihwyzetlbnkpfs
+ksqwhxtzbenfpim
+nqbtxwsepfmkih
+khixywsmbnetpfl
+peikctmafswhnbx
+
+phylqxrdtg
+yxtapqni
+nkiwytuveqxp
+
+lhqrfys
+sqdfly
+ysfhlq
+sylfq
+
+sqpjuobilhmtvrxaz
+kuwgncfdv
+
+dqzke
+qezkd
+kqezd
+zkqed
+kdqez
+
+lio
+iol
+loi
+lio
+oil
+
+hvpwi
+rhvp
+fpysmvd
+tpvrl
+vph
+
+idjeoxvyqaufgpnlc
+xnplcqjvdyigsaef
+
+y
+qw
+
+rhb
+fpqsiadrjkl
+
+hinvdck
+kvcahnid
+fhcupntkvdqijmy
+dvnchik
+aivcnhxkd
+
+xqugmnktofslbpevzd
+yaqztjnicrwd
+
+biadvoeznswx
+iaxszcdwboj
+isbdkxzwoanve
+gikqxzorsadfwb
+asozrwidqxvb
+
+bvotgwrxe
+xbhryeov
+ojrvxebi
+vxeorb
+
+fb
+rqwl
+qlrjyfp
+nkhgmov
+
+zexjvfbwro
+wzvxorfjbe
+vorwzexbjtf
+xeovwfjbzr
+
+owfmx
+uxomf
+mfo
+cfkmo
+
+atwsbvcn
+mijkzngueoy
+
+twqprciyaxkb
+barckwiptqyx
+iabyqwtcrkxp
+rqbkipctxywa
+
+vmhzjek
+tx
+aix
+dsa
+
+byzxqpgureth
+gbxryhptqiezuc
+lqrzjwythegxubp
+hqruytzegbxp
+tepughsrqzybx
+
+hwydxbeflai
+yhewcfbaixd
+yhwadxfeib
+
+hi
+h
+h
+h
+
+mhket
+mtkh
+
+loacixzmfy
+fmxlzaoyci
+ylifaxopczm
+czyafoxmli
+
+ymrfxiwbse
+ihpqjuaczd
+
+ealixkwz
+gocmqyfthp
+
+gedjwnt
+wtdezgn
+hgcuwrtnped
+zjngtdlexw
+
+jk
+jk
+kj
+jk
+jk
+
+gkxldasfhqncbiyu
+hnpfbycsgqkuldex
+hquxfksigydlcnab
+cxauqgdiyfbnkshl
+
+niahryvlxbekt
+dyhknvbaleirtx
+tknljyvrihbzxe
+seyxknvihrcbtl
+bxrhukldytvneiw
+
+vuq
+cfawvlt
+rhnvzu
+
+wxlhvnmispbot
+whvbcxmolntips
+snhtmbpwifulxov
+itswhupmncvolbx
+rhtlsdpiwonbkqvxm
+
+ojmyc
+kfzuehvirps
+
+mk
+km
+km
+
+fjyx
+jitrevpfy
+yjs
+jyxmiect
+dykgjnzbl
+
+rbwpjflnoegkqt
+hwxceyimsdzntvu
+
+golf
+fzgol
+dlxfomg
+lfozg
+floag
+
+dfbmcyi
+yvzpkrbc
+icybu
+
+mcbditlrfgeaoh
+camdhrfbvoglei
+riagefbmclvokqz
+dbfogjmeacrpl
+lwuogecanfxsbrmy
+
+lgsnwuockhmpxibedqzaf
+cvmiepdsubkgwzhf
+bsvipdjwcfkmezugh
+wgfzicsmubpdkeh
+
+iyeorgvpmutnhqcwxj
+jqoguadpnmrk
+nmpquzglaorsj
+
+apjqhruongvztmiywecl
+padwbieyshonfrtxqcukzglv
+yolrhezqicgpmvtaunw
+mljzahrwcpqygvonuite
+
+szhjetf
+sdtozreuhmfp
+
+f
+f
+mf
+f
+
+gnjqcad
+idlhjay
+rejbwamoud
+danxj
+zjkdia
+
+lupiwyqntjgekvsr
+gwqupjykitrlnsbo
+
+ojcxmuqsrhyv
+lgcovdyhnifsp
+
+wphvcu
+lznsm
+
+wpq
+qpw
+wqp
+pwq
+fqwhp
+
+nyzx
+ubpx
+xwi
+wtxhe
+
+vkujyxtido
+tvouidyjxk
+vidkjuoxty
+uxtoivdkjy
+yvukijdoxt
+
+fpuboyiwdktvc
+hsqnzuagr
+
+swabt
+mwsb
+sbwm
+bws
+
+idlshcnf
+ficnd
+tdfcin
+nicdf
+
+ajodwgmsy
+wmjvoygd
+ojdwmyg
+dovgwjmy
+
+yemtzisjpxchanuovwdkr
+evxtomkyhrupwsnizac
+ytevcsimkwrnzoauhpx
+
+whley
+dhyetlqf
+
+fqx
+xf
+bfxz
+
+ipwvb
+vdnb
+rcvnf
+chvr
+xjtvyez
+
+sdpuoewx
+wfqrphkdelosbvgyum
+pudzioesnw
+idatsupewo
+
+knfheau
+kanehuf
+unekfa
+klcsnemaufy
+
+yhuvigcrp
+rivgypcuh
+urphgvciy
+iyhrcvupg
+vuphryicg
+
+flozkyvhnwxr
+fvpsybhlwrz
+hzqvmfgrl
+irholckaveszf
+
+gypwufz
+agspwqmuyz
+yogwpzu
+
+c
+oc