aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAkshay <[email protected]>2020-12-04 08:51:24 +0000
committerAkshay <[email protected]>2020-12-04 08:51:24 +0000
commit031746bd8c349b485b4914d1788ec944b1e534a2 (patch)
tree187573bc58c1318d7292fac771cf5b28b98eea62
parent24dade573ba48d83265f88e3850958ff7e3d61bd (diff)
add initial solution to day 4
-rw-r--r--aoc.cabal6
-rw-r--r--execs/Day02.hs4
-rw-r--r--execs/Day04.hs82
-rw-r--r--input/041056
4 files changed, 1146 insertions, 2 deletions
diff --git a/aoc.cabal b/aoc.cabal
index e88e933..dda4a43 100644
--- a/aoc.cabal
+++ b/aoc.cabal
@@ -30,6 +30,12 @@ executable Day02
30 30
31executable Day03 31executable Day03
32 main-is: Day03.hs 32 main-is: Day03.hs
33 build-depends: base
34 default-language: Haskell2010
35 hs-source-dirs: execs
36
37executable Day04
38 main-is: Day04.hs
33 build-depends: base, parsec 39 build-depends: base, parsec
34 default-language: Haskell2010 40 default-language: Haskell2010
35 hs-source-dirs: execs 41 hs-source-dirs: execs
diff --git a/execs/Day02.hs b/execs/Day02.hs
index f67778b..b06b44d 100644
--- a/execs/Day02.hs
+++ b/execs/Day02.hs
@@ -37,5 +37,5 @@ parseLine parser line = right $ parse parser "input" line
37 37
38main :: IO () 38main :: IO ()
39main = do 39main = do
40 n <- map (fromEnum . doCheck2 . parseLine parseProp) . lines <$> readFile "input/02" 40 n <- map (doCheck2 . parseLine parseProp) . lines <$> readFile "input/02"
41 print $ sum n 41 print $ countElem True n
diff --git a/execs/Day04.hs b/execs/Day04.hs
new file mode 100644
index 0000000..04aacbb
--- /dev/null
+++ b/execs/Day04.hs
@@ -0,0 +1,82 @@
1module Main where
2
3import Text.ParserCombinators.Parsec
4import Text.Parsec.Char
5import Data.Either
6import Data.Maybe
7import Control.Monad
8import Data.List (sortOn)
9
10right (Right a) = a
11fields = [ "byr" , "iyr" , "eyr" , "hgt" , "hcl" , "ecl" , "pid" ]
12
13block = cell `sepBy` oneOf " \n"
14cell = do
15 tag <- many lower
16 char ':'
17 rest <- many (alphaNum <|> char '#')
18 return (tag, rest)
19
20parseInput :: String -> Either ParseError [(String, String)]
21parseInput = parse block "input"
22
23assocGet s (l:ls) = if fst l == s
24 then snd l
25 else assocGet s ls
26
27doCheck :: [(String, String)] -> Bool
28doCheck ls = all (isJust . flip lookup ls) fields
29
30checkNum lower up s = p >= lower && p <= up
31 where p = read s :: Int
32byr = checkNum 1920 2002
33iyr = checkNum 2010 2020
34eyr = checkNum 2020 2030
35
36parseHeight :: Parser (Int, String)
37parseHeight = do
38 v <- many1 digit
39 unit <- choice $ map string ["cm", "in"]
40 return (read v, unit)
41hgt s = case parse parseHeight "hgt" s of
42 Right (v, "cm") -> v >= 150 && v <= 193
43 Right (v, "in") -> v >= 59 && v <= 76
44 _ -> False
45
46parseColor = char '#' >> many hexDigit
47hcl :: String -> Bool
48hcl s = case parse parseColor "hcl" s of
49 Right c -> length c == 6
50 Left _ -> False
51
52
53ecl :: String -> Bool
54ecl = flip elem ["amb", "blu", "brn", "gry", "grn", "hzl", "oth"]
55
56parsePid = replicateM 9 digit
57pid :: String -> Bool
58pid s = isRight $ parse parsePid "pid" s
59
60doValidity :: [(String, String)] -> Bool
61doValidity ls = all ((== True) . ($ ls)) [ byr . assocGet "byr"
62 , iyr . assocGet "iyr"
63 , eyr . assocGet "eyr"
64 , hgt . assocGet "hgt"
65 , hcl . assocGet "hcl"
66 , ecl . assocGet "ecl"
67 , pid . assocGet "pid"
68 ]
69
70parseLines :: [String] -> [String]
71parseLines allLines = unwords first : next
72 where (first, rest) = break null allLines
73 next = if null rest then [] else parseLines (tail rest)
74
75main :: IO ()
76main = do
77 n <- parseLines . lines <$> readFile "input/04"
78 let blocks = map (right . parseInput) n
79 print $ length $ filter (\p -> doCheck p && doValidity p) blocks
80 -- mapM_ print $ filter (\p -> doCheck p && doValidity p) $ map (sortOn fst) blocks
81 -- print $ length $ filter doCheck blocks
82 -- print $ length $ filter (\p -> doCheck p && doValidity p) $ map (sortOn fst) blocks
diff --git a/input/04 b/input/04
new file mode 100644
index 0000000..cecabe2
--- /dev/null
+++ b/input/04
@@ -0,0 +1,1056 @@
1iyr:2013 hcl:#ceb3a1
2hgt:151cm eyr:2030
3byr:1943 ecl:grn
4
5eyr:1988
6iyr:2015 ecl:gry
7hgt:153in pid:173cm
8hcl:0c6261 byr:1966
9
10hcl:#733820
11hgt:166cm eyr:2025 pid:79215921 byr:1952 iyr:2014 ecl:blu
12
13eyr:2022
14hgt:165cm hcl:#733820
15iyr:2013 pid:073015801 ecl:oth
16cid:101
17
18iyr:2013
19ecl:brn hcl:#623a2f
20cid:246 byr:1948 pid:122719649
21hgt:160cm
22eyr:2026
23
24eyr:2028
25pid:229371724 hgt:154cm hcl:#ceb3a1 byr:2000 ecl:hzl iyr:2017
26
27eyr:2029 ecl:amb
28byr:1980
29hgt:177cm pid:914628384 hcl:#623a2f iyr:2013
30
31iyr:2019
32eyr:2026 hcl:#efcc98 pid:475316185 byr:1945
33hgt:76in
34ecl:amb
35
36pid:371759305 iyr:2018 hcl:#623a2f eyr:2026 byr:1984 hgt:174cm
37
38iyr:2010 pid:184800910 ecl:amb cid:108 eyr:2028
39hcl:#cfa07d
40
41iyr:2012 hcl:#b6652a hgt:160cm pid:223041037
42eyr:2029 byr:1920 ecl:oth cid:212
43
44pid:775975903
45hgt:163cm byr:1966
46eyr:2023 ecl:amb iyr:2010
47
48pid:465404256 hcl:#7a54af ecl:blu hgt:180cm iyr:2018
49eyr:2024 byr:1933
50
51hcl:#18171d
52iyr:2018 hgt:185cm
53byr:1929 eyr:2024
54ecl:oth
55pid:#b0990a
56
57byr:2017
58hcl:#cfa07d pid:184cm hgt:187in ecl:#e97c0d iyr:2022 eyr:2013
59
60hgt:176cm iyr:2019 eyr:2024 ecl:brn byr:1943
61pid:532967054 hcl:007b47
62
63pid:171225044 hcl:#888785 byr:1992 ecl:amb iyr:2012 eyr:2030
64hgt:180cm
65
66byr:1969
67pid:689216275 iyr:1934 eyr:2031 ecl:#e5bc14 hcl:#fffffd
68
69pid:166619054 cid:125 hcl:#cfa07d hgt:164cm byr:1946
70ecl:brn iyr:2014 eyr:2023
71
72ecl:#c1ae72 pid:458692331 hcl:#b6652a eyr:1966 byr:1951 iyr:2023
73
74cid:253 pid:9096156879 hcl:9911e5
75byr:2007
76iyr:2019 eyr:2033 hgt:181cm
77ecl:blu
78
79ecl:oth pid:180428876 iyr:2019 byr:2001 eyr:2024 hgt:172cm hcl:#7d3b0c
80cid:81
81
82hgt:167cm
83byr:2007 eyr:2030
84iyr:1961 ecl:lzr hcl:#cfa07d
85pid:#e254d8
86
87pid:377737133 hgt:160cm byr:1958 hcl:#866857 ecl:oth iyr:2015 eyr:2022 cid:350
88
89hgt:188cm
90eyr:2025 ecl:brn hcl:#efcc98
91iyr:2015 pid:321192707
92byr:1996
93
94byr:1956 iyr:2018 hcl:#b6652a
95eyr:2024
96ecl:blu cid:343
97hgt:152cm pid:192659885
98
99hgt:163cm
100iyr:2012 byr:1952 eyr:2022 hcl:#efcc98 ecl:grn pid:337866006
101
102cid:134
103byr:1941 eyr:2027 ecl:oth
104iyr:2012 pid:303690324 hcl:#7d3b0c
105
106ecl:grn byr:1945 eyr:2028 hcl:#cfa07d iyr:2012 cid:108 pid:388941584 hgt:171cm
107
108pid:962215061 ecl:brn iyr:2019 eyr:2025 cid:163 hcl:#cfa07d byr:1958 hgt:187in
109
110ecl:amb
111byr:1989 pid:118257086 iyr:2019 cid:320 hgt:158cm eyr:2027 hcl:#733820
112
113pid:813286578
114iyr:2019 eyr:2031 hcl:#341e13 hgt:161cm byr:1950
115ecl:oth
116
117byr:1976 ecl:blu
118eyr:2024
119hcl:#fffffd
120hgt:153cm pid:552154655 iyr:2019
121
122eyr:2025 pid:109518209 iyr:2013 byr:1923
123hgt:162cm
124ecl:oth
125
126hgt:178cm byr:2007 hcl:#7f431f pid:7365694093 eyr:2037
127ecl:blu iyr:2018
128
129eyr:2021
130cid:105 iyr:2013 byr:1995 ecl:grn hgt:181cm
131pid:733189859 hcl:#b6652a
132
133hcl:#6b5442 eyr:2028 iyr:2013 byr:1958 hgt:169cm
134ecl:gry pid:651263830
135cid:51
136
137iyr:2018 cid:59 eyr:2027 ecl:blu
138hgt:174cm pid:269821917 byr:1971
139
140byr:1936 eyr:2025 ecl:hzl hcl:#b6652a
141iyr:2019
142pid:670202082
143hgt:186cm
144
145byr:1958
146ecl:gry hcl:#7d3b0c pid:000522430 eyr:2020
147hgt:168cm
148
149iyr:2015 eyr:2022
150pid:630105579 hcl:#7d3b0c byr:1935
151ecl:gry hgt:153cm
152
153ecl:gry hcl:#fffffd hgt:172cm byr:1944
154eyr:2021
155iyr:2013 cid:58 pid:554670072
156
157byr:1983
158eyr:2022
159iyr:2012 hgt:176cm
160ecl:brn pid:201965494 hcl:#dd8296
161
162cid:124 byr:1935 eyr:2020 ecl:blu
163hcl:#a97842 pid:666776663 iyr:2010
164hgt:68in
165
166byr:1943 pid:139343878 hgt:181cm hcl:#733820 cid:206 iyr:2018 ecl:brn
167eyr:2029
168
169pid:114742677
170ecl:amb hgt:160cm
171byr:1975 eyr:2030
172hcl:#866857
173
174iyr:2012 ecl:amb hgt:170cm pid:221200950 eyr:2028
175hcl:#733820 cid:274
176
177eyr:2020
178pid:167438086 iyr:2020 hcl:#fffffd hgt:178cm byr:1996
179ecl:blu
180
181iyr:2015 hcl:#b6652a
182pid:905439259
183byr:1962 cid:209 ecl:brn hgt:150cm eyr:2024
184
185iyr:2016 ecl:amb
186pid:855119486
187cid:77
188hgt:192cm byr:1947 eyr:2021 hcl:#888785
189
190hcl:#341e13
191iyr:2011 hgt:157cm eyr:2030
192pid:103806645 cid:90 ecl:grn byr:1976
193
194hcl:#fffffd byr:1957
195cid:284 eyr:2026
196pid:031705251 iyr:2019
197hgt:166cm
198
199eyr:2019 byr:2019 hgt:167in
200iyr:2014 ecl:gmt
201
202hcl:#18171d cid:93
203eyr:2027
204iyr:2013
205pid:821161144 ecl:brn byr:2002 hgt:170cm
206
207hgt:181cm
208byr:1972 iyr:2018 hcl:#fffffd
209pid:745667222 eyr:2023
210ecl:hzl
211
212hcl:#602927 byr:1996 ecl:blu pid:503245375
213hgt:166cm eyr:2028 iyr:2018
214
215hgt:59in byr:1966
216ecl:oth iyr:2016 eyr:2029 hcl:#866857
217
218cid:179 iyr:2012 hgt:182cm eyr:2024 pid:451186596 hcl:#6b5442 ecl:blu
219
220eyr:2023 iyr:2016
221hcl:#18171d hgt:173cm cid:182 pid:979409688 ecl:brn byr:1972
222
223iyr:2014 eyr:2027 byr:1977 ecl:brn hgt:171cm hcl:#b6652a pid:124307431
224
225byr:1929 pid:048990845 ecl:hzl hgt:193cm cid:159 hcl:#b6652a eyr:2028
226
227ecl:gry hgt:181cm iyr:1934 byr:1970
228eyr:2015 pid:5818817055 cid:98
229
230hgt:179cm
231iyr:2014
232eyr:2030
233pid:397317466 byr:1967
234hcl:#a97842
235ecl:grn
236
237pid:138485312 ecl:hzl
238hgt:151cm
239iyr:2010 hcl:#866857 byr:1936 cid:345 eyr:2021
240
241ecl:oth
242pid:687490850 eyr:2028 hcl:#9bd268 hgt:157cm iyr:2012 byr:1994
243
244byr:1933 pid:575158994 hgt:192cm iyr:2017 eyr:2022 hcl:#602927
245ecl:gry
246
247iyr:2012
248hcl:#7d3b0c
249ecl:oth
250eyr:2023 pid:615952261 byr:1959
251hgt:152cm
252
253byr:2010
254iyr:2011 hcl:z ecl:grn hgt:152cm pid:6079261766
255
256hcl:#18171d iyr:2012
257byr:1986 ecl:blu
258pid:836367740 hgt:191cm eyr:2024 cid:200
259
260ecl:blu pid:909247319 iyr:2019 eyr:2026 byr:1958
261hgt:170cm
262hcl:#b6652a cid:256
263
264eyr:2027 hcl:#efcc98 iyr:2010 hgt:191cm ecl:brn byr:1933
265
266byr:1921
267pid:414637667 hcl:#8d840f cid:291 iyr:2013 ecl:amb eyr:2029 hgt:172cm
268
269byr:1961 iyr:2020 eyr:2025 pid:675731511 hgt:71in
270ecl:blu hcl:#623a2f
271
272byr:1959 iyr:2002
273hcl:#ceb3a1 eyr:2027 ecl:#633ff4
274pid:815877728
275
276ecl:gry pid:812104470 byr:1938
277hgt:70cm
278eyr:2028 cid:285 iyr:2016 hcl:#b6652a
279
280cid:99 hgt:152cm byr:1971
281eyr:2020 hcl:#733820
282ecl:gry
283iyr:2012 pid:020521112
284
285pid:803066169 hgt:157cm iyr:2014 hcl:#b6652a eyr:2025 ecl:brn byr:1981
286
287hcl:fafcd9 eyr:2021
288hgt:76in
289pid:359286290 cid:207 iyr:2018 ecl:grt
290
291pid:179471060 byr:1966 ecl:amb hcl:#18171d eyr:2029 iyr:2015 hgt:190cm
292
293hcl:#efcc98 ecl:gry
294byr:1942
295eyr:2026 iyr:2011
296hgt:158cm pid:721512314
297
298ecl:oth eyr:2024 hcl:#8bc738
299hgt:167cm iyr:2014 pid:729168992
300
301hcl:#b6652a
302pid:179977662
303iyr:2018
304ecl:gry
305byr:1973
306hgt:155cm
307cid:126 eyr:2030
308
309byr:2012 eyr:1955 hcl:z iyr:1981 pid:#66167e hgt:175in ecl:grt
310
311hgt:154cm cid:301 iyr:2010 hcl:#7d3b0c pid:573851812 ecl:grn eyr:2030
312
313pid:601712917 ecl:hzl eyr:2001 cid:70 hgt:162cm hcl:#6b5442 iyr:2018
314byr:1959
315
316hgt:183cm byr:1996 eyr:2023 hcl:#866857 iyr:2018 pid:259910953 ecl:brn
317
318pid:751991211 hcl:z iyr:2015 eyr:2024 byr:1939 ecl:oth hgt:161cm
319
320eyr:2026 byr:1947
321ecl:grn iyr:2018 cid:248 hcl:#ef5900 hgt:66in
322
323iyr:2028 eyr:1994 pid:9211015765
324ecl:amb
325hcl:cd429d
326byr:2013
327hgt:176cm
328
329hgt:193cm ecl:amb eyr:2023
330iyr:2020 byr:1933
331cid:50
332hcl:#efcc98 pid:482745318
333
334byr:2014 pid:619629999
335ecl:oth hgt:159cm eyr:2027 iyr:2018 hcl:#b6652a
336
337hcl:#b6652a eyr:2028 byr:1921
338ecl:blu
339pid:866536313 hgt:185cm iyr:2020
340
341eyr:2027 pid:904225608 iyr:2010 cid:57 hgt:161cm hcl:#83ee3c ecl:gry byr:2001
342
343byr:1968 pid:120450875 iyr:2018 hgt:165cm ecl:grn eyr:2022 hcl:#7d3b0c
344
345hcl:#a97842 byr:1964
346eyr:2027 ecl:oth hgt:186cm iyr:2010
347cid:226 pid:632344779
348
349pid:135449714
350cid:348 iyr:2019
351hcl:#602927
352ecl:oth eyr:2029
353hgt:184cm byr:1992
354
355eyr:2027
356byr:1929 hgt:181cm hcl:#fffffd iyr:2019 pid:369478657
357ecl:blu
358
359hgt:177cm eyr:2021 iyr:2016 ecl:gry byr:1938 hcl:#602927 pid:034365656
360
361iyr:2020 hcl:#866857
362eyr:2028
363pid:183612456 ecl:#9e25d3 hgt:159cm byr:1934
364
365pid:664990234 hcl:#efcc98 cid:185 iyr:2018
366ecl:brn
367hgt:192cm
368byr:1942
369eyr:2029
370
371eyr:2027
372hgt:163cm pid:760854338 cid:228
373byr:1958 iyr:2014
374hcl:#efcc98 ecl:gry
375
376iyr:2014
377hcl:#18171d hgt:157cm ecl:amb eyr:2025 byr:1957 pid:347369874
378
379pid:013801431 byr:1999
380hgt:181cm eyr:2029
381ecl:amb iyr:2010
382hcl:#b6652a
383
384hgt:153 eyr:2030 byr:2022
385hcl:z cid:84 ecl:hzl iyr:2020
386
387cid:315 iyr:2011
388hgt:151cm hcl:#ffb5f9
389pid:427813663 byr:1999 ecl:brn eyr:2025
390
391eyr:2024
392cid:205 byr:2000 iyr:2020 hgt:173cm ecl:gry
393
394eyr:2026 byr:1996 iyr:2018 ecl:grn hgt:158cm pid:026432567 hcl:#602927
395
396iyr:2014
397ecl:hzl
398byr:1964 eyr:2020 hgt:184cm pid:031793197 hcl:#fffffd
399
400ecl:oth hgt:165cm byr:1982 pid:172329608 hcl:#733820
401iyr:2019
402eyr:2020 cid:347
403
404byr:2014 iyr:2011 hgt:179cm
405hcl:z eyr:2020 ecl:grt
406cid:134
407
408ecl:gry
409iyr:2011 hcl:#a97842
410byr:1942 pid:789953865 cid:172 hgt:180cm eyr:2027
411
412hgt:179cm pid:975853536
413iyr:2018 byr:1989 hcl:#602927
414eyr:2021 ecl:amb
415
416byr:2011
417iyr:2015
418ecl:oth
419hcl:85d233 cid:207 eyr:2020 hgt:138 pid:6169876
420
421ecl:hzl eyr:2029 hcl:#efcc98
422hgt:188cm iyr:2018 cid:143 byr:1973
423
424hcl:#ceb3a1 pid:762609805
425byr:1962
426hgt:150cm
427iyr:2016 eyr:2024 ecl:oth
428
429iyr:2012
430pid:181821528 byr:1922 ecl:gry hcl:#a97842 hgt:169cm eyr:2028
431
432eyr:2029 pid:776605704 byr:1964 hgt:175cm hcl:#623a2f ecl:grn
433iyr:2011
434
435byr:1989 iyr:2019
436ecl:gry pid:397990288
437hcl:#602927 hgt:67in eyr:2030
438cid:259
439
440hcl:#866857 iyr:2018 ecl:blu byr:1938 cid:227 eyr:2028 hgt:171cm
441pid:779192850
442
443byr:1974 hcl:#cfa07d eyr:2026 hgt:59in cid:51 iyr:2019
444ecl:oth pid:091591737
445
446byr:1952 cid:301 pid:804465935 hgt:152cm eyr:2025 hcl:#888785
447iyr:2013 ecl:hzl
448
449hcl:6a32f0 eyr:2027
450iyr:2014
451ecl:amb byr:1933 cid:185
452hgt:75cm
453
454byr:1945 hcl:#b6652a
455hgt:163cm ecl:brn eyr:2025 iyr:2015 pid:829875350
456
457byr:1940 hgt:174cm iyr:2014 pid:9989523268 ecl:gry eyr:2026
458hcl:#efcc98
459
460iyr:2011 ecl:lzr
461byr:1998 hgt:182cm
462eyr:2029 hcl:z
463
464pid:091142801
465hcl:#c0946f byr:1983 ecl:blu iyr:2017 hgt:183cm eyr:2027
466
467ecl:oth iyr:2011 hgt:158cm byr:1950 pid:902512428 hcl:#623a2f eyr:2028
468
469eyr:2020
470iyr:2020
471ecl:oth byr:1938 hcl:#d5eb7e
472pid:829945241 hgt:171cm
473
474byr:1971
475pid:998912876 eyr:2022
476iyr:2012 hcl:#cfa07d cid:338 ecl:brn
477hgt:183cm
478
479ecl:amb hcl:#7d3b0c pid:331124964 iyr:2013 byr:1945 hgt:189cm eyr:2028
480
481pid:012740434 iyr:2019
482byr:1998
483hgt:172cm eyr:2028
484cid:102 hcl:#866857
485ecl:amb
486
487hcl:#866857
488eyr:2027 hgt:181cm byr:1954 ecl:blu
489iyr:2010
490pid:211721858
491
492byr:1984 pid:876360762 hgt:72cm
493eyr:2040 hcl:a60c15 iyr:1948 ecl:lzr
494
495hgt:167cm byr:1930 ecl:oth pid:740024142 eyr:2024 hcl:#341e13
496iyr:2018
497
498byr:1968 hcl:#623a2f ecl:brn
499cid:210 hgt:155cm
500iyr:2017 pid:216618180 eyr:2024
501
502byr:1966 pid:131332466 hgt:174cm ecl:amb
503hcl:#733820
504iyr:2013 eyr:2023
505
506eyr:1985
507pid:#fde6c1
508hcl:z byr:2017 iyr:2027 hgt:163cm
509
510iyr:2016 ecl:hzl hgt:171cm
511hcl:#888785 pid:390140479 byr:1976
512
513cid:327 eyr:2023 byr:1954
514hgt:192cm iyr:2012
515pid:413357852 ecl:blu
516
517iyr:2014 ecl:hzl hgt:154cm byr:1962 pid:904474869 hcl:#6b5442 eyr:2023
518
519ecl:hzl iyr:2012 eyr:2027 pid:663644982 hgt:175cm cid:56
520byr:1980 hcl:#ceb3a1
521
522eyr:2020 iyr:2012 hgt:190cm byr:1993 hcl:#a97842
523ecl:amb pid:418635216
524
525pid:845398140
526byr:1933 iyr:2016 ecl:oth eyr:2024 hcl:#cfa07d hgt:169cm
527
528eyr:2040 hgt:161cm
529byr:2018 ecl:blu
530iyr:2022 hcl:#866857 cid:252
531pid:286344655
532
533hcl:#6b5442
534eyr:2027
535hgt:191cm iyr:2012
536pid:642929864 ecl:amb byr:1934
537
538iyr:2015 hcl:#cfa07d ecl:grn
539eyr:2029 pid:163012663 hgt:150cm
540
541eyr:2030 byr:1938 hgt:188cm iyr:2018
542pid:652645847 hcl:#b6652a ecl:grn
543
544pid:157056211 iyr:2010 hcl:#cfa07d ecl:gry
545eyr:2024 byr:1961 hgt:177cm
546
547eyr:2020 hcl:#60945e ecl:brn iyr:2011 pid:688090869 hgt:171cm
548byr:1941
549
550eyr:2023 hgt:188cm byr:1964 hcl:#7d3b0c ecl:gry iyr:2017
551
552byr:1996
553hcl:#733820 pid:142902538
554eyr:2023 iyr:2012 ecl:oth
555hgt:166cm
556
557hgt:62in cid:125 eyr:2022 hcl:#b6652a iyr:2011
558ecl:amb pid:220826562
559
560ecl:grn hgt:72in byr:1991 eyr:2020 pid:281076310 hcl:#6b5442
561
562iyr:2030 hgt:78 eyr:1966 byr:2008 cid:260 ecl:grt hcl:5d2e21
563
564iyr:2017 pid:388674097 byr:1950 ecl:grn cid:338
565hgt:159cm
566hcl:#6b5442
567eyr:2025
568
569hgt:92 eyr:2031 cid:52 pid:169cm hcl:2695be
570iyr:1987
571byr:2011
572
573pid:396358436 hcl:#ceb3a1
574byr:1976 eyr:2025
575iyr:2012 ecl:brn
576hgt:174cm
577
578pid:389292752
579eyr:2027 cid:335 hgt:65in byr:1974 hcl:#6b5442 ecl:oth iyr:2019
580
581ecl:amb iyr:2010 hcl:#602927 hgt:164cm byr:1966 pid:749383114 eyr:2026
582
583pid:656206688
584hgt:175cm
585hcl:#6b5442 byr:1961 eyr:2028
586ecl:amb iyr:2010
587
588hgt:179cm eyr:2028 byr:1958
589pid:095076581 ecl:gry
590hcl:#733820
591iyr:2017
592
593byr:1960
594cid:309 ecl:utc iyr:2012
595hgt:172cm pid:395100903
596eyr:2030 hcl:#cfa07d
597
598eyr:2021 cid:98 pid:387957353 byr:1941
599hgt:192cm
600hcl:#efcc98 ecl:brn
601
602pid:143359781
603hcl:#a97842
604byr:1996
605hgt:184cm eyr:2020 cid:319 ecl:blu iyr:2020
606
607eyr:2025 iyr:2013 hgt:154cm hcl:#b6652a ecl:oth byr:1979 pid:976151938
608
609iyr:2017
610hgt:118 ecl:#f0f31e
611eyr:2028
612hcl:z
613
614iyr:2016 hgt:153cm hcl:#6d55cd eyr:2026 ecl:hzl byr:1943 pid:257485710 cid:165
615
616hcl:#ceb3a1 ecl:blu byr:1937 hgt:152cm iyr:2020 eyr:2026 pid:032844291
617
618hcl:#fffffd byr:1937 pid:122104515 ecl:hzl
619iyr:2018
620eyr:2027 hgt:163cm
621
622byr:1987 pid:052848077 hcl:#341e13
623iyr:2015 hgt:172cm eyr:2022
624
625pid:897642631 iyr:2015 byr:1941 hcl:#733820 ecl:brn eyr:2020 hgt:179cm
626
627hcl:#7d3b0c ecl:grn eyr:2029 pid:232785519 cid:258 iyr:2013 byr:1999
628
629hgt:152cm ecl:gry hcl:#18171d eyr:2020 byr:1971 iyr:2020 pid:211826434
630
631hcl:#866857
632eyr:2022 pid:979633771 ecl:hzl iyr:2014 byr:1963
633
634cid:124
635ecl:utc hgt:77 hcl:#866857
636byr:1979 iyr:2013
637pid:92518200 eyr:1968
638
639hcl:#888785 eyr:2022 pid:233642738 byr:1959 hgt:191cm
640ecl:blu iyr:2010
641
642pid:#adbcd3 ecl:zzz eyr:2025 cid:129 byr:2028 hcl:z hgt:166cm iyr:2011
643
644cid:131 hgt:169cm
645iyr:2020
646byr:1994
647eyr:2021
648ecl:amb hcl:#c0946f
649pid:243158461
650
651hcl:#18171d byr:1980 ecl:oth hgt:153cm eyr:2028 iyr:2020 pid:629055498
652
653hcl:#b6652a
654hgt:152 ecl:blu pid:175cm iyr:2015 byr:1941 eyr:1961
655
656eyr:2025 hcl:#7d6ede byr:1988
657hgt:150cm
658ecl:hzl cid:267
659pid:794369607
660iyr:2012
661
662pid:538963835
663ecl:oth byr:1958
664hgt:173cm
665eyr:2027 cid:63
666iyr:2018 hcl:#602927
667
668hcl:#866857
669hgt:163cm byr:1925 iyr:2011
670ecl:oth
671eyr:2023 cid:163
672
673ecl:grn pid:411555227 byr:1974 eyr:2020 hgt:153cm iyr:2015 hcl:#a97842
674
675cid:111 pid:473064654 byr:1948
676ecl:brn iyr:2013
677hcl:#16fa7a
678eyr:2024 hgt:184cm
679
680iyr:2016 hgt:170cm byr:1993 pid:487807940 hcl:#efcc98 eyr:2024 ecl:gry
681
682hcl:#a97842 pid:891517350 iyr:2012
683byr:1937
684ecl:amb
685eyr:2030
686hgt:171cm
687
688cid:330 ecl:gry
689hgt:163cm eyr:2021
690hcl:#733820 byr:1991 pid:109734880
691
692ecl:brn iyr:1934 eyr:2021
693hgt:62
694hcl:z pid:720470429
695
696ecl:blu
697pid:669045673 iyr:2015
698hgt:164cm
699hcl:#866857
700
701hgt:158cm hcl:#623a2f byr:1950
702eyr:2020 ecl:gry pid:708073090
703iyr:2018
704
705hgt:158cm iyr:2017 eyr:2027
706ecl:brn pid:840573419 hcl:#18171d byr:1968
707
708ecl:oth cid:81 hcl:#ceb3a1 eyr:2021
709iyr:2020 byr:1959
710hgt:62in
711pid:634019849
712
713hgt:180cm pid:651174767 iyr:2013 byr:1948 eyr:2022 hcl:#efcc98 ecl:grn
714
715eyr:2021 ecl:grn
716cid:95 hcl:#733820 iyr:2016 hgt:174cm byr:1931
717
718hcl:90e96c eyr:1948 ecl:zzz
719byr:1984 pid:8325286529
720hgt:59in
721cid:180
722
723cid:293 hgt:193cm ecl:oth hcl:#602927
724eyr:2021 byr:1959 iyr:2016
725
726pid:425216058
727hcl:#7d3b0c hgt:67in ecl:blu eyr:2022
728iyr:2016 byr:1936 cid:182
729
730ecl:#c93c79 byr:2021 iyr:2021
731hgt:69cm pid:#fa092e eyr:2040
732
733hcl:#733820 iyr:1964
734hgt:190cm
735pid:121828083 byr:2028 ecl:blu eyr:2030
736
737byr:1986
738eyr:2023 ecl:hzl hcl:#c0946f hgt:152cm pid:750393977 cid:308 iyr:2015
739
740hgt:152cm byr:2004 hcl:z eyr:2038 ecl:#e92725 iyr:2023 pid:55783937
741
742ecl:grn eyr:2023 hcl:#7d3b0c byr:1940 iyr:2017 pid:312213917 hgt:166cm
743
744ecl:grn pid:293691668
745byr:1949 hgt:60in
746eyr:2021
747hcl:#efcc98 iyr:2017
748
749iyr:2018 hgt:156cm ecl:oth
750hcl:#ceb3a1
751pid:622764582 eyr:2020 cid:124
752
753eyr:2021
754pid:146888876 byr:1962 iyr:2010 cid:63 ecl:amb hgt:188cm hcl:#a97842
755
756pid:861542171 hcl:#866857
757ecl:brn
758iyr:2010 byr:1975
759eyr:2020
760
761hgt:157cm hcl:#18171d eyr:2022 byr:1936 iyr:2014 pid:478341738 ecl:amb
762
763ecl:brn
764eyr:2026
765pid:553753060 hgt:186cm
766iyr:2019
767hcl:#623a2f
768byr:1991
769
770iyr:2018 ecl:blu hcl:#cfa07d hgt:162cm byr:1924 pid:721804049 eyr:2023
771
772byr:1970 hgt:181cm eyr:2027 ecl:hzl pid:171cm iyr:2012 hcl:#5f4282
773
774cid:52
775ecl:blu iyr:2011
776pid:027908077 hcl:#b6652a hgt:158cm
777byr:1986
778
779pid:160cm hcl:91324c eyr:2034 iyr:2015
780byr:2021
781hgt:175in ecl:brn
782
783cid:164 iyr:2014 byr:1948 hgt:163cm pid:701930596 ecl:gry
784eyr:2020 hcl:#733820
785
786byr:1951 hcl:#fffffd pid:456803587 hgt:157cm ecl:blu iyr:2010 eyr:2020
787
788ecl:#663e48
789pid:9157891148 hgt:66cm iyr:1989
790byr:1932
791
792byr:1993
793hgt:167cm
794ecl:amb iyr:2010 hcl:#3da943 pid:340209998 eyr:2021
795
796byr:1968
797eyr:2021 pid:915482982 hcl:#84a907 iyr:2020 hgt:176cm ecl:grn
798
799hgt:190 ecl:oth hcl:#6b5442
800byr:2023
801pid:5211866539
802iyr:2028 cid:276
803
804hcl:#ceb3a1 hgt:177cm byr:1966
805pid:#9f5b93
806iyr:2002 eyr:1958
807ecl:oth
808
809hcl:#888785 eyr:2025 iyr:2017
810hgt:187cm pid:856993600 ecl:oth
811
812hgt:186
813hcl:z
814eyr:2025
815byr:2013 pid:6869591443 ecl:oth
816
817iyr:2015 pid:317156655 cid:144
818hgt:151cm hcl:#623a2f ecl:brn
819byr:1966 eyr:2021
820
821ecl:hzl pid:161653223 eyr:2026 iyr:2017 byr:1980
822hcl:#18171d
823
824iyr:2009
825pid:618443261
826byr:1989 hcl:#23ef8c eyr:2026 hgt:167cm ecl:grn
827
828ecl:oth
829hcl:#fffffd iyr:2018 eyr:2022 pid:953490888
830
831eyr:2026 hcl:#c0946f hgt:165cm iyr:2016 byr:1921
832ecl:blu pid:490419824
833
834hgt:150cm hcl:#b6652a ecl:brn byr:1937 iyr:2013 pid:824096447 eyr:2027
835
836ecl:amb
837hcl:#733820 byr:1997 iyr:2015 cid:269 hgt:96 eyr:2022 pid:475968048
838
839byr:1985 hgt:186cm eyr:2022 ecl:gry
840pid:050842095 iyr:2014
841
842ecl:hzl byr:1942 cid:294 hgt:191cm pid:768437232
843eyr:2024 hcl:#623a2f
844
845byr:1974 eyr:2022 hcl:#afb1a8 ecl:oth
846hgt:159cm
847cid:252
848pid:619988658 iyr:2018
849
850ecl:oth eyr:2029 hgt:175cm
851pid:548668762 byr:1982 iyr:2020 hcl:#c0946f
852
853ecl:gry hcl:#18171d
854hgt:166 pid:#3f6172 iyr:1978
855eyr:2031 byr:2021
856
857byr:1933 hcl:#c0946f ecl:gry eyr:2028
858pid:594772420
859hgt:167cm
860iyr:2020
861
862cid:332 hcl:#623a2f iyr:2018 pid:706055429 byr:1971 eyr:2022 ecl:gry
863
864hgt:187cm hcl:#888785
865pid:224041851 eyr:2029
866ecl:blu iyr:2012 byr:1991
867
868ecl:#9c38d0
869hgt:161in
870hcl:099d45 byr:2015 eyr:1994
871pid:2730108307
872iyr:2024 cid:229
873
874hgt:184cm ecl:grn byr:1938 pid:996091727
875cid:115
876hcl:#866857 iyr:2020 eyr:2020
877
878pid:883396674 iyr:2019
879eyr:2023 ecl:blu
880byr:1979 hcl:#733820 cid:125
881hgt:181cm
882
883hgt:190cm cid:325 hcl:#866857 eyr:2027 ecl:gry
884iyr:2013 pid:317703100 byr:1968
885
886hcl:#866857
887ecl:gry pid:652638412
888eyr:2025 iyr:2015 hgt:158cm byr:1953
889
890byr:1956
891hcl:#cfa07d eyr:2025
892pid:728272575 hgt:162cm
893cid:291 ecl:blu iyr:2020
894
895hgt:189cm byr:1980 hcl:#97fd64 ecl:grn iyr:2013
896pid:181599378 eyr:2029
897
898iyr:2018
899hcl:#007101 ecl:brn byr:1947 cid:265 hgt:159cm pid:288707610 eyr:2024
900
901hgt:62cm pid:2407695078
902eyr:2039 byr:2014
903iyr:1930 hcl:z
904ecl:grt
905
906hgt:65cm
907ecl:hzl
908byr:1994 eyr:2004 hcl:z cid:130 pid:863191800
909
910pid:125685599 byr:1995
911ecl:blu cid:57 hgt:172cm
912iyr:2020
913hcl:#b6652a
914eyr:2024
915
916ecl:gry byr:1961
917iyr:2010 eyr:2022 pid:591409441
918cid:314
919hcl:#341e13
920
921iyr:2020
922ecl:hzl hcl:#efcc98 byr:1983 hgt:174cm
923eyr:2028
924
925eyr:2029 byr:1924 iyr:2013 pid:662719101
926ecl:amb cid:77
927
928ecl:oth
929iyr:2013 byr:1947 pid:532607157 hcl:#7d3b0c eyr:2030 hgt:191cm
930
931pid:528940525 hcl:#18171d
932iyr:2014 eyr:2029 cid:181
933byr:1967
934ecl:gry hgt:64in
935
936hgt:71in iyr:2019 hcl:#cfa07d eyr:2029
937pid:785691813
938byr:1996 ecl:hzl cid:335
939
940byr:2015
941pid:174cm hgt:79 hcl:z iyr:1970 cid:66 eyr:1993 ecl:lzr
942
943hgt:188cm
944eyr:2025 cid:107 ecl:grn
945pid:286480470 hcl:#623a2f byr:1967
946iyr:2015
947
948eyr:2027 hcl:#7d3b0c cid:287
949pid:319840760 iyr:2017 hgt:179cm ecl:gry
950
951byr:1976 ecl:brn iyr:2020 eyr:2023 hgt:154cm pid:964286153
952
953iyr:2015 eyr:2027 hgt:173cm byr:1983 pid:500176757 ecl:amb hcl:#7d3b0c
954
955cid:282 pid:697942299 hgt:185cm
956eyr:2026 hcl:#7d3b0c iyr:2017 byr:2002 ecl:amb
957
958iyr:2014 hcl:#18171d pid:044482202
959ecl:oth
960hgt:163cm eyr:2021 byr:1982
961
962ecl:gry hcl:#7d3b0c
963iyr:2019 eyr:2020 hgt:187cm
964pid:617117265
965
966eyr:2035
967ecl:#5525a9 cid:123 byr:2009 pid:15381071 iyr:2028
968hcl:#b6652a
969
970eyr:2021 hgt:165cm cid:207
971iyr:2010 ecl:gry
972byr:1929 hcl:#733820 pid:442632632
973
974pid:69132960 cid:84 hgt:107 eyr:2023
975ecl:gmt iyr:2016
976hcl:z
977byr:2020
978
979eyr:2027 pid:281765118 hcl:#ceb3a1 hgt:193cm
980byr:1955 ecl:gry cid:321 iyr:2010
981
982ecl:brn hgt:71in
983cid:189 byr:1962 eyr:2023 iyr:2018 pid:780797141 hcl:#866857
984
985pid:984503466 ecl:amb hgt:192cm byr:1942 hcl:#dcc50d iyr:2020 eyr:2030 cid:250
986
987hcl:#7d3b0c eyr:2028
988hgt:178cm
989ecl:gry
990iyr:2011
991byr:1923
992pid:960277768
993
994byr:2000 ecl:amb cid:199 eyr:2027 iyr:2020 pid:785585164 hcl:#888785
995hgt:164cm
996
997iyr:2015 pid:619005249
998ecl:brn byr:1955 eyr:2028
999hgt:183cm
1000hcl:#a97842
1001
1002ecl:grn
1003byr:1970 cid:339
1004iyr:2011 hcl:#a97842 pid:952307953 eyr:2027 hgt:159cm
1005
1006hcl:ff4451 iyr:2022
1007byr:1972 ecl:#86cbc5 pid:29044223 eyr:1985
1008hgt:62cm
1009
1010hcl:#623a2f iyr:2013 eyr:2023 hgt:164cm byr:1956
1011ecl:oth
1012
1013eyr:2028 hcl:#733820 pid:767003752 byr:1935 hgt:167cm iyr:2016
1014ecl:oth
1015cid:215
1016
1017cid:125 ecl:amb
1018iyr:2019 hcl:#18171d eyr:2022 hgt:163cm
1019pid:239764055
1020byr:1954
1021
1022ecl:gry
1023iyr:2019 hcl:#cfa07d byr:1929 pid:221011852
1024cid:274 eyr:2026 hgt:158cm
1025
1026hcl:#a97842 iyr:2016 hgt:159cm
1027byr:1998 ecl:hzl eyr:2020 cid:207
1028
1029pid:051242790
1030iyr:2024
1031byr:1975 hcl:#602927
1032ecl:grn hgt:160cm eyr:2014
1033
1034ecl:#0b3ea5 hcl:z pid:#122ff0
1035byr:2007
1036hgt:178 iyr:2013
1037eyr:1950
1038
1039hgt:171cm hcl:#cfa07d pid:674448249
1040ecl:hzl eyr:2026
1041cid:297 byr:1928
1042
1043ecl:hzl eyr:2021 hcl:#b6652a pid:856617617
1044byr:1949
1045hgt:153cm iyr:2015
1046
1047hgt:164cm ecl:gry
1048eyr:2025
1049pid:147932207 iyr:2011 byr:1984 hcl:#fffffd
1050
1051eyr:2027 hcl:#7d3b0c
1052pid:377701492 ecl:gry byr:1971 hgt:174cm
1053iyr:2023
1054
1055byr:2001 hcl:#4784a2 hgt:161cm iyr:2014 eyr:2025 pid:955262336
1056ecl:amb