[ [ U UPUU PUU U U [ [UUݻUл[U[P[ [ [P[U[л[лUUU [[[P [ [[P[ [ [UUUUUUUU [ffffmmmmmmffff -- title: ManualWFC? -- author: uokagi -- desc: Manually WaveFunctionCollapse? -- script: lua local ins,rmv=table.insert,table.remove local con=table.concat local rnd=math.random local Set={} Set.of=function(li) local s={} for _,v in ipairs(li)do s[v]=true end return s end Set.OR=function(s,...) for n,ns in ipairs{...}do for k,_ in pairs(ns)do s[k]=true end end return s end Set.AND=function(s,...) local tar={...} local f=false for k,_ in pairs(s)do for n,v in ipairs(tar)do if not v[k]then s[k]=nil f=true goto CONTINUE end end ::CONTINUE::end return f end Set.rnd=function(s) local li={} for k,_ in pairs(s)do ins(li,k)end return li[rnd(#li)]end Set.len=function(s) local n=0 for k,v in pairs(s)do n=n+1 end return n end local XYO={[0]={0,0}, {0,-1},{0,1},{-1,0},{1,0}} local T_RULE={ {{1,2,5},{1,3,4},{1,4,5},{1,2,3}}, {{3,4,6},{1,3,4},{1,4,5},{4,5,6}}, {{1,2,5},{2,5,6},{1,4,5},{4,5,6}}, {{1,2,5},{2,5,6},{2,3,6},{1,2,3}}, {{3,4,6},{1,3,4},{2,3,6},{1,2,3}}, {{3,4,6},{2,5,6},{2,3,6},{4,5,6}}} for n,t in ipairs(T_RULE)do for d,v in ipairs(t)do t[d]=Set.of(v)end end local setlimit=function(cel) local dir={2,1,4,3} local x,y=cel.x,cel.y for d=1,4 do local lim={} local tar=cell[(y+XYO[d][2])%H][(x+XYO[d][1])%W] if not tar.fixed then for k,_ in pairs(cel.tiles)do Set.OR(lim,T_RULE[k][d])end tar[dir[d]]=lim end end end local limitprop=function(cel,q) local l=Set.len(cel.tiles) if l<=1 then cel.fixed=true fixnum=fixnum+1 if l==0 then failf=true end end for d=1,4 do local tar=cell[(cel.y+XYO[d][2])%H][(cel.x+XYO[d][1])%W] if not tar.fixed then ins(q,tar)end end end local QUEUPD=function(self) if #self==0 then return true end local now=rmv(self,1) if Set.AND(now.tiles,now[1],now[2],now[3],now[4])then setlimit(now) limitprop(now,self)end end W,H=16,16 function init(w,h) chkque={upd=QUEUPD} cell={} for y=0,h-1 do cell[y]={} for x=0,w-1 do cell[y][x]={ tiles=Set.of{1,2,3,4,5,6}, fixed=false, x=x,y=y } for d=1,4 do cell[y][x][d]=Set.of{1,2,3,4,5,6} end end end fixnum=0 stime=time() failf=false end function disptiles(mx,my) local x,y=17*8,2*8+6 print("x:"..mx..", y:"..my,x,y-2) print("fixed: "..tostring(cell[my][mx].fixed),x,y+6) for n,v in pairs(cell[my][mx].tiles)do spr(n,x+n*12,y+16) end for d=1,4 do for n,v in pairs(cell[my][mx][d])do spr(n,x+n*12,y+24+d*8)end end end function fixtile(x,y) local c=cell[y][x] if c.fixed then return end local tid=Set.rnd(c.tiles) mset(x,y,tid==6 and rnd(6,7)or tid) c.tiles={[tid]=true} setlimit(c) for d=1,4 do ins(chkque,cell[(y+XYO[d][2])%H][(x+XYO[d][1])%W]) end c.fixed=true fixnum=fixnum+1 endf=false endt=false end function disptime(t) print(("%01d:%02d.%02d"):format(t//60000,t//1000%60,t//10%100), 140,100,15,true,2) print(("fixnum: %03d"):format(fixnum), 150,90,15,true) if failf then print("Failure",150,114,6,false,2) elseif endf then print("Complete!",136,114,14,false,2) end end remap=function(t,x,y) if t>0 then return t end if t==7 then return 7 end return Set.rnd(cell[y][x].tiles) end function TIC() cls() print("MouseClick: FixTile",136,2) print("[Z] button : Restart",136,10) if fixnum>=W*H and not endf then endt=time();endf=true end x,y,lb=mouse() map(0,0,16,16,0,0,-1,1,remap) spr(16,x//8*8,y//8*8,13) disptiles(x//8%W,y//8%H) disptime((endt or time())-stime) if btnp(4)then reset()end if lb then fixtile(x//8%W,y//8%H) end chkque:upd() end init(W,H) > 02TvͫgE#2Tv2Tv 0 D$404mNJNL04e$FHuqaY}},m,Ҫm^uGIF89a 4e$m,m! NETSCAPE2.0!,8"#ʹڛX1'~5&ډjp,tmx|Y&ΈǑ}eY ӥ^xL.Ah2ILkց6|Bϓy~IWwy*k !6f3512:m oVxQT*Ñ0ƕɐǔgh٩|߸鹾WXӔĊ+kyBpչB6pMAДC[~>&+%ޫz{-1ĝ/ Gϸ:4̜ʮv1ᠲ9N|<И9w4K~Ǐ~U_suS#<0~`_mw=-jC镇bVA5V 01i n@Elw 1N ˌ'6O_Os,}Ůs |/y\v!$MzA!.hV,ý$Q49,2.(wcw<N$FXO:CD<2O DU]Pu4meS}Ŭ 1NMwtG4d5Iri_*=5JK~PEeD2c4lOJ2USVJpyt#š r#II92l8Zf`2;Mz&y|hTl1q;=?x6-D˄4ZSlٞQ.Z2h)ni,1Г>'sJK8j.,k$#YN RjoKMyRj}sgUkA\cu~6A@TWJcϖ̔_X>TZ5pn9MꪆU7H񫣒\ϑ tpIE`g& OJ mt)@uD{BbkVt[S/̚gB3wpZe3=vaX@ EYϚ5]#J[2"!Y- w>o .(̆KEq+MvR-/Nv͕ԐJ.sn4;Yjln{YPXBݔ.d <],>O8ڬIݹ[?5E7[0pV1| RfdbT+\C1Ҵ3{H{ȑHc,9/f"{9 ?r.ڤݫFUl'hvr p )G2~~:T9P#ѯ"i}&mh罌PFԨ+ӦL/vd*g~a\UP!uhmYG>Jh[6X*.)B?ͶYj-wBi6y< gQFhTc>Ia3ص8@k8hB.–sI^x]<+<]kowcO|+2~%9ċjxs^\W% ]JW3MLҼ7 Å3,7Gf6o`3q=1cŵ3zVߛ`׮e ;cns||74Kwtf7y.I;F,@%fWZ|K͋{ d%w'msn9-g1酑!6'7|V,ot'mLKX] <7~LWjWSA]~ԥ[YnWީfr.ql7efn{wyaJw@c b#wN[d6:{ExAp&M_eWxj"EƂx,e2)sGGcw `p.g;UghV&r908cY weA}gQF};b"7C6_>ґJ5djW@߀ n0Fr rc2T|M8uCBSL8Q7Zep/e(o$.AwBuCxM/'y'b"v"]VfLgE5xxIXJn¨QEFk%:BPwWfVW8^Nq'SħkxPxD@ԇWs |莲iJ]%s")T~/եш i+ 9}q=neS(c$Ð< s9=؊DORwz'/ˆ79b#) 8-،EX>:R$:)|Ӕ{Tf8ewI7"Y9?Y9_ِS i3W9h-2x%( RaA/H7vMvAn!洑7"?78` 5p_Lg@Ϥ(ub6\!X?ht@uɓ*6s95N N8waI+Y{i Y SKe\ЖbBRxYt5yy)Tcw:ƌyEFnR-%) ؀1(T9l)Sj0#:HURtTI?ɘ$Zc*Y&ed1aYeIVj3JN\de3IEj2BF'v'X!PҞaQ4Y[Pd4kPm (,)a{z1_Dxzw:bgiq,MϙNLvci4DJ87>f}5Nǩ,z hcbE7eg(ǨWmǞ-%T3Tzp4#ܨ խ3Zz蚮꺮ڮ:Zǘ!,H [q`wQWg)8< Fm.xHP5pj"fû/u:5 N 0I?.cy \h,j$pd|tQ;wjs~tz`Ly ,* jNefUdVP ^u9o/ =8<8O2&b E=ac7K7ᱫ嵿\I73;25ѓփA"H_WМUkXcƋ^t5khi/D.D KK~ye Z(oB-IfQNLeԢ\o`tpVHc?Qʦ +Wi!!ĆlOޯiv;".c|w,wx0[aӺ[05$8"g= 15Z;٬ ;>ϥR lNji8 m .t p ZNlOvxoAHd/q[1WYYdG7:ẁ(FcF̀…v`uOXyJ{(ZEbIrES ɡ\'S=iј%8t8s,V}TUT0^Z ftfh(Ða$4̇NadVc˂@1;aIf#Y2؆TȔĴTL6Jʣ(*HfTj$.QjHXiqjbAxꫜmj!6ikW抣H) ܰĖk&+$}l˲9mp-oAV!۪";k^YQPqn%Ux;k UI韽+.zgMZ̗Zp y@lļpF.*c̬/)Tuzhl)tQjuԪ}})e2gHXkgάq{R*|m]}\8n ( &Jxv'_Nƥ9}DBhݱ}q25=ؐ.NѾtS$PtCd<|K +nuBs, /> M}yBs?ID&? 3r~f {(R]@Qp LٓGLʔS̫4Ģ AXv3$| ETfe .a1ŲO]̔J7 6 ۗx6:r!{X~ rN"5e-K:2{I>菷p\7jȇDmiJؠK}fc T"|琿ʖPF-}H(K<4A̲qcƑQ4&;(vW NAe%@Tuf(gKfc0B/ ANϠ)!“.pTDHU>)nHlhD*\X*|3@M FL4/H& ޔ n38ϔl҃6=nC>9Ӡe#D19}Ψ5T'@o$ [EX R (_s )ɅլZo[i4غ S~%lSK!,X !"A+e؛`9$hldoYp>`Lx bI1M,t#W%ZVYZi=IiIh&lWV`~‡aھ03ZBOƐ5B'2!ݷ~(؏BP7 HQʹ\d<dL$cJ.!ˊ0Ls]א M~$Q1Vti%ZBy:fPJvEOQ \W5.5_g}Ez@rTa*xpPip5l I|bb _{툟&,)jc؋y"zn~=A7^6HJV{ sD#,ޙg:jڜ&>Ox9 lww{W}mrE$h[_=BcM_מjJ>aQD~Q{!]rG^$V*VZ81RG<X9~N`gy@V)-~)ę%`܇_Fuq:|1WpJ(Yf=v6>s"S, nǀxV"yރjB d̝=Cyi'Aez۝h] O-̇%jFw&@B ;Exa<:̌FѨf ,%za]R_,"V- dwVy]S p >,ďBI{yY_L\2 #S1'+ /K\3/s>S]ɥSңZ-MWbڵT_-2]"!^T'qcOJ0CDn Vs.;\WUc0'?WjDkcl? }4%LɴudvL4_S38:l{2 o\qHg Ϻb3k꨻R 3W6NGZɿ~ggwޏ*?`8&Hѻ̵SApIc%DB^u0a襼 ZH@\= NZK:q -'.r[DNw" VK,Ӄ,$^5ԊH7,bH4c֣Ov֕fGKt )0 v(lCA5xC $'9:.qUǍ (7sCpP$[M,X' H:R[$&^Nvʴčd5DDĖ1PsnO4e`itш3 (4X[&O0,8=[&,EL} ΅wyDp ȦrJ+9%0u9@j HP82PhξHm¿fyV&)\&Co)xn8UDA R$CˤlH͠V5oQި*L`THi8 ZF))۬_cS!6܀0) lT. 讕[i BCn-S^QT~[ ԬPËQJ%:B͖KaZE^ex6S~ƫZOP˶ri!\Zh?<Z.bhSpQ+5k.{D+iJ3ȔH,5gQ"°CzH$`!,8S0>F!q^hXp,2`b7n+st^" QCZؘt '6Gb5Ico O(1{P鿈Zc,1u"t38ijϪLkv@.j h^@Fo:#݅Φr4`/pu hH- R}Z,=`W%W ށ)!hhezuI3ۀ)aUG y>h% _$ (c''0 ZgO((8z; l$ꪬwY~ (.B7f>EdžIf,z>J᱿>C!笲bAгfjm%dǶ@ f󐤩nO 6oi{o яrKCMk8f0tgpL#U/Fգ_a+\#f\Æ-f" rUl2ëۑ5 p7Әs,O1$#H'L7tpCv(,];W,)t򍕸Q2]N,S"BFQπ`'|aU뭖aW3}ಶ)!堻@H+-@EjjtLcGvfbꭸ"dEؼ*inƲ+0J8{6 wr%k SP/'' nbhDj-Ҹkfgvڠ\ko8֖ \]i%<$YpWZgLG{,pщ웎%L*3np2ѫ?Lf<ϠZ(r+e1H1*" RߵbxٖDcbmu=CzTs*:7/κnCg]yWN(}s}=hVw<:߀Cďu< ⋻39;# k78COh4ַn,=dz[zij۔z7,L(d8>1]qHLs dFIu:9=E[VL4#3 g@wr!w J߅h w:"K'""Er7r1JU%,iȸ8w4S7yL'\.%ž\D*P.[eM7`uQ-9hçb-!,X qKwe@ɾp,tV'$u$1\FZ秲r522L_M~.au&Zt`)q  k,hr&wMq~VqNg6!K ,% /jlhz ^Y!_)gK)`enՁ=S = =>p ?! vȇ n *4ῄ #J,x"5|2QÏ4tw0"M"4 {E@6EC kNA5-մa*Wp\AJhG&zշ|0+WhID֡fwd YpS fgA`BD{FUF>#Fg\e*I0Iבйj$=ԫ#)@exϽ *cPC( !u_^Xe 050 }H ]J(JED0Mwנ^KB cF1!J.N30JFP|vT^qRꄤ̆dsZ9pe85OaCaS1!Dҝx|=Z[ 5HqbyF*餔Iːuh^ #`\f){|&H,٩ )h Ѻ pz^xځ,w\,ݚ@:lNO3(mZۮq)#Tm{*B&GeªY;T S5*G,INBwUƃB:o 2<2" 'H%+n˼pw2dJ6L;WqpD0EL:*9 (U*TU190vVהCh`՚N@6t{ДmsY ck#-/z/:X0hx S.pl-4Wg^Rm$s9ܰ׮#+n;1M#/-=ແ!as2 "*!?|7~廆HwLxE?j:,;D ĸ.C4BJ,8 Sx1 ǂ)`#1ڀWk 1r4h4dx`#&MVu>.h{v A|.|X@mC|&# x  5+^VCme쳝}V.9qjqtU;?6;$"Hj0JnL$XT+ k9SLex8(+#ؒ$.N[elxC1`~{h䳤f򙷴 !L%QsZl&;ZZS]Mh0_{OLRJKɦn>+7X6GɍF)C)a Bw>2Q.gk[Dg!aRDO6[ V5Ri(pqN3*6cZiԚ* F1~YG dP>h)Иѣ$+DbpFZGϚΉN[*NIZz[c<~JD\BNE',xg=Md]$hJ%QeQ+)FvDhe38AA̢Mkf2\Tt4fEa~4v k*fEK+Uˊ*F8´wbZY.wiTh[WM[݁-O;"^QY,U7RڂKȴrRL:!غU屛5L $(&^B;lTjЇ:a**-_qXM1_ ߬M%psY2jgV19 Z;\J]`xm5*M$~ !,8S)HA`'hʐ[p,45 e+rb[2Rx:w*zxL&/:8yHn"TYo(:pK|"k {S'Q5!Q1ptxztFntDl'-v/pŸn"IH0 #}hrzrx=&D(ڒ-+VZX48#AL1NIVŋ:f٘5I(>VJ VxyB喓8!F3 t$Ւ ,>I-zϹ@jMdkgV-ֵʍBL^ ȫ$Y2bJ8k7yM ba`is#{AW^Ɨc:lzDk̍[&z2ʃ%O9>vpk o{v0kCԤHDh ny+<~樖 'gfH2nޢٰy*c)R= _m:I'Q UdAGQ\'^6HK^uUWsXi1hYFchp(A]=WF/IJ2kB::112NLXz\pbU? dL@ Hp[mɄTlyTH_)|]us~ WYrΨ/Vb6TF]|Vi,֩.g*ب p7W`g\Ru‰޵j1gl@)k-IJ)ʉ^fʊ@Im SG괭4銵e{doڤb;߼br*ǣh꯼ &7f%1QreD#0l2Nz,WUKBI1. 5͍Bs@"48(D&] PL)J -Ůu ^jAT;-d>W@ xٜ&?%]T#6n}8l(d^SDB \h! 008n(7Fg5amd4MoO"22.OJ1fJUN ZEz\bhYI{<3+$CKIЌf8bnRyf4a}c6whdlLȅsң:8B̷qHe+=)8TJMnTOhBMl&Ni4S!shͶ$GGyIQ4$)sQ+%ڔPn'4RN'q\gRKNOXP(ON2# h)( hO`:]GY 3*Y)tW&NLSTvm :[dbxD͂J YӪJ%L|p F$̚ q4#}V.ݓ7cZ6,'K]iƚǍ򵃊mg~}cL1u2DVY ]e7釦Id]؀ђF`!8bQf?e?QMQ"^ڐugEHCn|O{\ Ԗ@X^wΖ%wHOqUzxm !,X#G8;]iho=$SG=Еm^ QL6hYШtW&U?W [`5T(9g6"~lZ ^ d-l"#mhq! v }Q!idINfrimsvX-5]pH OUFd@?At0 2PòV)z2 XA‡~TxL89T9F5*)Ĭ21aLèC.p&Mz,YG? 5ӎM.X,Iqd*2i5zlڀ1rwa5;~}Pf_|/B >%z Z>d$[r,9R#Mۏj#0 ?vMn75gӾƓ, U^De;Z9UXʗʚiVW5RrV<)@@p](L7\rwki$r#(BGz 4q#iU]KRJ񣩍w~Go(j1t jcijgHFObNJiWO`mY {#B~*gAmeBfu:A4Y,ۧ3fxZ;n#̂f /i 4`Ӱ-yL찔 ܜSm6LjȽFƐ^򆥡kkj+ Z.q$j2 F_*z,̋.ݛ" uɜ8x5A[ 18Cjhs1qם00i=#ftt[x ^(Nܢm#Ư|h -)`Z52e`rA߷n©yލ`} S_]$u/Ï=W k6.CHE@A0v7.r%о(bt4wQ9W92.f>p$z43@K[[RvAwC] >'w[!N&"_R_Gg'^enfB"ʍN!w B/% eQ .z` cs&ۑz ps$1'#1} I V#9 KPK2<&96cAekő6#,V|y¸Ѐ{3WQqjp0md nd9%H> @ƕ4rQ &%=S6|S$?w7P"ɧyLOҒ0i$l0H>c(# .y,G#OC8e,+*<^h)kx\' [:_ 28Lr:0L1BF~#rXȶ%EWvjP7)筀 Ǝ~Z)JS{ b F$ZaV-,61upOeW ظkM"'qu&Y[))I%hZѭ˚b _fͪ ;>CFJ 4YoG(q 8]kLʵT؁d# '{3~fgGŖ"L3Ha%\-^Q2v0"O|n[u AFơ88Ĉ|Oձ^ɽ4*TU˻4^2!Rs_\\ !,8"#ʹڋɻSdif(ɶp,tmπ0A(]B0:0EmzmG`p6!n0&336,fg_6#Y $h*Y#cw@> #$"t >ÿU7uni*lX%iZ¶LvdN -RbB;Hb=Q>:hC%HG HØc,qG"H qCɁFʴ'%Jq޾OAx !9~אΧPJJ*T5ݛ>"'n8=gpSfʕI"pl U&_xG/2J O oܹO$PʒOP'd ]{'F,Ft1ڊx`n54p\'[avNb,H҃;lh?כ=鏓U>ϾK)^#4ZNhJ݅ǟH<.AQyۈ‘#+A;A"yR jTv ә`: 3 \8 qL)(c g *&\䄑V4TgXR'<Ȉ.ֲҘAM@٘‚GDSY'RPK2!q$_M*Jhw"]jy)hlM wJRߝZd\ne& Gjx(31R,IVeXn)Ygrj&LLu,8vrHVr ;ΚPt s<@ޓB#~'0,|'W]Ou0Grs)nLh} mh&tX̐-_CdPr^@T@AU"pYaBu}r uWp8:ws~nKZRM3 7̺j:n襋jo .|x×(ڕ+o95 W I})6e7L_f罥xtE=9K(;9d:ϋB\8evS>cQ%U iKGPfHh861`1b@ gH۔&/N6\XduCA.lA1 @$psdeu`^' (SY~3n pf ctxC2{cۄG ɱ|ﶷ8Q2)uBA1R#G0yC}1b|Ra8Hq=0#Vfc)aZc_//:h(cČaI7w?: ^LvbEi׹~@brp,.hseJC tGy6H|:;pH- 7vrhaLߠ8E5 a TA΍ (8[qIHCPn~V˟H"hgdFZ))bN2FSEnDf*LVZjbKYb-QS\ŧ1xlHZ-Ui]Bx,%ⴳtƇpv*#ʜ**[W5̫D#, zi*p WJӿp4o&ڦDœ$ȸPm^jւ=Jq@{P.Vkg Xʘxrp4hjZe%޲̑dHNh]^yIi,$ sue)Ak3;M$J]WzdA3&2LSbvd(ҊB( ̢ps"11+Ix x瑦6:D&!,X#=Ox ܩ6p,Od@KU`qxB\Cǜ4ikFhجv[#aL$xC H}^Xs]o; s'ze C* kl^exbqhbznAS*p hl% =h1m|j |"}DΰsBrHa5L,+V#;<$Ud%%M`j,Dx(‹鈴D;}q8:qcC 0 9 c+"S9SOΚI1[2zVM[ [( SJfH]7 1U IGYuZ+_a& QI ͫ#`0J~qgwl*`9zΣUzKD;HP#[;7 9~1|(BhQ1 `I %m A>8KFE9{Rn(ŵJ~][,̷+uxxv.ZK1n/@ٝ14{.C_mܣ1C:OަOO"h YW8 cwqFw eCO| M/SkE*'2VzH%kzBjx@nf_ mkI(foj^XAP=)kykQ ,kiA :}( ʳ΁+R3>8jmxh+'QuBNkaEpU,zDq#:RFt夗7}Q3^uA3^Hc9򑐌$'Iɍ8CFU (DŽUm5V򕤼K}uL0YSr@^ruđIUʊO/iơ;SeJݵ13#agMKL 6ځm\E )̎#' F B9*lJTI#{)RZO c=@mVg:ey˄ 􌂓bƿ)TJ' j f8l웖x ar]R7oE-8TBx21U'5)T`'Ӭ"1N0&xVu1ԂA6A-jq/h? Y0á5XD[; Z@`9.3 CXЊge)3. A.S5CVjX%p=VՋE6SEȉHDK7GE+Ϝf xf} wΟ|{sa϶ {;* T]EJ.PrJ˯` I%4L@*d|F>@l gIKƈ~mNh~ɬefu#Rj1!,X:0@"Ȼ%`Y6l뾰4=0~e=HmX3qFP74*FZ9_`rG> 0je)M.Fؼ~ ,dbZ-? ~s|| `.n()1r^hmv)krq]fi:<LEBMjtRKH;P 0OR&!' Fe&\^Ҙ\] )]n# &&׍3\(u$O2j衈&袉T,-%kUf>覜v)ĔiOM'', *wr{(1jeZX-Ɯ뱹e6cBCѺbLeKxR;k~U5a뮙e5G9{/[Qd羻w F[³1˰> $&pQu`0ïz~N Zs¢1+")- s 0 5Si,4sF4}g0tI:sI/4ǨC\^zfB(kno6̾}o?rm4 4s=MHҁ`v;~YxÆ!*9͝{^ zKZ7n9goY0a:BwC$}6439.bI.F[_~)ÏUT9?5(3D|:Nz;yE#;OosY>pʭJӟN8GyT` / & jҙyW ^6H:+~$ R0kꢖjd8 'L5{:ْ.gN03.^&+.=xYc"ݮp Y8{b.d_:d$i$-HrIsC魨@ʣ*w)/=|4>(Odؓ!nH|xď5Je2oRɮPS,;ڑ/Q+WǭYt);'Za0FqD1Ԉj"XpZr˛qh5/mVG\Ssthw0Ӧ9u%QGK]20?Tg#8!)?S#Lf_R٫c}`¡.k{Q2} i-WwN>=vɂ׈8v5[ئݰeta_,!,8 !"F8e`(d9r`lpLtF|?#mD*"tJd0l959—s`W< >N^@l|je7t m3WNu{z1!lI_!d@\nC|C$8e(NeZX|Yr'Wqtغ^I _7oMDۓ;H<9ì +*6 l*;0a h4ͼ¨e+],5$F(ZL+tuO!hR-$H` ߼{\Ýʜʳ@w r{I6Pv<ʝ;hW4h Xu#M0_v6&zeBV%lXʂ&UKH]3h$Jeem~aV0x RIq4]o'mIsD0հ^oEsHirwf6׽|nsges&DFɦMyփ6kҿyoul]5pk ;Zqod ``d#SCfD,à'^ Ӧ/.mw/rBD W.\M Ibb浓~7 |;>Wg=VOMgZ23-i[]?ktߎpWj 0,/3`0Uʓ w4fzث xOqt= }o|"ܞH;&OHT\mшD q92=4,TCܸ]| 6~C[EGIgDg,$XgQaw ¤H&Kgit#OIg;^2^\$D^<^z2 e>aJ4Rb,tEnKغp\Y󚵢`PQLzY 8gAM18v%%V2t˔1Utk [e3cM>k":k|X"5A#t>̇TC! $zp#N^'xذd%L8hľ VI'%ņQI'T45[=iDiK{5 BpsS|td kXV5#_D ŵ^CVP15R*߂7Q'? CWG*f*uAKf4Hb􋑻lEcMG^Y|ANUles]]h2TnIC8L-VuzrB/D` 1 *V#Gn#a u7dn\}Hk$p],V~`ǘ+)L8uI!-Pq FZ#µdGBLﳨb &ڜýD0K2+`Me`Xp{b1+'jsJ.-QX<IbFK!,8"%I+]ͻ|]9*gtmxWlQ `8*u4{)2!cTG$.zfCCM^v{Åo$Jw,vY-QI{Uuyq;c!{ {Ux (!rJ{<\ʷ'oŞ$r*s9y܁yI`wrA+ * :04h)SB߈ LB\+f("…(S@*5Zqi5hܙ&J'ND=\ʴB 8} <*"4IY ӂMnJ 1*^!fk4bVpp~e0 W[ζA /'Gbr#ƃc;l4dTVz7ͷ{\Q5xCzɏ [ϯkׅSULsV V|'ˤpekڦ Pܡ#@95I&Tx QWn+/e[K# pZ *V[xgqB15{_h%i)r&ɾ٭lL K-wW])-hPjUyx\W} ;Mv]o{+d6m L=u/sʽw߿"MJN -(݋WCH(L^!]i](^.Ϟ+ m6e:=f擫3ʓWȹGEzzn|Hzք+s5|^|I^OxХ}|{WsoƃdâC]v{4G`"b Xgr騠ipDp>H `|+a=O)֎Vú[Ɣh~1'xD7WwJxa0xqMk$BMfc, rQkE-qj W;~ -CM`B]d&-DFXӡd%_h-\iJM$5I9-4>&aQߝX@W%Ntiġ̙(&_>#"2s.Ϧȗ1pfE6ACZqjPG ~r,d֮CMs..P|JС28)pL2Weo:;1rMP/qNJmzI6je0ԗ҃C1WP 4F3̝?^-;NCGIsH&UR%7 dQBAdUSNN5Ҩ]KX5hJEG]ڊ!H5ݡo[na@kSǂn*TVSa"J1u0JcȨQɍ&FJLyc5Ę $mQӥ0FČ5=^#j>NdԞO:s~@kou!5(gL=q e%}4v SE(7ix*9VYy-* ,$Pyȉ"<#E"!ԤwXGz@ 0Mڔ ơ#wytQҥLBpPCN#aP w2iH)AܝAC r(}m`VVI<LTAZ-^|h7 UU*\t)o60xjʇ6ZgjUcb Aq*J9k*&[tPAR]rZm ԑ4.оRG߶Kh޸haj.+n~X܂c0:knOQHl i0( .;޵Û_X`-Iׅ{gWѬrru7>9d|xc`GhHKW?$W⛜aRU7BuL׃Tyl?V Ls>|a$3āyZ'l><'vvVHRyQ^g8r@v ƾu! !,?& SMv4!I$M;r8DN6,_%oUn ɼ|d;A?_ K?0X6Hôb₊ٸY,_ Te|"9Sy`B[ı4YFr`&3;zT_<*ήœS=4O48N {:ǕI DP9Ic? y\d"U{瀩;q9 ͨZgLQeҬit M H'(HM~:v0EF64`gƩNPRWB7wlKHL5tϰ$>-s< $nFq%Tj?BG)^yJ2E^hУ=s!W/y6BaX|ȱPj*hk hxw '%oh]^ǃQ]!Oƪnr;,%\!,X 8kg}`(v5Յp,1xnn\ K@(RϦY,H)7`c92(5$ WA ea; 1? 'r.t%vlb` iG_q+ǥLҿ+Qb:g{:'8#*+S!g Iٗ Z,ibEa| "†H]r@$t##->,!q0cʜI͛8 QO0/=1fO6hb/D]HA=`J**ML2 Ňզw^ʶWhm+UKY 89³KT hj?#L9fm5D|8QT Qڝ6_à }R{P&Z>P)B Tj!ŊyLc&%eS$7;)N&9L&u+Ć 㜽D{;pHUV. #b^Z)`|MB#IGwd(AĮ+26/hdc@AyjZD Lי/*fi2u)%'5jlqΓ,`+yХ|Ie&PDdI%vUE}Hq|Gx Ϣ\"=飉BYPdIFn2F].Ks)ec +4Dhlj"u S(Cg!\RT#YT$07$2_aD!X]5c%k@~/0F0Q23ɌyZ/ͥTÔ՜B,!,X !"14ͻL(.h੮lp-Mߗ L_ a:GF4FZc y݋qe"+g-0lO[6 :dD`p^3 H sw ~"vfb0q95A'pтbN7(:sq^6uB-J=!-tɶ'\=+ZFuN v-QJY t(ϻLj=VY9Ca)]*ޘH 7)+i1-ϸ r>.$_>qBep=ϵg#sӫ_}͍FNWu>M`TvsċY `lѥWBb!YOH(`Te8agr`[Ta A!fi`dw>a##`1ECPPkBdj!a[lPख|ZHmd|&rF6(0њLkB]g {Nw'?TuclH_RYGƴ%A`~}W*^P-))Pj|EBʏ*ˆj1L*Mm9&@+ɳD(hHjxY-}yKߖ{s窋bf.GQLã6RUd- |U,qFژnaslu`r NN+J(CÕ6̛ υ tmiFFڮ" TANW 5[R$X֟p"`Sݳ[cb <}nB=R>wR:>ݶZӗPfYPKQ{Wn5(Fo'标.zyyJ!/謷~9+;ȰOg>dP=4+}wW|`NgތV'm0W%}2o_o1 3ؕ~%q dO⏯CH@~s 'QC2=|d>IH(yCxŸ`z1J> \N@`e@p kMʡ&# ކK P; ~ ~JZFvaf0K~Ȩ2N}fWCp($"4Oa4fAT슉\d1nc##w`Rpa5qpv|C$5ċD5N8"[B=3R()F%:K0v5fM㞘XrO2E+ *8:4]uG55 nrdi)6|LRXZR4 g-6c$T >[vۨJ!,X;0QÌdih!l0<1ٷ]]]"F& ШtJZ! l$"\7pEAf)Md)n6-XmfgrٝmFQXƜiV"a:GGK:ezHaX YZ$P5θF& `Y$) d~eiZnJ'fb J-+\ӟ#OsU⣍ kΒcPS:#jtVcHB%ڷv ˧灬U P9~,܎|܍#ﱱ)gGM+3zYy$9U _0]@Gm0.?݂}MsQw*$uzu|-6 |"ah)Ef]A&d=,5Ŋ.]|KUJ$~4 ,6qxE_2ߊwn=vșNtJΪ8;7fiղhmHJز9j~RUy.o<__ɛzNzKk~JJ|U>Цr.ܷEj{Ǒ; 1be^&R /3ɩh?L[<BAeJ%QnQcҚ AM ‡ufY !}>)p-#[ZHK~c" ZHDN!5=)vNj7~K88,2ʉK2꥘Lƍ֦U +nDpr1,dIK+rqҵ:[i08Ti1{ hH5+/VGVJ PEU\K `, HQH