From 168726287b1c56c50b69cfdd5456e10cdacaf257 Mon Sep 17 00:00:00 2001 From: Petr Sykora Date: Tue, 17 Dec 2024 07:17:35 +0100 Subject: [PATCH 1/3] feat: day 17 part 2 --- build.gradle.kts | 7 +- kls_database.db | Bin 348160 -> 0 bytes src/main/kotlin/cz/glubo/adventofcode/Main.kt | 11 + .../cz/glubo/adventofcode/utils/Utils.kt | 4 + .../cz/glubo/adventofcode/y2023/day4/Day4.kt | 3 +- .../glubo/adventofcode/y2024/day17/Day17.kt | 235 ++++++++++++++++++ .../adventofcode/y2024/day17/Day17Test.kt | 119 +++++++++ versions.properties | 18 +- 8 files changed, 389 insertions(+), 8 deletions(-) delete mode 100644 kls_database.db create mode 100644 src/main/kotlin/cz/glubo/adventofcode/y2024/day17/Day17.kt create mode 100644 src/test/kotlin/cz/glubo/adventofcode/y2024/day17/Day17Test.kt diff --git a/build.gradle.kts b/build.gradle.kts index cb249d4..2cf0978 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -2,8 +2,9 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile plugins { kotlin("jvm") - id("com.github.johnrengelman.shadow") + id("com.gradleup.shadow") id("org.jmailen.kotlinter") + id("com.adarshr.test-logger") application } @@ -35,10 +36,6 @@ tasks.test { maxHeapSize = "20g" } -tasks.withType { - kotlinOptions.jvmTarget = "21" -} - tasks.withType { standardInput = System.`in` } diff --git a/kls_database.db b/kls_database.db deleted file mode 100644 index 68fdb7bf72ae7bb2fa8993ac716ad8298d9600ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 348160 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

