From eaf8b1c594ab0ab74af490813149c30a4ac1c3fb Mon Sep 17 00:00:00 2001 From: Thorn Avery Date: Wed, 2 Dec 2020 20:27:14 +1300 Subject: [PATCH] day 2 --- day2.hs | 63 ++++ day2.txt | 1000 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 1063 insertions(+) create mode 100644 day2.hs create mode 100644 day2.txt diff --git a/day2.hs b/day2.hs new file mode 100644 index 0000000..d9838a3 --- /dev/null +++ b/day2.hs @@ -0,0 +1,63 @@ +data Password = Password Int Int Char String + deriving Show + +main :: IO () +main = do + raw <- readFile "day2.txt" + let ls = map parse $ lines raw + fs = case (sequence ls) of + Nothing -> error "invalid input" + (Just ps) -> ps + ansA = length $ filter (== True) $ map validA fs + ansB = length $ filter (== True) $ map validB fs + in do + putStrLn $ "day2a: " ++ (show ansA) + putStrLn $ "day2b: " ++ (show ansB) + +validA :: Password -> Bool +validA (Password l u t p) = + let len = length $ filter (== t) p + in (len >= l) + && (len <= u) + +validB :: Password -> Bool +validB (Password a' b' t p) = + case (inBounds a b p) of + (False,False) -> False + (True,False) -> (p !! a) == t + (False,True) -> (p !! b) == t + _ -> xor ((p !! a) == t) ((p !! b) == t) + where + a = (pred a') + b = (pred b') + +parse :: String -> Maybe Password +parse [] = error "empty password" +parse s = + do (l,s') <- parseInt s + (u,s'') <- parseInt $ dropChar s' + (t,s''') <- parseChar $ dropChar s'' + let p = (dropChar . dropChar) s''' + in (Just $ Password l u t p) + +parseInt :: String -> Maybe (Int,String) +parseInt s = case (reads s) of + [] -> Nothing + [a] -> Just a + +parseChar :: String -> Maybe (Char,String) +parseChar [] = Nothing +parseChar (t:s) = Just (t,s) + +dropChar :: String -> String +dropChar [] = [] +dropChar (_:ls) = ls + +xor :: Bool -> Bool -> Bool +xor True False = True +xor False True = True +xor _ _ = False + +inBounds :: Int -> Int -> String -> (Bool, Bool) +inBounds a b s = ( len >= a, len >= b ) + where len = length s diff --git a/day2.txt b/day2.txt new file mode 100644 index 0000000..d1612d4 --- /dev/null +++ b/day2.txt @@ -0,0 +1,1000 @@ +9-11 p: pppppppppxblp +2-4 b: bbxbb +3-5 q: dqfqb +5-8 g: ggcgggglg +10-18 l: gllpmlgtrmnllhllrlll +18-19 z: zzzzznszzzzzzzzzzzxz +3-6 r: frrhxsnrmgmw +1-8 n: zkxhnxnzghnm +11-12 z: zzczzzztlzlzzzz +4-7 q: qqqbncqqq +3-4 c: ccvfc +19-20 l: sltlklljdlzglwllllzl +6-16 h: dhhhrhvhnhdchfsnhq +3-7 l: fllllqjlll +8-9 k: xkkjqklkm +1-2 l: llgpl +2-4 x: qkjxvqlv +5-6 c: cwcccjch +3-7 n: bnnhnwnqtdnndnncnd +8-9 n: nnrkmdnkn +6-9 t: ttttrtltptgvcd +3-4 h: hhwhhhdhhhh +7-8 w: wdwvcwwszcwwwwwq +2-4 n: vnng +3-13 v: vvvvvvvvvvvvjv +9-11 c: zcccccccccfcbccc +10-11 w: wkwwwwwwwxw +10-12 z: zzzzzjzzzrnzz +5-6 t: ttttts +13-19 b: bbmfbbbbbrbbgbbbrbbb +8-9 d: bdddvkddjbdgdd +19-20 m: mmmmmmmmmcmmmmmmmmmq +6-18 w: wwwwwwhwjwwwwwwcwjw +4-10 t: tttttttttj +2-7 j: fbdgmfjbjgjn +7-8 w: wwwwwwcww +8-12 c: cbmdccbccckjccch +13-15 f: fpfffffffffffqf +7-11 t: sbtstwdxjpclwd +1-3 s: shkkqcs +7-8 l: bdggzczl +1-6 g: zgggggglggggggw +12-16 h: hhhhhhhhhhhhhhphhhh +8-19 k: htknkhkrkdkhkpwppkk +8-10 k: kkxkkkbrkgk +8-9 h: hvhhhhhfhhv +15-16 x: xxxxxxxxxxxxxxxh +1-12 b: bgwpjbkhbptsbbb +9-10 j: pjtjpjpnbjjlsgbn +8-9 s: sscplbswssssglxs +14-15 j: jjjhjjjjjjxjjjj +1-4 q: qnqj +3-5 d: qpdddqvwbzldf +14-15 b: bbbbbbbbbbbbbbt +1-2 t: tdxt +1-7 g: dlpkvrgjzpnr +3-11 m: lmnwjjxpfmm +3-8 l: llglllllll +2-4 r: gfmrlbmsvqzrmbnd +5-9 s: srsqssssds +8-9 v: vvvvmvvvhw +7-10 d: mddwdvjdcdwdcgddd +4-7 k: fksjkkkk +6-9 t: fnrxmlwtt +11-12 d: dddddddddfmd +4-5 z: zzdzzzz +11-13 z: zzzzzzzzzzpzmzzz +12-14 z: zrgnvcrxkzzzrb +10-13 q: qpqqqqqrqxvqq +6-10 g: gglggggggzgggg +2-8 j: jfqjrdjjjjjj +7-8 z: hzlvrczjp +4-5 k: kggjkl +4-7 m: mpmmmcmm +13-14 x: xxxxxxzxxxxxxw +6-7 n: znnnnnlpjcn +10-16 g: gggzvgggntggfgghggg +2-17 n: hnchrpvzhkdsnhgcnfql +2-8 f: fkfpffff +4-7 s: qwdspspj +6-7 r: rrrrrnx +7-8 p: wpppppsp +8-10 m: mmmwmjmmmvmzpm +6-7 j: jjjjjncd +3-4 k: kxkk +2-4 z: czzmzz +11-12 t: tttttttttttzkp +10-17 t: ttttvtltdttrqtztr +3-6 n: nnnnvvxv +7-8 v: rvvpvvvpsvv +1-2 r: nkfgnr +4-11 c: cccbccclcccc +7-12 q: qpbqtqkqqqqqqq +2-7 m: mfmmmmmmxmnm +10-11 n: bnnnpnnncxrnnnn +10-14 n: nsnnnnnwljnsnnn +5-9 b: vcvcblrxbvjbtzbrmbr +3-9 m: kmmmmxmmkmmk +2-10 l: llbllgzllnlll +5-6 d: ddpdwdddxhpdqd +12-18 j: cjfbjccqgxlczjptqlk +1-3 z: mzzz +5-11 m: mdfmmmmtmgw +2-14 h: nhhnbhghhlhhchsqsr +3-4 t: jvtt +2-8 t: tttkxxtsttht +7-15 w: wwwwfwwwwwwrbww +1-4 j: rbjj +8-12 f: ffkhffffcsfzff +10-12 p: pppcgpqphprh +10-11 l: lllllllllsl +7-8 s: svsssssss +4-5 c: cvjcc +1-5 v: vcdcd +5-14 z: zzwkzztzzzzzbzzvzzz +11-12 s: sssssssssssps +5-7 b: spmtbpn +5-6 c: cccccf +10-12 p: ptpppppppppk +4-13 f: ffkffffkffflb +2-5 t: nttqftpnwbjbxmqdqv +17-18 w: wwwwtwwwwwwwwwwwkwww +7-9 f: lmrffdbffvfmf +2-5 h: hhhvzrhh +10-11 q: qmdrdfqgzql +3-11 g: ggggggggggm +4-5 z: zzzrzzp +5-7 w: wwwwkwwww +10-11 f: ffffffffffp +6-9 v: vvvvvvvmv +4-5 x: wjxxxxxtd +12-13 p: vppppppppppzbp +2-7 b: bqntbls +15-16 p: ppppppppppppzpfxn +2-3 b: bbcnbq +10-11 k: kkkklkmkkhk +4-6 w: wwwdjb +4-6 b: sczlwbnffbnxbvjbmj +3-17 m: jmmlmmmgmmmjmmmmmlmm +6-18 z: zmkwvzkpqzmzdfgdvt +5-6 q: sqwqqq +1-3 g: gjgt +5-8 x: bxcxxzxxws +4-5 c: rnscvcngbcmpddkcvctk +7-11 g: ggggglvgggngg +2-11 l: lsqlzlllllklgfl +2-9 m: cmqkbmdxp +6-7 w: wwwwwww +8-13 q: qbqzqqqqqlqqw +3-4 n: sfqnnnwvzn +1-2 w: nwww +2-4 v: hvvbqgnfl +14-15 m: gjgdmmmmkmqqcxmrsm +2-3 z: zzzx +5-13 q: qqqqdqqqqqtqjqq +4-5 z: zzzzk +5-6 t: tttttf +3-6 z: ztwzczkz +3-5 l: llpljllllllll +2-3 s: ssscp +8-10 d: dddddddwdddddwddg +2-6 s: sbssps +1-5 f: ffbfvfxbkmbhvbcfmxpf +1-6 j: gqfrmjgsgjjhcjhn +2-5 l: lwvllll +2-5 z: zkzhzb +10-11 s: wsblfxvmvsslbhfjtsws +11-17 f: fffffffxfffffffftfff +4-5 r: rrrkbrr +7-10 w: qwqwwwgzrdxww +6-8 s: ssssssscs +4-6 q: qbqwqzfqcfgkmzqxb +6-10 t: ttncfqqtttttp +2-4 m: bbzcjjqmfvln +4-7 n: cnqhntshdnnrnrnz +7-12 d: vmdndkzpmcbd +6-7 p: tpqpppzpjp +3-10 r: rgrrrpzrbrrr +2-15 h: ghbfhbgrtxrshphhl +2-6 j: pjjjjlj +6-9 j: rjrjjjwfjn +10-13 s: sssssssssjsssssss +1-6 c: crnjccgnw +6-7 l: qrllgql +12-13 z: wzzzzzzzzzzfz +1-2 c: ccclc +2-6 f: qdlflfr +4-10 r: drrrrrwrfrr +5-6 f: ffzffnf +4-6 p: hkppkbppp +8-9 r: rrrrrrrrx +4-12 f: fffffffffffwqp +4-6 q: qtqtjq +4-5 w: wwwcw +2-3 r: qrrr +7-10 k: nkpgzskkrb +6-9 h: hmsshhhwhhhhh +2-18 d: kxqddddqddsmddcdddwd +6-7 s: sssssssss +4-8 h: hhhbthhhhh +1-8 d: dtsbqtrpwdgfdzrtf +6-7 b: bbbbbwp +5-6 p: ppnpqjp +4-13 l: rtqpmllslrlxcblldqtc +3-4 m: wmmkcm +4-16 b: qkbvbvgxtlqbgmwc +4-5 h: hhhlghh +10-11 f: fjfffffffgjff +9-12 w: gwnfvwwrwswnqrvg +4-8 k: pjkkfkbqqzkmfk +2-8 x: xwxxxxxcxxx +11-19 w: wwwwwdjwwwrrwwlvwwww +4-14 w: rwqhwqwwlhpwfwwpww +7-9 j: vjjjjqdjjjjjj +15-17 x: kxrmxjvxxxvxxxzxxxf +3-10 p: pwpxppzgdrrx +1-5 p: ppppp +10-19 n: vfnwnjstnnjnqnngnzs +2-5 m: phsmq +5-6 m: mmmmxmm +2-12 f: tftgcmcblzcljsdlbvf +6-11 b: hbbbbbbbzhwbtbbhmrb +7-11 j: jjjjjjvjjjq +3-4 d: dddgddnmd +11-14 f: fxfffffftqfflffffpf +14-16 x: xxxxxcxxxxjgxxvt +6-7 h: hhhhhht +7-8 h: hhhhhhzphhhh +5-12 w: wfwwwjzwmpxwmw +2-7 h: chcjhhqhdlfshxvhz +7-15 h: hjhhjvhhhhqmhdhjh +1-2 f: bvhf +4-6 k: rkctkkm +5-6 n: nnnnnn +10-11 j: jjjjjjjcjjs +4-7 b: bbgbnkp +2-5 d: dddddjvddxdk +11-19 z: svzzgzzmzznzzzkcdzzz +8-9 z: zzzzzgzmz +4-10 v: vsvvvvnvsr +5-15 v: mvqvvkjfvwdvvdl +13-14 s: ssssssqzszssmk +3-4 w: wbwg +10-11 d: kdbdcddqddxdddd +8-9 t: tttttttntt +2-10 m: mqmmmmmmmm +3-8 c: bcswcncchpxcxcrccrx +4-10 q: qqqplwsfxgq +15-16 h: hhqhhhhhhvhhhhhthhhh +11-13 s: sssxssswsswsr +6-7 z: zzzzhvzz +3-4 j: ktjdxsjjxjtnq +5-7 w: wwxwlwwr +2-5 l: llltll +2-6 m: qmgvtmtp +11-16 v: vvvgvvlvhvvvvvvvvvgv +2-4 j: jsnjf +11-12 g: gdlcvdgzgqpg +10-12 x: rxxcxxxxxrrxx +9-12 n: nnnnnnnncdnn +6-10 j: vjjjpjhjjs +5-6 d: dcdddt +3-13 c: cccccvctcbvcvpcccc +1-7 d: ndddzzdx +9-10 w: wwwcwwwwfr +9-18 q: xjhsjqqrqpgprjmqqq +8-11 b: bprbbbwkbbbb +4-14 w: wxcwzsswmsqvfjvjzj +5-6 b: wbbmzbbm +8-13 f: lpjfsfswfffgfkff +1-3 x: vxxx +6-7 x: btxxxxcx +6-8 r: mwqrrqrrxr +7-14 h: hhhhjllhrsxtrhmbbpwh +7-10 f: phqzgfwfrpffpzq +6-17 d: ddddddddddddxdbdgdd +5-11 f: fhfnfflfhjvwvfff +11-12 h: hhgbtnkhhhhh +2-4 f: fdfgffr +5-6 w: wwwwxw +4-9 z: zbzzzczzv +2-4 k: jfpkc +3-4 r: kwgr +4-5 k: kkkks +5-6 r: rrrdrsr +5-6 t: tpwnmttclcrtt +18-19 t: ttbwxtxgfsphgtzzplbt +1-5 w: tthwwvw +10-13 z: mzzzzzwzzzzztz +7-10 r: rzrjrfpdrrrcmmrr +2-4 w: wwww +5-9 m: vksmmzdpsm +1-2 q: qqqqqqq +1-6 c: pccccn +3-8 r: pbchhhrr +3-8 v: bfdvkvdvglvn +3-6 h: hhhxhshhl +4-7 m: mkwpkwmtmm +10-11 g: ggggmggggcg +1-6 j: jjjjjw +4-10 z: zvzzxzzgzzz +7-9 k: kkkkkkkkjkkkk +4-18 f: vlnfpdzvbqhvsfmhqtf +8-11 s: sssssksshsssmhs +2-6 b: bbbbbm +2-3 h: hhvrlcf +10-19 c: mccwczqbjdlgfccnrqc +8-12 x: rxxxnxtfxcxxxpx +13-14 r: rrrnrrrrrrrrmrr +4-11 h: mhzstqhhghhhbhhh +10-11 f: fffffffffpf +7-8 j: jjjjjjmv +5-6 f: fhfffv +3-4 z: zzxtzq +5-6 v: jvszvzvvg +9-13 v: wvvgvdvvvsrjcg +10-11 t: pcttrntttttdthtxst +1-5 v: vvvvpv +6-9 q: qfqqqlqqqqq +4-8 f: ffffffmfkkfzpffffvff +3-5 n: lnmnnnnnnnn +1-5 k: kkwmdkflxtqktmcxdl +1-3 z: tnqp +15-16 h: hhhnhhhhfhhhhhjhhh +2-6 m: mmmxmb +7-12 q: qqjqhqfqwqcqqkqmql +6-10 s: ssjvrvsgsshsss +11-15 n: nnnnnnnnnnrnnnj +14-15 x: xxxxvxxxxxkxxxzx +9-14 b: bbbbbbpbbqbblbbbb +4-12 h: knthjdhlrxtpjwhnhn +8-9 v: vvvvvvvjjvvvv +2-3 d: dktdvd +6-8 z: zzzzzzzx +10-13 t: jrjfklzstpxwt +4-16 n: mngnnqnbnnwnqrdgk +3-5 v: vhqvvn +1-4 t: jhtq +8-11 f: qfffffqfffff +14-15 x: xxxxxxxxxxxxxxx +2-12 s: scsstsssmcssswgsw +8-13 t: tttttttqttttt +8-10 d: ddddddvdfbq +9-15 d: sdqpqddddjrdjnj +17-19 c: cccccdldcccpbccxgcc +6-14 v: lvvvvsvvvvvvvp +16-18 p: ppppppppppvpppppppt +1-3 v: vkvtzlvrdcvzplznltqs +8-10 s: sssssssssns +1-3 w: wcwfwxnwwp +8-10 v: kvvvvvvvvvkvvv +7-11 s: shsssssssns +9-10 w: wwwwtwwgkwww +1-2 x: vxxn +4-9 g: lkgggrcgpg +1-5 n: fjrnn +4-6 x: xtxzxxx +18-19 z: zzzzhvzhzzzzzzzzzsz +15-18 p: ppppppppppppppsppppp +11-14 h: rdhhhhhhhghhhrh +3-9 v: vvvvvvvvqvv +4-8 p: bbpmjpplp +1-15 n: qndxnnsmnrnsnnnnn +7-9 c: cccccctccc +2-6 m: xwfnmmn +4-16 t: nbttltzvhqjtcgbtttkt +7-8 r: rrlrrrrsrbr +3-5 h: hhghh +3-4 m: mmmxm +15-16 k: fckzkjskrkkkdkkl +5-6 c: cbsxmh +1-6 x: fxxxxxx +5-12 d: wdddqrdkwkmdfwd +3-10 s: smsqncrsjjdmjdlsls +6-7 k: vkkskkjkwkrkkk +9-17 z: qwzhqgrnvzzbzlhjz +5-6 w: dwwwwp +5-8 n: ncvgqnvn +5-6 v: vvnvvwvv +3-4 x: dxxxsbsxx +8-12 t: ttgtshxfmzlc +10-17 x: xthkjfxlktkbhdxzx +5-8 q: qqtqqqkqq +4-10 d: ndddgxvzswlsgdpnrc +8-11 h: bgcfhhrkhhb +16-19 g: qgdmbghrjhgcvgwpggg +3-5 s: fbsqqszkdkqzw +9-10 h: hhhhhhhhdhhh +15-17 b: bbbbbbbbbtbbbbzbbb +11-14 q: qqqhqqqqqqqqqsq +4-18 r: rhhrrpghwbqfznflrrr +14-15 l: lllllllllllllrl +8-14 s: nsfpsrsssnffssjss +17-18 k: kkkkkkkkkkklkkkkck +1-12 c: cmnccccccccktcc +7-14 p: pppppphppppppp +1-2 j: jtjq +2-6 w: wwpxxrwwwdwwh +5-12 p: zspwppnppdghqplnj +3-5 h: zhqphfth +1-3 q: xqqq +4-9 r: qrzrfgpnbj +7-8 q: qqqjqqqcqw +4-6 m: mmmmmwdmm +4-6 s: sqcssgnsrrddgshvbcs +2-6 m: mmsgtr +3-9 v: wvwvvvmvv +3-5 j: jcjvtgjjjxvjjgjbhj +4-6 f: qsffzgff +8-9 x: nxxbxwfrxx +1-7 m: mvmmmbmmljmg +5-8 d: pdcdqdddwdl +1-3 m: mmgns +19-20 r: rrrrrrrrrrrrrrrrrrxr +1-4 h: hpghbhkhhr +5-9 x: xxxxtxxxxxxxxxxx +19-20 p: qvwdwnssfckjczggpghp +8-12 k: kkkkkkkfkkkkkkkk +10-12 b: cbbbbdbbbqbkbb +2-8 n: nkkpnprnfcnnwsmndqnn +11-12 d: ddddddvddddvd +4-8 j: jjjjjjjqjjl +1-3 l: lvdlslllhllsg +12-15 j: jzjjjjjkjpjjjjqf +6-9 s: sssssssssssss +1-2 z: xzzcnjrzzzzzzz +5-6 h: hhhhhh +7-13 x: xxzxvsmxlbxpxz +2-4 d: dpnddbdfdm +9-16 n: nnnnnnnnknnnnnnr +4-5 n: nnnvnn +13-16 p: vppppppppppppppz +3-6 w: wwtwww +7-9 n: nnxnwntnnn +4-12 q: mqcnsrvqqzgqkwz +3-4 t: dwtj +9-12 r: rrrrwrrrrdrcr +8-9 w: wwtcwwjhwwww +6-8 w: wwwwwwbgw +5-15 f: pgflfgfbbvvffkfkmw +10-17 s: ssssssssshsssfsssss +19-20 m: mmbmxfmmbzqhmxmxmmmw +11-12 d: ddddddddddsd +13-14 f: fffffffffffffdf +1-6 n: nnnnnnnn +11-19 x: wmxxbxxkxxxpxxxxxxc +2-3 z: szgkqvmzwztdcxtvn +16-20 z: zpzhwdtdzhvgcpdpzzzz +15-19 p: ppmpcxppppprsgnpppg +4-5 x: rrxfxxxqx +1-2 q: rqdwn +4-6 x: pkfxqxxfxbk +13-17 c: ccccccccccccncclc +5-7 z: zzzzvhz +5-6 r: rrrnrl +2-5 g: mfgkgxhckg +3-6 c: cnmcjcccdccccv +7-11 t: dttttttrttxtt +6-9 p: ptlfppppcvsp +3-5 g: ggxkwtj +5-16 x: phzxlbhqxgxzwjwkkxp +7-8 s: wsssssmsn +1-7 m: pmgrmkmmnnm +15-16 n: nnnnnnnnnvnnnnnln +6-8 t: ttzttftst +5-7 g: ggggggggggg +13-16 d: ddddddddddddpddbdfdd +13-14 f: jclffflwlffbfvffffbn +3-4 j: xjzjjjr +8-14 n: nnnwknndnlnlnn +6-7 s: sxsssnzs +6-7 r: rrsprrjrcrb +10-11 w: qwwcwqzwrbq +7-10 b: bbbbbbzbbbb +5-6 d: ddddkd +16-17 d: ldldddddpdldldddd +5-14 w: zdtwxnxwhwwpww +6-9 q: mqqxqsqqq +2-11 g: gpggzvgggkgmcmt +6-14 k: kfkkkxkkkkkkkjkk +2-3 m: zfmm +13-17 k: kkbkkkkmkktkkkrkk +4-6 z: tzprqwzzcpj +3-4 w: gblwcxwllzpv +3-5 d: ddcddd +9-13 r: rrfjmrcsrrwvrrk +11-17 m: dgwrmqjmclmczrlwf +1-4 v: vvhvvv +10-13 c: clhccbcvbvcfcccqccc +11-13 s: sssssssssssss +6-7 k: skkckkk +2-5 m: mfffq +3-5 x: jxbxx +1-2 c: ctcc +5-8 q: qqqqgqqqq +11-13 q: hqqbqqqqqqbqqqqqbk +9-11 q: qqqqqqqqqql +15-20 q: qqqqqqqqnqqqqqqqqqqq +5-7 g: gzngbvggmlzzrgx +2-10 n: zjknggzlvnxtbwnhmf +2-13 c: cccccccccccct +4-8 c: cccccccbcccc +3-5 k: kdkkz +8-10 h: nchthhghhjhjh +10-11 l: wllllllllplxllnjj +14-17 q: qqhqqqqqqtqvqcqqqrq +5-9 d: dddddddrz +13-14 z: zzzzzzzzzzzzzm +7-9 t: tttttctwlttt +6-13 w: dwcwdtwrwccwwl +10-11 h: hhhhhwhhmmhhhh +7-9 t: tttttjtttt +12-17 n: nnnnknnfpnnwncnnjn +5-6 c: zccccc +11-13 s: ssssksxssssss +9-17 q: qqqqcfbqrqqcqzqqlqqq +3-4 m: dmml +4-6 v: slvvvln +4-5 n: nnbmnn +2-7 h: whhhhhjvfhhh +2-5 s: slhss +4-5 q: zbhqhqgqdq +2-6 p: pjtxqp +7-9 h: hhhhhhkhh +7-8 w: fgvwcwws +10-13 d: ddddxhdddddvhdddd +7-16 m: mmnznmmwmwrmqzrqbmpr +12-13 v: vvvvvvvvvzvvjv +18-19 g: mztkzhgmndnffztwqfg +7-8 j: jjjcjjvjjjjpjjjjjjj +7-10 s: sssssssssz +18-20 s: sssssssssssssssssssg +1-4 r: trrrr +2-16 r: mrrrrrrhrcrrfcpqrh +5-13 n: nnbljfchnnnnnj +1-6 v: vvvvvmvv +7-15 q: szqhbkqxppcbkxmc +9-10 l: gllllvllsvll +1-4 m: mxldw +5-9 x: xxxxxxxxj +11-16 t: ttttttttwttttttfl +7-12 j: sjjzpjjjjljhj +1-5 x: wmplxj +2-6 z: zzxzzrzqplrh +4-6 w: cqbwwbww +14-15 l: llllltllllllllw +3-4 m: mhmvvz +3-4 w: wwmw +1-4 c: ccchpccc +6-10 p: pppppppppqprbppppp +9-15 h: hhhjcrhhhhhhchhjht +8-11 g: gggggggkggggggggg +4-9 h: hhkqxhhhlh +7-8 f: mlfdfrmfbfttmffqfff +7-9 t: nttttttvsn +6-9 h: hhhhbhvhph +4-5 f: hhcdf +3-4 k: kfxkcr +1-4 z: zzml +3-5 f: cjjffbzffqfsbm +4-5 f: ffdfh +6-17 h: hhhhhhhhhhhhhhhhrh +8-10 d: qdddzddddzdd +7-8 j: nfxxthqj +2-4 n: nnnc +3-5 v: vlvzx +6-10 n: nnnnnnnnns +11-13 q: bzhwhbvwqffzs +3-6 c: gccmcc +2-5 m: xmbgm +2-11 g: tgztmzzbgjzc +2-5 j: jsjbj +3-4 v: vvljvvv +3-6 p: pxwcnwmp +2-7 j: ndjnzmjklxqwpkpnwb +1-20 s: slssswsnssscgbssxsdg +3-4 r: rrrfjc +5-16 t: ttntptttsqtttpwtgbt +3-4 g: fxgg +13-17 l: llltllllllllvllllvrl +5-8 q: vxfpqhqd +4-8 c: cvqcwkccp +5-11 x: kxqkghvxxdqfwxxkxx +4-5 t: tttht +8-11 n: mnnpnnpsnqdknnvsh +1-4 g: gggngpdggv +5-6 s: ssssss +4-7 d: mddfddk +7-8 f: fffffffb +4-11 x: cbmcvvvvxgn +14-16 d: vdddkddpddddllrddddd +8-9 h: qhhhsnxhjmzhlhdjxhf +5-13 f: fxfhlqsffxfgwpcz +14-16 g: jggggnngggngggggjggg +1-5 z: rzgzt +3-6 f: fffgrv +3-4 w: zwwtwdw +9-12 g: dkmhhvhjgsvqglbrr +4-5 g: gbrtx +1-5 r: xrrrr +2-5 d: ddddddddddddddd +4-5 j: jjvjz +2-4 b: blbbbt +16-17 b: bbbbbbbbbbblbbbzbc +8-13 l: lljlqlkslqllllll +6-15 g: wgfgzggggggbtch +4-13 w: cwvbtpnjdkvww +8-10 x: xtdxxxxxxhxxx +3-6 p: pprpppp +15-17 p: ppppppppppppppkpppp +1-3 w: wnwpwwbllb +3-5 m: mxqdq +13-16 s: hsrsssqssssscgssss +1-2 c: zccccm +5-8 r: rrrrkrrm +5-6 j: njjkjjsj +5-10 r: rrrrhrrrrr +5-12 x: xmxwxnmxsldlrpgxxxc +4-6 z: ztzwfzj +11-15 w: wwcwwwwwwwzwwww +5-7 c: cpccccnd +1-16 q: qqvhqhnpqscqqldqbzh +8-9 s: kfpdswzssssqssscms +2-16 l: hppbqldllnlljvflltl +4-12 c: cccccccccccpccc +5-6 r: rrrrqb +11-12 f: ffffdffffmfdkff +5-6 k: lhkkkf +12-15 z: bzzzzzzzzstzzzz +5-13 c: kgsscwsfzcbwchwk +11-18 m: wmmjbmfpvmmmthfwpsxf +7-14 m: mmmfmmtqmmmmmmmmrc +14-15 g: wbqfggngtbqvpqp +10-11 k: kkkvxktjtkbjkkkk +2-4 b: wbtkp +4-10 v: vvvvbffvmtvvz +6-8 m: vtvgmmbc +1-7 d: hddsnzd +2-3 d: rndxchftldndc +2-11 z: zzcwbxkzzqzzp +5-6 q: wqqqjq +9-10 d: ddddddpdcdd +1-12 g: ggfggggggggbn +4-5 v: vvvrvv +12-14 r: rrrrrrrrrrrqrr +6-10 s: sssshvssss +7-10 g: gqgzgggksggggdqghs +8-9 c: ccccccccf +13-18 j: gfjjjjjjjjgjhwjjch +11-15 m: mmmmmmmmmmmmmmm +2-4 s: ssqsr +7-8 v: vxxvbfdgvvgvtw +2-7 x: xwxxxxx +3-5 p: pzppfp +1-2 z: zfzwpzpxzc +6-7 r: vrrxrrnrb +3-4 f: nvftvrjsgxszkfsffg +1-5 w: kndqwltttskcwtzqt +1-9 z: zzzzzzzzzz +10-11 v: vvvvvvvvvvv +1-5 m: gmjhm +7-11 j: sdjjpjjjdgnccjjjsq +1-6 m: rrmcmmmmmbm +1-6 n: nlclfggwnm +3-7 s: clfnmssns +3-7 m: tqjmmmx +13-14 n: nfnvkntnlnnnxfwlnnnn +3-4 p: xphp +8-9 n: nnnlnnnzn +11-12 h: hhhhhhhdhhhhh +1-4 p: pjgsphp +3-9 f: pvfnfmfrcffffjf +15-16 d: dddddddddzddldgdd +2-4 b: bvztgnzbpr +3-7 w: wgwhmpwwwlwzzhwnv +5-9 n: nmznnvnnsznnw +4-6 f: zqffsnffdlbkt +6-7 s: sssssss +2-5 q: kqlqqmv +11-14 q: pjqrzjfdgmqzpd +17-18 s: sssssssssssssssssj +8-12 x: zxxxpxxxxxxt +2-4 h: hqhhhwfshp +1-9 b: qzwgfbzjvt +8-10 c: cccccccccn +3-5 n: nnnkwn +4-6 m: zmmhdzmmx +7-13 v: vvvvvnvvvvvvsvv +1-12 z: zzvzxzfzzrzm +6-11 p: ppppplppppvppppfp +1-5 s: sjsss +2-19 w: wwwwwwwwwwwwwwwwwwcw +5-6 k: zxlkrkbcrcwkdqtkkw +1-4 w: hjjbzqwnpjrbglkr +8-9 n: sznnljnqn +7-13 k: dwkpnjkdkglnm +14-20 x: xzxrxxsxxxxxxxxxxxjx +4-7 w: rtrwdvww +14-18 m: mmmpmmmmmmmmmlmnmq +3-4 z: zzxz +8-10 z: zzzzzzzzzjz +11-14 v: vcvwvxvcslbvvhv +4-8 j: jgjjbrjhp +5-6 d: dddddm +4-5 n: nnnzn +15-16 t: ttttttttttttttnc +5-8 b: bbtbspvbbgllcrgxd +8-9 w: wwwwwwwqw +3-5 j: vbjmxwjgjfrzttznwc +12-14 l: llllllllllnglzlwbl +2-4 f: ntffj +2-4 c: gvccrcc +19-20 w: wwwwwwwwwwwwwwwwwwpw +1-3 k: klwgkc +3-9 s: qsmlssskpsbsscs +8-9 j: jjjjjjjdj +5-9 s: bszlpsssss +13-14 l: llxllhlllllllllll +1-6 s: ssssscs +7-8 v: pbvptdvv +10-15 v: vvvvvvgvvvvvvvcv +4-5 k: kkcskfldskdc +13-14 v: vvvvvvvvvvvvvgv +3-7 n: hnjnnnnnsnfp +3-8 m: mtmjhrzzllqml +9-11 w: wwwwwwwwwwxw +10-20 g: pkvgkfvmxgkpjjhtqvcg +8-11 w: wwwwwwzwwwdw +5-7 r: rrrrrrb +2-7 b: sbldlwvcb +10-17 v: vvvvvvqgcvvkdvsvvjv +4-5 d: tkddnddzqpdfdddd +10-12 p: npppppppppfm +1-12 t: wttttttttttttt +4-5 f: qfffz +11-14 p: ppppppppppppgvpcp +6-8 w: qswwwrwwmww +9-15 g: txgchzlpgggdhgggbg +2-10 h: hthhzhhhshhh +5-8 l: lllllzkk +17-18 l: nlllllllllllllllvll +3-6 c: zdwcjcccdqct +8-17 m: mmmmmmmmmmmmmmmmjm +10-12 c: ccccncrccccb +4-12 j: jjjbjjjjjjnwjj +2-6 h: chbhhfc +5-6 c: cccpncc +6-7 m: dmwmkmphmmdmm +6-7 k: rxwkmkv +1-5 f: fzgfl +4-7 x: dxkmxhb +1-5 f: hhfzfpfffffsff +1-7 s: sssslsvv +3-7 w: wgwwwsh +12-15 d: mdsdbkltdvthvfjdddn +16-18 x: xxxxxxxxxxxxxxxxtl +5-19 x: xwxxxxxxxxxxxxxxbpn +3-5 h: hhrfh +8-10 g: ggggggggggkgg +3-8 c: cccccccmc +5-7 r: wrrrxrrr +7-8 p: phpprdslbpxprpg +17-19 z: zzzzvzzzzzdzzzzzzzg +2-4 x: kxxxxxm +2-11 w: gwwzpwwwwwplrqfh +6-9 t: qtcttttgf +9-12 g: gggggggggggsg +3-6 n: fzmnxb +5-9 x: pqxxxwdtn +5-6 j: jjjjjkq +10-12 h: hhhhhdhhhzhh +1-4 g: gskgk +3-5 c: ccccj +1-10 m: wmxsgmzmrzmrmmmjmmct +5-10 p: lmpppvptdgpjpwfwpp +2-4 z: bzgm +6-7 d: ddzdddj +3-7 r: gchrfwr +4-7 k: kkcvkkkkkk +8-12 t: tpwtttctvtttftpt +11-12 c: ccccccxcdncbwcc +2-10 p: jwwxlppppppnpn +9-16 w: chmwwwwwjwrwjwzjww +1-6 j: jkqjjbj +5-8 k: kkkkkklhkk +3-5 q: qqqqc +16-17 x: xxxxxxxxxxxxxxxtg +4-9 f: fmfkcfffffkcfmfhnzf +5-6 z: zhzzlz +4-17 k: kbwmwvkkvvhxkkkckqvk +3-5 d: dddmmdt +4-10 m: mmmmmmmmms +5-6 g: ghgggpj +1-5 c: cccck +3-7 z: zzjzzzzz +2-7 v: xrprnvvtsrgsk +1-5 s: sqqsn +3-5 j: xwpnj +5-7 v: vvvvvvqmv +4-5 j: jjjjzjjjjljjc +2-4 h: hghh +3-5 n: fnnpc +16-20 d: dddddddzdddddddpdddd +3-4 t: tnpt +2-7 f: fxffffkff +6-9 b: bbbhbbwhbbrblmtb +7-10 m: msmxmrnmrmmmm +3-4 r: rrzrr +7-8 m: mgmmmmjmm +2-3 l: lmll +2-6 h: cngphhhbfpvvsgrqhhzq +6-8 d: dddddddg +12-15 p: vfjxwpcpdvpnjwp +12-17 m: mzfmmsvfxmqsmcfjmwjb +15-19 b: bbbbbfbbbbbsbbmbbbbb +7-8 n: qdnjnnnpvmfnn +6-8 l: llllllll +3-4 n: nnbdh +11-12 w: hprdhfrpvcwbgwjcw +2-7 r: jrfrbjrhrw +1-6 v: fvzknvvv +10-11 t: tttstdhttqrttt +5-14 f: fxffnffffnfffff +10-13 q: qqqqqqqqqjqqqqq +1-5 v: tnvfvxvjvbvjk +4-5 c: ccccpc +4-6 t: tttttktttt +1-2 r: rwrsq +11-12 c: cccggjcccccr +11-16 g: gwggggggggqggbgggfg +12-14 b: bbggzhxsjjsbsf +5-7 r: kjdwpfbmcptrslrrr +1-2 l: lvbl +6-11 c: hsksgzhccbccbdfnzqcv +6-7 m: gmmmmmc +1-2 h: hhhh +1-3 g: rggg +4-8 z: rzzzzfbwzxkzzz +3-6 w: wwwwww +3-4 g: ggwtg +9-11 v: wxfltmvjvjm +2-4 l: llck +2-3 m: mmkgpdwzdm +2-5 d: bdjhdhjldzh +10-12 j: jnjlmjjjjpcdkjjjx +3-9 q: qqzqqqqqqqqqq +4-8 d: ddzwdpddd +3-7 m: mzmbsmcjgmpmmdkmr +8-13 q: xrxvgqdvvmjhhgdfz +3-12 z: zzjzzzzzzzzzzz +5-10 k: jkkkmkkkmkk +6-7 m: mmllmmtm +17-19 c: ccccccccccccccnckccc +6-9 w: wwwtbrwwwxww +7-9 d: wfdkwddsdsmdbswv +11-12 g: ggggggggggbgg +13-14 j: prjjdjjjjjjjcjjj +3-5 j: jjlljv +3-4 h: hrlh +6-7 l: hplnxlsjnwxzllllljcj +4-5 g: gfgml +4-5 z: zwkznzn +4-11 n: stnzhznnfnqcnn +2-5 h: hmzhh +4-6 w: wwbwwc +4-11 w: vmwwrxpkwcp +4-8 t: thxttstmtbstcvjtlflh +6-8 v: hvvkvvhfm +16-18 b: tbbbbbbbbbbbbbbbbr +8-10 f: fffffffcfl +13-15 r: rrrdrrrrrrrrrbr +8-14 t: ztstxttttttttwz +8-12 j: jgjjjjgjjjjx +5-6 m: nmqjdmgfqqmcmmvndztl +2-6 v: vwvvvvtv +15-16 l: llllllllllllllll +3-10 q: qqqqqqqqqxqq +8-9 j: rggxhvjjjk +1-3 p: pqhp +4-11 z: nkjddzczjrzktvnckmg +5-12 r: tfrdrswgwnbc +8-13 r: rrrrrrrrrrrrrr +13-18 x: xxmxvxxxxxxxhrxxxc +7-8 z: zzkzzzzw +4-8 m: mmmqmmskqlmmgm +1-3 w: bmwg +1-4 z: vzzzzzwz +3-4 d: dqdw +2-9 z: hzhqpndtllsw +10-13 t: tttttttttttbjb +12-14 r: rrrxrrsrrrgfrrr +12-19 g: hdxnlgglxwrgzkggcwp +3-4 x: qxjx +1-2 r: rrpdlqhcnwwr +5-11 c: vdbzvccdccldsjcq +4-6 k: kxkwkk +16-18 k: kkkknkkkkkkkfkkkkx +1-2 q: tqtghddbk +7-8 g: ggcgggvgg +13-19 d: ddddddfjdddddfddddd +9-15 z: pzhzzzzzqpzzzzzz +4-5 l: lclld +2-15 r: jrrmtzrxlczbttrcvkn +3-5 z: zzzzc +15-16 k: kkkckkdjnkkkkkkkkk +11-13 m: mmmmmmmmwmmmzm +8-13 p: ppdpptppdppxkppppppp +1-3 g: gszcmgjg +5-11 h: skbchhdbnphpbfl +4-7 d: prdjctk +15-18 f: ffcffffffffffzdffc +7-11 g: npggtwgzgtgzhx +12-14 m: mmmmmmmmmmmpmkm +10-11 b: bbbbbbbbbbb +3-16 k: kgxtvmlgpkptpghkb +4-6 m: zcwmzmvqvgmmsxj +6-15 m: mzmmccmmlmmrmlnl +12-13 x: xxxxxxxxwxxxz +4-5 d: mhvdtxfklzdpgdqdpqhd +5-10 g: nghgggggggqg +7-9 k: kkkkfkkkwk +6-7 c: cvcvczncn +10-11 t: tttqttttttv +18-20 h: hfsqhkwfhttgfhmbghhx +6-7 v: vgvvvwz +3-4 z: zzzj +3-5 d: dhqjnhgldtdzx +3-4 b: jbrbbbbbbbblwb +12-15 g: gsgfdfksrggqvgggjgt +6-11 p: pmppnpqpdppdpppphpf +13-14 z: zzzzgzbzzzzzgzz +4-12 c: ccjcrvcnwccwctcczcp +10-11 c: szcccfccfpcchqs +10-14 l: lllllltgjlnlbprlll +12-17 z: zhzzzxzpzzzfzzzqznz +12-15 l: llllllllmvlvllfll +7-12 c: ccccccncccccc +1-5 m: mhmmzmm +11-17 r: rrzrrwrrsrcrsmdrvrr +4-5 w: fwwpwfw +7-8 n: nnnnnnnk +3-18 n: rxhzsscgbnmzpvbqmzf +4-11 k: kkkkkkkkkkkxkkskkkdz +10-11 c: cccccccccckcccccc +8-15 r: zrrtfrjrrrrrjrrrrrr +15-16 h: ghgvlhwgqslhhhhxmp +3-5 f: ffffqf +3-8 s: bssmfsgspxssgjhsjdv +3-5 q: bfdhq +4-7 k: qknkkkd +6-9 b: bbbtbnfbbb +12-14 x: xxxxxxxqxkxvxxwxxcw +3-6 c: chfckc +3-8 h: kzkhgrffz +10-16 f: fffgjfffsvffdzfhfzff +1-3 r: rgcr +16-17 x: xxxxxdxxxxxxxxxxl +6-11 j: rsjcjjcbpchkvfjpml +9-10 s: sssqvsssjsss +17-18 v: vvvvvvvvvvvvvvvvvv +3-5 t: jtmtgtxxhzskzk +1-6 t: ttqkvdgs +13-16 q: qqqqqqhqqqqqzqqjqq +10-11 b: bbbbbvbbbbw +6-7 w: sgwmqwgwtbrllf +10-11 f: ffffffftffff +12-13 w: wwwwwwwwwwwzt +18-19 t: ttttttttttttttttttt +1-5 h: zghhr +1-2 v: dvjnctwvlp +1-2 j: jhzkzjh +3-6 h: rhhbhhh +2-4 d: dddrd +17-18 s: ssssssssssssssssns +1-8 m: smmmmmmmm +2-4 s: dcfsbzwqq +11-12 d: vnldqthkptgkkfdmtw +8-12 p: vpppzpprppppp +6-8 q: jqqqsphqjwrqj +8-10 k: ktkkkkdkkkk +4-12 v: nvvwvvvjzvvvv +5-6 z: zzzzzt +1-5 w: xwwwwwwww +11-14 p: pppfbpppkpftdpkpgpp +2-3 v: zrlv +2-4 f: fbwff +5-6 s: ssssmn +11-12 z: zzwztpzpjzhz +5-6 c: cccjcc +4-6 v: vvvgpvcpwv +5-6 j: jnzcpjnzjjcpsjfps +12-14 m: tpzwjjgpbbdmgxgphd +13-15 n: nznnnncnnnnnnnf +8-11 w: qsxwnlhwwxw +6-9 t: ltbdttnst +10-12 t: hnjdfgrhtgkl +2-4 d: dbddddc +13-14 g: gggggggbgggmgmgm +4-12 r: rrrzrgkrrrrkr +14-17 n: nnhnnnnnnnnnnnnnhnn