summaryrefslogtreecommitdiffstats
path: root/2020/day4
diff options
context:
space:
mode:
authorYigit Sever2021-12-12 01:24:32 +0300
committerYigit Sever2021-12-12 01:24:32 +0300
commit4bb6f8d06c0e384f3394012b1d48da58ed28cc5e (patch)
treed6478c85c0488a1059567ccd2882cb10039c2546 /2020/day4
parentae3853b6e8ab02023ccd74baac6dc177b1ee879a (diff)
downloadaoc-4bb6f8d06c0e384f3394012b1d48da58ed28cc5e.tar.gz
aoc-4bb6f8d06c0e384f3394012b1d48da58ed28cc5e.tar.bz2
aoc-4bb6f8d06c0e384f3394012b1d48da58ed28cc5e.zip
2020, tracking
Diffstat (limited to '2020/day4')
-rw-r--r--2020/day4/input1000
-rw-r--r--2020/day4/passport.pl68
2 files changed, 1068 insertions, 0 deletions
diff --git a/2020/day4/input b/2020/day4/input
new file mode 100644
index 0000000..734e50b
--- /dev/null
+++ b/2020/day4/input
@@ -0,0 +1,1000 @@
1pid:827837505 byr:1976
2hgt:187cm
3iyr:2016
4hcl:#fffffd
5eyr:2024
6
7hgt:189cm byr:1987 pid:572028668 iyr:2014 hcl:#623a2f
8eyr:2028 ecl:amb
9
10pid:#e9bf38 hcl:z iyr:2029 byr:2028 ecl:#18f71a hgt:174in eyr:2036
11
12hcl:#cfa07d byr:1982 pid:573165334 ecl:gry eyr:2022 iyr:2012 hgt:180cm
13
14cid:151 hcl:#c0946f
15ecl:brn hgt:66cm iyr:2013 pid:694421369
16byr:1980 eyr:2029
17
18ecl:brn
19pid:9337568136 eyr:2026
20hcl:#6b5442
21hgt:69cm iyr:2019 byr:2025
22
23cid:66 hcl:#efcc98 pid:791118269 iyr:2013
24eyr:2020 ecl:grn hgt:183cm byr:1993
25
26eyr:2022
27hgt:160cm iyr:2016 byr:1969 pid:767606888 ecl:gry hcl:#6b5442
28
29hgt:157cm eyr:2026 ecl:oth hcl:#efcc98 byr:1938 iyr:2014
30
31byr:1931 iyr:2015
32ecl:gry
33hgt:76in
34cid:227 hcl:#09592c eyr:2024 pid:276365391
35
36ecl:gry hgt:170cm iyr:2014 cid:285 pid:870052514
37hcl:#866857 byr:1925 eyr:2025
38
39eyr:2021
40byr:1960 pid:569950896
41iyr:2010 hgt:179cm hcl:#888785 cid:167
42
43hgt:154in cid:194
44pid:8142023665 byr:2010 hcl:7d22ff ecl:utc iyr:2026 eyr:1976
45
46ecl:blu eyr:2030 hgt:192cm
47pid:363860866 iyr:2019 hcl:#ceb3a1 byr:1963
48
49byr:1947 hgt:167cm hcl:#7d3b0c ecl:amb
50cid:70 eyr:2022 iyr:2019 pid:756932371
51
52hgt:185cm pid:871945454
53iyr:2020
54hcl:#866857 ecl:amb
55byr:1989 cid:184 eyr:2030
56
57byr:1935 pid:322117407
58hgt:153cm iyr:2011
59cid:244 eyr:2022 hcl:#efcc98 ecl:hzl
60
61ecl:blu hcl:#5e6c12
62eyr:2029 iyr:2011 hgt:191cm byr:1992
63
64hcl:#7d3b0c eyr:2029
65hgt:163cm
66pid:625292172 byr:1932 ecl:brn
67iyr:2020
68
69hgt:158cm
70eyr:2030 iyr:2016 byr:1969
71cid:173 pid:092921211 hcl:#602927 ecl:grn
72
73hcl:#733820
74iyr:2016 eyr:2029
75ecl:hzl hgt:180cm pid:292904469 byr:1984
76
77ecl:amb pid:901224456 hgt:190cm
78iyr:2013
79hcl:#733820
80byr:1922
81
82pid:262285164 iyr:2010
83byr:2018 eyr:2026 hcl:#602927 hgt:179cm ecl:gmt cid:349
84
85byr:1956 eyr:2027 pid:351551997 hgt:71in cid:277 hcl:#cfa07d iyr:2010 ecl:grn
86
87eyr:2027 hcl:#602927 hgt:157cm ecl:gry
88cid:128 byr:1953
89pid:231551549 iyr:2012
90
91iyr:2011 pid:771266976
92cid:264 byr:1955 hcl:#b6652a
93hgt:189cm ecl:blu
94eyr:2030
95
96eyr:2026 pid:698455242
97byr:1949 ecl:gry hgt:190cm
98iyr:2013 hcl:#efcc98 cid:139
99
100ecl:blu hgt:181cm byr:1977 iyr:2011 eyr:2022
101pid:454163967 hcl:#b6652a
102
103pid:534506872 hgt:155cm iyr:2012
104byr:1968
105cid:333 eyr:2024 hcl:#623a2f
106ecl:amb
107
108hgt:162cm
109iyr:2020
110hcl:#733820 eyr:2027 byr:1995 ecl:gry pid:084994685
111
112iyr:2016 byr:1990
113ecl:amb pid:185689022 eyr:2025
114hgt:184cm hcl:#866857
115
116byr:2016 hcl:z iyr:2022 hgt:166in
117eyr:2040
118
119byr:1943 hgt:152cm hcl:#cfa07d ecl:hzl iyr:2016 cid:300 pid:376088014
120
121iyr:2020 eyr:2026 hcl:#602927 ecl:gry byr:1962 pid:453907789 hgt:172cm
122
123eyr:2023 hgt:185cm
124hcl:#623a2f pid:963767258 byr:1977
125iyr:2019 ecl:oth
126
127hgt:159cm byr:1965 cid:349 ecl:blu pid:962908167
128iyr:2013 eyr:2024
129hcl:#fffffd
130
131eyr:2026
132pid:912822238 hgt:66in byr:1985 iyr:2018 hcl:#c0946f ecl:hzl
133
134hgt:167cm hcl:#ceb3a1
135byr:1990 eyr:2027 ecl:grn
136iyr:2011 pid:642877667
137
138hcl:#7d3b0c byr:1921 pid:976412756 hgt:192cm
139iyr:2013 ecl:gry
140
141iyr:2030 pid:283599139
142eyr:2039 cid:203
143hcl:f943cb
144hgt:111
145
146hgt:190cm
147iyr:2027 ecl:blu hcl:z
148byr:2004 eyr:2039
149pid:734570034
150
151hcl:#6b5442 hgt:191cm
152ecl:oth byr:1989 pid:669414669 cid:196 iyr:2016 eyr:2023
153
154ecl:brn eyr:2028 byr:1965 pid:630674502 hcl:#602927 iyr:2020 hgt:61in
155
156iyr:2016 eyr:2022 cid:225
157hcl:#733820 ecl:hzl hgt:166cm
158byr:1934
159pid:232742206
160
161ecl:amb hcl:#602927 eyr:2029
162pid:897535300
163hgt:189cm byr:1952
164iyr:2017
165
166pid:853604345
167hgt:161cm cid:269
168hcl:#fffffd eyr:2030 iyr:2011 ecl:grn byr:1966
169
170hgt:151cm hcl:#18171d eyr:2026 ecl:grn iyr:2016 pid:176cm
171byr:2000
172
173hcl:#341e13
174eyr:2022
175pid:536989527 cid:73 byr:1971
176ecl:hzl
177
178pid:739005658 hcl:#b6652a
179eyr:2026 hgt:154cm ecl:hzl
180iyr:2019 byr:1935
181
182pid:373465835 ecl:oth byr:1932 cid:333 hgt:165cm
183hcl:#b6652a eyr:2021 iyr:2014
184
185byr:1967 pid:486658617 hcl:#18171d hgt:174cm
186eyr:2021 iyr:2015 ecl:gry cid:53
187
188eyr:2024
189cid:124 iyr:2017 hgt:152cm pid:095649305 hcl:#341e13
190byr:1920 ecl:oth
191
192hcl:#623a2f
193byr:1951 pid:993284548
194cid:106
195hgt:186cm
196ecl:amb iyr:2017 eyr:2029
197
198cid:308 pid:080673934
199hgt:193cm
200byr:1967 hcl:#623a2f iyr:2016 ecl:hzl
201eyr:2021
202
203iyr:2010 eyr:2024 byr:1946 hgt:156cm
204cid:199
205ecl:blu hcl:#866857
206
207ecl:blu byr:1955 eyr:2022 cid:95 pid:139391569
208iyr:2019 hgt:180cm
209hcl:#efcc98
210
211ecl:brn pid:579889368
212eyr:2023 hgt:158cm byr:1935
213iyr:2018 hcl:#cfa07d
214
215byr:1920 pid:90919899 hcl:#18171d
216hgt:152cm
217eyr:2029 ecl:oth iyr:2014
218
219byr:1961 eyr:2024
220ecl:#d401e3 iyr:2011 hgt:172cm pid:919145070
221cid:100
222hcl:#efcc98
223
224ecl:gry
225hgt:168cm
226hcl:#888785 byr:1942 pid:731032830 iyr:2014
227eyr:2028
228
229hcl:#6b5442 pid:265747619 hgt:191cm
230cid:217
231eyr:2028
232iyr:2019 ecl:amb
233byr:1948
234
235iyr:2011 ecl:brn
236hgt:183cm hcl:#fffffd cid:258 byr:1983
237pid:835909246
238
239byr:2030
240iyr:2024 ecl:#f66808
241hcl:fd548d cid:183
242pid:#fced33
243hgt:160in
244
245ecl:utc hgt:183in hcl:a92c31 pid:0394222041
246iyr:2008
247eyr:1976 byr:2020
248
249pid:126195650 iyr:2019 hcl:#341e13
250ecl:blu
251hgt:150cm
252eyr:2025
253byr:1964
254
255cid:71 iyr:2016 hgt:157 ecl:grt
256hcl:#18171d pid:#1ab5ea eyr:2027
257
258eyr:2026 hcl:#b5266f
259byr:1971
260cid:269 hgt:192cm iyr:2012
261pid:736578840 ecl:amb
262
263pid:152109472 hcl:#ceb3a1 ecl:grn hgt:188cm eyr:2027
264byr:1923
265
266hcl:#341e13 pid:535175953 hgt:63in eyr:2028 iyr:2015 byr:1999 ecl:gry
267
268hgt:183cm pid:611738968 byr:2001
269eyr:2020 hcl:#a97842 iyr:2014
270ecl:gry
271
272eyr:2038 ecl:gmt pid:113210210 iyr:2012 byr:2011
273hcl:z
274hgt:157cm
275
276hgt:157cm
277pid:699449127
278iyr:2014 ecl:gry byr:1980 hcl:#fffffd eyr:2029
279
280iyr:2028 hcl:z pid:152cm
281eyr:2039
282ecl:#4760fb hgt:177in
283byr:2017
284
285eyr:2026 hcl:#efcc98
286iyr:2020 hgt:180cm ecl:hzl pid:747449965 byr:2016
287
288byr:1974 iyr:2019
289cid:89 eyr:2023 pid:421418405
290hcl:#fffffd hgt:192cm
291ecl:gry
292
293hcl:26c2ef eyr:2029 cid:309 byr:1931 ecl:grn pid:#4eb099 iyr:2024
294hgt:174cm
295
296ecl:gry
297hgt:183cm
298cid:281
299eyr:2022 pid:050492569
300byr:1968 hcl:c88145
301iyr:2015
302
303eyr:2028
304iyr:2014 pid:712984515 hgt:187cm cid:206 hcl:#866857 byr:1927
305ecl:brn
306
307byr:1936 hgt:61in ecl:oth iyr:2012 pid:447813841
308hcl:#c0946f
309cid:126 eyr:2021
310
311ecl:gry pid:791970272
312eyr:2020
313byr:1932 hcl:#623a2f hgt:161cm
314iyr:2015
315
316hcl:#c0946f
317byr:1935 pid:721144576 eyr:2025 hgt:162cm
318iyr:2017 ecl:oth
319
320byr:1959
321pid:551109135
322ecl:hzl hgt:68in
323eyr:1977 hcl:#888785
324iyr:1955 cid:100
325
326hgt:190in eyr:1993 pid:8358180772 iyr:1975
327ecl:oth
328byr:2024
329hcl:3de172
330
331eyr:2030 hgt:190cm hcl:#a40ef3 byr:1935 pid:484932501
332ecl:amb iyr:2016
333
334iyr:2015
335byr:1964
336hgt:176cm
337pid:819552732 hcl:#c0946f ecl:amb cid:263
338eyr:2024
339
340hgt:65cm cid:59 eyr:2027 pid:074880819 ecl:utc iyr:2023
341byr:1954 hcl:#623a2f
342
343byr:1954 hgt:167cm iyr:2020
344eyr:2023 hcl:#602927
345pid:280295309
346ecl:hzl cid:168
347
348hgt:168cm pid:311043701 iyr:2017 byr:1965
349ecl:hzl
350eyr:2026 hcl:#fffffd
351
352hcl:#fffffd ecl:grn pid:672987232 iyr:2012 eyr:2022 hgt:66in
353
354iyr:2012 ecl:#6f4f9f
355hgt:133 byr:1937
356eyr:1953 pid:7177768428 hcl:#602927
357
358iyr:2010
359byr:1922 hcl:#c0946f
360eyr:2029 ecl:gry
361hgt:165cm
362pid:893045052
363
364iyr:2013 eyr:2028 hcl:#866857 pid:137143403
365ecl:brn hgt:170cm byr:1940 cid:194
366
367hgt:161cm
368eyr:2027 pid:3966920279 ecl:gry iyr:2015 byr:1997 hcl:#cfa07d
369
370ecl:amb
371hgt:157cm byr:1971
372pid:562746894 cid:305 hcl:#0b0e1a eyr:2021 iyr:2016
373
374hcl:8b821d hgt:157cm pid:187cm cid:298 eyr:1926 iyr:2019
375ecl:amb
376byr:2030
377
378hgt:155cm hcl:#341e13 byr:1924 pid:779847670
379ecl:hzl iyr:2015
380eyr:2024
381
382pid:768590475 hcl:#a97842 iyr:2014 cid:128 eyr:2029
383ecl:oth hgt:164cm byr:1990
384
385iyr:2019 hgt:181cm cid:342
386eyr:2020 ecl:gry byr:2001
387hcl:#623a2f
388pid:473165431
389
390byr:1928 eyr:2026 hcl:#42a9cb iyr:2010
391ecl:grn hgt:157cm pid:638074984
392
393eyr:2028
394byr:1951
395pid:239781647 iyr:2020 hgt:156cm
396ecl:hzl cid:215 hcl:#efcc98
397
398pid:636605355 ecl:hzl
399iyr:2017 cid:323 eyr:2025
400byr:1995
401hcl:#18171d hgt:187cm
402
403byr:1933 hcl:#866857 hgt:152cm ecl:oth iyr:2014 pid:900790914 eyr:2030 cid:267
404
405ecl:brn byr:1999 eyr:2027 hcl:#623a2f iyr:2017
406pid:853165955
407hgt:152cm
408
409eyr:2030 pid:316704688 hcl:#c0946f ecl:brn iyr:2014 hgt:193cm
410
411iyr:2012 byr:1928
412hgt:154cm pid:570535769 hcl:#623a2f eyr:2026 ecl:hzl
413
414iyr:2016 cid:252 eyr:2030 hcl:#888785
415hgt:177cm ecl:grn byr:2002 pid:568715162
416
417pid:570999226 iyr:2012 hgt:150cm
418byr:2024
419ecl:brn hcl:z eyr:2029
420
421pid:174002299 iyr:2019 hcl:#cfa07d ecl:brn byr:1927
422cid:77 hgt:159cm eyr:2027
423
424ecl:#d16191 eyr:2022 pid:166cm hgt:165cm hcl:#18171d iyr:2015
425
426pid:112585759
427hcl:#341e13 eyr:2025 byr:1962 hgt:164cm ecl:hzl iyr:2018
428
429pid:478415905 eyr:2025 cid:315
430ecl:amb hgt:91
431iyr:2014 hcl:#cc9d80
432byr:1985
433
434pid:561885837 hcl:#7d3b0c
435hgt:169cm
436byr:1921 iyr:2014 cid:178
437eyr:2022 ecl:gry
438
439ecl:#c87497 hcl:5321a2 eyr:2020 hgt:74in
440pid:#7a62c6 iyr:1976
441
442eyr:2037
443pid:858202391 hgt:162cm
444ecl:grn byr:2003
445cid:278
446iyr:2010 hcl:cbf662
447
448ecl:blu iyr:2012 hgt:183cm hcl:#623a2f pid:848200472 byr:1997 eyr:2027
449
450byr:1942
451hgt:164cm
452pid:464257339
453iyr:2016
454hcl:#7d3b0c ecl:gry
455
456iyr:2012 hcl:#ceb3a1
457hgt:193cm ecl:amb
458pid:667987561 eyr:2024 byr:1960
459
460hgt:187cm
461pid:222340640
462iyr:2018 eyr:2022
463ecl:oth
464byr:1957
465hcl:#336667 cid:83
466
467eyr:2025 iyr:2015 hcl:#733820
468ecl:brn
469pid:131195653
470
471hgt:185cm eyr:2026
472ecl:amb byr:1998 pid:938587659 hcl:#733820
473iyr:2016
474
475ecl:oth pid:300949722
476eyr:2028 iyr:2016
477byr:1933
478hgt:179cm
479hcl:#cfa07d
480
481byr:1974 iyr:2019
482ecl:hzl hcl:#c0946f eyr:2024 pid:484547079
483cid:112
484hgt:185cm
485
486eyr:2022 iyr:2018 hcl:#fffffd pid:118568279
487hgt:153cm ecl:gry byr:1941 cid:341
488
489iyr:2018
490eyr:2027 hcl:#888785
491byr:1970 hgt:165cm pid:773715893
492ecl:amb
493
494hcl:#623a2f hgt:156cm byr:1938 iyr:2012 pid:745046822
495ecl:amb
496eyr:2030
497
498iyr:2012
499pid:097961857
500eyr:2023 hgt:66in hcl:#fffffd byr:1962 ecl:utc
501
502byr:1943 hgt:150cm
503iyr:2012
504pid:740693353 eyr:2023
505hcl:#18171d cid:101 ecl:blu
506
507iyr:2018 pid:183728523 byr:1924 hgt:154cm eyr:2030
508cid:167 ecl:blu hcl:#ceb3a1
509
510hgt:69cm
511eyr:2025 hcl:z ecl:brn byr:1982 pid:250782159
512iyr:2011
513
514byr:1998 iyr:2018 hcl:#341e13 eyr:2022 hgt:157cm pid:497100444 cid:266 ecl:gry
515
516eyr:2027 iyr:2011 hcl:#6b5442 hgt:156cm pid:494073085
517byr:1998
518ecl:hzl
519
520byr:1947 hcl:#b6652a
521iyr:2011 pid:228986686 eyr:2030 hgt:175cm cid:70 ecl:brn
522
523eyr:2026 hgt:159cm
524byr:1946 pid:534291476
525iyr:2018 ecl:gry cid:225
526hcl:#18171d
527
528pid:439665905
529cid:311 ecl:amb iyr:2018
530eyr:2030
531hgt:186cm byr:1950
532hcl:#cfa07d
533
534pid:250175056 hcl:#efcc98
535byr:1981 cid:262 hgt:154cm ecl:gry iyr:2020 eyr:2027
536
537pid:461335515 iyr:2014 hcl:#f1cf00 hgt:180cm ecl:amb eyr:2027
538byr:1956
539
540iyr:2014 eyr:2030 cid:194
541pid:234623720 hcl:#733820
542hgt:164cm byr:1929
543ecl:blu
544
545byr:1992
546eyr:2024 hcl:#ef8161 cid:216
547ecl:brn hgt:177cm iyr:2018
548pid:101726770
549
550hcl:#341e13 hgt:178cm iyr:2016 eyr:2029 byr:1945 pid:045325957 ecl:grn cid:99
551
552ecl:gry
553iyr:2012
554cid:52 hgt:168cm byr:1943
555hcl:#cfa07d
556pid:899608935 eyr:2030
557
558cid:241
559byr:1934 hgt:161cm eyr:2027 iyr:2011 hcl:#c0946f ecl:amb pid:346857644
560
561iyr:2019 hgt:178cm
562hcl:#c0946f byr:1957
563eyr:2026
564ecl:brn pid:222885240
565
566ecl:blu
567eyr:2021 cid:312 hcl:#733820 hgt:186cm iyr:2012 byr:1969
568pid:821704316
569
570hcl:#6b5442 cid:159
571hgt:180cm
572iyr:2018
573eyr:2028
574ecl:hzl byr:1966
575pid:#e0238e
576
577pid:622400994 eyr:2022 hcl:#5b6635 iyr:2012 byr:1980
578hgt:190cm ecl:oth
579
580byr:1976 ecl:gry eyr:2020 iyr:2020 hgt:171cm pid:219878671 hcl:#6b5442
581
582hgt:163cm byr:1968
583pid:003521394 ecl:oth
584iyr:2010
585cid:61 hcl:#888785
586
587cid:115 pid:810722029 hgt:166cm byr:1955
588ecl:blu eyr:2030 iyr:2018
589
590hgt:176cm
591eyr:2025
592pid:617393532 hcl:#733820 byr:1975 iyr:2018 ecl:grn
593
594hcl:#733820 byr:1979 pid:838168666
595hgt:190cm ecl:oth cid:330
596eyr:2029 iyr:2018
597
598eyr:1940 hgt:67cm iyr:2009 ecl:gry pid:#e76a62 byr:2020 hcl:z
599
600hgt:190cm ecl:brn pid:396113351
601byr:1956 iyr:2010
602hcl:#6b5442 eyr:2024
603cid:256
604
605hcl:#efcc98
606hgt:178cm byr:1984 iyr:2013 pid:752620212 eyr:2021 ecl:gry
607
608iyr:2014 hcl:#a97842
609hgt:166cm ecl:blu eyr:2024
610byr:1935
611pid:836748873
612
613cid:236 ecl:amb hgt:168cm iyr:2010 hcl:#602927 byr:1950 eyr:2026 pid:404810674
614
615eyr:2030 ecl:grn
616byr:1975 pid:064596263 hgt:193cm
617iyr:2019 cid:71 hcl:#a97842
618
619iyr:2014
620pid:298386733 hcl:#c0946f
621hgt:180cm ecl:hzl cid:115 byr:1940 eyr:2023
622
623iyr:1960 hgt:139 ecl:#9db7b8 byr:1980 pid:#ef597b cid:54 eyr:2028 hcl:fdcda3
624
625iyr:2015 byr:1954 ecl:blu hgt:62in hcl:#ceb3a1 pid:253593755 eyr:2028
626
627eyr:2025 ecl:blu pid:216388098 iyr:2017 byr:1968 hgt:151cm hcl:#602927
628
629eyr:2022 hcl:#a97842
630pid:606979543 iyr:2013 ecl:grn cid:63
631hgt:186cm byr:1992
632
633ecl:gry
634hgt:168cm hcl:#18171d iyr:2017 pid:670898814 byr:1983
635eyr:2022
636
637hgt:155cm ecl:grn iyr:2012 pid:837979074 eyr:2024 hcl:#888785 byr:1972
638
639iyr:2015 pid:970743533 hcl:#866857 eyr:2027
640byr:1921 ecl:brn
641
642eyr:2022
643hgt:160cm
644byr:1964 hcl:#efcc98 iyr:2019 ecl:oth pid:141923637
645
646byr:2029 pid:3313111652 ecl:brn eyr:2034
647iyr:2013 hgt:193cm hcl:z
648
649pid:853890227 eyr:2029
650hcl:#efcc98 iyr:2021 byr:2003 ecl:#037c39 hgt:160cm
651
652iyr:1927
653byr:1992
654eyr:2030
655hcl:#efcc98
656ecl:amb hgt:152cm pid:436765906
657
658iyr:2014
659hcl:#c0946f pid:207052381
660eyr:2024 ecl:hzl
661hgt:177cm
662byr:1923
663
664ecl:blu
665iyr:2014
666eyr:2025 hgt:165cm
667hcl:#733820 pid:343011857 byr:1967
668
669ecl:xry
670eyr:2028
671iyr:2011 hgt:166in hcl:#c0946f
672pid:805297331
673cid:167 byr:1926
674
675byr:1947
676pid:468012954 eyr:2026 ecl:oth iyr:2018 hgt:170cm hcl:#b6652a
677
678hcl:#6b5442 ecl:brn
679hgt:180cm cid:233
680pid:029789713
681byr:1920 iyr:2010 eyr:2024
682
683iyr:2010 eyr:2027
684hgt:156cm
685hcl:#c0946f
686byr:1960 pid:312723130 ecl:hzl
687
688eyr:2023 byr:1959 iyr:2010 hgt:186cm pid:066768932 ecl:grn hcl:#602927 cid:310
689
690eyr:2030 pid:460535178 hgt:171cm ecl:gry iyr:2020 byr:1934 hcl:#888785
691
692hgt:64cm eyr:2021 byr:1995 cid:336
693ecl:gmt pid:926714223 iyr:2017 hcl:#18171d
694
695eyr:2022 iyr:2010
696ecl:grn pid:285994301 cid:215
697hgt:186cm byr:1978
698
699hgt:63in hcl:#866857
700pid:386128445 iyr:2020 byr:1971 eyr:2021 ecl:gry
701
702hgt:183cm hcl:#733820 iyr:2015
703ecl:blu pid:216205626 eyr:2022 byr:1941
704
705cid:150 ecl:amb pid:872515243 byr:1926
706eyr:1996
707hcl:#dedc39 hgt:67in iyr:2020
708
709byr:1927 ecl:brn cid:153 iyr:2011
710pid:165190810 hcl:#fffffd
711eyr:2028 hgt:64in
712
713pid:502603734
714byr:1966 iyr:2015 hgt:176cm cid:205 ecl:brn hcl:#fffffd eyr:2021
715
716hcl:#18171d hgt:158cm byr:1943 iyr:2019
717pid:058840094
718eyr:2023
719
720byr:1962 hcl:#b6652a ecl:grn
721cid:297
722iyr:2010 pid:990422650
723hgt:154cm eyr:2020
724
725eyr:1934 iyr:2011
726ecl:gry
727hcl:z byr:2004 hgt:63cm pid:6173356201
728
729pid:329432364 eyr:2029
730ecl:grn hcl:#18171d iyr:2013
731hgt:158cm byr:1960
732
733hcl:#efcc98 iyr:2016 hgt:186cm cid:215
734pid:852781253 eyr:2027 ecl:blu byr:1937
735
736hcl:#623a2f ecl:gry iyr:2020 byr:1972 hgt:182cm pid:073426952 eyr:2027
737
738hcl:#3317b9 byr:1950 pid:304511418 hgt:177cm cid:124 eyr:2020 ecl:hzl iyr:2014
739
740eyr:2029
741pid:034754507 byr:1936
742cid:265 ecl:#b50997 hgt:183cm
743hcl:#623a2f iyr:1924
744
745eyr:2024 byr:1927 cid:243 ecl:gry hcl:#6b5442 pid:714355627 hgt:160cm
746iyr:2016
747
748hgt:152cm
749ecl:gry hcl:#a97842
750eyr:2029 byr:1952
751pid:555308923 iyr:2010
752
753byr:2008
754pid:19681314 hgt:180in iyr:2030 ecl:gry cid:272
755eyr:2023
756hcl:#b6652a
757
758cid:234
759iyr:2014 byr:1940 ecl:hzl pid:042231105 hcl:#3bf69c hgt:172cm eyr:2029
760
761hcl:#efcc98 pid:831567586 hgt:190cm iyr:2017
762byr:1966 eyr:2024 ecl:blu
763
764hcl:#341e13 ecl:blu
765eyr:2022 cid:161 pid:197839646 iyr:2014
766
767hcl:#cfa07d
768byr:1957
769iyr:2019 hgt:181cm
770pid:543775141 ecl:oth eyr:2021
771
772hcl:z
773pid:#596c41 eyr:2035
774byr:2008 iyr:1975
775ecl:#c66ee6
776hgt:150in
777
778ecl:grn
779hcl:#7d3b0c iyr:2016
780pid:804255369 eyr:2028 byr:1983 hgt:69in cid:82
781
782eyr:2022
783iyr:2013 hgt:191cm ecl:gry
784hcl:#a97842 pid:186827268 byr:1969
785
786pid:871672398 eyr:2026 byr:1946 ecl:oth
787iyr:2015
788hcl:#866857 hgt:185cm
789
790byr:1973
791hgt:150cm
792pid:905076707
793iyr:2017
794hcl:#2edf01 ecl:oth cid:221 eyr:2026
795
796eyr:2024 ecl:grn pid:955444191 hcl:z iyr:2015 byr:2008 hgt:151cm
797
798byr:1958 hcl:#fffffd pid:218986541 cid:203 ecl:brn hgt:154cm
799iyr:2014
800eyr:2026
801
802hcl:#623a2f byr:1964 ecl:oth iyr:2010 pid:525843363 hgt:164cm eyr:2025
803
804ecl:blu iyr:2013 hgt:193cm byr:1990 pid:612387132 hcl:#18171d cid:280 eyr:2028
805
806ecl:oth eyr:2022
807pid:110447037 hgt:187cm byr:1967 hcl:#efcc98
808
809byr:1930
810eyr:2026 hgt:159cm
811iyr:2011
812ecl:hzl hcl:#6b5442 pid:923471212
813
814cid:350
815eyr:2029 pid:823592758 iyr:2018
816ecl:grn byr:1972 hgt:167cm hcl:#18171d
817
818cid:76 eyr:2027 hcl:#6b5442 pid:099579798 byr:1930
819iyr:2020
820ecl:gry hgt:153cm
821
822byr:1957 ecl:brn
823hcl:z iyr:2016 pid:352677969 hgt:189cm
824eyr:2029
825
826cid:143 eyr:2035 pid:602952079
827ecl:#9b73f0 hcl:#602927
828iyr:2022 byr:1975
829hgt:174cm
830
831byr:1971 pid:741305897 hgt:192cm
832ecl:amb hcl:#888785 eyr:2028 iyr:2011
833
834ecl:oth iyr:2016
835byr:1942 hgt:189cm hcl:#888785 eyr:2024 pid:054290182
836
837hcl:#a97842
838byr:1945
839ecl:amb pid:370849304
840eyr:2028
841iyr:2016 hgt:168cm
842
843hgt:154cm iyr:2015 eyr:2030 byr:1952 ecl:hzl hcl:#341e13 pid:996518075
844
845byr:1941 ecl:amb iyr:2014
846hcl:#fffffd pid:560990286 eyr:2022 hgt:173cm
847
848ecl:blu byr:1974
849hgt:150cm hcl:#ceb3a1 eyr:2020 iyr:2013
850pid:827415351
851
852hcl:#623a2f eyr:2027 iyr:2011 pid:913199234 ecl:oth
853byr:1990 hgt:178cm
854
855ecl:blu byr:1989 hcl:#b6652a
856eyr:2026 pid:724881482 hgt:185cm iyr:2014
857
858cid:115 pid:255002731 eyr:2025 ecl:amb
859byr:1934 iyr:2020 hcl:#7d3b0c
860
861hgt:150cm byr:1969 ecl:blu iyr:2023
862hcl:#866857 pid:754288625 eyr:2029
863
864iyr:2011 hcl:#7d3b0c ecl:hzl
865byr:1930
866hgt:188cm
867eyr:2023
868pid:256556076 cid:136
869
870iyr:2025 byr:1978
871ecl:#fe30a9 hcl:#efcc98 eyr:2029
872pid:392032459 hgt:178cm
873
874eyr:2027 iyr:2017 hgt:160in
875byr:1990 pid:131099122 hcl:#623a2f ecl:amb
876
877ecl:grn
878byr:1978
879eyr:2029 hcl:#18171d
880hgt:165cm pid:172369888
881cid:93
882iyr:2011
883
884ecl:hzl
885hcl:#733820 iyr:2010 eyr:2029 pid:127253449
886hgt:156cm
887byr:1963
888
889hcl:#6c8530
890iyr:2020
891byr:1929 eyr:2021 hgt:177cm ecl:oth pid:347925482
892
893eyr:2037 iyr:2026
894pid:163cm
895hgt:174in byr:2007 hcl:c1305f cid:134
896ecl:#0cf85c
897
898iyr:2011 pid:033811215
899hcl:#a97842 byr:2002 eyr:2021 hgt:186cm
900ecl:brn
901
902hcl:#a97842
903iyr:2020 eyr:2029 byr:1972 pid:535511110 hgt:160cm ecl:oth
904
905ecl:grn cid:89 hgt:193cm pid:73793987 iyr:2021 eyr:2027 byr:1939 hcl:z
906
907hcl:#623a2f
908hgt:182cm cid:154
909pid:873863966 iyr:2018 byr:1999 ecl:brn eyr:2031
910
911iyr:2014 eyr:2029
912cid:71 hcl:#fffffd byr:1924 hgt:63in
913ecl:gry pid:897972798
914
915hgt:76cm
916hcl:z eyr:1955
917iyr:2012 byr:2001 pid:9425090 ecl:hzl
918
919eyr:2021
920pid:501861442
921ecl:grn hcl:#d71ae9
922byr:1977
923hgt:167cm iyr:2015
924
925iyr:2014
926hgt:170cm ecl:gry byr:1928 cid:314 hcl:#602927 eyr:2029
927pid:836710987
928
929eyr:2027 hcl:#efcc98 ecl:amb iyr:2016 byr:1995 pid:603705616 hgt:179cm
930
931eyr:2030 hcl:#602927 cid:105 byr:1943 ecl:hzl
932pid:381601507
933hgt:188cm iyr:2020
934
935iyr:2011
936byr:1993 hcl:#c0946f pid:292649640 hgt:139 ecl:hzl cid:268
937eyr:1999
938
939cid:339 byr:1928
940ecl:brn eyr:2022 hcl:#733820 hgt:191cm pid:282733347 iyr:2019
941
942hgt:176cm
943byr:1935 ecl:brn cid:252 eyr:2023 pid:105060622 iyr:2020 hcl:#18171d
944
945ecl:hzl eyr:2029
946hgt:193cm pid:770254253
947hcl:#efcc98 iyr:2020 byr:1926
948
949pid:977785261 eyr:2022 iyr:2015 byr:1978
950hcl:#733820 hgt:172cm
951ecl:brn
952
953byr:2021
954hgt:160in
955ecl:gmt
956eyr:2032 cid:345 pid:179cm
957hcl:8f5c13 iyr:2029
958
959iyr:2018 hgt:182cm ecl:gry
960pid:897076789 eyr:2023 hcl:#866857
961byr:1980
962
963hgt:88 eyr:2039 cid:99 byr:2007 hcl:a1bb42 ecl:#a2f6bb
964pid:2264966188
965iyr:2022
966
967iyr:2012 cid:59 ecl:gry eyr:2021
968byr:1931
969hgt:172cm hcl:#7d3b0c pid:862416147
970
971byr:1962 eyr:2025
972ecl:grn
973hcl:#866857 hgt:180cm iyr:2014 pid:313647071
974
975eyr:2030 hgt:157cm byr:1985
976iyr:2020
977hcl:#7d3b0c pid:911544768
978ecl:grn
979
980hgt:175cm
981byr:1938
982iyr:2020 ecl:amb hcl:#602927 eyr:2026 pid:144411560
983
984iyr:2019 ecl:amb hcl:#888785 eyr:2025 hgt:187cm
985pid:942054361 byr:1939
986
987cid:168 pid:722146139 byr:1952 ecl:grn
988iyr:2014 hgt:97
989hcl:z
990eyr:2023
991
992eyr:2024 pid:567528498 ecl:gry iyr:2012 byr:1990
993hcl:#733820 hgt:193cm
994cid:293
995
996hcl:#bc352c pid:321838059 byr:1930 hgt:178cm cid:213 eyr:2023 ecl:amb
997iyr:2017
998
999hgt:173cm byr:1925 pid:070222017 iyr:2013 hcl:#ceb3a1 ecl:gry eyr:2024
1000
diff --git a/2020/day4/passport.pl b/2020/day4/passport.pl
new file mode 100644
index 0000000..26c6e32
--- /dev/null
+++ b/2020/day4/passport.pl
@@ -0,0 +1,68 @@
1use strict;
2use warnings;
3use Smart::Comments;
4use DDP;
5
6my $batch;
7{
8 local $/;
9 open my $fh, '<', "input" or die "no input present, $!";
10 $batch = <$fh>;
11}
12
13my $valid = 0;
14
15# the file has to end with a empty line...
16while ($batch =~ m/((?:[^\n][\n]?)+)/gm ) {
17 my $person_passport = $1;
18 my %passport;
19
20 if ($person_passport =~ m/byr:(?<byr>\d{4})\s/) {
21 if ($+{byr} >= 1920 and $+{byr} <= 2002) {
22 $passport{"byr"} = $+{byr};
23 }
24 }
25
26 if ($person_passport =~ m/iyr:(?<iyr>\d{4})\s/) {
27 if ($+{iyr} >= 2010 and $+{iyr} <= 2020) {
28 $passport{"iyr"} = $+{iyr};
29 }
30 }
31
32 if ($person_passport =~ m/eyr:(?<eyr>\d{4})\s/) {
33 if ($+{eyr} >= 2020 and $+{eyr} <= 2030) {
34 $passport{"eyr"} = $+{eyr};
35 }
36 }
37
38 if ($person_passport =~ m/hgt:(?<hgt>\d+)(?<unit>\w{2})\s/) {
39 if ($+{unit} eq "cm") {
40 if ($+{hgt} >= 150 and $+{hgt} <= 193) {
41 $passport{"hgt"} = "$+{hgt}" . $+{unit};
42 }
43 } elsif ($+{unit} eq "in") {
44 if ($+{hgt} >= 59 and $+{hgt} <= 76) {
45 $passport{"hgt"} = "$+{hgt}" . $+{unit};
46 }
47 }
48 }
49
50 if ($person_passport =~ m/hcl:(?<hcl>#[a-f0-9]{6})\s/) {
51 $passport{"hcl"} = $+{hcl};
52 }
53
54 if ($person_passport =~ m/ecl:(?<ecl>amb|blu|brn|gry|grn|hzl|oth)\s/) {
55 $passport{"ecl"} = $+{ecl};
56 }
57
58 if ($person_passport =~ m/pid:(?<pid>[0-9]{9})\s/) {
59 $passport{"pid"} = $+{pid};
60 }
61
62 if (keys %passport == 7) {
63 $valid++;
64 $valids{$passport{"pid"}} = \%passport;
65 }
66}
67
68print("$valid");