gezl$IV} zS$vis)p*iWW%)b=OO;qGAthKGpS=xROH<0jVqnquxj_=&M~0!9^qouiKBjAb91eqd zJ6iSIo^j|`hDj5a1^6Zyi2 zOGia_%TlTTD*-PB+&QYAzV>pnM85QX(N5-OVHiqD8C0|mtnpHw&Q8>Ach`2WDVMZU z<7-5%nJsk(x=v*69817F3ROr2D?YSGi8X*T-z4IN_eza%VMrlqrBTP?q)4Zx#IqBd ztHyrR3MwtYYt?89vR_qwIkZ?F6!m1CDh$~Wtu*SG9VS5`ad9MEqZwOkJF@aIZ_-AM z%u{PmA%&#TgQA|!5N1OwjXGJ#@Q4H8qjpbP0`#$L=L)OkD2pP+v$%1%4GYK77kJnV znXGArA#0(PMjgu=2ijmg6{=B9abkjS(WM70#E=aK6Q|;ea_R%edb-kukvBn{GfQ>;SfE$x;(Mw0< zGXbPM$bFc8Ef{2ts{2PgS>e`);a0S|h+|G@^0UqZLhY*Uz*1srRg~SU-71@N(rqy< zI0io;;_0ji8>7`l9BUg3SGMd-Mzz#Xedsk&It!Bo?KJvGuw2w7F@o+t#*>w8eHczh ztBW|+HQ*j6M@5yU^+H7@&#DR$m3%@=tIE(jla;J=_m6nIs*U>ppF4K-JFfib<$rd$ zbm`v3pS}1Y=l}oa{H1fh_UuodEu8s%XO5k2o%*R$&z}5ECw~6KHy{54$Nu@T&&^f< z#=pD!p|6JMQpOftQkq!5e&_aPkO7n5St66)C55nZq5}pzLY*N14>Wfz-%#T`XXLE` z*TB@Z44G@z$OAX<@lGVmKJ?YlU0PY3Nm+?~yG~dQ%o*i{>x}gqbc`4?QYejaxRYx5 zFfEL8QcU{VubvQR21%P}B|msP^I=y-iKiT3A|)=2&n}nyPwe88e&EmVjvk zC-M`iH)25J4#_d#v9E?OQ$Eu%;3h4m8ym^r6BtIaBWev5ql%u(%R-$)G?M}#SS^*R zwErM;EaR3Hy?V~^|b(AfGau_{D>w0QGKwOoHt=N7^ti$C803$LVWDrf! zj%EpJMe=?Z1UVYXCx)S@l%ePDq;xRI$Qj0?SaoctScWE0dWQ!5ekEVFb&!wYJ1 z2NH)z&`f}?Pmkae!;n;3dT{j(XGwU!5p5Q&f$RywJk_UA6jcGELd3w9QPJYyMkDv$ zVJIeL=<&>rTzhvb{oN8IGxa1dsHl7}Y@xnfYI)Fs6gWaD&jKTx8HYB$Iz4Ld9fm&A zk^`%66kGV5xcS(#1?3LFiNHVOOw}t+ln?@7AKb3lIwdo1Ca}?nT^@!YQikT!+=!)S z88Kotz#O4)f-i)j8GUJN+Tf9nWqbaJGfK&PoGlkwiivO%D`?(l<-x^ra#9qSeM7Niypyy!xo?T@V8ORe!CCZ8Ps)!bnG}u2|-!J;f-2Tw;mgqAa-44{m_iYVF zDzKwojiZyJC6Tx|M9=Kf88yAHN=Xx zkN)LO57eYK_qy9VH^=AU$#2(2jcDhF5N5O-g6WgtvfV(F2SXJ&KWbvmIhOID;z>cF z$&*9%+)bpxZZd=0UHfW?7k$sl18)?GKamo^TeLC~wFfyCZSbIC6|(rCy4mXQ7kF~) zUi)f@8Lc+psI!E&x=%o@8CpAvkIlL|KXp04W12Vth>7ypq#kr|q$jnOjjx8(Q3lxT z5vIof$K0I&S(avZVXu8(7~Q+ z_r90!zRZ_ZmA5ks52!mUXYQ?Yzx&X3V=HTM}JmpH#@tru(BZQ$FI zS7>-VYxYL_4)IRWr9AwAkaP40=OHgIw@v4A6wE4xXtBaYQH}~jN(BTQb+`|+n#;3F zG_?^<7EStK3k9MnFeACg!c=~F7~)7dIui$qnmU6`2dGwP%IK_LV3He-$53gtN)fSH zSEWr0bpNQ6d0ZZbOwv(~F?q-0%9m98m9k zA_`8{j2e;H=)DrC!b?%D)%<}cLs$uT>VC6gw!FPM3~8ktIrbxeb!jyj?#iJhz_VOh zYBgY-C{ls5qf#+S?Uo6sfOG5@?#|lw>M+EVjv!v9LP4xbYS;KEO~wVVurPMTo8CmaC*Bl~R~}vw?-6`)^LVH0L}=HB!E3b~u9?alNEV3k zw9_dYcHxD_z&vXul3DObF;hm^s4ig1#pxmHK0rqr)~g(Q zOWJ~nO+mgc&9b3A5zpsv*dQJ8oKQOmweJugC4`}@O7@$~Yd9y;U-KE75ZqD_Z67cv zrr51v7$bf9y(Dc*_vZxZ7-w)WEwn1QQt5sPtf;GoRFXZQuTwQE)4Oh|AnuAYV3KKk zA037@((6YNU$Pk3#)7I&OwDKCuMj8V{Lz8Kuq_}BC6bhcUiSvLvkH82$R6oP8(;vV zofgY>a0OU6g;B?pInJjK+YjdPvO9yRAi`r( zI+a?MNEpBmD}4ergvPA=9Aj+1c#{?C)nWJ`9oe|fk}rPiJe4)Xu#%NvRW`LQF!DmQ zP&U&byU;7yhnL2h&AeV6h8NP2#T#iCR5o8+7=VySLFyrWM9&q9L7HIcqWsAc5DH*v zth)}D>G}WKv8$iI^5d6(?()l*-njVRTs(f^JI?>!bN}Gn%Gn=0^V4Teo&K&0`@+iA6kA~B9F{}(jg6HOYSqx`~%jv++{MP~ph6(qC!fDzAbw~b+l1s!qdvFVbWYY@^3euM_Cp1j0{ssm42^m3B@JOG2LQkELNwGoMFU zvuB@UvSvGV$6}3%#7Y&5w91#D5zTx{j52T6)(BkEdcZL6?2VOSnE4z@F0$UH1bH36 zGF@#8q#acmYq4e%pU?)CDp7SHXUi*qoMw}40AS_pu)8zTv-_l5O}c8AhR+N8NVb~U zUnlICAKLp?Ic61jKRrm9694CN$jhjJXw$Kls}w!Kp09Cso6M$O8HSP1V;F0@x?`HM z2ah2jM$NG^$o=iqh=qX(FjP z^rM+Uv6k9Xw5BaA1ioj*)BOTZt0jeDxcD5&;y3NLOh3s%rQ8lhVBQJ6zGI7?ki8um zJ@}vlS{(Ew+RdGF^G?*$3UwxpstpJMD`b61|Z{M#=5;-&Aq_+MVUeBs*pzj?lX?ms(s;_US^f9uRQo&E!-{_Ux+ zocx0)e*VN0$G`E|tsFIgW5@1&aY#Vt-47o;t(UZ~4yYIRH$xd?>V5~g+q)ZOrFu zkK=X=rNJ)_Y4`klcuVnE8i|VQ-bJkixlW0L20DGi67nIZKFNw|cbwE7?Xi-#)EtJ~ zPYyMagG@TGv31@{MzdyF0eyC~QQ9OU;+ zGHxHuPG5s))DdRfE7oYq>ShqGdd+poXNl+xBy0nX=>{{+ z2-5pL%1$O=@yTULNa@+=1H;e-%0Z9{55LYk+x^bnUhkbk{Irt(D9_`wQ7_Q@Zs|~C zVhaXj1UHUg0xUc_pxO}SC~#NWm6>ZJACGI3!TP{3>~sz}GHX~%`c2F$mT_4XvoG?H zR(FF%r3ZdEgyb9_oS1h-7S~QA3*($akE{%tilVG%PTiUQ8JrLf0bYvgwsxd%g4#UZ zif-ke$jY;~88$hG9$BdwI_VCC^wC-nzjdELi+N97l}W!$*I9xWb}kjnxSg30Z_}7H zlQDZ@7^XNmzQ_m9vw9(8AhznA!lvSxQFL%WiE|&2{K0gfS zn=c&vi`*})m4pixRg8G_0&5Bi-WYC;4jG72*g`s07t7`!B9wv`_$$5Af&xso0vDVPH+GrA2%i`0C+^ggO#Ty0Ww2R~r{5M7^DhhPDJGIP}$!4`!qJCl+ zjyQ)rYO%YQ;j83nV^IcC-FhK9iCP5XH3IOM(vZsu)_JSe3L8F zK;GRAj@2Ye{rZBn0I}&RZ>UGgse%BHe-k7eGWEf40S?SObixx(B8{<(^Z!%Fe#^0|FJ1Xfmw)f2 zzkcc5#ZO;&^ZXyx{eR!tA3gK`p1FSd=T85IQ$Ka;gD3Bv_}LSs#J{UY^|3K25g1VmSpA#=x+IC|lZC9Y7L|^4-D3#mUG$GYlD= z9A}dKUTYlj*1FzoTBWJNt!W=e?NC*N6rNSJU+t+PD%`3kf8sb^$iFs+?leRbVAK{;zet=bf4OzF`R3eCpsYI`;H;+JvsRZntmt zlb=iTE#m6V4@0x&slyA3zMan! zD5ybdA~4{f6{sQ|6p;`J=d7&T)vdR71(nRRv%~Kd%oB$ajLBQ*(($i`MJLH^8q%E_ z2kJJn9ETI-MxUwRwB8z-SX`Eba&;J9EjfKdSmLBP~<>H>ao$8RIv#CRKmzzTf27+2f!Vt4BJ;BNosifY&c-E2&iab{kFlP2u;Tdin6jNhZh_hfG=? z^IHktG(-b|Y}{#xa-v>TLP;>U=u7v@Y#|-E^iuV%;bIr7!I=?B>)GX9Z-tl3V}2{~ zIMGO@%C9(2KFF~Rhql$!hF2bd8ui__LQ$o(r)#qJagw+4`Qfkk7&$)MgG{c@x}oi? zZT4nUO9B)=f4Emrixn&}a49ln)Jy7i`FcMb)+!mn$I`ztF_mxzF@TrZ0nw%wv5SF{7-m zO%y}Odx^cJii0Hs3Z&D1k^b*M&JXtkCi}ogaHECK<1<69Gw+^!j4vY|g_Z}5m0GBz z(Hp@wC@Rm!Sr-ik-CW6=q+fNv9yyPBle8+(b> ziluXa+~i0E!eArYj$yuSrX@am?o%=t9i(0JYWMxJ)9cGa9yR|Sn!Rx<3apLu8Ra-G z!KPCSTbSFE8W>4#nx^VYlq~|JwfLRvYK6z+xLtOtrTu^U|NSd}=gJo^fBn*5zI5W^ zXD-}3{}<1nJom$A|Ch7Rof)0}m!}7(e&Xb>p8U2GfBM9SkN>t~zi@290pQ*I>%=bFO3 zZhGa){L1V@-g|QRrT`21CgXzxRNIqi`r2(C%7A_FP)dIiauyN*1`db`A+Nb7z~n1= zdKk(*c~1KKjGV$wGHzX_QT7SUJ2H9r`(agYQK|#!+b()-ULqAbL_E7=#8)cQ>lQ}s zeZ!FH$#K3)x@b#Y>nu3V;jF4uOySXp|J^74$%@bWM;cXBW(W3cv#tH0iU`}Vb!M6K$bJN;>hIP73nGzN>>EfnNK z)re3D251)qInMU*AT=)bo4c;hMEl8MDDLE_peC<2?ahamjs=FWxMgSdV_K!Ftd_A1 z3y3U=(1wobkq(SQH3%LamEEOLV$W`;2`kOm8yBt@Xk4GX?{6N`+IjbUzV|(C<<4)P z{hPMlxz*WNH{;jYj4Z^BsF+CA>L1}-l=Z^dsZbLG{;q>v;R3=Dwzw6}Z@jYiZrP_e zKMc*CoK=DA?OWY&nd{F(oG~ca;tTFvW%Zvm z?L$H*XH|bEhS?A4$VEg_wGJ&kok0r@N-yr8zJoL90KJATp#zY!XSFkrC{bvhhZTxB zhZ~miOabi+?ACHe*4O7ju}U#tzd?Z*DqFADNnPWxxGStEC`P4tbr|M0?SoIiIf^Bw z2}7H~U?sfSw~}d-{j-!Mu&OA1-6YHEckLWjA$1IxcM2g$^E5(W^?A1Mz8a#Xw3t19 zau}vIIX>=#M%+g0H_M!;Kr)noLP!}*iyH$1vQI>%%2_J1_l4(AB2LEk#4t>3a(vtg zKsv=Y@`RJr00XtjI_LqSk95=ytCawCQgNzK-EA_T;zPydd52`4UX?`g+AwTse(2zD zc=;)AXStpwW3yj`p?ot=J~j2Lp0++Q9YR5oF?2aZbX53sUFqGjr{UsD3l93l;H5{O zg}X#1=PuLm!=dJ}hOfs#I|JmD`Y2VkfT0qpbZ%1+D7S4s>Ki9%+UzAS z`HQzU!5e0?r_!yo(K6tA?EaznN?xj>twSRetyBxb^x`NrFP6=2ymBMCPj>!%X2=2O z@jgNzJz-WU3L%5T!l_D%#e@H<9&ocs)iqejz=IXz{i{s z6v85b^l_I-8?#!I^RfxrZ$hRMDgBbq4?Di(97#^BquUbPEeuh3zT1PfU`mI~B;BSW zzi8vCjB38KNzon@Ak=`;5NwJ>gM$C`s+HubWJ;VLhIh^(1_N=$%dqJ18C} zh-z2roFxJsYb7+4t!6fubYz|yh9yoV#~Sy*R(O;K`q3~$aVAC1fkm27ck=Y3B^jk5 z{zxg(@nzmf+t}D`ixW$kfsGKW4j z3QeCcAN;jFN{Dc4&_g({7Crb4sS~}4Zb$>t^CB_l=f}e|DMKKRdNQGYW;C z_g1;;ZuI)A0~LkN-D`4t`zy=2w3?uELP4esiHnyAOGlO?Borx&sv;Q2wqtwry{1>C z2lR#a`s64idfr>*>Hz_kYp8o6m&i%BsmrXl%fv_fo6&6uk|#U{&A5dClehW&D3p0} zKqZs6nHGm`l;QiF{*!<0s^eNko1~C6<7rCJjS4|*m3E>Hfu(VZBtuvS919l3p6l&O zDH`_WQK<6dtjbIafBQ!nr%M3SZcPRw6Gk^6;~fSSwxp1_VL=#Z&z7>SL(twRUBB?M zpC5%L&rywOL~DbpaEwtGY{FJm$V)%~H9*+8lH!Bw5QlbD-TPh|ZSv+nG73eWPapg{ zj#Y7L?R|ZF`;LilXX7?xd7 zP19bx=1@Mp(2+7OOyc|aC=_^dDjV$|U(_nZ=iFFFo1oDTJw-1HNU>INMn@?n)5vre zB25cLpTV#u@g+r$^umR={gF|a1!;YLzd5U~N) zls=O8Au&kfoQ~srFv)q8arE(oJ4rq29-!o!Xvn!hUK)UHj7AQ5j4ZH=Sr0D8xA@h3 zWOU+a$I)q*{9=ozGRg-HJNkv_C)UR@KU@X4VBZzH&N9{AaVF#V;wY?fzUQ#Nm+tzS zZzug?ss*QvFu2v-l7c2ir~onG&pFcZ3|%AOPJy>7sZm+zhk+70p+NqWy>20MtEUHJ*v&G}!>`CK>kOpycJPFja z!tTFg<&po6>0A*Be*bJ-Q#PAVCNp!k(t{g4V?+|ucvoYJbG6GA_|G)Lv)$hUozj*ojr9XA? zmoJtt+&TZ}&;7e|-*om5pFM#A@K;X1cxrs|pP&5li9dPbL&t~5{@JnL`ryO;{J*_- zX%qrYIfy`+sgfLEuA%rBl7E!728ohj>ILO7{4o`Vco@qblII4DFkSSRb;ml%CFb7D zKjO(zs4l&?7qKLskd>xBAHtk*epgYBlX56CRx7x_;rXXY*XTA)-OwtCfEG{imq($k zloK#BJ*q4ZOmh&Y3=GwHfLG~wS(H?_wQPJ}9XwknXe8u$V9AudItt~a7v9rHz9%61 zH7J6J8a*gTV?%zys+gFv+Fns@+7f+&+-M1CE7OSLq9ml}N1=<9?|^hG%&(!zuZ0ey z$+hrjaFc>Eq78_T6!bnHsWNBjj!&vd_Y(t}YcqFA5)#PTix*qI7yEA?8a*${R<40t zh-%kgWc5}Nh1=D2>%sLCwA8x9(F^2R#U4*PsOD%wbsM&S*ToTKGKL=*h2BvP>gw!< z@lLxtw@?2B*-ZOds*n}`nvtPYuC&YZo)YXzp2m2h%KA!(Fv zS4qZgpU4_f3+ym|Mk?sD0InAm06}2bN2(v&0Cle9c%YPuSJQW!+$utIaT45zMj>1D z9$xA`!9^>C$GScsZ#4}ayBxc9CR_3cLiDlav2ODb(N&LMGHng!I{aLn)A;XP@cN zLrOhf<=*!v@VHMB`8SQ&?BvCnPt%-7nlbbcBxO{123W-ddnJQ6JG^RlMbWsgsIB5D zeN=9$4IUJ^`z*|v`Y2p?9>>@xPkiJz(tJ zXFB$rcOJ{wI}R5DWo3$VXgD!fg;B%Of?Y0IX}W0%O=}As@j;Qh&#ti#H=f5a_VEPW zTH8_7?xFNYs)Vit!O5;v%fC2}6UI~&BIEFoCrHNr*-<$1994tPVZs4KYG3Zy{UkPe zhc#Kh-jb~k0SU{6jGdB7Rbyqb-AQaEogSYUh5gQV9(+-Gly+xeo|4U`%Jq+oNef@L zN4nlgMES2rnKAW3ZHHFEt_WSbFbkd;h4W61uHB;ssz&4ZhW2mH@~Y6`OoVLE8!dr- ztaJ5BN=|0T;!w^YS)Uq(+0GF)j+5SYpD0?a!ZghTc3D&+u`Yy`xgMkH4U8(lTi?dL z7-3wT9n19m|C^%!|1(!sF8|o2e|YKh7k~eSU%c?z`LELeD4zZLnZI*p_4I#u>Ss@V z?BtJ}_@^hnbo{?Ke)`yNnxF8O|8(!AQAjZ5s4CuQ-)wJgw-cQ9)<*jd}NUkg!7HY7V>`+yF;o9&C-=M`*g9SI)Omkdyk~sn$G+eMj_6Wqbe8^>c;wd ze{FlKd;RY9Sq1E7h{0{IOzUBxP$SESXHt!^WWz)&*OLR&gVARVjE!WA9-%^p)>dKR z>Xr2BWDR*{6iQ7w=DqxK2V+hWajPAN;MJ{m`$i%Dv9fmSPM{`YNVTi6*gK9JReEJr zJa@gKVoPnSEaR#GmtdMjYisAi%s4(h3c;ovC%C&?t6O(A1=Zgs1$L(&B8~wpk6M)m zziNu=02#W9%)VXfwh1Cxi5vQY7BrH8ZLs&cm2KxrDTgbwGyUHCMxoi1qb~U1;M5AR zkfn27{+pd1eTNWhErN8yMCcpfOmcOOMQvAb(^ndDO*vla9II=bWXyJ*Q zBzIYO&z~HHh|_l+S;Uepv$2B{fSg3k11N!_M&y$r7908_^pVPg?gJy9j%^4z9mUu- zjjfk&Jt@WhAC?``UFnOe5q&@OG0P@0KMFXM!hVq^ciA^u)f0EX8l5BAb zi(aq}HCNkScuUaEj?x!++XEv`#`e`w2tIxPq0WM&wVqB}sX;4x=bHb-(;e*Wy>v@a zneaoTVCoNb`)_}5pa~pc@2vg!D3qXbq89e~&NA`#anVDr5GNA(-v@;OSw!=!VW=tO zC<|8@iU3mX`B>-iPRBJQp^ji&(+R-d1Z1`!Qqoil5W(no12_UKNV?K7CWTRN?-S?V z8T;{3Xhj{txTf*qGda?;J`d2W8ao9tik}K)(7;VqJB$MW|3>Kb?pg$saZPTLjB8;O zN>SZIov+jUBb~9WdYRM;ARKyf*&m<|abi^89Uxn(WXvTYTbBfy-et)``{F1(opLtf z_nEQ_A@@Kl6dj1yXi=gSHCxbNR9G6Z5HRO{DnQ!+2ZLGKmtA3&-CO=?#zGSVP#=3XvzBmeNrz08PY0P#ih6H`2 zMzqV86C&*mI%)3GFiQ9QO%@yq1T~VgV;MGysGUaFq##mkprLMu+ z*7eovQl9qo7#C&u0#r5uM<_aK7VLOijeZz!+OwK6lup@MS6@r5e0rG^$4>SBg;Cfo zx_J1L!zN>)_f>FzG{7Si+o zpFMW<%g+CwxP1T8zq<6*i~r-r>V+RY|39C9>D=!)`?t@&eCCHw|IO1coZ3G5mrs7^ z#Q6BXIsV?Dm+bR!1^05vziA#}tE|)nbWiE{(_w>y4u~Eow4T#$%MQ*dJlSBH{J{>*{$vN+d%m7uND7J zhb~A9`bmKJKyoF_3vE_eP{fE1g%Iom4_xo;vdpku9EBd&hx6?rOG7HH5>(d4qD-ve z3nA&dpa>trEM*WV5TlS;hAHX|6g1N3aQIEJML!vEPM8ASuK1xKYSz z6uJ)QdQ;t4u`3YoCEiLt$W2 zrOZ;HW=G-LEuX2YCfV`uYjlgv&*0f8XyU<9=L|~fyp%b+M^b`I)18+_l(mj7*qC!s zSm?-U34iyM6&2pz{lZla9dp#Y;uojuoSY6Hdrinhq0D!8Eu~?nvmSqW=>It z&#!E}+tu6Yt9dVLloWUxpJVT0OMooU6=8pNltD030ydkR@TxL0T${7q282CnNgYh@jOG z28qAI^g^Ob)-oLIxOz$~gS>%F)KJ9h_JXj%;kY;06QqliAgd!HReA6XL1AmZ!((}M zvp*mLkegiG3Y;vr2RBVH20#UT#U7IE) zK5Z@1r{sxTnGNaJj>3HDrGtOkdqPTznbVQt-9hz`gb@2!dJRed#H;;Mv4tWStRJFI z=!DIJN@{JHfqMTaY?W3HA*wdS%UiRdLbzyD`|T1x+kOogo9awaU4nWG)I+rAaoKuK zX|u4Bi?gHk{!ut4<%{d)4BI;UVI_TuHMtPbp7SBH8kB#lYtK{KDFLw4@`e6l_(@8g zOjxy$y;fkZO(xb;qi+^hCD(Y(Zduq`A5?Fw?EEpgdqEGI*Az+ZGL&@4x7ggQ#`Y7n z)V{($9J?aGu8T9FT^)r*QjU_uEcFdNu($Ab+i$Bw5&)1njjuQLt5AN3Lp_X>)P6Tj0J6`4}_ zr@;aXbs?*XetPWR^TJb{|DQVcW5=$3>B@h4`4=x&Fa5rY|MuedUif1dPMrVVb3b|Z zSI?Ht^iKc1)AdtdKl%4gzIft4JpOaX>;C75{hxcUj6#zt#|b9sz(=vLe|x9i%PV&xz}5Fkqy&U==^%G7VC4N5B9<+w5oDe zoo+l*xIBaD&)EmCAp@xF8|^hL!3@gr+MNbMr3Tk)pKz1!_QRvluF6Rxnu*f&wtKU7 zeCEec+E9g1-$ug@jWp*!hIcCRS_$<&S2L#d3^mD8s7e*)SIYZ>tQ$${i=z;#%30uE z$}nXZ7p%xyhU!);L~^9Yhyd#ZsBtSPaZn+<1UAn-9d6VENM%BmnSuA5by!u!`@uJ_%UsHm0xj`d;FHr?WH#H(0ls?I_M)vtph*sq&*T=3iRV941X!$fa1}a;H=s%Y?3|TcboqZ5|HJ7sWLH2{I zH+#x7+GI>mjfhiy?ef95?TB)%(8bg>#_*HB3jXV}p>S`QX(W%TymYT?ztJ_@a=vyb^`wE zY$u5PP)AAxUO=mkUB!J5PfwMacNc56WHFmwyRhe_`#^5Q7erw(`J-7jWypd57~NrGgxQL8$J z5FaDQW2X2n!x^oPxw9nZWG*~E3UR6&YgwdT`|NCsu}&vK4@(xC4qY7^CRjU-9&dAO zA}7k0rA&(jypY=ad~oOc@5`fblghC_93;wQ3Us=Nq?Cjrg$6g!Y$ogmxgM2xhza7g zNN(Jgw84D)1yrRRp1`N#ZF9$yOF) zORH>!Q8-NH!0OB@%=6~@&hc#it7HVDnP$Tkg9-vyS%m}53l$*a7OKDWG9<7?>fWiQ z>9lmcc$cKNmTtj?Q8-Q=dB|E?N;2V(%bC2bD~?@^GQ?{vyo&%1Df}sLHy~4U*qHGS@sJ#xl8gv6-MDmb>tyO zvK>XZ#sE9TnSlH}-{D@k`amG+Zo$gc&5iE9qntE?Bjoh_|0~C?{^l!x9{>NhUiu4{ zRxkeU3%_#Vb@>0kdhWTiqci{VOy%_G)Gwa;1`dG#{fVcK|Mp|Qa@fcJ$8^7YSH~d@ z^+LV{Z@SfW-zFIN_8_f;N3p0{a3t>q2cf9dtP}&Y48Kf5lS_+N0*KKHOJDrB*>y>= zD7DjjavUm9Ie;OVeQg%fCP|g8-g;8PLYL%&4m8Uk0dlT~975z1fU504*|i5(B2Va1 zh)JTFUYZH)Q{#|-%F+H_9$2(0;rq9wNjM$pxPhE8<*-eZLc2l3vq`Op>|2AKmwJb; z93MrLw^@V>_sE30G7bf(uO7;4H4vfFI{m9w!VzQ|tvA>$w?oAouPqGbi;92@D5)+1 zf5%c`b#9VMjkmnyHkp85ACrX2bB0(lwh5jfdG7>v_6eP59Ww*u5~v5=n!4ta;}C&n z-DdeLlp^U+ZT%$l2i`FA5HF2GD=J5s^I;E>RQl5yVlC_Tp{=L}RGD>GanboZ)8%*e zm6nq`DQk?@I(q|8O8&`Bl9l<{QHVx;_E4rsIzZ0ILZ7PWTO`8RRmQ{4 zq^wW}R=`EIVT`Fl37K7owoj{)i8qJh!`k_B(y*Q%h1OG!qfB~kA5z$uVw;uWU{Msa0Ok1Cy9);-BkK}u& z(}G;*#>VFDHyLdRG3HP?@hzCbv+u0mMVgxt(g?zUwBafR9k`4@&iN}a-V|6U%~D@0 z@;0ef_q$Efe_3Rw)kYx@wegr90L-YTbjMv$SEQVX#xOO3Hc~Xh#R4<%G>Bslet=|U zeQ^}#PdQ2*F+XMoEq%P`)3uiSQ?XAMr^>$BxHOOcP&LIfNw*#I}3Ii?`ZeE;v zEVz31pCtYADuW1Ma%qWKGO6qGNM$6qZmqAe!;AcLkTM@A@*u2K5UWRHqKB ztb(j>M3RoVvfl4NmC#Wf7jQ6-D%RQ*RsHNJ%%F1Y>T~vFufN^D3Cn7{2GyHbt;xT4 zdgo*eyg;K9W|uhM`dJVeWuRa{4Inqe*9aVav7EhB6?skt4_~MpY4ia?w0CRul5M8l zqKWBGwN{%t54;d50EBuzBM?p&&-v4(AufC!pBjZJ)X{~S@KGz8Z?d@oMjt>{*cjuV z;dp|&`Z$axG%PLjU7@;kA=GC_T%nHe#Yd<-(m11AC5gC2hNKG2a@a}_-KcLg0BypT zVu!dms^-}TTe{$iMFMQ$rpE&owL=1-jdC#OGl>ibUq z=!u^?{!7PS@jpKBf9}0LreKu!z>_k=ceMUjI~yASR0&;tC4Q#rrpCCLW~?FpZ)gVc zTIQQ-BYlUS3iT0^LBTcFIi-*Q+M%=V5WMewKx*A*VbZn6A$IiE!MEthd-FVmCUx6B zOmc$iBwJS~8EEU04X=b)#NDqEh+Be_`wd3=5Xp4>&M~EVNbI6Tlw6WNYcAk zANK=Q;}oH44l&6eMp-}nVpMf?^n69AnRHU&q8>Wik_SrO%;(0TnRHYSvioq6elnVQ z&JR*V-6kpxat-YYM{}eVvK+JqoQgcj!dqFm)3UGS)8mj%%5g$^q_1V+ub+J=q?2rx zk(%>210HC>)iO3A;;$CjDVNlsDquo`hdxO1CO$i+p!Dv=Bbri+50HKyYLO^l4PX(K zGbyPAxq;IO?G9q9L4-t!>(nSdApX5y#%tqHS^A;J_!!{X;RsIbjL@8VE1@8LIJnEQ zrt6?=BjL+QBIIF@k-UXZjYE4WUy`_i0>8c4?uPhGXS4lgzmWWMCG-14p_&R!Nr!`- z8Egq_9N{aZ@Hg)%TspRN`wd0)U?}gs0eD$JI3ff4;+P84yEzUkG2^eVb;2EXyT9t_ z5{15bKh0uJt!P%VvM|O<7O+=d_6tE!S27F$yG}0~kRw z95i&`He0Z^@$_P8U~XvsN9 z^DHUpd=aqVyh5bEu7s^47H${RG-nT&UY!Z?rE!=f<)~OcU<9+1AdNFL_!ayZ3B$cH zRDoYoux81nL0|#*4K_+m?U$W6Gq=bD`@}fxlJb-Te{hw0(l&>rEp?Qw+5DYO%u}`IW(}&#(jtH(DirC%IK#RsnSD=;!zbwo!YZPWhC3d`Bu*7RfM%cSlqwEf zI06|KTp2J=k=NHf56e~4u+ASxcR;!kblI zMnb>8>mELVoqHs~etaCRNI4Z;rhSpOwn9&iMqB?@yRh@qZ23#zt3Fv!1qKbekv>ml z#XiC?cN{8Nbu~O-6^VXp*VUqRbrNTJ9KJ|v2jAFds1RG@?X5s?7}q7gO9nVdb9x9JMi)Uaa?fk zm2n8@eC6Q7@9S87bG_X&J5~ql{kLzmH*XeZKO|aZE7!Mgtpl0XE${{6pB2KNZ>`a@VTQ-Y^j`B@Sg+z1$!u8}hj>nop7n#nrDL(8d(CfS7B4`E z3=ej#Rt(iIrUWp8RKKDw5=>L)A!WB-WghSR9@&6P<51AKb|mAwaVIAIPRI)7SOpMH zYUqgCmXDC4<^oF5f{3pL1>hCvc^-23YD*)NyDSDB5;{i{baJXrQ02+IDBIg9msyT+ z;}c6xUPj>vf_23f)-TB*;1TT#dU}^^(3Np$>D)Y$k>2XRahDQbe>OXsM9a#~|4de~ zUzOsawa6Bhdf);?Yt$4ii0OJ8ioY5XQ_-STEJ6s`nKk zTkwxsFL;cSLU_I?9_=3I`Hixne|AiUC(lXv;cLgW!L1c7*0r1c?dzKxcduQaje0}p zjjc?*Ua^A6dAb~L6(m}T*en%Oa)`|`pwWEPV;R|VyX<2$#xEVk8;HMm>+T)tZ+CO; z&i3p9B0I7{)?^?sQ6vCRYaA&Ya=LZiQq=pD_09do2guwg8+vIRaz2N?u0-f>t=(Ls z9viISWL@cttkNo5!b7jTiULrPysOal;C(gkfvF|#11PlFbkE);8}xJIu;TgrQOx*R zu$(_=m-J|~g;qf~{2`FSe5#4_fu=IZB0HzvJlJIA&g_ey8izkmj{3sG=l0rshmo@r zZ!)av2sAsP;KI5Dcdc*p)+f+(L`w|^tn8q=L3TV#<8bUb^huD6$eU|hYXRJuP6A1W zv`&bMf{dnv7+Z#%4q_@j`_ceoolNy$_vSLaOE&1*I9z>l;tcjrlWweSwx!eH6Pp2_ zn1x+Jvay}0lWFet)c(8DR91CXJIYzH)u5C^fbR_R;(fA#zcvosdv28t|CMo=0v-D97~gvT*2ays z`H<5d1)fwbhVNqKQK6V@!FFUNq6qn;Z_#75IS+g17K`DAOVFW*o6PN7Yg^q}xXL$t zf_mx=z#FLYebVc7=1)MY5+($vk}fQx)p@u(x5$S3^f;$=P?Y*~tU{bPZoF0aj`R=T zll&o$qLl*2H>YdqG8IA+Qub*jNk;EM%OeBJxs)`5>e#}y$uTxXDO?|aXhpmxzH1y z_9C_LTi_bS5ZB@rM_W+633f|L<`74(mrGkRblJvT_C{Xno-X8T%`tRw32QWzOA?UZ99JmjH6z-8P=%DJlWocE=VKnqq!J{zm{$i zn|LsN82$3X#pYaGoD>Z{I1V+H9Hb}(>{M)o^i29gg7OT7kXTeyURlP{*o9&*k+}@r zG|^dCXxk&vBA7^y6+WuFu1-GZwEXpnacHW1=fQ_=Z*19u_&h}Jd}^*i-i{2@W&vr* zM~iEql64tuNL2tdXBy$Idt?HAc^o1uIhcfd1C{Vlk-VD-Wo;#xv2-+5&{?Us6fWq6 z5MPI6g~38~RBho;h5}n^tH*SAMswF~GSPl|9MUT}+P0!i`fB}kYNp$p?-UmPM6mJB zMx<(zwxqpfjwL2Cs3NhN)S@utNQCiF=Fvja4X8bI5)kARy^0UMoA`HJWnLS2i*I9S~aT*slb+Hn#CtA zcRW>iUSc-(GyN1jJ^iuPlIMw=?R`J(G3%Cha~x_PGQA$~eimmOlO0J8E@?cOvJ-XX zKBSgo8RQ+$v|{MXz}YT&qW#`~c19G;e%X>SDfA`8+L6RHZeI4$d3?qEW~Tw*^)(Msz%(3Wi%Pm0R=8C z#x_ABT?Go7ayxpJ7zV(wd*hzoDI54F#$hFsZv$TV3-kj^llz9MIxQBCd>k-Pg4dRFsk7`hUO$gYxm$O z9XCU`5O#;xK&`qf@abK$0k_6sG?N3l`jCLP`nUXTZ%zZAZoy3ng94z#Y0&DCB)LVw zpT}7_G~UVsIy>IOo=KA4YZ`WD2mZu3JZBDnUfc6$BMtvVZAWDS{2=c#d6&QuPbDm<`sIjfZDLE}Tk(LX>i#7eCaQ3bYeG@7jG zN!sY()H1cSOjUJt9PTnXoQ574TH4tRv~PQ-%wB6MLO9N#lK~E?MMxPDqfz&iuI-B$ zr(vSEtDckIBU{mVX&gQ?IUov;5HZEr*{CX0&`+0A5g}<&Ff(1N0DjmKuqfRM+a$mk zT9>=xb%$)Qjd7UF98E82?rk!QS^bo1c%u#`gK1uep^W*ewJZ5;s9>|ofj{o-E(XtU zlnFh~|4$wJqsOk+ul&x-f8x?FUwZZ8@3`>u7s}^-axC{w4qO$Niss&yU}Opvtad(X1|Vqq`2bN2IDz;J}Aa#&y0f!*N)n zo&xI=St)=tqzWC5QXh>nb18gYT)I$NdwLv#Dvg7$0845?nZIflCGQ?(bNY_HAz!-K zNMxe>C@bhE64mKQby_=hAI~=pGD#wzABUn!4kG76f(yb6E6i3?@lT(sp&Z&{dZXR# zC`ln62B`x)7%UZ~8L+n$6(7;1mo5z9hsL3;La!!|Cd~t0^fbz@2nhWuP_k-~Y^fu# z8zKEj5y7F6l?$sw$b-F6CS&;Vamc9T#3JnzT|(5I&O?>S9zq;hMJb_8g-B7S5X+9{tt)KSdFDgAJ2QyRkNAR6l6*cE%GEHMf=^x zLKL*k017`p4(E{^>yTuWGC5zKtu0lO8LMqxMF|vkaKEapE?9^O%I#9SnOA}IALxky zM!2^y{|+4l2(78-<<2pDD_JhnC_gw3Gm?Cz)`ch+{*VSJ-=JrpHwxzz-Di^8P=|=7 zK!!xSD5GiNIcyiQ*Jfh-InCr$^!G7)sc+k_bAIYa@Wva5yDl5CZgy z?5!4Q3!2UB6Ba{EZ;^@g*NnrM zoF$e$JWAMd(}Tnhm|d5N>3!pHANkaKk13=lvq1rkwk$GjY*B!J^mOP^_%#r#E@x2s z8a2viP{KRcWrF(DI6Ovjz#a_L&X=1MeB)TN^P7ZP5x=PdBsU6`9`#N}tB_MjQu^EI z!afh42vHiPOhMvCadfcv26QUiAo+e@9f!k64hP6tsA?BZ=Shsok1HD;9=20UHRmbh z>5viA7%4JJZlc=K&On^64k)$p0aRPVdi8;@$=K&MaV!fCcC0ra9f!$Cj;_XIP2xUx+QWc{-P`mGDoShwisk`i|j~#<2X!3emK{cGk@LLzhtw2 zO_OZ%ofQto=EC(p|G(M5qJ;BSRvVLdn*qo`MfyK{zWvaU6;b`K6JvVF?XvNI!#I3K z-pL<-vR&?elKADy{Fh3KoBiZ_s}$%=>+=jGn>elm{*e0i%BxZ%IcLk#ieIKERZgE_ z*^QF#E`T#Rk``#o6ULQ>G}Wb$F6?$%AdLX?=IiE^!F}R zE{-nz!i8UV{`a5z)pOr}_Giw%aOUf$f8q42r*5A7^Cy1c#Iwi0`PkPF|M-8eJ`UNF zH*$^W53b$0Ng_H+DFoHq-n<(&j!APCf`9vt+@VCtq@X3!a#o?9i98=7NVxS)x-xK~ z7RS)|=pjdTExm5=G#S{fU~R!c1kI5o~AHC9KR4qy;xCPpo-1Kin{Ig>B><}rnpchBc~E%Pt) z5g%^)LrLd$gjnU9j%fX0hKlEARo|)HD8i!QNdp-E=|5~Pd zSj?}ekZM#JabEYN;zCp;Rvj>m(9I<^67508(R*JeR|asSW-x=wGn3)n;i>UlM$JpG@G-j>BCg2RAoLf7{O7 z(Nk)#1*NobRX?UfsM@2o`@FIj8J4Y(%I4jj~Lz`P1BWqL?t@<^Yl1eRB|lvOG3M|v9*28vHOj6v6TaP#f&V@{@@T?)W{_u9wNOe z{h+(5>0-RbyLZx_Un;n`G}(Qg9*2j@5d>Fi@XDYK0=!==Lv+eJLRCs(jY=Q?BN;6Y z1>n`7)vhfD7ndf%Jvk23l)}Mxk0m3wsc*Zsed~?cJ5_8_p$DOB*%k&Ro)ikY47aUG zT26hh6_SKoN?~?k_LV+2UK7~o4<)c&-^cW|_N5iHI^f$&x=D2!aK#!}0{*ZwHt|h1 zSCq!7#V%f+eYMYx!xH6)f=oYKv?*A82W&KgHhx_PAOVb21p^D53~yUSL#n?w$hbUt z#m|ky3FYX5q+Z9fLmj~O(AE>MRLz_OX0o%q1mHpL@y25@feH2~F`W zai~rf8y~ALMW>U66jmihdjkbqB2vd_7a*M+I&!=?cHba7FF!HnfO2$!CJPTQCR}^s z2{Z}I*q=PkI)368(kF5j9cFsKkoU_1-C2GvkHh8U*+cotZxHmDjba<>E|G+*vEL?c z6FPg+A@0aUf_Ch};Rz6l;EY|A9l6WnurfK+fRfR2m<1BShP3_-Fbk0()l8@!)tDXC zc|*kifMe7wpq&vajN1b09(;rr664s-cJiB*`Qi1(opw?PA$(pPsMi#`hO5g1KnoN3 z4vbNXA8IM&AE_+Dp6z!VxlD7q;k`T#yOMnH-JKv;7eh|o)Ad9&a~d$7j49~Yp@`ez za2bf+W{;h%>Nm$dMvq~4)Xl`3xko12XU1V$@|i;&;AAQ$1HvxYvA+o#TG8xsMp83# z)}VZaX-p(lwG=qOgY1rTXE;;*|KB)v_0E<5?#h#wKX&Pri@)*0A36W4=l_FqfAL)D z?2n)M2WMVBJv{YGr@rmv??3UcPki?Hj~)9PhkyD%lsn#QPC}aG?!m{p*MD=hx7mN| zdi&NI<>=e1cQ$TrNNH|vWRBY@zFXQAhayZ@&L$uNVRP5#!67}86X6fy0i{?WLQDPX z(wl%^#7!33-pxtqmpq2pD~Az#Wg+(BBt%Yf7&IMp+$)8UfWmWW1_6p6Q?ZVLEbr?B zXyN2RNNGw@u&q2`+|#t>W0O!o$)f~(eU(f{$P!)O2rcWdpYCnkrMN(JM;il3r)h#v zI04DQJ+Y&jEH&J$dcWPH5TNP=zD@5InXE~ua@X}HhwGEn>ZM5tpM2lJ=W{@yrgRx% z)_1OBx2@jjuH7lbKeAKWhE`lD75W3*7@Z5rsimY#-b}j%=ffE}7}4@VRIV=Z?cLYg z+gzUn`;kegpX6wjN3gfosDW?wwhHMFD>pWzE;ruVF32*YYU^+&p%1u0bD#s6zzUnu zF-Llp=*#}VVG!_kUA~fDp2YXeB&2KG-Hi zi0;ov)?sd0fUchg7)BsR5MU!HjC={mZH97P9h3>iKn+|`K{1^3T7w@GHO?;ifu$pu zelq1r7=pY9eVd@<>-Hq_6Ek6&%P)5BVnWBebK_6ay)# zVArvrxub8h>o)4!GZDD*B)mb6IO-5}sT9KZRH3YmpQLihV36i)4W7`aZ-(M^(GEmF z>F*nLa+_o_JT*Bk>KxUO-c4n25cAbwlz?TD5}N;{SW{YQ1`TZhGDr?nNtMK21FWdb zp`y_awuzny6>zl&UV^iG_{QVPB(%$uu>HuH!w&9l^|vA(O9F zis;FLsfK(iI0Tw_Pgeu&0GU~-0V@gNI=Lo7N)LA*7>Bh->EO#`oSR@tFxGDrrvFZx zcW`|GItAxVv|cteVKEN*fKWhrj=z1#yl5i8=Ww(0(PS?+_2S}Ws6H?bM~_2}j73@@ zoP8vyfxkgLDFrK?EDkJiH1U;b;%FC2m3tx!f3@g|zcLOBkFOkj%og(gH`n@XI(Cxk zmE_Oq5QcG|-UJ04rK=)c846nB?6KI5N>V8bZd?i*Ovf9QENWs4+@`fWEOZGE?uFpdI!ly<{{Ry@b|4O zxnq20?wCxPH^!Vm-o2J<(k%Q%2Ys;Hw>Q!@UIGpf&WvfGLf~sG>($XgBX_6fR+9#H zxpV@YGKV4cYj1nlW6tkCecTND;Ege3k$)c#ja#rlub4e_Fmu}=qMY@>X)CA}Kn8@U z;W-*gVd(4=)ELOZ7-e@U+xQ ztYP+dKzmZnByAwtEg7s0wKGF~uekg2phLSnnUKYCSdZj5csxRwD`_`*8Z2xKqjN?1 zke{`Vg*9v`z9+4X3Zg8^Vk~FfJ<+Bu&y7(_I{st9*e|`S- zbHC^8|8cf)=0{KeobLbcIr&Q`t0(@W<3E4=lgBy-Ij`UQbrZ@b@18#R6UY7xV&_f#vTg!1g&;1NgHP$Z{DA6>KvTIQ}@)AL2dqpj!>p+19&|y3B zfM-a)l9wi-jgn*YO!6ZGq+PXoqqo++c3bl*=!*+~h&@`7Ue~~(R<~ZSgRr-CI2_B{ zihGDt;ZhMYb41y)*IIa7yD-qtO+qUrXQjUVh`~b7Q1t|szyc(P1Gj`qqbC>~F9&lx ziW>8eYGX;T>AEus1(h7@&h7s8>a{z4&gHhi?LMK1M6qynYn^pMA^GRZTm8=Ujg6af z;=o;#_UIwpla;J$2s^Lg-b0Bi)bpHa^)v?k10HViVgu{qg@Ju>LTx3FP1C_+*5?iM zF!4jc4TR`2GGHB0DQDfD5|IUYgZ$79bPIE^_O-}g^KQf1}fD@HdXeQa=h>;0*d zRQi>u&4hxddR-XSE6@+3UfRQ7CG&&^($&SL2LlI2yt~ZUCHb_Hi;}ojCR|MNz|>}| z!1gxoZOoPyL6Xj?~6IG%0N)|!NYOVWcyNn*}Kv&>7^ zd~NKxKDP1I(!xvs#3UR`a!@A^5^zuz6yKaYP!{OFHL)#V92KN_Dnnnidv#>GXkhPp z;56Xr$Z{viGqRadSLXJ!zbZ4d0sI0)uxSVVl!&-YKa4O{$hlv1!j@cLwp<%@EB)P< zCsT8AWIsOPJ(35qd!T@U+WBz!#!G6=(mniYDi-BBj&*1et9mNj^oz^mO$N3!VJwmd zD3mHa&;6vGy5DTSy*mHJ^t?eLtH4;G%Vf%lNdp4bHNeE2zez!r3yE z2Azy>dBPwhPl3ry2#mJ#@=PprYpT?}_&Ws!ii`M)%$}Y7!1jX&PlOR{(f<5^f+lx@b#ozwEDM!xT}oKn_+V?*lR=0MF2HfLOe? z)$w!#r3#d)>VW4yJF_h*-z^-SxFQTXuqU`PrO(Et@NwcW&7doNvtr zw#X9rDmhSKNz!V;8fx@|?G)c2kzC)IBg(?X(Z~tune4zmI|+M_oKUMr3N;$1asuTZ zDiQRqy46;@3DR$`E$QPw(z>7Q2;qR=cVCbph{l{dLr5*RHy~i#irua(tBij2p^t=Udw9-k5nE7+jO_R*}r>d z_14DLb!5=^=Sn*Bd1=0sfUf|~@+(+`b8ZJ~-R^x;1v^NKLv9G58 z&5d?p;;K{NvGQBcQ(I) zwb~69((O-A!jHGBzY6x zIpI)}+n04obv*sc(%RJEAvzuuq$+bY30Kl)~x8JN)YTv)xJngQRl7`?$;mJHw@^)UI@HENoTYT`h6Xs56;}~wpKFN;ZfCoe3Lq<`x zCIT0SwtyDdw0p7S8Qf&yeY7Uwbn@0?dmr%-G&m?*Xhh+(C;=78xO*${?-ufvgvZoF z=HLHC1l={ZnpY>hPV%S?%qj{&vQ6{Hy}v2(E|iYRDDd=A4wZrh3b+Sz6zcyBWBpgE zf-)dX^F24PC%VDHV1IlPrY3pLD$}~n!{bH1?qK3{A%4TBEEJoS*h9FAm9jQ)2ff4> z0Cm0lmTA1nxV|_E2a_B{fZ0vw%;delDd`B&SVR-2vtH2yGKmKvbX_4i(NWCik|gIv z@Tc^;=WeOU z+Ex2|FOOK0@%+dnd`oiRA7jyb>pC)By66?|^t&5SSvQ>W9kk&+%%g7zSca=-B z&JCqNr{=c{vmXGOHs4(9Vx_IGQD(68HuVVFMJhx{@zz>?HOy$yA^|J|&!Pjv#(}~C z4cy*-x3L7f&BBORCn2bF>);zkp7?`k#nMXqrK54{3{Z#cSAFV~%Po55HV?f6I^YkE zKNBm{PH%<)HzJCHN!pu-i=#s^-~Vb+^#J9L+k$*Ie$C+msz=oz&^u=WP+9!o}i zbrRA#Ip+AmBabc;B`s&Io^R5LH&Iiou(>p=Y2$Z%nSg)~h&&nV=O*NI@^ltr1=+qH z-gw(@ZEW7;EK6#n&+=pT?*Lzv6ssf-mgW-0xjHgqqb#jgSwUOY9aRJ}+Q8zh6{pu3 z)wph9B0oI|VVuUnC-S2PssBb9k0?UmMIkoe)4RnI`9U-{IPs3Wm=tBbzAMP-Y$bw| zcedUbY;GtX++ADmt=%4M6q27HPzM_!=tm4C+|RTSL(s1-p@1?_>(kb945C5NLjop_ zj)c|h`szZvbwKATZnx_uHto2{!mzGR!iXm4Y&}TiHJLcHL7z2wm}@F-bmeg^PKvf~ zJO--+2lGMYL6Ik8U7Un5O^((=d|wZUc)Ai#2O5D;irGV{SD;Z607B7e43#8hLiu{7 zMur^RBO7jdhh?Mu;w0Q^avU)Z6tm)BPdZ1Wxud%n!v8FutOCfImA12I7pKXB0s1(f z91Afg8p24Kx

