-
Notifications
You must be signed in to change notification settings - Fork 0
/
Day9.cs
189 lines (166 loc) · 19.1 KB
/
Day9.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace AdventOfCode2016
{
class Day9 : Day
{
enum state
{
Default,
ReadingCount,
ReadingLength,
CollectingSequence
}
public string Part1(dynamic input)
{
return Decode1(input).Length.ToString();
}
private string Decode1(dynamic input)
{
int pos = 0;
state state = state.Default;
StringBuilder output = new StringBuilder();
string buffer = "";
int count = 0;
int length = 0;
while (pos < input.Length) {
char c = input[pos];
switch (state)
{
case state.Default:
if (c == '(')
{
state = state.ReadingLength;
buffer = "";
}
else
{
output.Append(c);
}
break;
case state.ReadingCount:
if (c == ')')
{
state = state.CollectingSequence;
count = int.Parse(buffer);
buffer = "";
}
else
{
buffer += c;
}
break;
case state.ReadingLength:
if (c == 'x')
{
state = state.ReadingCount;
length = int.Parse(buffer);
buffer = "";
}
else
{
buffer += c;
}
break;
case state.CollectingSequence:
buffer += c;
if (buffer.Length == length)
{
for (int i = 0; i < count; i++)
{
output.Append(buffer);
}
state = state.Default;
}
break;
}
pos++;
}
return output.ToString();
}
public string Part2(dynamic input)
{
int pos = 0;
state state = state.Default;
string buffer = "";
int count = 0;
int length = 0;
long decodedLength = 0;
int currentMultiplier = 1;
var activeMultipliers = new Stack<int>();
var multiplierEndPositions = new Stack<int>();
while (pos < input.Length)
{
while (multiplierEndPositions.Count > 0 && multiplierEndPositions.Peek() < pos)
{
multiplierEndPositions.Pop();
currentMultiplier /= activeMultipliers.Pop();
}
char c = input[pos];
switch (state)
{
case state.Default:
if (c == '(')
{
state = state.ReadingLength;
buffer = "";
}
else
{
decodedLength += currentMultiplier;
}
break;
case state.ReadingCount:
if (c == ')')
{
state = state.Default;
count = int.Parse(buffer);
buffer = "";
activeMultipliers.Push(count);
multiplierEndPositions.Push(pos + length);
currentMultiplier *= count;
}
else
{
buffer += c;
}
break;
case state.ReadingLength:
if (c == 'x')
{
state = state.ReadingCount;
length = int.Parse(buffer);
buffer = "";
}
else
{
buffer += c;
}
break;
}
pos++;
}
return decodedLength.ToString();
}
public void Test()
{
Utils.Test(Decode1,
new string[] { "ADVENT", "A(1x5)BC", "(3x3)XYZ", "A(2x2)BCD(2x2)EFG", "(6x1)(1x3)A", "X(8x2)(3x3)ABCY" },
new string[] { "ADVENT", "ABBBBBC", "XYZXYZXYZ", "ABCBCDEFEFG", "(1x3)A", "X(3x3)ABC(3x3)ABCY" });
Utils.Test(Part2,
new string[] { "ADVENT", "(3x3)XYZ", "(27x12)(20x12)(13x14)(7x10)(1x12)A", "(25x3)(3x3)ABC(2x3)XY(5x2)PQRSTX(18x9)(3x2)TWO(5x7)SEVEN" },
new string[] { "6", "9", "241920", "445", });
}
public dynamic Input
{
get
{
return @"(106x9)(9x11)XRTHYQJRI(16x7)PQFHWDDUNODSQZFA(3x14)UTS(46x5)(11x2)ZPIAOZZMWEI(4x15)SDLK(12x10)BUQRPYWOFRHL(3x2)IUD(376x15)(56x2)(2x8)HN(8x6)EMTIYSST(29x14)UMUBTFMGRIFIJMVOFTRZJBYZKRZTR(72x7)(15x14)AIEJQAVGCXESYMW(33x11)BOGWCYAIJENVPIZOHXMHVSICYNVYYOYSQ(5x4)LNSRH(121x10)(35x11)ORVPLTOAYEYSFLWFTVMEKGERUMSXJEQGTWZ(3x10)NAG(10x11)OUJQJHTAYV(33x6)GHVYZOGPXXWXXWQOTKASZXBTKSWGYIDHJ(8x12)TXOGOMWU(31x13)(24x12)GKJSZHQTICHXVETPQMHLIKZD(62x12)(11x5)DAGFHJAOZEC(7x13)TLJQCQX(6x9)QEYKQQ(14x15)IBMGNTVYJNFYMG(6x2)WFGDKTVLSHZ(1115x5)(1013x14)(217x11)(210x3)(84x10)(1x11)R(36x15)(11x6)HUVMUZQUMYK(13x9)SDEIKUSKFFAEZ(1x8)F(22x2)YUYFAEHLDJPJQSFYPBXAUK(112x2)(13x11)DRNBMPXQGENAK(5x10)UOQOS(74x12)(1x1)H(34x11)VMDPNZCXMDUXZVMWXPZSBLWRGIMVFVBRVT(9x7)OZEANBETJ(7x15)YBUYSRB(511x7)(10x10)APIIJSHFJV(7x15)SJPORJE(258x2)(12x7)IRKMMAWTWSNR(25x2)LIJXFEINITNKHOFIUYVCPXYQG(201x12)(25x13)(2x11)HL(11x7)WMJYXYQKTPR(8x5)(3x9)IED(59x1)(2x2)IN(28x1)HVPFGRCJZJDPLUZYGNBEDIMFFEER(11x13)PLHKRRWGNPS(84x11)(20x6)WWAVRKSRTDLBKLHJISBR(16x10)CHSRQEGJIMCWREFN(11x13)ZFCZEXMNDLD(4x12)UPTO(1x10)S(209x4)(6x15)VBEOYG(43x9)(36x15)RCUYZKJJSPCTMPDKNECVAKIMBNCNQLSXBOGX(120x6)(42x13)IIOMSJMCVFSGXZCNDKJEIGMCQJJQJPBIKOFLJYVYDE(65x8)(38x6)BXWAOHVVPAZPRPSRCVTJROMGTSPLZSSRUZHJRB(7x7)QPTZZWI(4x5)JMXC(14x13)ANRJGMCOUOZACW(262x14)(3x1)VBN(22x9)(15x12)QNTVQXRQOAGWVDO(5x5)EBIOE(209x3)(5x1)KKEOI(59x14)(33x1)(1x12)U(13x12)OAWCLEBIGSGYF(1x7)I(1x10)G(8x4)(2x14)VN(61x10)(8x9)(2x11)ZD(42x3)(1x14)B(7x4)VUJIEAW(9x3)DDEUJKZLK(3x12)HRR(59x5)(46x12)(9x14)LWUURXCZG(6x1)EDXRYN(8x7)HUKWCYPZ(1x15)X(1x4)O(87x2)(81x3)(74x15)(67x10)(11x3)PYMXZLPIGTV(20x1)(13x13)ZMUSHMNOPXURF(4x8)VKGK(9x14)DSLZDGTTF(1203x7)(3x4)MFL(1187x9)(1066x4)(5x8)SOWKN(355x1)(172x8)(16x2)LSNKBTLXICBYAATH(7x4)EARJIJQ(58x12)(25x9)KMDPCSXEHBUYDQTUXJAXSJJGR(2x9)MN(1x1)Z(9x9)WXHKYKNQS(66x13)(9x4)ODWMYKRMN(1x8)D(6x7)XQQLLL(28x15)GJYGVCVVBZAKCAOWRQSNOLINZFKI(23x8)OCHMAUQJOXIGSABGMYYBWZW(139x13)(10x3)GLORQKYCAY(4x1)OLUU(36x9)PYWSXXATEFBJZCHMBAXIUMLWCJNPJSBDYTYJ(29x14)MMXBFCWCUEDHGJFTXJHZRDDSAZYQI(30x5)(9x12)MGDCSHCJF(4x9)PCVC(1x8)P(224x2)(199x11)(116x14)(10x5)PSOXQOZVUJ(15x11)PREIEGEUXKJHJWM(18x8)DPKYWUSMRMMRLZDOJD(21x1)IKIUDARLRJKIYXWJSSMFU(21x3)VEWAZVPXDHAZATUOSBYEE(1x11)D(27x3)(6x5)KSJOIP(2x15)ES(2x10)VZ(5x4)ELIBQ(18x10)(2x8)KL(5x15)YMAUK(11x6)NCSCJVWDAYZ(315x13)(128x5)(44x3)(28x5)USNKISRLKAGRRTAGTUJSBGOAXPSK(5x7)EFRAK(9x2)ALTBMUGRE(18x15)DCACKZDYKLGSYRITDJ(32x11)(10x12)TDVREHQMVJ(9x13)EPYZHZZYA(172x12)(57x8)(7x15)PXTFHCL(6x5)BOMWYC(5x2)IEXWE(2x7)WQ(10x8)AQYJXQRSZR(6x2)(1x9)O(71x14)(19x5)SPETLGCDKHWOQWZLTVL(10x15)DLMIHRUKRN(1x1)O(16x15)LDTPGFXQCAQCLDRO(13x15)TSWHPYSEATHDK(132x14)(16x11)RZGNFDAZEGESANGQ(10x7)(4x14)BTVI(86x13)(6x12)DIEQPH(26x13)(13x10)IEHRXBOBLJASH(1x5)V(34x13)(3x2)LUZ(19x11)TFXNCNBTEGWWFQNUMSV(95x1)(88x15)(81x15)(75x7)(6x15)MYOAIV(27x11)HHUPWWHDBVOHBFUNLYCTMPXZQFV(10x4)NNUKRAHNBG(1x2)Y(1x14)H(7x8)KGTVHDA(4526x10)(1403x12)(823x11)(173x15)(65x2)(18x9)(1x1)X(7x3)UXNFNEC(17x15)(11x6)VGGSXXUTQXC(5x4)XLQTW(1x15)I(5x13)BBZPE(85x7)(25x13)(18x14)SYRQGMKVFELXOEWZHX(2x15)DI(8x7)PSUCVNHA(26x9)(20x4)CEOFIOFVTHURHLTEJENX(152x9)(21x7)(9x14)(3x15)AQI(1x7)T(105x2)(5x11)IJHWZ(79x7)(4x5)LSLD(32x12)NIWFUAQICZEKLRZUCUNTOQXZSVGNGWXA(25x3)VNCCKBWWEZLPMMTQVIHVNAVNF(3x12)PNO(7x15)ZKWZZNN(402x12)(33x14)(1x12)Q(20x3)(13x14)ZNQGPMLMDHOHA(71x10)(64x15)(32x4)ZEEQNVNJWTVNTCFOCXLLAWEWKTOKCXLI(6x5)DHXUCY(3x7)YHF(1x15)J(49x15)(1x2)J(19x14)FRWVSMECULVTKDZOLFL(10x15)XTJMYWZVNY(221x7)(80x4)(5x6)FWTSI(4x5)ILZF(9x2)DWZJDFTRQ(2x2)ZS(34x4)YHPNQVXRBPXCVLOALPLOZYPFTMLORQJRDA(97x11)(38x12)VFQPPKLDKONKGRDIMGZFPSAUDMORHVIVRUCTHW(12x7)DTNJXMTPNPQY(6x3)XTTARA(10x2)HOIDHPMENH(1x11)F(24x11)(17x13)ZACXCCWQXQSMIBYHT(67x1)(61x2)(2x11)YJ(2x5)RE(2x8)AR(20x1)UZQCIVXZWDSGNDVQUXKJ(7x11)GRMENOX(20x9)QATXEOBKUKWMYCGRDVTT(8x14)(3x8)LBU(524x13)(247x1)(17x9)NGFHNBQBBEQVBEOTN(81x13)(16x14)IJJGZRLQKBKYZKDY(19x7)QADJTDQALGHBRNXOAHZ(27x6)UCBWLIEXQMLITVCYJRMCZSHXVZC(2x4)IJ(122x4)(29x7)(4x10)IPTD(1x2)U(7x13)FQHGHXF(81x5)(19x8)ZSJMZXDCMEYHWDDEWDA(30x5)PSSYZWSCLTXPIVOMDBHQQFMXLIPVNB(14x7)LSVBCKXVMGZEKT(253x8)(245x14)(58x12)(28x9)LJWCSDAFPAHDMYOGANVBMLIIGREV(5x1)GYSJS(8x15)QEHNLLGC(69x5)(1x14)E(1x5)N(8x11)UNZJRSSK(21x10)XWDNKLRNWMKZWDXWNBGHR(8x11)ZUSQQCRK(75x9)(1x3)X(50x14)KAVUEBCVHWLJTQENBLTBPUPUKZACDKWCINHIDUPXNQFNFJUIWL(6x13)AUVWWH(18x7)ZZNFDDERASPWSJEWLD(5x2)HKGWP(2651x6)(1383x7)(461x5)(128x7)(42x3)(25x7)YSXKTOGNDCDPOYROSBGHHTSRH(6x7)WNYMCQ(73x13)(21x5)CKIVBNXGJZRGOSZGOXYZT(10x7)SEOMIDFXWO(4x2)LYSJ(2x8)PG(9x5)FUZBCOHKJ(123x15)(41x8)WRKTADXJEWMDHPWTGBUUZDRFJIDUQRKVBPXHAUNLV(21x6)AIUGQJXODZLQSTAAMOZYI(2x2)OE(23x4)NSCVVLVYUFKQOKXIHFWLLRL(7x13)(1x11)S(7x10)CSVFCCI(175x3)(68x14)(23x3)SFDPZUYYOZUEODNUZDGYEIL(24x8)DRSYWWCXZNDWFGDSXYGLWKDM(4x1)VFNG(45x2)(6x10)VJFABM(10x8)MHILZZGJEI(11x2)OJXDOYTFYNH(18x11)DWOSXKZNDFVSJAPWDO(17x12)OPQWGVFMXQVDODSVF(36x14)CMAXZTAPUKPNVOMBTRAGLAENFSSHBWHLDWGD(169x13)(83x4)(5x7)VPLCB(54x5)(17x5)VFSYWLWTCELQTHFFL(1x11)F(1x12)J(10x15)ZCEWDVDLWO(8x2)LUQQPDJB(73x10)(1x9)T(43x14)(7x3)JQDMFIN(4x10)QNBH(15x9)TMLNCGDVKAZUZAV(11x3)OFUJNKCJMPC(373x13)(46x1)(2x15)XV(31x13)(10x5)SYWLIKMGWE(9x13)YDUKMXTFB(179x8)(64x6)(29x13)DRKTESHRQOZUYAMOVLWGLEVWFPRZH(2x15)ZD(2x13)WG(6x14)UKVRCC(23x2)(8x13)MWLZMOBY(3x12)OGB(5x1)WDVZE(3x6)RFH(55x15)(1x9)O(32x3)TZEXSGPTNQOWCRUOHWMGFADKYNATQTIN(5x13)XDKRA(127x15)(48x9)(5x6)BASWG(6x13)YXPEJY(20x4)KMQZCOQGSQDJLFVKRYIA(5x13)DIKJD(25x8)(6x1)MDVSPU(9x5)NAOUNAWZL(25x4)ZTJTRATMHUYUKZJIVQQACDNQS(306x12)(23x4)(17x4)(11x1)NSDWGOSOMVW(6x11)MHVDRW(209x13)(15x6)(9x13)YXZNPPHRC(69x11)(9x12)HMQSVWJOC(6x13)ZQXEOU(4x5)LQYQ(6x4)QVOCPT(16x9)RDWSFNOWLMSQIOZB(68x12)(9x13)SNKVHMAJK(9x10)RCCOAFYWE(31x12)GIXNYAXBNWICGZBZVIQVBXEGJCALHBU(2x9)NN(23x10)EZHMCYAQVORSFDEMYFOQZXJ(42x9)(1x7)P(29x12)(22x15)UJUREDJIVDYWLUEXDOZVMM(9x11)DOUQESTOG(456x10)(3x5)LFW(380x8)(216x5)(34x3)(8x1)XKKMLZRI(7x9)SACBEEI(4x2)VBTG(93x2)(17x6)NLIOQMNAQULVVXGGC(1x9)I(9x7)COOYHTBXW(44x4)QFSVMBSZDWVRLVJTXBYFRQEHDCHFPLLUCAQWAVMUUMFK(24x14)RFLJMQTXKSOEJVSIGLQSZMCP(40x2)(13x12)EABYTPQRFHXYX(14x1)PUSFWCYLPFJGKN(149x15)(58x9)(9x6)NXRZDYALO(25x11)WVAKWWRFLGGWIHANUOLDFAQNW(6x10)TOFLHT(1x2)T(37x13)(10x11)OYPSTGHUQZ(13x14)JFVQKLPWPQMRA(17x10)QPQXJFXMJNYSTLBNU(5x11)ODNGE(8x4)(3x9)CCH(42x1)(5x13)TJAFV(1x14)S(4x7)VMCP(9x12)(4x4)JAZY(764x5)(22x6)BSPTZFBFVNNNBFHNEJJRGN(285x11)(4x2)SMPG(17x5)(11x7)UZEGANEKOUT(9x2)WQQZQZKDH(89x12)(82x11)(12x10)IQPDMEYGJLNY(10x13)HIWQBIEBHN(19x4)JHMWVRWKWKEIBBFLXZG(15x2)IMIQGNTZSXWEFXZ(136x4)(113x13)(27x14)YBNVEWUSSMRSOKNSFDUDIRZQRDU(23x12)TQYTJGLYVNMBBAPKFESPBMV(13x5)WWIGJKLYUBAHI(2x11)BG(15x14)PSRVOVQUSQLHHVT(9x15)(3x13)UXA(2x13)PR(5x11)FAZCK(417x5)(10x8)KYVNYYAFZB(30x9)HJSTGGVPIUURXIRLTOTAWZZSBMKDTQ(3x12)KRK(132x15)(7x5)GYTLJBJ(88x9)(16x4)FSTCSMXWPMDQYHIC(2x5)AA(12x12)ZVGRTDUXBBAJ(34x9)VWOYAGBTUTAVANZNBQKMVWPCVWWCVQKMUL(8x13)FFNTAMFZ(6x13)TZOWCJ(209x7)(15x5)(9x15)EPFVMFKEM(28x5)(1x6)O(4x4)PZJW(7x13)BPPUVRW(105x1)(27x15)YDQICFECTWQNNOFQNVYSXSLSSIW(3x13)MRI(22x15)HXFNVWTAHWNUSKIBUWZPXE(8x3)UUBWJFIT(13x10)KVAYOBTUJRZLU(25x6)(19x1)GKNCXHXAEDZGECPIXZN(5x14)AWAIZ(5x3)QXGBM(448x4)(44x10)(9x4)GGBPTRJWG(23x14)(16x12)(4x14)ETAJ(1x3)C(389x14)(15x5)QTVVMFYIWSOHLDC(164x10)(7x9)(2x8)UB(79x15)(23x10)WSURFVWPENVPZWTXCIXWVFD(31x2)(7x5)XGBQMLO(1x12)W(6x11)IXBRCD(7x5)LMUGOLC(15x2)YQIPKKZYPRXVLDY(7x5)OFTXXXQ(27x3)(1x2)B(14x10)(8x15)FZNYFCBA(126x4)(4x3)XJZA(34x11)(10x6)PKLXXXUMLP(5x5)NHVFK(2x14)NY(70x4)(3x11)EJP(55x9)(20x12)MVMUIYLATZBKUKCGLLUJ(13x5)BBNDWLPRYFCFA(3x12)LXS(43x5)(25x10)(8x15)PZOWGYHQ(5x12)TORCD(5x13)DUGBQ(8x13)JFPXQEMR(1099x7)(1081x11)(280x8)(47x12)(41x3)(2x5)LW(16x13)FQDDWIXNCRWCZGPA(5x10)FXAPI(219x6)(1x4)Q(206x4)(87x1)(3x8)AOQ(48x12)JVVMHWAHKTMOFDLIMOBCSQGMRFHVZSRRDRVFQLUYKUQEWRZN(18x8)PZWWDHMNYFOLWQFWCX(70x10)(34x3)KULICMONTPUTHKRSIBFYLHZYFMXBQUSASZ(23x15)OVSCBTAQIWDTCNSOTOPQZLK(20x1)(14x8)FBAKRNAAVXFORR(4x10)AAUB(770x13)(15x1)HFFGWWKCGKHROND(267x8)(7x11)KEXHRVD(64x2)(58x2)(28x10)KZFBJNKUEAGMUOXDECTMFNAGAEDH(3x1)JEP(3x10)YTA(1x8)C(12x2)AZNZYZXAPRHA(38x7)JLONYUNRPLPPEWXNZCJMJVHXJCPTABUTCCPKJP(114x10)(81x15)(18x10)UWYFEBEONZYIKSVQTV(15x3)NIMRZIPSGLWLCTZ(29x2)JQYDQFMACFHMIXWSESYTZSZKVYXWN(20x9)(6x4)CMJFBX(4x9)DADR(10x14)(4x12)QVQE(203x2)(11x15)OVDTKQKMSEU(50x12)(4x10)GSTQ(4x4)OYLA(9x10)OVQDPYXCN(10x9)GDPYMBBAZS(32x4)(3x8)XQH(18x7)(5x15)EVFWX(2x2)VR(84x7)(63x3)(8x9)KRZVMGIP(9x6)PDQLFPREC(22x4)TEPAFTWWKSLZMCAORJLYKT(3x4)GTY(9x14)QUHNXEMAJ(241x4)(142x4)(16x8)VDVCOCCPCCFKETEJ(61x8)(10x1)BTZWZTKMNK(8x1)LVGYEELS(9x12)WVYYDGWHV(11x7)GLWNBQBUECN(3x8)FAS(39x3)(6x3)XQNBMM(5x6)YRFJS(11x12)LSRASFYIJQQ(86x8)(72x11)(1x15)J(7x4)PQJQAVG(27x11)TGUSOHUVTBQAZDPQJTWHLWUHDPL(5x4)PJXKR(4x9)DALR(2x6)TZ(10x6)VREJNKOUNC(3x13)XDW(4842x5)(997x12)(252x13)(244x10)(92x15)(8x3)XGBYBMNX(48x2)(13x12)IRGHMKRFDLYSO(22x7)UHFLJHQRPHZXTFABOWZYTH(19x7)GMSJSPDKXPWKMLNGBDG(93x4)(34x2)(13x14)KBKCSHDZMRCGF(9x8)DVUHTXDPA(47x8)(1x7)E(11x15)AEMNFZGZGFN(6x9)EATZHS(6x11)NEBGMR(5x9)GPSUG(24x9)(5x15)AJOLD(8x8)(3x3)QOR(1x3)C(1x10)D(709x7)(361x14)(136x3)(25x12)(18x14)XVVMXAZPTMJNLLBUAZ(1x10)Z(77x12)(4x1)OIZF(9x12)KBJGFWQXY(10x9)ODUWORENBC(30x13)QWZLHWYZMYMGPNIEVGXFRGWGBALMUE(7x11)HEMNOOI(6x11)KEOATU(36x9)WLUYXNLTKNEUMDCXKVOJZUCDVDSJAIBVRHUM(142x3)(10x5)HHGWZFKZTY(13x2)(8x5)QZAOTRMN(22x7)XKBCFWINOZXSWQPWNQTBCG(40x8)(27x12)MTNVFPSSNFOCDOJLZEAXUHTKQZU(1x1)N(26x10)LRMPWHWPOPJCTABQOMKTVFRVUP(9x14)BLLTZYMAK(35x9)(29x1)(1x7)B(9x11)IKKNFOBWI(3x1)OYM(292x6)(187x14)(43x6)(26x14)UZSLNMHXIPSULQAUOFOAABTNFQ(5x4)ZLXWV(10x14)RWUDXDKKBX(56x8)(2x15)LE(13x7)EOVBBOPSHZEST(1x15)P(16x5)VVYVUUZYNTYAMHRH(52x10)(5x10)DBONH(4x2)BGZL(18x2)URQQQNMXEBJFCUTCYM(3x2)SFW(6x10)OVCAES(79x2)(28x2)(14x5)CUFVZPMDBRKXEJ(3x5)BHS(11x15)KLGYQEWYWRX(21x1)KUHXSHMRWCSVNQEWYZLOW(9x6)(3x15)QXH(130x8)(123x9)(1x6)U(21x11)RDSMVCJRFJVBOEFDYDXDC(1x12)V(75x15)(16x4)(10x8)HICDCVFPRJ(39x2)(32x11)CKIWOYILGNSPTLCRNBKHDBFYJSNHWTGI(2x13)XB(2104x9)(624x14)(14x5)IXLIPAITEYXDOQ(285x1)(8x4)(3x4)IFG(264x12)(73x11)(11x9)OZPAHCWPRLC(3x12)MER(14x5)NEVCTXSUWSUKUT(4x6)CWWL(12x9)SOZLLIWLBCRQ(120x14)(7x2)QUXKOQH(20x4)NZCDKXCAUOHXCTZVZBGK(36x5)LLSDPUODUHNZZIEILEITMOIFZYKETEQYXSPA(33x14)QZYZLELILPPXJESIKHMRHQIWYRSPTPQZM(12x12)ZBTHPBBSIQML(8x6)(3x8)PQO(18x4)LSRWALFXBPFAYASBCN(304x15)(115x14)(11x5)NDRMIWDFXLS(21x3)WYTPAJFFQRMMGKFKRUFDP(16x14)(5x5)TFIYQ(1x4)Q(42x2)(9x6)MTLUVUICE(21x13)PSAWOZKGEDBMYKQWSTVHE(160x1)(35x15)(2x4)DH(21x14)PRTMTXIFMNVEDPJMBWMQT(110x14)(40x10)SLTGIKWNTMRKMGOZBHKEXUOCNBXXLKXBTRQIRGBT(5x3)SVGWG(15x14)YPDOEQAOPXWLDCW(5x10)FERKL(13x15)JGADNIZJWJPGF(9x2)IUHRKDBZL(650x1)(247x13)(11x15)VSMCRFPEZZT(222x8)(5x13)LZEMC(20x7)(9x3)SCYZNYSNN(1x5)E(27x13)WPGVTWQQPBTMIKAJGLCRUVHMQQU(45x5)(25x5)RGHYBXIOYEWROHSLNZDBIIDVN(1x14)H(2x2)GZ(93x14)(4x3)MALG(14x11)ELNMFSMJELTNUK(30x13)BWYJXQCLFUCEEAJSMKZVNZKRMXLKUS(20x1)AQXNCZFHHRSPKCKGGOMB(17x7)(5x11)NCBRZ(1x5)P(165x11)(158x3)(82x12)(13x5)XTMWESLDNRMHG(2x15)KH(17x7)PQEAVJXDANCUPGSLP(17x9)LCNRNCPBPMLOISKGR(4x7)GFZY(8x9)XRCLELSK(5x11)QMEVO(27x7)(8x1)SOKUTHGS(9x8)UALUVMNQH(7x9)(1x11)D(184x12)(153x2)(68x5)(2x8)ZH(7x15)ZITYBMU(15x7)LTDDFKHHAMXWXXD(4x10)LUPJ(10x11)YJNJASSYRG(46x11)(1x2)W(4x9)IEQJ(3x3)UKM(16x11)WXUSIQCDVSBAXOPS(11x9)IWMFVPPUPUT(3x10)RKS(18x1)(12x1)GQVAPJBBPHGU(2x2)JK(738x15)(300x6)(3x4)CTY(12x1)CHTPRLGESSBU(79x12)(13x9)ENTAQMMKZVDLK(47x2)(18x15)WDSWHJAIVWAYSZLUQB(16x8)AGASECFOQXOHAVHR(2x1)VL(13x12)(8x1)(3x2)CCI(161x7)(15x9)JXSYWJMVFVATSGU(25x7)LGAOGOYZHUOPTGKCGNIRWZBKY(18x3)UWXGRBWDTAIRDYIZCO(78x11)(3x3)ULJ(10x3)ZJSXKZRYMT(3x6)MNO(40x9)STSTBHUEWUJNTURWDQWYMRTICOFAUOUDIDVRMIVH(9x9)JKLBNUNYG(29x9)(7x8)(1x15)L(11x8)BXBZWEMUOAL(6x4)YAXZBQ(364x4)(30x7)(23x13)(7x14)YVIUEGV(5x8)SWFME(24x14)(18x7)GJQANDGGNHGYSJYCUT(259x1)(54x4)(3x6)DJU(3x2)QPA(8x5)PVFACROM(13x3)LAIAUBLOKLWKS(1x8)Z(51x14)(12x13)DPBUJBFBYMSX(10x3)VJBQNZVKMD(3x12)LFA(2x3)AF(64x15)(1x7)K(20x11)NFWRJVILHYUELYJMKQTZ(15x6)WSSBZOMIAJIXXFC(5x8)ROFAC(63x13)(9x7)TDZCJRWCA(21x7)WTIZFLFASCCSEIETQEWHZ(8x1)FIRELLBC(3x13)LFU(25x7)(2x9)XX(12x6)WCNYJNELHJHA(41x9)QQXXYIMOIDKERUPKLOVPQJNEVTRTYMFRWUWACXJDR(15x10)NSTJZRPNHPZWDVX(1580x2)(708x8)(97x2)(5x9)VZIDJ(1x13)N(20x12)(13x13)XATSLQMMKWPXG(47x1)(40x15)(7x8)OTKYINE(6x8)ODYXHZ(5x14)YXWVW(1x1)J(341x4)(162x11)(84x4)(10x13)VXVYXUBYDW(5x12)NSHFA(23x15)BNRDMEPHAGSHSCZHHDAIZUS(20x5)HVDIFWMLBSBVTEHJWQJN(39x13)(7x1)SOEXQCQ(1x6)U(15x9)NMOLXZYAIJYGFRJ(20x8)XUSYHKXNEIDYIYQEAQDA(123x1)(12x11)VUFGERAJPFHP(97x13)(21x5)YBQENCSIXTAGAQBKQBMEC(23x11)NIQFTFDBPBQWNKDFCJESGRW(26x3)SUHBRMUUWBUWDPFXJNVLRNWDOD(3x6)EHV(34x13)(17x7)LNGOEDYMGNMXCFHMQ(6x3)(1x4)D(161x10)(154x8)(46x4)(9x5)BRBRYFXAV(6x10)QSQLSI(5x8)PKLIP(4x14)PVDZ(3x9)XTX(14x12)PCWMKNCXRGBVTE(48x9)(9x4)WZCQSXSHI(1x1)K(14x11)JQCMIVDEYPSEVC(1x13)J(13x5)VNSSQTVMKTCFA(82x8)(75x10)(69x2)(24x5)FSOFLQQRBAHGKMGKJGQVQGBI(22x1)SJIOMAZFFJRSIEEEFAKDAO(6x8)PSJSWQ(641x5)(98x5)(59x7)(52x15)(9x6)HRVKJOZAH(4x6)WLQM(4x5)PBFW(2x6)XI(7x15)KLOPMVW(27x6)ZNPIAJJQXGUIGHBKOKHQBWGBZVZ(156x7)(122x7)(6x6)(1x8)P(104x2)(16x2)MNDFDYXRITXXDLEH(19x14)JPYHCDKPRSGYXPWBSKH(2x8)FN(5x10)NJOBT(32x4)NDHQDDIPCDMCSAEOMXMQHMRQNVWFFJVJ(21x8)QIXUGWWUWITEQMUAOTVKQ(19x3)ERNZJGVAEHQUGONCWDX(7x12)ZHRLNEZ(329x5)(40x2)(1x6)N(28x9)(21x12)OLSBQBJBSWMTAFKRFZRUS(1x1)K(12x1)XPRGMUQACMXM(251x14)(104x3)(8x15)KPNLLXEV(46x11)TMMYMYKCGRANQWGAOEOJUCWLHQJUPTVBHFDQXTGHVMSRFG(4x15)XKHI(4x9)XIEI(11x15)ULUNGCQYIOY(42x5)(3x1)UTG(6x15)QNUTCB(7x13)MYSLDFB(3x10)QFN(8x10)(3x4)PRG(71x11)(14x12)UIRBPBPJBPKAMJ(20x4)MTHYOYWHXSOCJDGNARDD(5x14)JNNIT(8x6)XTKCXYLV(177x5)(170x5)(163x4)(60x7)(18x15)KERNRSOLVJUVYBSXHN(29x4)MRMIQIPELOTMVJLUTDMRGOWYJZBCG(48x5)(11x6)AUULLHIMSFL(12x10)VKHLVSWVDWAG(7x3)GSFEEZG(7x9)FFNIRRF(25x6)WZENYZGOHABPYXYQOWGONUYZR(26x13)GDROCQTRWRMWYJWARKOGOYZRQQOIF(3x7)SQQ(50x1)(44x5)(11x4)UWDYIGQSEPO(3x3)ALC(13x3)NBMTXSGHRHVEW(1x14)I(5x15)IFXHF(202x6)(6x2)(1x5)G(57x10)(22x5)KPHIQKTUBHTXNFCXSLAPYO(5x11)AFRRO(4x7)ZVIV(4x4)VQOX(89x9)(22x1)LYTBUJUAMMOSHUKVVSZKPV(8x8)INDYCWDW(4x12)BMGE(5x1)QKUMN(21x13)RHRVFAOYMEXHQFDWDWZEC(1x15)L(18x11)(12x2)NXCFFANKSYYU";
}
}
}
}