Wx~4V 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 diff --git a/src/main/kotlin/cz/glubo/adventofcode/Main.kt b/src/main/kotlin/cz/glubo/adventofcode/Main.kt index bc226ee..430b350 100644 --- a/src/main/kotlin/cz/glubo/adventofcode/Main.kt +++ b/src/main/kotlin/cz/glubo/adventofcode/Main.kt @@ -60,6 +60,8 @@ import cz.glubo.adventofcode.y2024.day15.y2024day15part1 import cz.glubo.adventofcode.y2024.day15.y2024day15part2 import cz.glubo.adventofcode.y2024.day16.y2024day16part1 import cz.glubo.adventofcode.y2024.day16.y2024day16part2 +import cz.glubo.adventofcode.y2024.day17.y2024day17part1 +import cz.glubo.adventofcode.y2024.day17.y2024day17part2 import cz.glubo.adventofcode.y2024.day2.y2024day2part1 import cz.glubo.adventofcode.y2024.day2.y2024day2part2 import cz.glubo.adventofcode.y2024.day3.y2024day3part1 @@ -137,6 +139,13 @@ class InputToLongCommand( override suspend fun execute(input: Input) = action(input) } +@Command(mixinStandardHelpOptions = true) +class InputToStringCommand( + private val action: suspend (input: Input) -> String, +) : InputCommand() { + override suspend fun execute(input: Input) = action(input) +} + @Command(mixinStandardHelpOptions = true) class LinesToIntCommand( private val action: suspend (Flow) -> Int, @@ -252,6 +261,8 @@ fun main(args: Array) { "2024day15p2" to InputToLongCommand { y2024day15part2(it) }, "2024day16p1" to InputToLongCommand { y2024day16part1(it) }, "2024day16p2" to InputToLongCommand { y2024day16part2(it) }, + "2024day17p1" to InputToStringCommand { y2024day17part1(it) }, + "2024day17p2" to InputToLongCommand { y2024day17part2(it).toLong() }, ) val cmd = CommandLine(MyHelpCommand()) diff --git a/src/main/kotlin/cz/glubo/adventofcode/utils/Utils.kt b/src/main/kotlin/cz/glubo/adventofcode/utils/Utils.kt index fdabf84..7f78ad9 100644 --- a/src/main/kotlin/cz/glubo/adventofcode/utils/Utils.kt +++ b/src/main/kotlin/cz/glubo/adventofcode/utils/Utils.kt @@ -261,3 +261,7 @@ fun IntRange.split(boundary: Int): Pair = } fun Int?.orMax() = this ?: Int.MAX_VALUE + +fun List.isSame(other: List) = (this.size == other.size) && this.indices.all { + this[it] == other[it] +} diff --git a/src/main/kotlin/cz/glubo/adventofcode/y2023/day4/Day4.kt b/src/main/kotlin/cz/glubo/adventofcode/y2023/day4/Day4.kt index d483df0..f2ae627 100644 --- a/src/main/kotlin/cz/glubo/adventofcode/y2023/day4/Day4.kt +++ b/src/main/kotlin/cz/glubo/adventofcode/y2023/day4/Day4.kt @@ -77,5 +77,6 @@ fun pow2(n: Int): Int = } else if (n == 0) { 1 } else { - (0.. acc * 2 } +// (0.. acc * 2 } + 1.shl(n) } diff --git a/src/main/kotlin/cz/glubo/adventofcode/y2024/day17/Day17.kt b/src/main/kotlin/cz/glubo/adventofcode/y2024/day17/Day17.kt new file mode 100644 index 0000000..d647618 --- /dev/null +++ b/src/main/kotlin/cz/glubo/adventofcode/y2024/day17/Day17.kt @@ -0,0 +1,235 @@ +package cz.glubo.adventofcode.y2024.day17 + +import cz.glubo.adventofcode.utils.input.Input +import cz.glubo.adventofcode.utils.isSame +import cz.glubo.adventofcode.y2024.day17.ParameterType.COMBO +import cz.glubo.adventofcode.y2024.day17.ParameterType.LITERAL +import io.klogging.noCoLogger +import kotlinx.coroutines.flow.toList +import java.math.BigInteger + +val logger = noCoLogger({}.javaClass.toString()) + +enum class ParameterType { + LITERAL, + COMBO, +} + +enum class OPCODE( + val opcode: Int, + val type: ParameterType, +) { + ADV(0, COMBO), + BXL(1, LITERAL), + BST(2, COMBO), + JNZ(3, LITERAL), + BXC(4, LITERAL), + OUT(5, COMBO), + BDV(6, COMBO), + CDV(7, COMBO), +} + +data class State( + var A: BigInteger, + var B: BigInteger, + var C: BigInteger, + var pointer: Int, + var output: String, +) + +typealias Program = List> + +fun combo( + state: State, + param: Int, +): BigInteger = + when (param) { + 0, 1, 2, 3 -> param.toBigInteger() + 4 -> state.A + 5 -> state.B + 6 -> state.C + 7 -> error("reserved") + else -> error("unknow combo value $param") + } + +infix fun String.join(other: String) = + if (this.isNotBlank()) { + "$this,$other" + } else { + other + } + +fun advance( + state: State, + program: Program, +): Boolean { + val op = program.getOrNull((state.pointer / 2).toInt()) + logger.debug { "op $op state $state" } + return when (op?.first) { + OPCODE.ADV -> { + state.A /= pow2(combo(state, op.second)) + state.pointer += 2 + true + } + + OPCODE.BXL -> { + state.B = state.B.xor(op.second.toBigInteger()) + state.pointer += 2 + true + } + + OPCODE.BST -> { + state.B = combo(state, op.second) % 8.toBigInteger() + state.pointer += 2 + true + } + + OPCODE.JNZ -> { + if (state.A == BigInteger.ZERO) { + state.pointer += 2 + true + } else { + state.pointer = op.second + true + } + } + + OPCODE.BXC -> { + state.B = state.B.xor(state.C) + state.pointer += 2 + true + } + + OPCODE.OUT -> { + state.output = state.output join combo(state, op.second).mod(8.toBigInteger()).toString() + state.pointer += 2 + true + } + + OPCODE.BDV -> { + state.B = state.A / pow2(combo(state, op.second)) + state.pointer += 2 + true + } + + OPCODE.CDV -> { + state.C = state.A / pow2(combo(state, op.second)) + state.pointer += 2 + true + } + + null -> { + false + } + } +} + +fun String.parseProgramRaw() = + this + .removePrefix("Program: ") + .split(",") + .map { it.toInt() } + +fun List.toProgram() = this + .chunked(2) + .map { (o, p) -> + OPCODE.entries.first { it.opcode == o } to p + } + +fun String.parseProgram() = + this.parseProgramRaw() + .toProgram() + +suspend fun y2024day17part1(input: Input): String { + logger.info("year 2024 day 17 part 1") + val lines = input.lineFlow().toList() + val a = lines[0].removePrefix("Register A: ").toBigInteger() + val b = lines[1].removePrefix("Register B: ").toBigInteger() + val c = lines[2].removePrefix("Register C: ").toBigInteger() + val program: Program = + lines[4].parseProgram() + + val currentState = + State( + A = a, + B = b, + C = c, + pointer = 0, + output = "", + ) + var i = 0 + while (i < 100) { + val runNext = advance(currentState, program) + if (!runNext) { + return currentState.output + } + i++ + } + return currentState.output +} + +fun run( + program: Program, + a: BigInteger, +): List { + val currentState = + State( + A = a, + B = BigInteger.ZERO, + C = BigInteger.ZERO, + pointer = 0, + output = "", + ) + var i = 0 + while (i < 1000) { + val runNext = advance(currentState, program) + if (!runNext) { + return currentState.output.split(",").map { it.toInt() } + } + i++ + } + return currentState.output.split(",").map { it.toInt() } +} + +fun pow2(n: BigInteger): BigInteger = + if (n < BigInteger.ZERO) { + throw IllegalArgumentException() + } else if (n == BigInteger.ZERO) { + BigInteger.ONE + } else { + BigInteger.ONE.shl(n.toInt()) + } + +suspend fun y2024day17part2(input: Input): BigInteger { + val lines = input.lineFlow().toList() + val wanted = lines[4].parseProgramRaw() + val program: Program = wanted.toProgram() + + fun findMatch(wanted: List): List { + return when (wanted.size) { + 0 -> listOf(BigInteger.ZERO) + else -> { + val smallerACandidates = findMatch(wanted.drop(1)) + + smallerACandidates.flatMap { smallerA -> + (0..7).mapNotNull { i -> + val a = smallerA * 8.toBigInteger() + i.toBigInteger() + val output = run(program, a) + logger.debug { "$smallerA, $a: $output, $wanted}" } + if (wanted.isSame(output)) { + logger.debug { "HIT" } + a + } else { + null + } + } + } + } + } + + } + + val suitableAList = findMatch(wanted) + logger.debug { suitableAList } + return suitableAList.minOrNull() ?: error("not found") +} diff --git a/src/test/kotlin/cz/glubo/adventofcode/y2024/day17/Day17Test.kt b/src/test/kotlin/cz/glubo/adventofcode/y2024/day17/Day17Test.kt new file mode 100644 index 0000000..4ec0942 --- /dev/null +++ b/src/test/kotlin/cz/glubo/adventofcode/y2024/day17/Day17Test.kt @@ -0,0 +1,119 @@ +package cz.glubo.adventofcode.y2024.day17 + +import cz.glubo.adventofcode.utils.input.TestInput +import io.kotest.core.spec.style.StringSpec +import io.kotest.matchers.shouldBe +import io.kotest.matchers.shouldNotBe + +/** + * https://adventofcode.com/2024/day/17 + */ +class Day17Test : + StringSpec({ + + "a" { + val program = + listOf( + OPCODE.BST to 6, + ) + val state = + State( + 0.toBigInteger(), + 0.toBigInteger(), + 9.toBigInteger(), + 0, + "", + ) + val nextState = advance(state, program) + nextState shouldNotBe false + state.B shouldBe 1.toBigInteger() + } + + "a2" { + val program = "1,7".parseProgram() + + val state = + State( + 0.toBigInteger(), + 29.toBigInteger(), + 0.toBigInteger(), + 0, + "", + ) + val nextState = advance(state, program) + nextState shouldNotBe false + state.B shouldBe 26.toBigInteger() + } + "a3" { + val program = "4,0".parseProgram() + + val state = + State( + 0.toBigInteger(), + 2024.toBigInteger(), + 43690.toBigInteger(), + 0, + "", + ) + val nextState = advance(state, program) + nextState shouldNotBe false + state.B shouldBe 44354.toBigInteger() + } + + "day17 example 2 part 1 matches" { + y2024day17part1( + TestInput( + """ + Register A: 10 + Register B: 0 + Register C: 0 + + Program: 5,0,5,1,5,4 + """.trimIndent(), + ), + ) shouldBe "0,1,2" + } + + "day17 example 3 part 1 matches" { + y2024day17part1( + TestInput( + """ + Register A: 2024 + Register B: 0 + Register C: 0 + + Program: 0,1,5,4,3,0 + """.trimIndent(), + ), + ) shouldBe "4,2,5,6,7,7,7,7,3,1,0" + } + + "day17 example part 1 matches" { + y2024day17part1( + TestInput( + """ + Register A: 729 + Register B: 0 + Register C: 0 + + Program: 0,1,5,4,3,0 + """.trimIndent(), + ), + ) shouldBe "4,6,3,5,6,3,5,2,1,0" + } + + "day17 example part 2 matches" { + y2024day17part2( + TestInput( + """ + Register A: 2024 + Register B: 0 + Register C: 0 + + Program: 0,3,5,4,3,0 + """.trimIndent(), + ), + ) shouldBe 117440.toBigInteger() + } + + }) diff --git a/versions.properties b/versions.properties index 3560e39..be6431d 100644 --- a/versions.properties +++ b/versions.properties @@ -7,6 +7,9 @@ #### suppress inspection "SpellCheckingInspection" for whole file #### suppress inspection "UnusedProperty" for whole file +plugin.com.adarshr.test-logger=4.0.0 + + plugin.org.jmailen.kotlinter=4.5.0 ## unused @@ -35,8 +38,19 @@ version.kotest=5.9.1 version.kotlinx.coroutines=1.9.0 -version.kotlin=2.0.20 +version.kotlin=2.0.21 +## # available=2.0.21-RC +## # available=2.0.21 +## # available=2.1.0-Beta1 +## # available=2.1.0-Beta2 +## # available=2.1.0-RC +## # available=2.1.0-RC2 +## # available=2.1.0 version.info.picocli..picocli=4.7.6 -plugin.com.github.johnrengelman.shadow=8.1.1 +plugin.com.gradleup.shadow=8.3.5 +## # available=9.0.0-beta1 +## # available=9.0.0-beta2 +## # available=9.0.0-beta3 +## # available=9.0.0-beta4 From a47e103e7e4456b28ed41a3b4452cf197fc4bfe9 Mon Sep 17 00:00:00 2001 From: Petr Sykora Date: Tue, 17 Dec 2024 16:14:16 +0100 Subject: [PATCH 2/3] fixup! feat: day 17 part 2 --- .../glubo/adventofcode/y2024/day17/Day17.kt | 48 +++++++++---------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/src/main/kotlin/cz/glubo/adventofcode/y2024/day17/Day17.kt b/src/main/kotlin/cz/glubo/adventofcode/y2024/day17/Day17.kt index d647618..801daf6 100644 --- a/src/main/kotlin/cz/glubo/adventofcode/y2024/day17/Day17.kt +++ b/src/main/kotlin/cz/glubo/adventofcode/y2024/day17/Day17.kt @@ -30,9 +30,9 @@ enum class OPCODE( } data class State( - var A: BigInteger, - var B: BigInteger, - var C: BigInteger, + var A: Long, + var B: Long, + var C: Long, var pointer: Int, var output: String, ) @@ -42,9 +42,9 @@ typealias Program = List> fun combo( state: State, param: Int, -): BigInteger = +): Long = when (param) { - 0, 1, 2, 3 -> param.toBigInteger() + 0, 1, 2, 3 -> param.toLong() 4 -> state.A 5 -> state.B 6 -> state.C @@ -73,19 +73,19 @@ fun advance( } OPCODE.BXL -> { - state.B = state.B.xor(op.second.toBigInteger()) + state.B = state.B.xor(op.second.toLong()) state.pointer += 2 true } OPCODE.BST -> { - state.B = combo(state, op.second) % 8.toBigInteger() + state.B = combo(state, op.second) % 8.toLong() state.pointer += 2 true } OPCODE.JNZ -> { - if (state.A == BigInteger.ZERO) { + if (state.A == 0L) { state.pointer += 2 true } else { @@ -101,7 +101,7 @@ fun advance( } OPCODE.OUT -> { - state.output = state.output join combo(state, op.second).mod(8.toBigInteger()).toString() + state.output = state.output join combo(state, op.second).mod(8.toLong()).toString() state.pointer += 2 true } @@ -143,9 +143,9 @@ fun String.parseProgram() = suspend fun y2024day17part1(input: Input): String { logger.info("year 2024 day 17 part 1") val lines = input.lineFlow().toList() - val a = lines[0].removePrefix("Register A: ").toBigInteger() - val b = lines[1].removePrefix("Register B: ").toBigInteger() - val c = lines[2].removePrefix("Register C: ").toBigInteger() + val a = lines[0].removePrefix("Register A: ").toLong() + val b = lines[1].removePrefix("Register B: ").toLong() + val c = lines[2].removePrefix("Register C: ").toLong() val program: Program = lines[4].parseProgram() @@ -170,13 +170,13 @@ suspend fun y2024day17part1(input: Input): String { fun run( program: Program, - a: BigInteger, + a: Long, ): List { val currentState = State( A = a, - B = BigInteger.ZERO, - C = BigInteger.ZERO, + B = 0L, + C = 0L, pointer = 0, output = "", ) @@ -191,29 +191,29 @@ fun run( return currentState.output.split(",").map { it.toInt() } } -fun pow2(n: BigInteger): BigInteger = - if (n < BigInteger.ZERO) { +fun pow2(n: Long): Long = + if (n < 0) { throw IllegalArgumentException() - } else if (n == BigInteger.ZERO) { - BigInteger.ONE + } else if (n == 0L) { + 1L } else { - BigInteger.ONE.shl(n.toInt()) + 1L.shl(n.toInt()) } -suspend fun y2024day17part2(input: Input): BigInteger { +suspend fun y2024day17part2(input: Input): Long { val lines = input.lineFlow().toList() val wanted = lines[4].parseProgramRaw() val program: Program = wanted.toProgram() - fun findMatch(wanted: List): List { + fun findMatch(wanted: List): List { return when (wanted.size) { - 0 -> listOf(BigInteger.ZERO) + 0 -> listOf(0L) else -> { val smallerACandidates = findMatch(wanted.drop(1)) smallerACandidates.flatMap { smallerA -> (0..7).mapNotNull { i -> - val a = smallerA * 8.toBigInteger() + i.toBigInteger() + val a = smallerA * 8.toLong() + i.toLong() val output = run(program, a) logger.debug { "$smallerA, $a: $output, $wanted}" } if (wanted.isSame(output)) { From bd135aecfc93c6a7caad0294e8c3a8b9c5ffa472 Mon Sep 17 00:00:00 2001 From: Petr Sykora Date: Tue, 17 Dec 2024 16:17:02 +0100 Subject: [PATCH 3/3] fixup! fixup! feat: day 17 part 2 --- .../adventofcode/y2024/day17/Day17Test.kt | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/test/kotlin/cz/glubo/adventofcode/y2024/day17/Day17Test.kt b/src/test/kotlin/cz/glubo/adventofcode/y2024/day17/Day17Test.kt index 4ec0942..046b8fe 100644 --- a/src/test/kotlin/cz/glubo/adventofcode/y2024/day17/Day17Test.kt +++ b/src/test/kotlin/cz/glubo/adventofcode/y2024/day17/Day17Test.kt @@ -18,15 +18,15 @@ class Day17Test : ) val state = State( - 0.toBigInteger(), - 0.toBigInteger(), - 9.toBigInteger(), + 0.toLong(), + 0.toLong(), + 9.toLong(), 0, "", ) val nextState = advance(state, program) nextState shouldNotBe false - state.B shouldBe 1.toBigInteger() + state.B shouldBe 1.toLong() } "a2" { @@ -34,30 +34,30 @@ class Day17Test : val state = State( - 0.toBigInteger(), - 29.toBigInteger(), - 0.toBigInteger(), + 0.toLong(), + 29.toLong(), + 0.toLong(), 0, "", ) val nextState = advance(state, program) nextState shouldNotBe false - state.B shouldBe 26.toBigInteger() + state.B shouldBe 26.toLong() } "a3" { val program = "4,0".parseProgram() val state = State( - 0.toBigInteger(), - 2024.toBigInteger(), - 43690.toBigInteger(), + 0.toLong(), + 2024.toLong(), + 43690.toLong(), 0, "", ) val nextState = advance(state, program) nextState shouldNotBe false - state.B shouldBe 44354.toBigInteger() + state.B shouldBe 44354.toLong() } "day17 example 2 part 1 matches" { @@ -113,7 +113,7 @@ class Day17Test : Program: 0,3,5,4,3,0 """.trimIndent(), ), - ) shouldBe 117440.toBigInteger() + ) shouldBe 117440.toLong() } })