From dec92612611fd70a607a76714e68087a0b49b988 Mon Sep 17 00:00:00 2001 From: "honfika@gmail.com" Date: Mon, 25 Aug 2014 10:29:45 +0200 Subject: [PATCH] lib resource texts moved to lib project --- lib/ffdec_lib.jar | Bin 2517178 -> 2528664 bytes .../jpexs/decompiler/flash/AppResources.java | 38 ++ .../decompiler/flash/DisassemblyListener.java | 7 +- .../flash/abc/types/MethodBody.java | 6 +- .../jpexs/decompiler/flash/action/Action.java | 10 +- .../flash/action/ActionListReader.java | 11 +- .../action/model/UnsupportedActionItem.java | 7 +- .../flash/locales/AppResources.properties | 36 ++ .../flash/locales/AppResources_ca.properties | 36 ++ .../flash/locales/AppResources_cs.properties | 36 ++ .../flash/locales/AppResources_de.properties | 15 + .../flash/locales/AppResources_es.properties | 36 ++ .../flash/locales/AppResources_fr.properties | 36 ++ .../flash/locales/AppResources_hu.properties | 36 ++ .../flash/locales/AppResources_nl.properties | 36 ++ .../flash/locales/AppResources_pt.properties | 15 + .../locales/AppResources_pt_BR.properties | 15 + .../flash/locales/AppResources_ru.properties | 36 ++ .../flash/locales/AppResources_sv.properties | 36 ++ .../flash/locales/AppResources_uk.properties | 36 ++ .../flash/locales/AppResources_zh.properties | 15 + .../decompiler/flash/tags/DefineTextTag.java | 7 +- .../flash/treeitems/HeaderItem.java | 10 +- .../flash/treenodes/HeaderNode.java | 3 +- .../com/jpexs/decompiler/graph/MarkItem.java | 7 +- .../src/com/jpexs/helpers/Helper.java | 48 +- .../flash/gui/AdvancedSettingsDialog.java | 1 - .../jpexs/decompiler/flash/gui/AppDialog.java | 1 - .../jpexs/decompiler/flash/gui/AppFrame.java | 91 ++-- .../decompiler/flash/gui/AppRibbonFrame.java | 83 ++-- .../decompiler/flash/gui}/AppStrings.java | 5 +- .../decompiler/flash/gui/FontEmbedDialog.java | 439 +++++++++--------- .../flash/gui/GenericTagTreePanel.java | 1 - .../flash/gui/GuiAbortRetryIgnoreHandler.java | 85 ++-- .../decompiler/flash/gui/HeaderInfoPanel.java | 1 - .../decompiler/flash/gui/ImagePanel.java | 1 - .../flash/gui/LoadFromCacheFrame.java | 1 - .../flash/gui/LoadFromMemoryFrame.java | 1 - src/com/jpexs/decompiler/flash/gui/Main.java | 1 - .../jpexs/decompiler/flash/gui/MainPanel.java | 1 - .../decompiler/flash/gui/PreviewPanel.java | 1 - .../decompiler/flash/gui/SearchPanel.java | 303 ++++++------ .../flash/gui/SelectLanguageDialog.java | 1 - .../decompiler/flash/gui/SwfInMemory.java | 103 ++-- .../decompiler/flash/gui/TagTreeModel.java | 2 +- src/com/jpexs/decompiler/flash/gui/View.java | 1 - .../decompiler/flash/gui/abc/ABCPanel.java | 2 +- .../flash/gui/abc/ClassesListTreeModel.java | 376 +++++++-------- .../flash/gui/abc/DecompiledEditorPane.java | 2 +- .../decompiler/flash/gui/abc/DetailPanel.java | 2 +- .../gui/abc/DialogMissingSymbolHandler.java | 90 ++-- .../flash/gui/abc/MethodCodePanel.java | 346 +++++++------- .../flash/gui/abc/NewTraitDialog.java | 358 +++++++------- .../gui/abc/SlotConstTraitDetailPanel.java | 284 +++++------ .../flash/gui/abc/TraitsListItem.java | 2 +- .../flash/gui/action/ActionPanel.java | 20 +- .../gui/generictageditors/ColorEditor.java | 358 +++++++------- .../flash/gui/locales/MainFrame.properties | 19 - .../flash/gui/locales/MainFrame_ca.properties | 19 - .../flash/gui/locales/MainFrame_cs.properties | 21 +- .../flash/gui/locales/MainFrame_es.properties | 25 +- .../flash/gui/locales/MainFrame_fr.properties | 21 +- .../flash/gui/locales/MainFrame_hu.properties | 19 - .../flash/gui/locales/MainFrame_nl.properties | 21 +- .../flash/gui/locales/MainFrame_ru.properties | 19 - .../flash/gui/locales/MainFrame_sv.properties | 27 +- .../flash/gui/locales/MainFrame_uk.properties | 18 - .../flash/gui/locales/MainFrame_zh.properties | 2 - .../flash/gui/player/PlayerControls.java | 2 +- 69 files changed, 2007 insertions(+), 1743 deletions(-) create mode 100644 libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/AppResources.java create mode 100644 libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/locales/AppResources.properties create mode 100644 libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/locales/AppResources_ca.properties create mode 100644 libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/locales/AppResources_cs.properties create mode 100644 libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/locales/AppResources_de.properties create mode 100644 libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/locales/AppResources_es.properties create mode 100644 libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/locales/AppResources_fr.properties create mode 100644 libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/locales/AppResources_hu.properties create mode 100644 libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/locales/AppResources_nl.properties create mode 100644 libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/locales/AppResources_pt.properties create mode 100644 libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/locales/AppResources_pt_BR.properties create mode 100644 libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/locales/AppResources_ru.properties create mode 100644 libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/locales/AppResources_sv.properties create mode 100644 libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/locales/AppResources_uk.properties create mode 100644 libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/locales/AppResources_zh.properties rename {libsrc/ffdec_lib/src/com/jpexs/decompiler/flash => src/com/jpexs/decompiler/flash/gui}/AppStrings.java (95%) diff --git a/lib/ffdec_lib.jar b/lib/ffdec_lib.jar index b24ec5e1ec3debb60289ce59686dcc1a8a5d2ec3..5c3357a81823a381ad19a7e891ff77da397a5769 100644 GIT binary patch delta 192575 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

7R+YY% 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

Zl{+!5r?;Qu1P}~<5KOOn84AQ4d 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 delta 182124 zcmZU(1y~i``aVqTq`Nz%L%KmJL0S+c#iT=&5H=y9q|`{aG)it#Qju;@L_(!oP?3;t z*z>;Uod56hy2gFaQ|o@76*H_^FU!*Kn?_UdNsaUfVMKU%C_Fr+e1;dK7f2QJ88lbf z6VI;W;o;qRp>gf%!$gvp7#gXQD5^v+6WWaZD54)xRC+;8(!Py8jd=g{7XckXpa1-W zfylwlMeP5vc(Ke&D4NfZNQN&?Cr9K7;!F9-X)e z-iv|vu_PkEZW|BT|L_$*cPG#%#QhR#0OBWvsKglpBAnnQC{T-r5&vI%LbHF=7G$8` z|L_IuACqwb@iRPJ|HtJFu8|lIqrkZt!@*`G;6#Z#FsK<&2~b>vBmR$%G29$yf3D^r zL;PR$8QkPwbqXC4k(hyik}g3Q;gUa3Hpmi1PV%3=IWGwYB@G0L@{%PQ5dUi~onnEe zOw9i09z!V%?Ao9y{)f!DpE`jw(0-Q~nPQ9nUm`NNkXLclS0@lpJVUYID$PkF3>ca7 z68%q<^A55{YvWAI(CWC3+d(Vi?nlXmfp#V`+C+CEBAmb;Et1GVf=GNrL_>HHbnGFz zg!?@=%!wc)1;mqiQMeq=wKs_kaN|LZRu~v5gTzTM&~={m)1|A9{AA8vp82;(1_+^Q5SM?-M!5 zAir~3Iq^Ic#Q#nbaFFB1W*!+e&KON449u(2!2gHCdF=Bd#=~fd5{1c$aCYhhkN}{V zq#;T42c_q;;Jn8`v;Xa}bMH}dJ)9Feg)Z(FG)qb3AqE0RXc7M%6X%xa(`JE!3}>}R zp+XMI{{Ka@gY(h+AAT50EkbF~A5Eo*`{kq&Nl9fyCk9Xv;qL9x!U@#yloTGa|73nX zUO+QogoO#6NJI_UWl)3D@{A4!h%4~H67~O)o|~zu@Szjq{$r;4Pc!1c$SCvw4#RU6 zoHS}U^(Y-5kaL-Zg#N!v2B`jTLW%8STtJQ$AJzY4bMC)QV@P;TPmT8Szu5pePGI}3 zv_v=sJB4tHHy;uppJOHYAK!ByJJNF%NumKAWO|cM0q3HQ&j$nrvHvgCbMsL;C7haq zUIc2AUWyQ0IKg#{8JJ_|Kmp_#JjDM`&EC*oBs?EA%kkr#((|Pf0k|S4@$v8q z0f|Fqt{M!396sf_TotAGMw$>0uLyyMCzNQaZuH+|^&!1bP&sDrb;msgD0ClhLQ z8s)15iP3}?2)4hv>ey+y&(qG1;M3CR&GYp#AR=@f>GbALNY6S81#jF~LLOdCSy~&i zBYB??F}uB{vNGod4E@fweTy&mj9;PNK`@R}e?yAjJEL=rWoT6{%4;kGSPlt~Quy(* zZ!rO5C8p=4SzWo_5WX=sp!2spoSDg$=pe$?%&_yh;)bFz&znITZySY_9hkHpt2GV7 z^_~G9^~uNZM_4u8%|BDOdRRvTfR^^C*Qnb>-}(tYeez3AQvXam8+N;5GdwP%`l00Q zX`$G*&8Jx>2IMt+&$VfLwyp#W-f(Gn%~iJUiJ9MhB3qkfI`Z7Rb@cl4OJc>kE;qSl zZ8r7o8+I+oOmtp--S>Pm^#(gSjQ}pqvUX`h@#Ez616O$|Y z`?nD^*Zi|ydGo{c32Ck6u;UvGR`iE_tOv>Cbk8J@Q>03x-Kby4Nwcl%3GUp?x=d2P zasLX&5b@|15NsdKAYP@{tU99N{MSs4N?9G=K<#H?E%58 z%yol2S+?Gn>VK)uJ&~t%z0Kqk6oH_VxMxSBC?(A3^VEYduF4slwl!YqOjJWUHwR9C zl-_)%7<)r}%Atz}bw48+K6$XHG3~fvy!q4vbI_gWB{f#jJN%Jqp45@5{dc?La()3z zA*VKx*O%s1DJEAV+LyBv3k7w&67~mhbJqF84t-Ve91a zda!6uxT1Cab0_wv8GJKePO2M-DqG(fQtZ&$8xj$y`#*@G!#jSH?ZoCF7oQ+j@ZD;U z+Yh6{J-$rNaY->;xQgjr?dkVJ>AVwn0~1xZ59^DLbm<>v3UlZ9j^@7R%-p~Fee?AP z)l*o&eLZTeXKj2(TVslnl7cfACh@iJ$4UN>c=ectn!&HuR zm}R-IE@090qB$>Ny5BBw(}LVOy{%cgGKAoi{dOyM^h}%NLur(1Ms{v}jZ&4_2zA?k zURF?e;7qIe!u%0-J~e9^IC$`JV4hP3L3Ta~HE-$Tarq?12rlCC@(@ag5+oNXAi%9g^iL^*hFHp+pkkRL&!@k7p<5%C+4p@`%U z0-VA6)Vp#&@Kp|mP7EgFtTB*|foe7dG3p%1t2g@c0s|U~E869uEx2EZ{-bG&<}P;@n=}+kx81b$J9y zm^=g^p!Ki@YU9LDu<+a%E5L#O6vrL=h7;c(#{?_NgI|Py{-nizW&DC2*|*2nxdKoV^_hd6rq7! z7iLcE2qA$t?ELi!tAip~!^c&wX4;Cs8eGKX$N&#%8cwVo5y2<|*RT{NL7xWB8sCgy zmL7)|oCxlaLJ@ok$Z*xdS_Tlv5R!pWHGK(I9zO%y!$$#>y#%}fP{Bio{TM`$2sP>& zM(_*be=mZ-1>!&bjDQALE9`bO!5}#<^xF&q7y0-Ot5J^>MggbE1|kh7pDd&xh}UPYiY&QQICKoe4gxTMFseVCWtGfRs-u#|G2T}(*RqsMRfGQSjLBE%P0E%nePapx=U_*+o zeFr**!Q8tB34TJQX&xq!gba5_2~ZF^9tWx5c<1cK=A=x3sf0~|MaK~l(hKKr1YXw? z$N^i8U`roA5_CbKvStXn@o__9WT)e%00ADJE)1wrCg%d&n+Yg^w@o}`*s58Ai%=sg za|AyjG`~nt@f26jxVwa(DR9W;F=09aeLkF5PWOJs0+fM-IvACE^E1{51iCp$6p7Xi z{I3Fp1dQ=`#Q71Fc5E^}FX*b?_;FN-9~v`7v-WuG7mv&FJ*c4SsU>Jfp$z(6=UQiX04c1qy$)y?jy@iJ{)BkIardd=UR*ZT`~1#iPc^Gn5JC zY0>?i$U`yJQ|yyn)xe{$?7+36v!CP5KYCxE95|_-@m+{UO;e0iiMv0Ccl>>go|57PhL`IC7Y~>4t&m7(N_k7O z_Qt%WXCLS#jJtU#;ao(gRx|~)2j)Ti-+E0i(;yozXBBewg(xK#!5fs?#|f3V+htKT zsrXs6Foi5xqP9=?mAhVr+1&bzzp}Rf-mX<_RGiDa-S?$I)$hU$<@jj+QrY*%iFNvx zE_*}U_dRpO-eaV?e))w>8C-5wER+59@bT1?eLIZMQ_X&vVJkK(SQ*_u&_bpkdZdNF zlt$>VwO4sR55KZ1*H2rkx=tq#i;K!+vm$?9+qruA`1dvK-?bL}aR={@%9v~S zh$aihvp1t2Keov>NI%jd9gsyl(r&(W+B*73|IXkcO1g*wL*r?$@MHTggBA7{_Oe?P zuggR;f~vRSI-~5*S2Q6SzbYah_au7jZ$Iy=(9b%`B2!y&j(*&ehHU!PeI%njnXuxv z`5=z3UhDYl*p#AjZ@^yQt1xcHShn>W*R5Y0=GGPQbB5=$vc^!^WIZQMj?tgHG}?_P z?n@ZLw39X{eFI}AF{MeVW+7WV$iAU7@Wrv^s(IDj@?Up8Jq>AYW@n*`aj0Dm<@2i2 z-XQey4#RsKGXq~%<5P8ZGmc7xSE$eb%zBOp`xI0l@TEk#)h=nmB>lSDa*Ru)R>9Tz z9XRb8vz6NZcr)d_kCBdobI;$CCZj~%TAH~ZG3>WTird`45LC40c?`UeiN&j7x`t23 zUSmyb|1C=BI<|YVxX2k@?g68TUdM-v&>CHT5q{+v-;=1TU!wQ`4%f=({!joyB_&DgwtwXea>P>rAZ4)I3fSo){; z0|&7zUN$L)Qd+T7h+k5U0+(618LOCEViMb`2zkwJO3no42+Wj`U7;ywx?A%z{hfo# zWRk>hP7jQlSK@-Z)&3@3E34!(;P}Awg?as?vZK2gg)zo7CvA%Euzn)_N(9fw8;eIM z{x~`>Y7+L@=PXVxvSq(rzq`Mj4ep~zxuGsG=lW6T;hUm%?G65mv6JE!Etez*5R=y> zAKC8cL@8ZP_56gtu&rqo`IbFA;j|%E{EJkUpt|Lrxzv5vO@`G@KQqhVU+<_|tKJ5h z`T7IqZo&7%F!vI$zuzTRy}eQL@yTPM%m)+sYRu7?&`*r-zAtA@ydAhWHL#gJ;gak8 z2>IC$aWvzw@il?_NBPnhCCgs%t=vbip51-X)bv`+@3P>e_!q78&RWfGbIQ+`Hz_P|@X+QJry&v)ykE=Tjmk%f+?a1HdY=8B8a8}|!!wj^wHKB;MNPClrhtJ1pMD))<^ zHKcAaTs$DzhStU9WmZwYKFuq=gFGp+um@`0@FSgx>{nV zBi5wXiO1C`F)QD<#vkPj%57?_oMd)3^>)%by zIX;*tb4f33Wt}0@^XIQs6y8$I-KwsAe5tvAEY^hdVTLXyo^@4T)Aj!4$67;_+M)?g z$MT-4+H9sj(@KZUPG2#JPYRoora7)!-cdmKa^F!m;3ZEsCCf0;zj&W+u;5R8olkS@ z-7aO?T7ZXK=+=bp@ot8wuLXZAy5Nfso%T?|y%}F3+Z?oea;>OQeG)|xY1EH#A!FJ* z<1Aq}if7&_U`p>JFW}FvB@B9>&^_U{rNx&h>%$xF!&AxDsBI^(xgA7rO#V~QJ%f~N zL7iIZCH@n1yOU(lZ&Q=tZ%LkbSxN@)Bdkljtm+C=Zme+&_@NK__n%X zME(*+d(nex1c)Xr`vsLd3#JDTkY|S%k5)KN#%1#`JlpWo-)j=c12wIKOKNTYG^;%{ zNB36AA0E^lRgMvy5iB*X^7gUkJ$v;#z;U-Vr8Nn&&G2e??3==OCRP(-Z&uGSM&>zV zVjBg^SHq*!WIi1er!IZlOBP*=C8UigEigVi9?Z+Yc#I4g_i#^)zi|k|U@@hvW z@tT*U{xC9s=hqH;l7L{nyJe_uP&Is1MS1tM=iwN>SbV2Y{WoP5f;sv%0amvvNA8Rm zu5Y!Zn2r6EJlUDWnk?YAIKXE zA9?MGeqJe8mKWUOU(ForjoK>cy#3~?vb|`EnYIz77Il4hNAM4)7#CNYLE{0z)m*&` zdNu_yBeJ8mg0WE@4qSp2s@em6^3|UrzYXpdbbHA3Ic^yZX};sB+In?SaOjK0gS_ml zJ2pr7M%M!;M^=7MADvA3ulGd~l< zv^b{BblS!<-83y&h+oKAu8NNLt&;EIa@wDeedXfHWuWYUw z4aNR^51Sshyk--{H||;TU@38hsPT|Uq-#Qj1CXg(iI)6jeA=E_bagP_u)^vMCpr`{tcm*Qz-Ks5dn+q_c#J4*Pq8o>`@5Ku) zo@A^Fgoh1!4V%cz-2B7A8mz#&exSY{u0V)ck5+e#@FSdHMm%7iNHw}gW8@qlp<&eiwbI{w6xzeAhQn9?bGV)1vH@nF! z#!$?im*o(@YWcn1hu9fU)#yzT*Yamp1)W=se|4?}--~p;>@@ak?1R;$oOaEZJhO%` zN3UsDicJ)_>i2{A8IpqU$Cq}Pu$ZEY!~bd&S%tPd(TCq44G6V)Kk@P}(X*=#lPH)k z{d2P=x@C)GvQd`i5+%J%7D@du5>rn2h6zT(%Q8awY5nGKCrab7tMwYSRPHA1j;@nU z=8{@3@VX)BiB)8wXr8W;re)Oqd{U>dCamUo`5$+mC*yJo?FU4NveV?WnNWoY6Bo?0 zt#y0-<(sKAgrN=5N=mfOeF6jH_;R7oeP4wcmvj`H%`4Bt{QY z^f2yi@^kL-@cZg9NK1jDb}xbzl^J5*^{vVh4pj>iQSIW$mFtn$F_v;=V}h<0yHxDEmHB zp_)Qruf|&4#IVt9Y2>%O{5z>RZ-0_M$7JgUkiOhB3cs?y&ymG;Xn6P_};+r{{O%^D#kXYSD(HS1bbH4wx`` zYB6F}nZNYpV#W7swZRtS1~!+P8?y55KmMU`W!G=LLzb{5c>DdwW8ZwwNs*T`f@zqT zgs+_XfxIG@mG>oQW!dlbJwA9?Ll~xIQkd=^qaQHgzHKZgTT+y6Ni#w8JTm*Qxt@~z zz>?tBVMXtX^pRrG>Gg}w^s`BC*>6@6x`v*~+9REZ8rT!_XW~{eLNO&Ghk*RMSsB>b zBiI>P_YP~@o!xBhXU;1U{*fs+eRHfa8{OYTcOyf3*wnmlfA^R#_GyU~yt?P!8fv4C z;chE^;IoE(v(8na_RBWaR`#+iKss7_GHEmr;vP9gVth&=UEH+vWB11ZOY4-(jDP0n z+uG3$=lp zNQxZhJxGc;9Vgp8NWj6YC@7 zPt%W#*EDZqbZk@u*mYl-6KNgi8~B$q{<;qvB9FGcbZea`EH4kHE7$gC;7xXluz|9J zkHk$6#qe)`@SWcyMcNXRnA6`_on>BTeivA*Dy6?Yh6zf&l_s^*OJ)4%CVOaww6@)b zaa4ssc!j`P{og&m`T^UoJiD9qD)5`x;T1hvP8(Mfn6|Xf$p8IBgu*-Db=!<3T!%JD zKE)F*K&T~wa2eVvq4F+&&H-+6w&MfFL2yCrOcJ3UWOE^f@GFE!UlRVa&&8BRmJOqBtZmMEC%SLz$C=f2nXNYn3n_iXyR2XbPc-4MH|(Kd<;JJ`4j^z#DfKM83PNwod*M;5Rt{O zaVV@!1&DCL2GkmNJwe8KHqXPlQIzLh+;DX^YX(dx zkQxu~8o2i^1q@HZ=m6D^;NIctD(pK%V0arA0mZP~hj~M?(L>lTNY-}>V@Bc%wF-m7 zAngts{tYUbj@N5(32?&E6X3E0&rcu#j#(Z!Q2CjM6e~snSH#Epx=_M1Aw&v(ZN?`( zXSdsXuVE8pR}KVABIM4GTaaOY(ZJ83HV&EKI;Ye!Iqo1PDr9j^d-L2xZBhdUhn zlyE-2jJ)B#5E}4r6~AQC<^bv%PK%U3a*ExegT()?5?E1nIUvP z9c~15O>;I}4MKnO|1C%3gHvw{@KXzt9-1iet2`I5oaJzPDD|)!_%)~;UmD?TggAnK zTmD7t?Qm8|rrHG$gi!l?_$<_L_5i#ULbhXYEQA<8!haLu2CBxOM34hG62=M62dX;Y zzQsd@^_YdbK;6Fh1rB~bIIqX+dH4W?0vG>9SHHoJA(`G1{1*xr@O|{aFDf9LtWCYfuO}^Ya>RXDI|YsRhvH8--BDHeW@E zL$%m8Kny~`-kKstpv#CT3m5PlQ_fWcGj`@WLKt#E-#`>YhN7~c>1M(2 zZt}fJW0BTww9gz;9o*cwKYpMM!L;)m2l_OLjq+5k3!y({zJ>m$*75?W&tTwnVivP1N z+7a>+VbvNC4p6~fwIIA8#L|KAhT$f=!J4CNFX$o(>>48F0G!9dJH#TC#PYj(cUh2X z1QoPiwGEO3uB)A1co-Ggr1Y2njWh- zh4=<>;QWlJgbW?AlyS76VLTZ${%~>F77-E<#qQ{t>~>K70pPSF=f;%_Fe(Q-AZrOR z4aM?VM-2T_m0iR*G-BC*Bi=!>m6Lz#7)*fdfn<6pS~p88$2(Ndtw+$VPsE(7ggAxDKC_jwnKkqj0F{H4^*=d@eJpMbiDDWe4iU1ec;xkee@=cvX=0Gx~MWg~$ zEZ=2hJj8`$2bl~d+{0Ehz5#xl>_r>WZ3zABpM2{@e8RBHK%ZlOeG{eFG2vD z-J>9IVd?=!)2O(Ca}QvFg%^gUJws*?;>t)8Z?8Q8MwLSX#(gBbz#CRx4lIliH3v~z zf};eWsFXw~N=)gy2;iTz}R7(tpO0EY=U72`R1sep@|ywupI!YFPiyHYWfErdueq6#4D zUScaQuR-cV2;5&FfV&n74R~|$GGNiNs73-DhvA>WhY!K=9!dfPcO%8?6;R+`0p~pn zsGxF@IHahBGKL0RoIdI?)Ck%LY&}ah=zY9NTV+I)V&aEl`R0 zxRy-!opc64LrKsO{Cfy6dW1w^V=YlXpf~}={vreaSN+x+wFjxc@}Ifh0@W9Ypl1!P ztKQr}A%Ty4;8aH3LODZ*-Vg3@(13;}XrQVKeAeKa0S#p!K5O?;hfwAYByARTprJY% z;=>V!LSwm{QPYs&i5toh%KE`0lsnWTv;L@6s5(7CC{74%JVlY>6*0A-?@y!dDo^yNlDDUS$)3*dMzY6ns?RM&s2 z2HDVq6*>QAe_p!!LewCR0x(jHI>6EIDM5)tk&h}-QV>6hYLqgBJnB##(5S6$tJgC` z*UAS}6lCaWKAFP|zTf<%04N)g;@CH1D0Kv`K7kErjUA9M zfI5G^37(%P29zXuX|M*LP=BC#b!8Ss0u|VD0ksNst;O-}$HibG{6y!Ay&w>Ok(URX z`5jeFh(51+i|D8AQov{ybqSlkih2k6q|ynn?16L4feLst0)v{0mEvUqw%E}q?BFJ9 zAC9Bcmm5*f2HLHX{+AM|G)RecA9VpLi_RemJWzB#H&#wir~e>)v_I76BqGtuAHl<0 z#`w5wfgA+-FU~j@iFSr+NI{GafKWUc+8aVBDl~ZR<~%4P9r_qT^vq~qC@3rJP*E9V z#YXlYR@hJM=$jBBSzfdy#GZfH_PP^T84Ma~94s|4_LCqw94f+*;dq@tIEGkA|3_Uc zicW#rQ@@Cgf!K`7p#33asDLJiwDu}!@NNH`A?6ZV20{%w=&umUG(ZnQJ?3hRz5&Vl z&Cyhl@4^i<38dYzLXSb~Kn)k8w;TA@7(#&iqZ|t!9xs6=P=+0v8XB^N$&^1i`0?hmmaLC#j5|e``$tkdZZ=uEcabzT(qivLMU02uhW_Aj!ybwP0S3Ve!4p`IRWdgR} zqZe?-qdjPUXfhiPp@kuqf#YcNFjDZ8xh8%->fnhg_)-ikUMISN*>KXeu_1aIWJ1Hq zaaB_db_qp+Li6O_5LdgvM5P}>V?jFRzrz|l;-5@6US77*w7uT6krv`@ZQWm4w*BLD zX!dwJ;OX~whHYne+r?C@|twf(Zpiof?OPtOmMl^ZNP?+JzJ_lkZwiq(i2k?ca3t4=rfXZJ9Uz zDH1YI-E!6Xui9>G`q_)KXA9OLzh_T|PXa>PR!?5LPK999c4gO(a-+Ts3YC~?N|u(~ zxa59yg`IN6A;i$iYUQ=@YeTdO_o3Aa=5f^!;+Qz|EL5xY)jmedy1cC8%O zUIiY~GYb#!%15s8xKlQum0+B(+zH<3D>g+mqJJ_>p3>;HT%eCi%qy9RWMVQE2+u*Q z3#*%k+y!6mXRlyR(@aakMC%?_Ju?vs`5ft`sO}V^h?;4aF}W%Dj)iEIvn|cSIT$%bH}wIh z4#%oqyv|5m!9md&o*=LBgB(#(&#Fli$qu`(1r!BTB%BPGEAd+K2J!0R(ROkjsE`-1 z{11ZpB?lZGmtf@MQgKEPNILRisW1ohd&+434_q(R#9!DYh+ci96DMELW4+msboJNE zuL+(7R*o50c46vl>MH8^9a16u=vUMO94~dnqZR~0<|&k}?vixWz`_c?ISVRli$~ar zb|{7Xff1wVFjT@^*Y)2#wG-%&3|WE+q0Fhu^GI)ADx8Elp{A(Hxvv|(3AW?z;0qaq z-9*(>IdgwBcoS;J-ys_E1vX5*$@x+5O=iQ)B2%K(nLW&*&2~c8K$hsY#>#^(d?F^>W~lBJx+9^ z{2zF#JiO~-P0^j+={;3(?Krmad)M0npFLR9&8NQeo=r``J(ejsDIw_vO*RRF@RHuJ zj^33uL+NK1A9n^F)_yOD?v~0A?M!w0zVLm5^O*qSUS8t+)am8!dv*`mzbeWR6RHZp ze-Jb^%Mt&?)NBp04Y4fn9mEVr7WoxRT-8`#=wQ%g5xXZTXLg`oF;VdLzRo(3^ir!_ z=gpg@@7*uf821>TW$2Q366MDd0dgK4vmb^2OAoha`4bhe54>QR_8l*BJ7kqd~&@i09|Z0AUJ)_+58}QcCiv zI;Qp8AH5kqaSFa+D*je(`M@&uTg?ygM9#aOuG*oO_)?{XS~+Ssi1{+4h2)*yfA>iJ z#79VYte=h%4@NZI8)V8z{p~Y#$l3VkrO#CP(+9r3mh$ktbvmveL^^!VGEU~VhJ5nN z2QyNY<@xn!-e2u|%7G+m{51aRdt~Z2;-dmS?r80FY03#6jyl_UE2fpc;mj0SQ6bL9 zO6XpCp_THzt5f0!-JVt#U){cU+d#iJLnFV)pg%iF8uQk0xuIu~-C?9Qr1uj8jLuJS zoZoPuSNLU0#L!yZXMeu9{>-txsuIhKKNMq!HGJ2jQdeKx=l339QLJ=WPBd+L zn30wWkh}hEXz4X2Rv^orIXp-;eZPEnemd&zhpY_S_~gW7z|GQjAf7}fEn@1{X@dM> z?QJhAi9$@s5IjS9*J+ZTQbPEipgyH)rJbj!)vMYEdg)gsPAF4I=3nWjOUej|aeFyG zqH}4odOEy2(9&xrn|i~>{BN!E{emTfm+{$Q8sB7OBfQ2!bzL}bumXxANb3oHfpmM4 ztJz^jUlY~if~#MAd5S^YGmyUb=0LwclT4H*L(2CnhUZ{^|KblxuZ19YCuR7{hnrGF zo)s(KGkW2zZvxhhO1IoU2)>kJbfCrr%ahg=MiI5}5J=r#)_>ktHA1jBVENFxKF3#{ z@7jJ$Cb-@8x#40@+;9K18WoqoJLMxhvCeunJGKI3t{?i-5{_@DROGpN4n3W15eU>$ zY4S?h)x#XTGk=e+a<1H=U3eS2 znIPw2HD&h0{jF#+hc31x)4I2F>^qC%!e~;`MeiH~Nv-*l#w{7^cSQNH$oYk;*?CmuVqR>( zm1gSWNjZ^r$#3L^RhHEJQ6wB8KkD@zR9fxa_|u7zjkXIJ!t2-BGY@rXbxu zJk*zZUA$LL?fso)p5>*bge(dsdJX{ZCPRnij3whlCj1BLAq?4WpRzoi=}4tK z6I6JGR57Yvw^Dqjxw>?JJqj(A=d!f79i6?{oy%QLmRaq|pVL)tDR4_fax88)I9cFF znD^;3ah_e6KAm#KKIJvQ8^IT~Kj5xj{WAU}Rru+%^4kx^sVu5}N$9@we%mS^a?{3U zeXAaXEnT6%XW!PF^drx$PlWZut&cWm9&=YvJDMR@@go5e<}Wi+H^B`-f|b;!elTH|0O4 z6NU6l82@~ZpHtF*@!}%50yLzZBi||+kNT)$-yiSeH*k}G5A~5`A29V1Wbcd!8S_yX zUg$b>R|(;X;bG7ePgB(qBQFVxC^Wj`lgn_u|anK1Y+tWfh^*qx#%VxhbA z^lxih8g`dN-i5v16cc^&Q{Q88W0;oy?;}l*Mdq6^)3W3=^nbUVJr;LXXz1UzRyXXD ze|}CpFMr+Yu*d6N*v^oM=o7bV9*fynFcb#!VRfgdEd$%nJ|HA|@_GGhC;8)TyiEmX zch%Vd{5SVh>~@&i-)08oaR;4>;gN~rvD_e*Yaw?3eqmu%vwbfth0#dPW=lt>_yIB*=wfF-(VXg3JK~n>jkKcWvj}$c?I3EQ$DL8h%?t1QzU(?I?YrMz zvhk_*WVf=kgxQ*JM_d#lhxxquL1A^>*9TKaNtmp?(9@R>T1p(g`2l-!-Iq$GTnWx@ zo)u0mG~6DMyt2^Mx4&z@1P9gU7Z+&ao6D)I(@bD%ZWAU}Mzq*p`f2yhWQL}e!=%+= zxg*;Xb7^*!vKx5W*F-|vO6j_6ujwrml@{)rPD&n@IKrQp)psAmFUYyT~wm zEr7+QR0W^>T6Tz6sbQkvy@i+SHSYR9<>g)-g`{38v*l<&t(e(@O0h2aNsASx80j!~ zBh29D)~_+gtk6Wq<#t`^{pHlmxg2@EJ=$d%Y(-qr#c@PEt zIX>zXlWtx}Oj}t@OjF*~9ke;jyUTupF*1Glj>XSTH|P-(R9x~OoUuPFTt=N3dkq|D z4|*KtFT+6mBdJ$`GpdR91Ykub%4Ao}TJbot8-pY^?7+=&u`8bnys`v;FMJV;5VoJ6*T6J6XpH zUYX!!t*v?M_wHW9O0DNa6PusAdh}(Hz6O>nDpusm57o_{{Gz3tr86P%!+x(A@nha@ zt?*Dk*ptCDu)W`V)W9$&upO#0iwbDDcr^W3Xfvz~`32@7zqhCIkk)xNg1_l#H?ZP( zK{C=$ACtAZ8Rv)5zhgsojhy|0uTQno^}P$B*W#3}|Ii7&V<=_g`+S_xtI*J;U|r71iD(A?YSS*?+cf%8K;D6Aoj-GQeNOQV!B|=8H*ZMJnU(<^E1P#-Q>0l z5W^A)aZQ*49@mn;f$Q!nO&jiibH+E1DJse*FEv!DcphIWu?zbe@~%rNB=G$gX)3YQ z-k_>4InNBmM3VwMJ#xRAio=uh0yrlY)BuksEe6wye$??{d;&srh3FVO>QU<~m=WLT zExvxULQLINE=senadil#IpTQIXHTxUsl_7WkMX_)>t+k5@rHNz#2+%OJyW@`@^e>q z$<#DhD(00>f+3K#YJ?q%e9BlIH{87;{5R?I_25UQw%wg>QZ;Ae2JD#k4-T9|Ufr_} zO6XMF$im~+yQ@9LZ=t>6RlnxC&2hVURl0|{miPc8m>Lz9G>|{EpV`4@#WBv&G($)? z`r%z{PG^8h(-D%oal*`=@mk8XlU6^MkWx^x*^R=f=~VNY8+)%Yq~12f<3PD7lhl;o zdJCu2%lFL2qq|MdF1uD*pg9wooYmh7d@7Y~kn}s#`0*GfOTg&FU*T?XU0md`ECchz z#veZmjN@P(e<#_;gjSEI$2TbG>bPg;Gj{Q|wi80Fg96@=zc_qOYz?a@={qJXSiThh zvG_ZMnEZfV>~2CnRdQTzyIyR+nMw!R@JE8FAg#fE!bJ(*2p)-)-#tQ97o4w*q?IZ? zGZ|F7B26f;pOmp>=wm>q(^&eQrAZ)fKyN62lLAvQ%Dd7T=@tA?q_JJkX4T3wSO(Lp zDe)_h!QVK#^}>4_DhILWRrKjpE0Rko2|^m3v^Ji}0No?OMk>O)YtD{>0hMBlEMt`q zMVopH_jOjr{!kPr4Vj*@lssg6CVi9MsNN6t&K!nSz5TMHL_C>kR;Q5og|i<0-q<_B zp5j7`p3mCY-$K3n*9!Z?zq~Yw$*^e3NMPeNG(cY~Bq=ot^kzWUiTt$WoT^T!6|~lT zR`*c)PTiQaYcNmc!X6A;({kOO|dGc7p%#j zl`dSbKoB`qI(dZFu1WPA%y=caQZ%^~%La45z$Cer%YONTy|ebp&-4w3KG~J*ZB%i8 z%7S&gnI1MAwiP05(j?N73o~zOopUyH+`KO?6wjv^>ZCEgso{9x3u_De)sOBW0zdg* zau98is!-~FqPM!j&_wfqbZLF;G|O&EaU|!b#>j@} zg%lHrXAEQK{t`FcEZMKZAM!ckuA=TM71~*5p7n>Vc{;#F(wWg1n|s#kL%+wop3j@C zgx-A4*D|uZ?az6bcR@}RA0MZ+ z(FGA61A#QUhoT|{8-AZOnzWKcI!i6 zJ@)sABv|91))t7pJ~o1Bkl~i^4;xt0SoY-fYK(8R`e5Zjzu2d!GxRl>=N?+@X4pkD z7K~4nN7h}Fh)J|;Cg#htws7JC({kq+!M=yj(Xo?`IefeC!TSpFsTsdvq0P2xZ_>G? z{wbv4)5y2gq(8OTW%NG1M<}yBw@F`b9Z85DB<G^IJ}uue)TkH|I04*z6(Veo)0bR~N0Z)?XKW6GA3JJao<>O4EQUwyx1 zFAy@m-c)Pd(GbpOC3(avpm?v1#E$&44T3mu;Pe|pT!{O(jseir~>6QCab322G z?YQ=x0TMH;!=^-ivdP__Ny?_@6JhhHa_;eJ9x*FyC4h9@le0loZmi#?__q!=Rv2@} zsfW2K(#$iqdh3Ohm`A?VBTL$QL0kr?h%>Vs!)JY!BgYxlWd|vmw;yq2BDvaxxQ-Q1 z7*(SUB6*XhG@ln?Lzlv=I7Av-jA-xlErdAKF%_d*Btn5mQsg+*D zH#vot=~+*~6%G2Pkx^F93rSVKWkr5#dE&4;Tz}z)3_OmmB|vcAYUeY*$s;|C_|@XB zsqDm@ek>d-;k9m`X&kKfX`Pgf8AMaF;f|#`DC4jn+2I)xTLq}N*-W! zt~M_PnG2+UI}?T>i=LfDddKKb)@K|ageYGPr9cj-9vac+Pg z$DvB$_lM#>o_Vyaj=KRKe-{1bF#{&6?0*<@4TThL>^#@$lXy43;}g1bt=~|pMHAdy zd>U*XD0tW>z-54J7EYEuk;!@`|9PQ#@rPH3vaX&A`;%VERZn$C_dNO#!^`VOJM0I@ zq91wzXtAgOZ_CZr{#!fNbpAWlEF+FNAN>KRtyUpWQu27mS7K{&f&JS8M!5Kb^X@Ba z3B|+QP!g*>t6h?4Rx1hqLo%&br7u4(qz^pz?QpqjvMl@ZmJl7R+0jDyL|*arE#pwd z(pw&(*{$Zn55#qZQV{-$CROFZUM07DL(6h?&0i*tAUSA-s8JRk!8AFvWoE{&@Mu}e zCe^Mk#NgkkN{hCxYMR62UBXPkj?=Hdn+cz)uk5IM5i^ZEw#&QKHJnf-(U2WKB`70( z_{?7Olzq+A>5@hC^YGUU9}j3hn<-A4ITu-(R$Xd%5aGT=w%EtonXLF7?2s^_#}l4Q z28(@}KU?4>A18Bck{&!l9{1mRH++Q3&kK$dzc9Q>nsu)@>P%97o}(CZVcoF7wmh)y z%}Ahq?rEpS@p-p~h5eeY9>KTICG@sLAwAx8WP42oiw<_OZkL%YcLkpqU`EFItL;eE(8IJBhu)h@dvW-F$y|y2EF}_YPRhQ4$ z_MlMi>_S)H=cp*gZL&KV*FxVfZx>ot5v_ zKigrMpN@GeE&qA5p^rORkCtsNLQ(k%bAa0+@7kTX1ETrwi)Ff<7=^cUT{VAb$m5Dc zFC7|L`%QAU^0jWi2-MpRKX@hDy80rp2k#25$uWL3vDZ zj9vNQ)Pp=*mlTudJ6GuIciO}b`1nv_W-eh8f9@XNcTx7eNgj}zS+m-N*uTNHA2o?(BvAjFpyBudmO8(>Tg*{j|_5PH3#?vXEZUB2dJ^PrO z{ESM|V(%g)`MiP0NVxDs@cj1T7P^UQR%;~G%!*)mS1zzw)Ecv|!>-G|F~-lfX1aEf zd|qc!O801%`;_(C8u6L~LDFCKUEU50*cs1Z+5&TkTgg0j>|RFL%n{GZt!rbC$J%th zwkePOp4eA~sZyNi>{2Hs|J5rzqqIVPhz_FGfk_5yw?ceAi_VF5HIR} zY{KTNG2y4to4J@VHwtx6R1At2#ho+cDHj~a5yFwc@f>#9SRn1nXzd%kh@XR*GBS$& z+_DMG4i7w|wOus=9MEZ0Qrrz;3+5rqFcH)Zs#>mwn1x3se-#_+wBLr7x}avLx<_lb ziYKxb3_{3YtY`(whkUCV?(`jB3LJi)MFsH5Tvy|G$8!gB@7~pc0oSZ#RZ%ZT^Zk=@ z{#SRFqWc}^5-!dqO!<;CHkFCaZ@g&k{i5tip7vWMBn$SN`haWo>MowTk~(_`EaWZh z8SE5wL`}k>!^NN@9%-JXU)TW?fR%usvcjnfC<~}>Q;={o7>I}1@pN1W8HJHkDP7(b z@8E_xpxAgZA9xt_#AEH0)ag24Atz9{FnGTu|mJq9u5||;ycgpY7G!**W zJ_&XT9V8*Cuo_er*CA=gcC`{ z{%q;+v28C9x$$9*Zd_SZN+LteJ&o8!eQ(!Vw$Q(c*%R;W_ZPGYY+GN7xg*v_`%`Bw zt%rl(SJ$1zQ_DY)zWTBk&!@_kiyycCKce0OD30fA+fIT77Iz5l1b26L*Wm61cNTYd zcXubaySqCqZo&QIm;Y1WyR|jd+kNKrnbS2}+dJLY9TU}h6D3aakhhq$HNtgGD^B=u z^(%&{L)`oA_wwz6BX3ElEWTm**1)=eX@O|Ysi5IAs@&D@X-RCkD3ZlWa5|dB8qR3+ zFpqE(r^ViIK=H}$11B&JgmG${7)kqukSsID2s&5tXM)vI#z0`@z%9u&eA#B{9Ok!? zZ&iDK$WlK?uxX{ja;X~ZPPZH9Y)IRLetBguv{58od{C*$sM3|!TTu7aTS)RN6-I<6K-IfA#TC%{r^HVtI+W zUP;EXyu{7;SaW5dW~CKp*7MA{HU^$^S~%O?ZFLKh@0h#-x^~4tm^{&t`o z6OoYG$ZEv9#jo=DyiQtuL8lZDC9UTHJwsoq9Lj2qf5db^u+aEX zA==9;UEBqb;a7l!$em4P%W{=T&W|EXeH*UY{a92O>*K=;W)VJ3eI}$gBVL5SK){NO z>zDcla-pEpRuj#3mcX)MxCb+$FX^#*%`=#SDA5Hx^9uP4FbuIfnFXn^rL@{5q_<|3 zfyghc?0o`n{fgSp)|zQpjS8G15J>w;=oT(V3aFz%<5LL^q}IyHIAVgL*WXku>kfvX zgvc_!;4mXhgACYrNF=3YVot9*mKX$OC%R)C0p#@t)`c#@21KT*fayPEn#_{B-E4k1dIgyfTIG9_iu`L_`?2?wEpgrS99!*kkq068)k2PRG{X+E7FE0--5VIjWmwzdI z%1RKrr}Bd+gE|Tq1{y}NIyL%oF(8FDgrgY?xX-K2WMBKer$}5L8N%kf3`L%{KuA#B zS4yOYqQn42Z-Q%hV9>l-NDPsp6nU+wksY1K?;Zv5@YaR7crGVA%+oQw4YNE>$FRZbF)e-E}4>M zME3g2luehj#e-11B@9=L;1}euXr(^6*D~jjCO1hrJUZ61hS2^pJTfwBnPtp2BhEld9U6_XLY?7eprN+FmA!03wX7u9b^d<#bko-`nEQ6khFGh@GXF)vy zBsZzNgZ`q@lUKU8z8Tj@8XxWJ=JbWcPT~fdo{&6pr^(z+Wc=vV%Qwj|!zmnzS-@E~ zb63SJ;Ys&50~v8dRE;;OtO%4pNxH@SxcV}3?pWN^9K`10e<{u&Uj(dxA;+DiSbC(z zQR31+;u#2dAu3P}O8w&%g9;r$$Jt4k+4?MH(4`}{87w@Mq{Ov+62D<&j^^s!@j97f zvM`xq5~c~rN%0K1y=ISEOt1`(7#uPJAIqUfN{@g0qGxAi&GQA?%c=_0rS>Ecjub?D zhaZ`rA4b&et@Je7^Q+mz# zeGAOzj+6h9vFf63{}U35JG=62YCIhjKYk?PVK~dQJIBbl`w}ftAaT^XR2+F6zsv`XE&BY_w-*n#EE8hQ6H>jHlJW!F76(%hXzlCN*K7DHfN!#R zPGR>TBQ59CdQFK{(@JcJY8CcmmR|sW8Xw{Ji+%Iau@-OXfpqBst?Dv4AwytiR}w#F zp3YF(-hhvK%f;VLdShLbo(vurJ=;oC+|l>>YezUxo3>E zZx{MQADT6<`Vbd;pHBmID=1#S-sX%wzEf~K!$~pVgN}Wgu$G7VWpJ}nlE~~6{iCv&Yq?R)ud(te z@E@D&mXnWWrYI1kdio_OZ|M~dV;bfo`U7BpwhgmgQ$ib1(o&OZSQ)|K)u@{ewoGE4 z_8T0W1@?%2f-CJk^raK*PL^%C5c(2F{?hMRn{Bxi`i((h_}F5!jg3DG z;MID4k!On#k-zjZzLX_s8~UC=spFAa-7&EQHNNC}(+G@yO4IASKM37z%zj$k^2GId zI-aSL@XT?Ay&zCXKB^v?rV>d|68M~;m1hOLA9I5pBw_lxM4MsxYGTLN!VG%uy!MkW z5wsM`g++2r?Pu8y4g86nA4JuIvvP;Ke+hA08S+GBpXr^%fR%$Jq$eZ7&(AKJNVdNW|uS!#yT@#~pK*K96o?NIBGheF$YCFDV zQXJ3^jtRyuMo`~yfZn*2RxrjV-g|milBtut25d|}jI>vlD!5)m&60!M3^k~Mn4IQj zaEH-3!XCxs_=f6;q(X*2XMR#-xnGI(#1nq#WC26t{4_XkYAH%Rad>!BMm`K}CZB*v zy{~-K-%fGy`?IiDl)6T;+NtIqJH~t380aoHeRzg`-Frg2&tSJMHXWXOQ@M9AwOSMr z(#)Y3p=$&ArsHTvs9wFpBrD3<&~Lv`qfXiEc&U?TbzcbH#>#@xuhEPT)d!$4R2#Qd zB>~S{HJjSj>aG)02(p6pikT)4Ztv!RawL5O;3F8CV^j zsc2jOuCT>UfNooBz%Uy&u$jc;@$3G~dIfmnJ(k5o?XjutLd|+NwA)Wmdqh;n+vT?B-+aDfBh7!urD&D7T?r}hXE&x2mbxar}p)lHMzBfIncdg?*+OQNQBNWywn zJ-1d;Rki_p95W>uecaM0wZtTcWn^F>lF}woziR}15oVOq4BsCnb24U*i8PAnMZ8Wb zy+1Z^K)=J(z89FKe5jzIrnc@hNh{&=g)^Z)Xb=^HhLwYTH*UV_6AkX9tmQ(x0^;2B zKKH-}LSjS|mLk>O-8PegMW ztdZ1{1&8l*Z+B%1`DbDyBA?@o|X9=D@&Ou63b#kM?NpW25$(lC#_8-6jkL_=$ZF#Pj zSm;tMW$D(`#Cz{qlz%_xRsx`S(>l?=?u&|>lNSlurW^asD{p`CzbRiDW7S|}`~RZD zc%EpS{IM_^y&=|kbH_e)!8PPgB(dl`t!uaF`333?jpMKF-Tp9#XBN9H=mw(bb<5z* z5$gD&?ISLYdW-JC0{a5^Xu%d9Zpo>J92{YgIPdIuC0yDE`ni;!V7=7UV~(;-X?UEy zo%57%{MS_d{gD0neKKuWm%!}9x8aGjP3>K>WHEeGdVBSwhMnG~&*>bg6HzLV2&A9C zE3XqU#=A*dN4p!6`>`%VZr4BD+s4bOp24XrEhdG+sp&~SjNA#F58)ARA!8jF``)ax zw(_Ojv4E&!)Mrx}3z)@&$Tq6W;jgB=J0Z!f@|=>$i;ByfqRFMRGLWXEkqKT89eQrm zL+*Ay8IszX%5;wor;G_qBE5~+i0TU}its|c83{IIGaSo(&{%wUFPfDt`WZaHf5NDl z%PXUX5RU+bbJ_>gK+PXG{p+--rLdd{L(3F4_)NtqrMhlafZWTND9@?_Z8(?ky-6_C z#4iMpDUH+6pEw$#2Q0sdVV6898 zgrL$VS~aBEVL$M9(fe@R+H3#n-)uyEzMAi~OQ_6KgSZAjQeERBKL$|fT*AEy(SeVS zX@GgF3Vm|zySMXTc#)nwXE!FUM#yZc$WLwc3VXHg+WC2TF$zK^JdeJH@=7@G&2@gE z0a2Fw25Fct&qD(v;+%pA3MWFmY++#hNT%v2#N;txu^9K;u78W6el5Wd*GNnFRC%RJ zNf_x%@*S-Kvp4c!^{f*}oU0jQ?vx>Wct)&37}@n~;T!Kk@|{8Vo$8UJkI`1&Rco6j z>pO)i`!q*BS2-dS(`l#sd!(A{goh7kTHuzA5>IWz;W z(AE_weB~NlCOus4-fK)qN6gWRC|oz`96){aN%i3Ydh6FlZ)$t^$}Kv8Y*`l8OjeF< zn1;2IBpZ!+P;#QjfELqi@iNe-IS9D34CE_0%e4OCDO3=oEo0l^R#zqWhw7s$49Y@` zlAVOAc5X_n^u=}X3^iG9i82OxZ8IQ0QkSbtBCG-Rlc6hZK`#=@&L5O=y)rB23BstZ zDG3F@n?s;M+T;U&OGi>zYS9Sx&@8DlfJXb;jK!r76g08!JY50kIcHW%hlcD z^@7-GbHs!bh$5o*(Fiy2F)#|JS-}P#!nj6&j1(bU8Tx$&X2Uh`+8YWs2Uy1B=zb?} zyXUfI5u(8p8$99a$bUl9Q-lQFytSBC^AunX_8hES)nL*ebwJ~SOhRK6(Hum5bQFU~ zd#G~*N3|||tGVUmqy9$aXtlI<3R#>9=2jGQDxvlsxKpmUdDW_ppMPC>%vDO;YWCLv zUy)?EZ~`{+j=C&@r@Pa=i-P=m1)6;{eOmn>eeobsq4{+cto4gKm@?cm zUh@Q|Je2&m?*d0z-`wHB-!`VV;Ql+jaSX6igt78{uLWTt^t$tm3H;)J5isQ^B{Smicx`jz|#~QLp8+vhCo)BOsi&{*Yf_yPRC1jJD+AdbAI5kiXTr>%1? za!?U(7wq{%FyQQ2h8Ga`R@ZXm_(RliYx9Y9ochb7To=fF^q6q%3Wz(M#&d~TZ=;cH zYy81X8w{C_h{<@J91Ua-{d2GgmZw5powC3>;GZ*ODG)vPP9U*iu>rs|cukm92u^_C zgmz5}fYn9J9}&UkOyGfj+Azmd;Qtc-FY9n`JkwiXZ#>IvcxNmKi>DgjR=@Z1UUiFQ zm4D{l4dHqb8yr7~fLG`<@vH>>ZWN0@VEBT1qxG*0F|F_+`GR`>6&=6(!|P8I!v1dv zfS+UVU*d7wuc9#+&O~5?`-*pJB-ro0*zX0{Wf!jOr?Ulgi8^Bzy_QXR&zSH*4}{r| zi0QojMF_Q6zRMB(R-y!~#E9ugHFo{V)7*$>_;#?$kiBU{HABR;|K6A2cVG4CL{0on z{A=)u5PZV~E`4Ieh^mPvi3FB`;R+r6#{_3XC0;q8ZE^pRk|JjRCdZA_tT-jS@_chi;n!K0M!8Q*;Mj3qI@2)jV?6)T6) z`ZErp-i-5##0~Bxbjy20c+N2pE*%VqF@>>H)(4f546Hi*Gi?nu662pmY5;J6`gKqP zU8CNWx3gz6%f(Wr^)XrQL<5_?bQth8>+iniq^8%BeNza<6?=!!8!}v^J@&=fZv*yLraM zrpeu=F7>7&E8QBT9Nscu!fVFRygKfU?vOrlX2sCFHeQ785IiwY1Ck9tetrgxA30^1 zw!OB@+$FJCH1hyY;s!i7P0%&Qc~~79d)7VT&g)a(#=gS71pT~Za)u+pniH4gkhV;-^7te&JrSDtN&kh00jJ#VCdzXlV#n(5J zwMuH?8I}~k+i9li=7_^GZbS~?^NAGm?2|-dTc#?|FM)m+VSh0r5kj*}NL7^a7=L;R z59ljjASEK^&x$H*iIS=+XNZzEI1h5Yj5XKo4X~&2@GrOM5>|9CYpWjKB&Fi!@0z`R zM1!v9o4NyaX{Ecc#Z;@L%)O#hX>24>x{R`r8j-JxbP30-Mg9VknpV50K_clI<_vTz z<4ZIkV_>@5q=8OtY8wqmCB5YgM3S$#?*WD!X>$2t;8D==q1%vp|4vt%YF(LC$jUTp zkfb4f*E&GmoSLmM4wG(v@sTWBmuziv4Tk|Bu7VwVxLS9VZb#l@5T$wV!n!L1DvMSk zx}GNo`<&4CE?&Gn(_s{8RTM7U0s||w%7W{OfUy+`(qk>Q>a1#UG?(q>OqY!*UG=Fn zG@xIsO#OfNE@_HhI~H!N(>1IaKJ=KjYEmwj#{o%Mz=l+hGt!Ua^LEn^1n zzzGxD#uWV3@niJ*S(B*76ctv7nt_U@)D3Er$O$WBw}Z3^*hY76BZennMHc?rICl9V zIqQu~_*3bGXODrm3Dbk-_>?tBGW^LU{V8GKwbw+pCgr0hRfqVpVkumr>pX8Y?9{ zEW;j5ooO6+ebU+h>E)io=#+_8frD_L1kxyaq1`(JT4~D9(aU37Lw#hNg*h z%V-Bw_eFo@?yLT?yzoCIc~y80bt=CPbgH~hyjOZop&f`-Q7yTJj5e~Cl{G3ko#QQ( zIw=V?yv);E*I-w{DG)c*S|lU^3t4B2${ALvSyX?OvCgTMG+VUIqp#vMCOWHjXt(8T z=5`b{Eo{oKnd6taSS(nGopUwT-*>ntSt%cK!IuGW#pVa104It=q)sh+EKY@c za88YT)=rgsC{7)F4o>;N`1173u-1iR#byp$m1eHBGOmp46Is)^*0t2U3p;p~2ae!! zk;$Qjw@LGpuZN6xIS!fb%Pkr_C+kIcE*GkD>~iJB8He*slTs%dhrdoZ4qr~(4%tp1 z4x>**FqG)pjPA<+NHx{}@M`MZGS*?aY3KS~kH z-DATq?#u>IR$D_-mhd_2)R)Re(}u;tn;P`Pk%d){zYXwNEt=$0-zvjR%ttOUZq1;`-g**KvzGfKkqMnXc| z#)cSI8sdU#R&ElpA6S0_SULA8&vRo;8^i?BEuw>{X9k0;W(EV#7U~4=Em4GIE#ieH z&7y;~7K#EA%vuPmE#(5*OAmtEi)8>$;jBFS#MUOm#j8q$TV`^>uTmbY`{b4M%v$NV z*yTJJ?#Zk`@>^bOog=VSziDu51+%y&_FE)ti6atgbFno3h8inwH1Jn&eC61Kzoe zE!#QGCI7kgrQSL2CFZ%@X6>rS=C^aNOULu-O_|lL_Fs*XmkO1u9)fKkng!l_RkLjO ztp#4-Lua+u&YR%N>`UVP)NhFwGOdM9fNjAWS9|Dv_SOAr^bT(0N6?VvQs2u7w`T}# zAi~nY6+$DORw$%aqmZt zSkQ-dG|Y#pE$TZy57{d@&m#G;j928XNhdn+nWppNxw6x>Bd|Jqb2PbN>q2Vg*UR9s z%VW`zwdc)kQ>U>z*OtYb>=tK7zHRa5%0s(%@@0f~^kutu^`%Nj+hy~!S7+Dp!%Nxi zW~c3)>sHrY!1v-T%$=DRvGqK1k%nm~k@Z4^sH3uCQP}BVQP|lzV!Xv*5$>|+kdz`| zbcCxaK3c5+K5nfLkisDPU0gW!-K@Xd-9$K%mv%QT3+>w0%b*|Od0#yG-PI_Cm$WW0 z>xWzVyReZO4_{pyFO7W+FAt+gHr7+gyYfE!+wrjZbA2q+?MiI;9Y^fgty?VDEktbF zok(o)9ck?0t#NGi5fzc{lA4HjPIV}-Vtz@)JKr|sHMx^=G}kuN{&X!b?U*Ys?X)eg z^=L|LBmXk;q#8p6ZXQ9HrvN_;J0CyPU62o5B_}&1tvWkQvmiTkH7`4SwMsXHvr0FD zvrsqc=Tfz3M@1LrooNU2NwvG%eDbrDg6?UxFx9i=OzZpF5$4;(QPK0S8Qfc7b3WJU zr7-ysFzlkZ3xh`y$oDMpRz0J1+a)5mK$X9Aq%sqHn|74{EH*RnOg>ZiY&vs!1dR4p z`w+V&e@>p!J^F}vm-whcTI#|8n!Njn)SI)@J%sZ)PBlpuSIlxQCgE>~j`wXEJzV*3 zy9qYYWAOE3Fv>k*E~fDHUGf9XGrLgjGMpGBXPDkdSvgxn@CVh|-V#?|^Y0Unyg@h{ zdAf&U{VwXr`PF~(cgM;q^ZB-i`dy+Mjy|sUZjDvMU$e5ety2ek^SgG)6=pRYZ}}c6 zy}7(tSf7==u}R4-@wEG_fi(EoT*cA(eDwrtv(9f zO4NN1b8h!rN>;;e_gzX>{cg^0s8U>Vzbs3fQ%NJ^h}q@v3x%bBQ+g#}_Z-|RSxviD zWf&YIY4HrOJV$+R1~zuL)~B9*YdS(}@_Fk{y7sk-T#v&|TC0u!D|*{b&`EaF`|^oc|Y_ zF#zFzy@#6su>OZ-D7FB6Mg12?xi`Q7;a>?c3IGKA=ienv@EqaOKjtS#=Ra@|e-r>M zxvT6GVR9G?!1|vJ$KMdyW5O?AU=03;;`lGvWDPk|^k%I@zzyL)E`tqaHum;sE?~g_ ze~1Hm@{}AYLUTbg;1itrUq)hE0N3CC^*V?uw*vRstH}TLN-qgOX&!C|Q2wt&LYK5q zh0o?h$p7(QK8X>oa)<3r^;0}xnpXiJ1PxRP- zjIw{{c`1@2CEKDye{Z@3e4?!W3uN^MFbD?!DYhnpA{Y{a{2BJ^*W@dR@BcRrpa;OG zTGMB9GTaj&@SkT8*m_kJ?w2nweE*FX>8F$-a`Vy?U;_7_zhVs7Px+hwJiCy?V*c+E z4`b*YTR%tG65@YsvMx&4)BiC)E2&{W5i|cu1`#mAcKokyn;ACie=y#`PenWgW)Cg2*^PT<4=Yv05=V1fqrbXL=`V5sQ`Jf~BaBJ)S z`FekTdEonsGr$(P984uWm=eL{7C!`X`65pKK-nXv}B)ep2$r9$;l-os? zCR2(OW`s6EiIF%1#hUM@j9-N$_EX!C)B>F2B5t7Bq5nXmf;Ua1I-B;unt(e;ji)&j z>8Hz1Vgk6wM(zM++%`{!zF6v5Ul}N;dx`k=Gy)0EjSjda=Dtl(Pb?Q*4)uZq#wi(3 za7O;P88#6ddJ$6rkK6QCW|@j4+y)8Y46kkxTP%$HyO}Eaw~s{0dISZYgJ$m|?M#@3 z;(NC_z4bVK>86`!s6kqtQ!ozKe=_VZO#ch?AzW(xe!E z1LBC{TL^#Ww3la?qMJn2l8P{Hv~lN|55Z8+HQ7ke;ib|7SMPfdh(?NNQakiOh4^jt z;%b!%;6r86(Q=*f+*2}BFw5El93}2i=EjJ|_7`OR{!&r(I!e+36TzYDEtF|VJE$gS?s$BtFKY6B-Lp=H24zKgQBHsMW zE$h?qiB3~FN>$J14eXSu5n+v4GRh;r-UCbxMzM)8knBj#M^tU6Oi&*^Gmd_T&ihJmK6ccO2;2}u@eUb? zg?c*)7=&;g%P$rfpgKZYV<^*r@~GZN{;1q%`l!`sjU%}o6-0Mc7*u`L7_>w$o>*{# znwQtkIsWY&ZIAlub~N*$-M}}_$~>8}4euv)Jhn<+emUKw9^r*^jP0|sPdUZ+WEhgIk#R-&t!$%_nE%G zB+cgXa|*yx9|DKpU7ng2_E&0NG;6Cqn7+;(yjG(*C7UlKuZAkF=c@Tks3cQ!SWcyU z1#UFJVacU^J?PDZbI3KA9@A5OT;xzUp1A^u!9}zcIwC!`l&5W1{n9G$maj#wIQ)Wp zdu9ct-D75Beee!WAWIXrJ6}lA$p@M*r;t7W{7_3FD-*su-%R06(sUVlFyBof%M-CX z4?C0Imh>LI2kyovp}Um_Nz+e$oAq4~$cLFLY8x$I-n<}EGPia@Jbzjm^c~LqClX<9 zag)e$Q86|#^GT^uK*44cPp>mip~&>DvQhvU&jL=aMptywmKg~97R8zX*zJNz&>C#C zk5s*_!tcev=+5TwB4ijK#XNJG5&K>i3{FL&Oy~;(ttjpz=!b%w5|a}EPC|kSB=r3b zEf`WH;+{X~3>Uu4FuKJ<=v>7VotA&NeWGFU(S2e0Ff*9M6TVy@(t(t<-6A-UwvtfU z042`T9j`XPgSP42*zcaVrId5I3+tWJg?|n3Rvf#eprO`zw?nnlr1^lQhDECEp&w}^ z9npx(AeO+Dm~4hujF~MYm}vqCp)I<5A<1n}{jjVoK;(LHNm~l-%)J$(FMEX0QZ`Kf zja7U^C87B;f3c1K|9+PIr+jtp+{<6c&t1gW^Hj z(hcmxKa^uu^DL82@pG@kK!@1On+>h*6qf98dsp!2geC(@(Uxhuj0Rk~K(Rd(E#^2m z$9&B5edNfYKgX_%1(>J%iaqSIyt4LxU7u36_d^x4&-Nu0lR4b#<_{Rn!s4ln4k#6+ z6AjYBJ3PY%=MD^m28&zG)220giaDMf*-lbvvj$B6JV{s0{~47j2Ht2e9$H~BtxX(W z;iNLE1x-5GH_qQ=Y7sx8i%+$1w8vOFeC}xA595r)80$4x zQ2Q}N#cdk@?_B2KY@P`ZSGl`&UQ0Y z_(wWyEU=2o=#B>4*6D8|qtwU^%B(|Tcs0nf;IRO8NzyJ8bqT;{6SFHC$yaz?%(6LH zuoNUH+Q4}fJ`nM#&dTN|x_-rU{gW(tOMPv#j{S@+#eOxy6==EK#ffMEpWlq$Vci+E zQ2VFaoF`ssyJY4YDuk~*K_}-TY7}Pqn<&ZVXhOBJB>N#9d0tQcuiwX zZKXdGZL|iC{q5dhzey08^EOSUmrm{~t^Yo=HcVViT5ECVWABxxtc!}F$V2uL>T#a; z8p=f5hG8;Xt^?f`SVqjdV{xOOzuBeo{W%8xw)HQg=c}f~S=AHnXu_!R zrfCRFz*d_8eF#&{D~EJHyjiSvWTm5ZYP8)-Y97PbeA!L_75c1O*v>1*|cP}!}tzJ3EX6{HcSHQb}A52s{fuY^i(86I7f@k+7 z0->DFlN#vf*57xhCr}b-ZiHOitKS5J62O(p`8QAWm#aU+*42~DiZ$Jjgh=H+qTNn; zPYrgQ3hY)L1p6?`8_manvXREoiV2n4bSxqAcuJ`mdNVKae9UJH&SJvj@;qGcf}&u2 z$}sF&S9S}ZKd#I;T8OZ=p7=MoCYgpmq3MPB-_?MdV3PW7eJe87=VhIeG-(Dy;6>2> z8t7}`EFxgBuGYi0j{M3p$dwfcrUa0ukx)M4NY@f(ls<q>`>@m6grj<_!TM3vxs{L2r@l#(>o_5=IhW`zeb@OmiCj(Y?Bk2W!Jwjr*7e7PM6-(Y!ANr`mgH121fN z&1vY5lu*M!;NqdFWXQg)7No@UN7?4f1C2TvY>e^k)%R?sXtZ&O5cU>};jLPRz*+P+*Ok9%O7Z|0W(8E~FVSRncc^B-jTXB$r=irDKS=z4{oSNC=x zeD&n(7z-rgp`5;zYO`ouz>;<;{t`=CISFSep(?0I2_4}Qr+k8IY%prD{@S7g8!&&D zH>mqbia~CE{_W8)@+HzfeW9bnypAxFS15boc&`CVVk71<(eb%p{cRkxmD#Zs7*!>< zxk7W=GE-t3|6QxN{1`j4OFFra-SHh}tL(y&zrdH#>P>@1q^EuBrykS4-{?CEPo~n6+i6m57RRYhZ5W!&L zDY}3fsMTq8pv}oW1mA}|R>U@-2zCb3$vx$Pfd7^Q;&gok+AN22==7Dq#k^hZFxWMF z5W#=s*2F%^V3gYxvJYeS>2$qt4y-}!@GZl~cJ2v@H|Iv+J!mr89^>c%DDrD{?YD5q z@oNe*`~Ir<;n1;NX7)BYi?`%q@e>x#u9G+V@?(pRrADxQW|w)`i(6z@;Z5@sS4^L$ z>EPDFlgF#y;MUTU$aC%_pB^gT?&sG1>f}=P5u$8yPfaT?0%WA-SHnzTFWNB%YbD5`nIqbUObL8#+n16!13di&3K89>n*kg0z9k(_26h3SQKIuxMFy&d%M=w$a zVB;@X8yRkx)UPFIw(p|+y7%qE$REm=b}c^3I?;_=DQFCb%$w*|$Pu^`?r{!nlt zVN1W61=GOp-A8i)DmeL>SI8_ipf8D! zR$&J{7~IDFZtvvDgGb?kGd_tCEWrAezgz;k5i>3E5Eok^YB5}3ee^pYoHZ#@Fm8-z z(t;disn|kzP*`L`icz;=6ZCe&Q>vEZ{{hf4DoG}3=~j^e4jhM6wtQbcYRr1TF^)g* zrCWnaCOIlH8HRb`4OLfwE)gxJn`wJVeK>A>jX`13Klzw6!A?E@pi0M5{=2p%Bo;Nw zrAk%scQLYvNZMM!xlYq5aNI*e9gW%s^hK)2niWcOHUDQP^jd4zc97B(YHeD~u>utL z6s(Ul4-=CL5FW@no7`xEy+DEYJ=K8CX*hlRM_g_md%Ruw18Pe;FR{Pw=yoY12f@G| zY0!>t=ICrpRuML-lHuQ5@1L58aLp6RY&ehQcY{Ulc6Nd0(cNZoR0R!?Zh?{mEehs+ z@z>R(+^{qZoc+;3$_KCkyXZjK$$cLt>vGeE4OFEHU=#72M8^lQ4jmXEuq#NefSpK) z$t-kOjedUYj(njhw)6y7%ST}1a8c-HZ>Qxhe8L~w;pn61M|*yG&$~@WkedofGV+`* zmw{nCQdqhr+}tlY7nAX5lXJy3qYC@6U>(7Yy*~Z8JMKyl$4*mIA0EI|#a2;iNobh= z+6(axY_Lk9keriMR+ZF6Nb?IS1&k--D&@bNOakY;mVvi<_Ub`1%UiXA`%d2Cb->Eb zBKPCCr@J@aEV5uh&|aIlIIYGxfCUSLWGuqos>8fQcv&lbXFTK@q3sxP$N2p4nk5FV zEA1T{jA{J-y!~k7+4EZp&@l8XSkuhDl-~r{JNMkY2J28B$0m5}1qwHF_L4E2_=^ob zDt%)d5n#bguabPnMbdXF=^`a$$=t4RE!E*x%NlHo#4RiMFs z3Ogsz`$1BhfRJ;tJDR%^M?U^A;H4*pl2`I)cq|xY?)lx*DCSZVs}xC%rQ590a-Rx# zQcieB+)$kaH(>JOb%^yXwJ%}j+Dpbhw=7jO4XNLLVqu3>;;-@~dqkpz$V-@X#K|CO zV6~0<H{|aaAO(ZNwWWw{S9x|i}?Wa=XyEdK~B|9FiwI+^i#<6 zp&~Cr%bA6)5_e4xr}ywB(Bl=A-DDH^0Vu)yWk(Q$wY+Bm41VpU#ozu$vNxP%XcC?; z{kCeHu%KUbQHo}UQ<)b&BAPrcMwy&KTR1@i#8+b(6KO1~t~sGm?N}(QZa9&fRw?UD zt5UclKh{*y6TzudY=KZ1O6~UskZEVo^rrGEp{>5olYBZw$6?A`!pLTkl9P%||N* zy^c>nm`|v&yAI7{DqRe@!;1hfF=yqogk;l%49#gL3fvk}%0{9uos{#<=pX=t-`>DdFKbfBZ6|?f&Q{ks;{8?5 zu70~VH0WBw#K&ODqE5?eM4J3kifs;hOS=BE%Yk1kU0BZ^ZC1_C2V|O>M|QURwvoo- zgGBB-FinMUe{xpY;Nv2EbuS`03dloI@adj`{z-{#*lP$u%d%tlE!(Jf4*vqo=jmki#I)#&QKRl|`MihOCSH7XhX@+Er_F9k2q* zdZ!-VLIVpoKe9_{{Yh2qHbs3ZwjqsWaCe{k67Nh-%G|}-V}X-iNsmMu25p~@V6*JT zMF_8@pO;P8&AnHIqqzuO`FD6l)xS=y!DPu#pe;H|(LBVd4H^o8RA>h^rMnfoR?$g0 zr5z7vO3c)3hs91LTEao)|LIqPQ?6uyz~*pZaj2iE0Gq*DB@NZoL$Ejw2(F~P_* zp19xwoz17LEMk%-gJ&uo$A}!B6}CtxYGhS(Fh>)Hk9<>MGMSQ-pBO(2+qDwOE<<%7a^5>lusBZtA6ASW?_!d>syUi0_EBSKa!~Ub9(Yko1?RdSQl{%nRnjurn&w|Q% zE{{uk?24TyZ79(O3y((tU%l2J{;a4q0dhkch1(r@!@y2Ts@2RK`JfIwv)N$DMzd;= zDirN3|2gqMNwR;EyN0P^|L>o02kw?E?&x;{7G-pF;Gu0Xk(|C=Ptt~?HwKHr1P+4d zI}DkR0~LTLF#6M=QgS*_`?hD}Ha8E!0|up`bzNy$!jd}>YNR<+Hm0Z%%KX52luqsH zt7hnh_V$!2=1M$0YiYJW6%$%vY?y)$O#B+`ArMQ(&j+0-Sl!p|NA6GDVeBR%!#^l1 z-8{oUa6CvCeE;RF07-5*eLg5VzUVLSfPkwlB8pB4T@ZDMEGh_#Vlb0Aty5}C=m>}% z=jPjqaO74p1L#)!KAt=qu3pPelBk$zbwHplz?Xv`=J1u|qOXcztmR8x27o}J$qFJA zWfql$cC<8S3^7F;<{9Y?vy5t5&WBD+fUgjk-Qx>$i#&Mn^XPCm>@VsqAYx1{>}Su+ z`V^f&Tj+x^;8NEz;X7rNIsR&7@Pbi$~h@_P1NnWM^LQ;U#tE z1ms3e2>jjr2z7K{{Du@cixPRZ+|q~!p3ETOfVt+*45X@@z>b(3FfA?YqS`I4C|M3D z6Qgi^;fuh}G|xH)Mtq!?L~GF~f0h%-cuWA%H1~)3Ji+9sSd7ZqX{HrdIju#_hgK6o z(Ve3jcY82XT)q?1y5$Guh^!_+r;%tx9pQXApt}PLxf7Z39o5Jis=&J$#!q{Cq+`0w z>lVuF^mH09Gw_|=gH&+pa>sc+#VZy#%a#0_3vC{r^bS6z(8Wi%{tO0r!k$8$nMz6^ zPh$lJndUQjn)}k`5iKY6c}^CuV~egcn8mXx+@n7|!a=yc_1TV?&kMh#-oHFX{~nW+ zawVrn8;%-nqj2?6RROu%=TaoPWwnDho)^hS^Q%EUZd;CPqkVWU7F?$4dm&WL7 z7<(g(kSvhRo|EuA5tV4|jDr{W0+1M`IWj9AA1FqL_-FR6NaXbTl`wCpMR_6{{$d5B z+ETu6g&~D+PwM9I^`!~pNmPj`YDH80Xr?^!N%Rp-h~z>gi5pgo5hwa3Km;u#kW5(x zAYr{wj9LEkSrLx|5o&yTWDCsg^6}G}ZVY;dK}b%95hZI%rm-R_#vv`nitD8-@J#Fl z#$!Rgmx)%J-?AmnbWN5$x1GF0?VL^r@YcPOZ?kQaTAM@P{Pk*pvHB3t_DHPr0Q#D4n&J?$jw`BLf6Avpc^#XSJY zuHHJRj_2va#Y5m6+}&M+ySux)yL;f^?(XjH9^4^#aQEO490Hf$H&yq&b*uJ|IkS7F zrfPR~yQe?hPvLyJbMZ5?lxc1;-K%_@3F2^@$^$w(17`v{LlDh%Z_)w0X*Iz^1)dIkSf_wD%n62Ud%|{FX*=-UJL~qPSJkAy*FIl z*|V{(kAjuv=^4A{f{dX_}Ha2639A`X{X6*&a}c z_>b!62Qd6c`U4LI?EQ-b9)$yz{`K|71JJ(y7YSU-00{gGNMn@&Xi5KzG>T6Eis1f> zP4;CM_L0Mbft`~4FGNh9ruYr;$wJd32c$9l0$_tQzk2Gbp}#wP%kX0Hl9C}RfwTk8 z4v^`U+DQjcl(06;x_*_hCIzoyWMLe)p|p0i#1nF> zd{?f~Dav-Ea<>&pt%pmL-eK-qo$HppW5*rnVcD+Iy3JtGBjVn}GIZ1>?8$LCAD?7$ z^>xP{c=fBEQWSNI^1>4Y_82@H?!$Ht+=T=^<%jy>TqYUo*Y+A*wit*A4MNT@LgMg~ zZ4)kC=i_~ZFW$v3-pzsWWAu%RSPowzXV-GjAVoLsVdbdEIrD+&+ zB3EB#uR>!^){28I)4D02$7g5;y<`_z5?Z*va3sl&!$DnE6Pyw8KpuTAxOfsHcA;m* zg4@CpYGzTSb70fdxJ$Co`cpQ|yLC3TJ%h>aG)6SG)X7fAM<$N7J&``(StUc^(G1ob zik0V=nMJi}Z{G{GU5iy$!(ceVx;hD{b9`crK1N<*K=MHXUvAOQc-xVr;cVWB)aYKz zyn6xb8+LZa{xaMY4z3K$Xw31OlZy_ey$k>Hm#*sfVk1P0_JaxMbH<9cVg-cxtf2K$V1&+oFOP>-fbQwgp#gLD((Vd;IVmKt;>B^Pd$9xOf}ZEkJ~ z9ezWKd1t3%$3h;Haa%lx0%>;8+E}`jPJTx;RXl^$AVIt;4e|+?h8^=u22*CrMI&(C zSUXI120Y-`=z)M&o|-TIcsrNyFXr0GPT+_9VRK*NZ|I1TZzSR*MifwMlw_-9owl7c zN_Gn5c0nznX5xpfmOk1j)p$Cf_kEW}vM9COC5*Ey8J&hbP*y9ZS@c~WhRYB?iPz*D zNqu3r8BR_@o_}<)8*k5?^ljJvncT3)SGp`5r0K_o7#UM!bG~q(J^TDA3v%B+FAS{H z&yS36KUg^-3?>FScl@xP*;4y3s!lr-(lc6XRKMZ&S!lVi94T6djjxn}v{rRU@$r*J zjLwg}n+sxi+e12)2Q$*W3drN&Tw)!gwMo)WSNvnZzsrvv--Lkml<&)&%-xt(Bks_0 z_e9n;EGp0=hM~5m97u_eE;p!2ge@)v+(XP+9XNf7%j9MlHiMvy^Qf^~kuEP18=gnT z-|pjZ`wqX2u*1XM6Lob1>R!s$WV*(a$^ z!vTrIutjs<)tXb8t%u{b_FD;zqH_BM7)S$q=WlG@LeUm($oy#gSl+LS+a^op*uM2_ zH{(7{+?MP=J_W@J6k1evawlr7OOD7=x`PJtGF*7?w0NdM!E)z8H<)iJTMs}=lW&{t z3W^sDm}gJ82&bIEy_2H?ks>JKBP@mcdEfh&SL!Q;Fojj?TSQ0Mc@;2I2FjvntPWkT z?NmzagvQbTCUTp)(%4mgE8WN0T}~KL+h`TT1TSE|CMl0XB3Gi%TK<}I9I@|Mv2)|| zz31x`&&IEWgW@Si&>H(bfeW;}0Jj*n3I z-SLL@!~+-dyG;Evu!_#J1SV zExp!m9yQ&$k*;#v>Yt{qo*u1Q3AAg{wF|$`j|LO0QuP(;rj*8)iu^Pv3%N>Oce5La zq7jSL>7+g@w!Ui9TE%&E1w+*GQac}5wo@X*G?6MV-P9CY_j;k%b-?vUSpA}MSP7Dq z^lBkz35GAbdR`l zdhCy~YOwURz`ajtErs1ARp{X%dDeHs9UkdiKIL9w#vsB5d+3B8VTdY6{uk>ziauG` z${^x=@hjdW2C_FrFPSG;ijx)h5mxFF)4L_>Gr3h|+U9SbbT>aX*tz%U%~Z)@ z7-)6zi9x+P0telXNx>WfO|wLqeT_+Ins`=^34=4}OS&?C0lxl}#|;z@&FoNkW-#4;QDE%SwP*zu z&2Gv{>#Y<5G@~tys&310XO47m9Krb6K-XY*pC3yJIXyc9miGOrznlTedN~WcP6G0Y zKfU>jE9R$p&83`_2q-5DR;Q;N3Cb38PRE3(XPgc?UYX;R31-^U*41Jo=LVF_5xxIA z_MGo#H)y*hCvs_5|KOpAA2-Hf3NIJDF4A!-MsJx{tQ}cf%&v>~3D)6Yh7-$^D}MuZ z7?mUzBlDBrGrOxvpN@jLNsk-zLnSxoB$gHnks+xjvhoxc6W7+LBTU`8OLp=|Y6#cT zQnz}oyXsb)95AqOnzcsBE$r3T_0YtHk}v^|X!xpSo||=$%XxfLray4RU!yB|R`hqq z{HXIfDk;ugn7C}z?0%>_@tBACz9NAtmNyQpr;2{FPr)zqM>;a&VmPPOU)rI6R^z{P ztmo{}j9up3caymdcdn+MTGXU*(+Czx@uI8Jxdbe-RSowzamm$K+uN;RA{;gdPxJcB zXJoe|HkpzUNHrpQ*fj8Fb?L{Kk)uCW}ocJ>5XwP9d4@4|qp2Y((s z5i_X>!Zi5Wf@KtcW?-JG~NJ! zzY5Vv2&_xq$>rSo#S!>h8ARK#Gy}w~>pVOu+;A~%0wanEl&Nq{Us{ZTjGB{OCRkK9(B{N%({N>B6bd|csgfA43 z8&nte%sbpIgKT8F#PouT^&zC*UWL`)g$0b*y^nPuSaw{zDJbwNBc0h4_+KS*uL|?-wiQEDhzHEW-0TMx&WO_-XlNNwp+0A zhM_sM!_=-Vu+EC)yNQ32&*9t>eOhzXG0P~E`&UvZZfv7u2E*sAv1pJiQclj$p*BfV zRzhc1LvNbW49iy79G#~n1}`f-K_)cf&%iMAevzh~0>i-ACa^C^$0sp5aP5XQ@|NLjaD_sH5{~-#k?f~Y1 z|EzKBA3}!DpSnMkFaI=%isV4JG#h<#{5A@3Aml&oA{`V^`k$=S3l2E>Px2`N1a|#X z4ob_4`uKh#u2R7MA>95Offosw{h!^xjs&#+_YX-_pyR(*7y2h#{J*p6*ubfOqtuaV zM-P6|#1fGH$NKw38Jds-)2xg?A!qJ*z@O0nd8b_2LkrfPZD$BBZ*66`UX@0$*>huXDwka4r$63 z#8Bi@r0$OzWl&76o{wxw4d?C5Tu0^Iz}ls_ygz3V*GRIm({O$@%fv!T4t* z>+SwAZw9P8Zi&qNIzXFWby5PxyrFvE1V0Z8Yt$JguaGt38$XL9E;@c5?if`J4@_yj zts#IG2HUTosB*s+6ss0GMS98LsKecZ`OWl<=MA~-W!|Z#6LkV5h=4j+FVuMRp=(KA z;rz2sYQFD`lb9i&tJg{cnM2qT24YCdye;crKSTI$xr!rv3_O4)=H|&Ct-q23_FI1c z^<2Hd(=vKu@L2m(J{`J?Nyt=O_1b0F!$$6Ww6n6icjUDizd9TXs%F=DIfqPqF*riPAM zweoMJMVFuClqKxyO`F>WixVLms*C5(A?R-VJz%%h9!ZaB`Ul4{fMs-U>$7}@r^2WP z#i`|qCPzcS8AZ_64osmjtfHFAK@v(GBSvsV+Oi4_D&T|yI zlHxR8B$Y5x;bztBX&H$8ktx7$+Ab{@Z@96cOX{sJwWPR^x))W+cHgaCW6AwQNqOM! zP?8W=2rB$#Z2_3vHDW_oinXVmH+*s{#`e{(N%DR{>-wxx!Z!mRd56jYPeP}>T5WCb zPj>G?Rx$j0lvQjys$EpuVXhVeXqD*ljQhp#c>uim?I&dMtwQ{J%ru*Bsatk)!No4z zgaxwxi4sF?Cc3qAjVht-Zy>;g>f!U=8c`?)Prcqk2qV-5t3^4itB#-LA- z<9-re4&A&|ru=O?@+w**ZE~O7S_KrHcTpnlq=2|PBk^lPz=BEp9hhT;U^3mF`rRe_ zUox+ZvK%387R9^>5ZM2{_5Qa;fex7SIG;r2jNSaqZ#>^G#PdvCUnc$ zWb0{~1v^jxL~e`L;4c?i1z5(aJvKTWGb-}OXc~4b@~?qt)w(=zVu{m%2qg?1bjKRf zXHthKBvm|^)i2IQ4e;WSYZ-JxQt>koymDdy9uRm1U)WXofJ9un}EtU#_7M5P!$7{qxSNE(p2dWw+k5qrVYpTHM2kNG0R8LNB0 zxc}Rw=@kEcx(~%3x4iJPM3&-6VE`Nkbn3@>6UW0_Pvl8zotNXEGN~?@ze!zyN6WMt zbK^w@q>hJ?KAcRi4a}AII-ak|ptNQVAf*VocNh*-mzZ?D(buH7ugj>@@!A95cHwg5 zi4w@|H7$@*vxx?YYFfUs+V}>Zj}{jTc?N9Jm_ldL6;MrT#;d8C0cq0+IDsTz;Z)FS z6lP0jY15=QfrNw`5VqCA|KH4q|J^IL(wzEPE-sy&)uf~Zq{`c5GJjK6Nn8$ ziboL^rov%mtw0I(4>qpvi#yFsdl?CyXZXa zTtS-hnD%v`NHRr1S=sz}{O}9*xavCGaGBwIZ1&maeO=EZfbpNZh515ula(`@wk`bm z*|jC;jhT2Cj9dRbCmP4Y`Yu7q`D6$BS|7ii(Ra0%b>h@Ea^+-v{{v_HJQ&R{Yx=6_ z&d-}yFpggSoyfsm5M#UY#tvt@_K$$l90H~1Q(nazag0Fq9|_kUmE$hf_i|L2>rvPD z_K`ft0it)Zeo!QVg3TK?CE&2l>P?Fhus<`m&v@sVOTak0FBa2VeA9dSW=08$-m6pm zqw)JDaKxbK&JE%YhVNZGj)Uzz6?NohJ^RhhuWV$y;P(%ixJTCao@oKcTf}Dx)rgR! z=WYBqllO=u(1gIk^Kr7@?t#H=9qi)r-BZ{|uahv>N2pN-8P0}=I>4|aC2$AjeSN|jE)>r-=*P-7Uywea?-%$@%c$ZI4Qg4OTXgTBvDsL7U za(6a(0o*S^5K#m(qEph@m>v5DnYvSwyt|cCEYs17L=V;eOYpM@lt7TSDM~aQo~9@3 z+~ilvs4av!2~!?1gE<9MuFR9V2=Gi!QB=qr<9MudG!fBS5dgYZCzd#f@mXGpDAcAf zo+w5ViFBAsF4}z{L{iPEoHM#qQ8bQO)uUYnk2sQzc?n!2-02QWA?|DNr04;w6Ip+D zanyKcdSO&WXL_hDS?SpxmG!s5h!`0v4i!`ho?Z35G36n+-I@6zTe;*@V+0hfsghfh z@wv}{iM3Y)1%uN7 z$DVRnyR5D}YIopBmolmb*RH{ywfCDo>au0w+*g5!n9TO2uf5@C*|68%l(C>73j4(& zIfNBT`_eDc(c42cpv4Dv@3#PgHk-nTd7khi(Bg1TXS)n$ma9`6!{yxYkIt3qs8?5~ zUIv2MVGKRq@+fmX+h4=%dbZ2Md9Hpj4DKg;Go7B2n22Y4$a?3C!wh=7l~JRvH|-3$ zv%^W9p3;~KXM5Osyj4-ht~Z!^yme8St{98MQJtPrn4eHl&}65l7-rq+9-CfwZ4`&= z4ToNLMO2&XO)JCJ+;CTCpWb~B1OM!BSm%=@CTMwhwDU<6Gw*bdMeloU6r<}+2}95P z@N(x<7()*+#os0B9@LNGjmONVGzxc?_$G(|Zy0eYy&Oi)k`Y|EXJG&<$W4#vq{_4p zgT>LCcHmtQw3#eef(S2N-=f7dsiA?dA6xSyB}K>p_O&4cfWmwRUwf;@00%|eFy*#U zjlQL}HGt!w=VqkEc~VzJ5LI&;6yR;Z)ZMzMBSTu+>Xmnh7=m4#j*mO=o+(VzZy)<@ zXbRUJmV^RwT`lg6a~kU0xbCZ}#%mzJd$_smo2?=zNamMO6&c7iWy5L z0mhr&+4$y9%snhekj-w#Q9ZLr#^juf=pjr88mR5U6<{B!?~V^CiYr(x?=(190{ zq#9Tc5@Wb`Rev2wBB2cuYiD<-%RH_c5F58s&|y=b)d;a;S(`Ss^EG9M?96|v_7}Sn zx)2(*5(_Fp@rK)V6z&Sb(!$)xZztZyb= z<_}QK;HHtlh82p1RY0Z{U_p?^Hq+`D@h#8*3#R4Ve&auxF`#hJ2m4KAX`nwH@ z+|hwMHRMKq4~e z0n+XXf{xLdkt&CQVB^0MB8^m*lu*y?W|vJwg&v;Wry#AZ`reQ9Afkm)5$%{hL_yYy zdrJGm$iViuaAMq&k9IjR7Jzk8jo~&dEsHKv(Iqa+cEExPY=a`|2{MG-rSMFUHrmli z!`a$G=Li@q&U}JtC(|wq2lK<`m^Jte7c?-Y!|zbD2mgzymsUHOK69%S6KBCvqNpQ! zf%P|9CSg5Q!kmydU8`geoOJ^uRv+l;V6)Q^{lTq>(IB81- zYO0q=&xw57m&!_Eve8&xDp9n911dQZlHI0QDp%Y}YyEjOm+j0KL8j-wafC@23T}`Nwn}V(=E0cfq zu@`}@;O?OGv91&l#c;f6%xr0*>!kUqx8QV+fYal%e;&3#QNAl5&an~T9|h`fC}udX zQYW>9pwG=?4Um7+!2x~o1;q$d-h|DOT1+jFVx#5he`r8Q3t`x-+9u5c7=Fj1#AR6c zaD7)?h;@Jy=YX`2PH_wP9A)9`Sjd zAP@Tq+fNj&t4}h7aNOa<_s=z<_WKJ8#qcNXIb1jViZ{(|bJcp4C7JaG-b4n$*vm&U z5HjxrWO(}l9-nhvtxj0Z;hVP0SHSj6g95E@=OLSb#mkxyi+5E=cnBhgtSH*m5%y<$X=k>ASOyV){n3aNJrx={|VwpQxe0c#CD+P7H4AMYxnXn zi6@YWz#8pWb~yH^U>evuRV40U4pE9(i9p*DFu9V@B4u=e6K*%z`Ds7^sHR|+PUZ6+ z0f^tB>A=-gn8^y&M1Xo+I8SFu@yR>f7%C`9r5YL%b%D&hMBW3E>$@)LSMfXgm1^OEi66F$%0&o;Cfi3~W21)X4fGDl(0S)+P6rNvI}?V$5UxW0 zeyT%js1sKkS&&De)O`n#vM%IvRztq8on$UcNOwZ#;E7=D&vHg?w7F z)nBKcu)E$rdd#0aqROX}XF;OCk{$RQJR$``HB`-`8jw-F=Z7;Hj3lK}##2lJPn8Do zg53GY6g8BRif1w-9@l&`L_GywE8N9oJt2$HnW158T&&w8DzY8o`Z*e;7OGojc^T1> zv%#>mTeEzqZM#pI6~%^?%|QDX5xeWdcfrT$d08a#mV34yZ38_{*0LV@Y(qVc62Nfv zv6yHuH|VzXGNsB}_;1B~ejNm6erW;yy;*%N_#rGMYR~H(LzIYv_V8LRl1EP*#PrtA z+SmqCu)fe)Ff`T0)Cn-sRKJEvG&X(F7a)Zt0oK<4t=}N*wxxEUOdRqeELJ!Eq$%_!$ zJ#Se!9q4c2LowykPy%LZ)(yoWQ+$pe~4)Ks9Mfp=AtOd zf-rM&Ve@qvej~M?uwM;Bd=n``zlSrQ3kV>>p11GRgV9>g^Pl^^>`LT`D1`TPzF-mu zb@Y5{(~WNW%kTE%)^exUljL^cqgEv3<48-9lj#S=j+p#)QoZ$l`;=BIgxTy$fr`|f zdI8uap^6oaVsnwrk6lfhZ0I$8v?hPcJrK^HRte7hw}C1jQ|0?|yRa+`zHg(RY-^B( zso4cj7S;va4D?;V?Uk+XMtTk>PkfD3TTvp zb;zM`*zlgtwm!r*p+DB_5JpEfZhz$lpj*?Vis@%r845MddJ{yl1PI3AAZ;hJIS(fi+^vLO!fV&em7Fa-sMzjD8U}Re z5BfTeQmTp?SvFG?FHY*E&8GCwiW*>zv9XgGv400Q`dOb(pTQ3Oad0|Y|mzIbeaNxxs_>!6gI|y zln)T<5ulOng9dm}7nez(R}@uW@NL*lfG@~AH>+nfa}aq*Sj~JIkM~`T%6wXl|4ViY zPncyg_U`OYfyjIy$TemN1lgwayLk0ZOD^8)p@<-)iU2Zb!*ISSAh4M72M#tuh#*L0 z_`A?WU+b$*V4rKv1qQw~vrm0)V-iac*&Rr7NhcKny~=rIlfTy~_rp7FWs*cVhdZN%Fs#Fsx;b;@Z&)Ji!h2q5x$jcjoqGtE9_;)5J7+scAbWY3gwjXB5XOlxqPExzg5oh-~ly;S9J`&UPR|Eo-m$W)vlUKGGAL5~*sj&t8g3G3eV?Usq zM`{9U(HvVk*AmAi{J}DnYw@po#pL3*&e^Y{oo0Sw(khKG0CE{HgiF$@Fo?mh9SDnu zg@o#o#a(#E{Jf9Mm9cExh>tpS3gy+$H5@}dL=j;~8MU4V*^HU-7U^tkT^bG!GA#zh87)JB}6hAUR_;lm_`p_E${ zvb~2b?qZ-Bpl&m(Q^w@LSzF@Y?n8N{NM49v4vY*na+SntF!`b~GcPN8)mPasieVh& z!ut#Ov}u|!QM^RsU}#GemyP(;W@r-4$C#+2U|L~7s~HwzbV<|l9Nt7+n2RAerzr+n zt2A75?`n!Ji$55(;aCgqwD_-RT-IHKns|T!TxYiRbx5fFks4q}sK2F5rCRxByv?e< z@E_CU&P~7?_AMF&@-|u=D!Ql-`e=L^3ZuKvyAwnU--+I-j$LOzGwLym=hq<8PWVC* zsLgm#*<3TFyAR9_WJf4(PSF8>&_qYd?U>uSF3j*I^epqO%@~Un_vW=@CpQAq zfmU<%=4uu`A|$|zy+Cm>hEqEGn$GFsg`iqOET)b403N*(G9?|GC>;o+K^P|Yo0_gs zGDvL;&OpcW*b>ET+6$m|^ZaC(SFf=CWTOIt1h!KHy#n5Hh#8YHnNQmCI6t$5zFa-x z-Wq#JAwo%N>4FFT=}IO@o7=z59WRRA&CD%WXy_%bBieN)7ehHcR159KVatEx^D4T( z#epg6gy+LBE!qgL%+vjPSyGf>b`n-w{EDQ{P1IJPTzZDt3iroyT3x7Lj~hZbZPWlH zaYIovuW@Ks-Y?8E@G#e6sxM`L{M@~$@?s4eZ;o$G6i!p871$cyR%%X<1FvR^d7`FN z6}pf{GQCuU$StF>&8Mh_uclQd5cTCsh6eAtqey)OEBC$EiYP z%>XgK0rzgf7qNywEv-%aFz{XNRJjFI#E%85bJ_cYpkvt}AS0h~Loh5rSPaXq98t}b zym`$5g-SNO&^3sz!IkOiZvdu6zFt(%IdfzlUKx1)7hM@D1?O$g}^ z`RII6HtRA@bL3)8Ah}JA?jFjdL^)ig3$2M%dQYmV1M5EdR_4oLd+$AY)f+LW_l4wF zk7-M==nJg#k z>@Y|G_C-?45!lgMVKOHMt=602LJnbUz(wq!ruo*1MCn7(UE?dA2&X-f!RB%#3O6ao zLoh=ln2FP`G#`-?PJ^`=8mrggTId*tEyY>5jC!Iiw=x7V^=ed}hjIE()O07VyCmgy z@}8e&m%8t79^|jsw*c%+F8A6h0EgJTB zuXF5#{*~*-oi9taLgTxz0~4`yB+nvVovQ8|rhjZ3DFoM<8K<9|7*VU@SOxRiCSH zryQbAu)6Mn%f!vR_1?;Ia#LZGdbtX2;8Wa|r=Pht3J#NCq@BbCRmp$x{;IBRrq0e) zSmX=dE{XSg+w+BkK$ZJ)VIK-{YchKivyee0b(ZBd21v?jPCvm~o`t{5Ih~J@n<^D~g1Z4cq2%6#E5|m&plEMuMdgTeJ17_FUhB4d~7mby4Jir03qH9c97F z^^m-U@b&cPCrafqRJdEJFXUD@OWR7ko~dvJeYzBNob?+<3} zv1P^ObmZOaUB09*Fq~E9hejD~ZBJN-EI)YIOwsNqyj@Sb$-ZrOk4LK<>l_YptxcBF zXR|xtKq_>KH`d+w; zOpI)TMtyAA)5}pt=0|Vt@8_uXygpXq*x4;Ku=ewp?YY4E-qr?=6U@xs-$Emajpyg( z$!fDBpo&0l^?~mX_?){vMPh6(TiL0;1XogP*9U! z?ZxYOo{y|6I}Rxqe0i#_{5B@#3+qjOU49_mfP54lM<73FnSN6*X}saqZ(V)C=M%DS zKyjKIvpz_}l{uxM4s_iDMUUmYDasxv%hcNQz0`|hZTeRi!pFU@uJm%eIA+y-d zcW;b^-Sc$vXX?+DhUZEDWCm~qSwdxPH0#%wrYa0koRg#z=J^T@S|E`H_aOjx0@Rpb z)d!KLF#E=Bp_j~ehzPPLq}78i9GTRkKwO4y=?XAbA3)a_XspRMY$v1Y+#FM*HUJNt z?82Ycz$sM3K>E7JAj6rnKSY*~6<*Kio|*kWVZFa{?qEm;>hwdmRTQ{Pz0-{egV9JV zn$Sqx?OS)(vu$yDk1k^4*SRH=LH~BQNv43_WYW=@#nzi>B0|@WxAoEy?B#(Q0@cD@ z#r(F7a@YU4WJr7Z9j&FT@wL#DoyR^dF^OCBXlO;dWu8(ZKzW>cu0;S{mh+>C`71~F?_luB&8AO@zJ384w6|;;{97Bknop|6q56Ha$+9q)r zE`x^%`fF}x>JorKxC?tetN%v_zDxHyvQhD0v2$aazw*QVUt0p&IkB7mvapsN;q4AFAb9` zhn(g)+T^X6FP7(U?j-|BgCNO`*+jkJ+SYn)GoxP|k!q1Ff$F_f+K(-RVGpm2?WaCO zxDO*c3mlOO+f@9y4^O5ZL&uLwG&$zGEam8gK2Uktf8!&p#)h~jXup^?1!FbCh|S@k ziP4tfTIvnr&^J%l&*Gqn$wV3c>cv-w%-oIdS|?782shikyb~l`;sL=l5GxIZiX!9A z#@w%u)wUq%SP-YKOVE zX|}b_cm|7PO(jsiS3lZ^5?`x#7Wh`R^;-4*!x z5zPM0R7CV}C+6-^(4Z6JY?hz3d0#ER>l13N$|I?1(?~bdAhJUSq!7u>L=!9ao(TS} z4qzQKZcDUQhT?|ugjW{LPZq`=rY5d1`=Jw2tn-dxzfElKE-T~Fr-;Vkm5xBmc+!M^ zo5G;sTt*aGy+9hqw*eSrwh9%FvkgU-i`TYY2QQjf5cjdw*#*r?z-8{%{|rxuN02~? zZ7yZSLvfV;BV+;J7m_MP=uQU^Z-!rSV!{d8*|q%|ZARJW*(@$Si=kC8REfX5VA$3~ zQ6eE-l*DM}Q7=G~p;0;3m%vim#Ivd=NrpMFI&?Xrl^LjW9t07yS=8WTVPoq;!f@|< z?w1s|ioBvfst$@GZL%1iS9Kg_kNc_Y6hvil+HTx6s!s>c`@r8G|5Gv86WvCR-r-JM z>?A=!I8fp;kQrBq5$UI+XE2J05de*p+!R1=9got&sfZ6SyO#_}G6YQ5q(d9wtzn{S zK~9OC8G`E+Q3X`{FTqerTf)wiG*i^98_U=zUxF9Ys(?CR<&GNYBPqTzh4F>+nMN-e z*q*A2l_dD9r^qP%=2b1FXToA#tcn(klDybmKjQ0q08>avZL|}2wl`a+Yq$pchPvue z^eT5LIQ(u`vC@kjdvYaoM6szg$I6TC;JkjN$D#C5nxM~OihRfy&Rhq5Ob zYHn_y%VWkPyQj&!lLH9w{1>a(## zlM52$V(SGT#>Qq)fT_f{maN#Hh%t1q_S)Q^a+TVKnup6f(APT7%CDLMRE-#!*{ zC+*VJI_QKKu6w2zjnl4&!L?Mj$DQpWfCt(JP^M4VkQRI4!9BQhCXgcE^6bi!n9i?^1(z7RQ)N-ttEinF{hMqPPP9y#qUW)6k^q9lJ4F$d!sd2rC>y>y6|(3$Lxe(cVsq- zV34yTdq-ervQ1#sSY5$oS{0iCK%g3AF{#U9&o{TiVWp@wx6cYqXl9kB2N?(IrP4wN ziB=$qbefQKI2jVzl;A2?Egc4&74&V*#VBv(b2HfeKi00;wPLFt_%wgd3OKsJe+Js zA>BgcS;g>-;DdF@=ltMVhchS=`~aF+u}jYp+kU}~NW4*eV9FXIFfy~n)R`s_JAV7R zD5uakxvF9*A@H--Vx~T8#pRsg0rP>=C-=vIz9C@)<|^em`2%0;YsQZWmKB?B4xgMy z3y14~bGh7^tv!>K_3tD;afG1Zt>dPZFW(7X;~5P>$D@sLUeK?>c_aM$XRDZR!Vl!V znZCmgBh3-MgIA{8H$E!_Jwbmb2u*yR&(1mC*==?S3x7T^W4__q?|&S)zr!!j5-p0s zdB9>SAcZ-K0FJ0h^2#DbyfQfhyM{z_8DjVBcaMJz(QHY)#acwsdK!S7=&va4k06H# zpNaSM`6V}I!Xm>wb63X0A}Bq3JYx|tLHi+lKK#PxyQJjTO7nvfle&K8c!P*Z!`+eu z!|;c;e!;xCn3K}{>M&279hq@yWlm-Sjk~j$vBAiao6eF(tL>q2^*NSmJ>VK7C4?cW zPdL+taRs3=LEHHlRz4tJ>yJ^R_DVUEx_sg%s0X(KjqjO(i4%-Mm-)Il0vPx2Nvff( z`-Zv|W&Oh+U$dNQ${z?QR+}s%iiIVoR9{%3N21)SQ~AD(&zr;~(7DtwD-W$Bsm3Qs za_mXd{)pmQh$-3Ne&EHfOee(^t=xb=7i-*RdPI4pwO-nqFS`RZg%0eSK712)+M%K( zp6QNca7opj)*sY`xJ#K_IfEVce|P@s16h+LS~7e zyQQ3pQ4he{fDj=BZa3~V`6Fah%LKA#V@Sf1$L|{m0YIW|*>I(NLOry=OwMx&F zbza2aZS=*A+Sd@&Doo`=Y+yq8U?(I)(t)d2A@U8k{R@T}<%9E;*yK81+r&xFr<^{_) zP+_GkmAMVdC~4Vl(k3)X+gJba?YgL_RMSQ_(m8MUHp>ZAIpd_&F)?>LnrW=+0f%6W z@B)qSLjDS;Gn>yrOIc?^7e!bGlWn0sGSt{({!wqNxvdHL?FCAnOD4J}NQLU#3zqyd z5}-t>qY)ST74x>I6lt5qpHR*TcSJgh@Ns2)>3vT_aPS&bV1T?2 zb|i6}>+mzj*toY)2XCMF*vgi0t*N)*%A)pg5H{_oCBMxob_*b3XpXMs%09a3WnNI- zyokF>>@=ZRwzZkHUF>}qYvt{+=&CWN=Lg66TtNl0l!xRHfQ&t`7-03ozzZ?%{$->u zXkb%rMYj|Ewu1GZ-x*$E54k(tl$Cshhj$0eW24lCZz=R+Cgw3VwKz5#C0arRD(kdj z2m5W?IzvWZyxUSfp2Z<$n{QI|P;<}pQyGH|SNAi9^t^o=>wh!!BS*WfGGy+>Nxj_` zVcP~_ZIa@_RBFL#0wOlVYrhf`lmr+=+-u@InOMfdCaQDzAg=g{$;xW4Bw*ky*Vr}T zd{yAhwBw?(OX}Y8osHAl^h4Z6Y6@#AYB$w!f}ZfL+mM`?Q;*mjT*dIaV2AV|(w5IP zEF6|nJZpBDUDOMzWup~WFt7Pmow91W4NeJ4L!6x4hAV5oz`YDpY3sMLv_PMvprT%y zcSN7wf;qbi114ymaQ)nw82$KpqM1MJT`M7isIm@i!77Y_p4|pN?GP-QvibEGbKP+V z{uZuv@M?DSdL>tQK?~#DA0Bx{Y<Vc+t=vy--Mbz+41myqmseV7m!YnROBUwV+5Zi|;s=FT{gpU&-=S_Zz6V78 zauCT!Gm)IYO*Pm_wRgpC?LWNmdi`O!0;NL}^64SM1ytZsL+xFVvFQ~|&?SMOU51|7 zQ%F%(Op-+tm4V2X0^$XKu|nK2jOYCjGKvp9Q`y3@;-7-Grt5PY#Txh+d;3hbAvEUq zX}onWQinu)9Wap(2!nD!5PzS_n42aeXoB%BcYmPqb4jx~ro4`1>cwUzsd8l|0jYmQ zJs$a1uVSk!Cmp|`wMe*lx+^$X*rHJegNv;7o!%p=0*QVYVgoR%OB3O0#=Z_&p( zicxfMzaIzLB#TEL9F^*#{Fu{!A4SkzPD1c+99WGK*4qh~W~w+zNXy_G?6hu!;cm3z z8tRG4+lylV7T=Or=t^~Vtu*^I=8nX1^up8#Hr8s^p2+B=y0++Ab@1&W%GMcZv-*x& zt5SbDimb(y0$K}Uk~cvx92fqy6H2g^m~<*_u*Z;G!1OJm{%f8&Etb_BJYi1Z87>$o<4G4*QvnO!)D z<+0%4QF-`aitdRLf7Uwa4x}?i$Ci6#M^Smg*+pEOX#1?QWSW`FQSjCV7i?UnS6_s@ z)B$`|K9JFrv!zJWW&>?Wu2Yom6o_jILbpox55_R1z?~;RfJmcbsq;_tx#{;AsR75SChI*=a51lo( zdHz2DnLuX0LrxTblk>#8a)EeH9xFbOYsH5uTy;3~W5=S|Scp2L7as=?@DXSP_T^*X z89ov%jcoQ98_ym=Z>Bfv&Fw0Hl+Nf zT4Nq@7up{bq)HcW!Ej!LP}5~^7{d?eM?gBR!9~hXN=2$K;>D=hT%>RKSktkf0{&0qkwBim0?IkJ;>dadS03{qSEpMz8o$XvEFnC8i%^J1~p5BN?>Si_@y_Bc7z%y9T2rhbwl+0>s`7~PjY$F_Nz3hZ%OAEHZb1L*T zg>sSTS6|dZt?y}nX@=(;q5lqeww#%LU)TyS7R&sn0Ij^uXk|PI&*Zf_chhn6gZKoU zfKS08K7$1D1tf|up_ljy`iZY0PkaM^W5l;GS$qex#6RJ9@jcXuf591IH=HegfOEu8 zaG}_zOj!y}oB@e^CO;ZyJsD>5S(qcU`C>jBH!oePyO5V+j^XA$lh5IEtr%Nx;=lx? z@m_LUkLj}yj?*~qnR!THBxhOV@|@!XloY*?-q%Mi&sphgD=m!}Ffx*{v0^QMlGkOC zLlil!lk@~nf@!VExs+4ZTBz9Y7`x!5MmgML?1Yz!6FrGr;IF&j~Fa_r&IxtR-o_oK46f@wocI7cc=f$mxLBgTV$~VRg^d_Bmw)T3nIMtK7 z1>Pd;G&+lGZTWU1A0N~5ZL{S&Tj1TIG|Ih4T+TC978%k!0Y&b9zmap5-3jlLCDaTb z6rsVg1wJI4*$pa-I2LDkG8CR~H?s3pHaZA`{-}|KEzlp~pU1BDRFcPkZt^~QEgt)W z@b~;k8`J)Ar&tueg%!n2<>N-^9W#}Wi!(i$Ti}yoy@@$unjuB^#56+;c~K@|_Nm&Q zLsb^{V{w)zOYPCm8qv7SQt|1}&=c_xZ6Y1sZ-f-9!}~;nOn0U`?Iv_;%t?Plw`I&p ze?;l$YBE-VbAm{k-E7E&wUe=bOEoRJ-j|1TPN^{PkwtmvY#@9 zLf3f<`Y#!I?o34xt6?TG)Tf?|9q?7T$L`TQIz!o0Ko^?6w#@vD%}ubqEm`mMBu9DE zTw)XD%T*RJEKc*JZGnGSk@i!pRkYD|OO~yx*emizi>Mfm77+!1T#=&*mPOEaiK29O zx{1Ck&z&BNe!4>6wFAB>r?Efx=v(1i3vt(GbujLTKG!>$+d)?~@bA}6d97#68=(rb zsK%rXQluTSqz3(^4tdfE1u_AOqyb0BL>MQNV6jYwWikc)G8Muy4NjLXxKg^|d6@;T zqM`ks>;+$-@%FWU>;o+_o6V8^*aF#~RmuS@C=X$$%7N?*Ihb86hp_8pF1uY0W%tQE zwnOH#CuIS9Ne*Xk$U^p!9KpVpBiT=K6lZcYH{_wbP#(r7$T57TJe-%yBY3qe=5=x` zKS_?~>*NG}v7E>+lSlIF6dlYc0W=3mQMe6O4> zlH?qbCyx;$(c~Q`%fu`>Uz{ixiq&$AI8A!RIdYk}R91+aFuh&+#G|rGJR$vPCa(}5 z%a!6=StEXtwbCx@WU36vezIQX%ai128I(mbB#)3`IZm#Y)8raCN3NAiF!jk(@ZYKO zba^KJJ4dd6m*>fI<@xk`Qt~2sp}bUHBCo>dHS%(Kt-L}R-wOe0hZ<`>UjV7R8k~F~ zUj&(a2ig|L@^bL-+o2C%%#VXCei?kqk4M8Z6Aj?Y_zC<(bal>0qw`@^_7eMnFX2nk zG=BpPaxa#-#W^sMFGJ%tgYDo>UV+-q#jfK+c_sIMK`OhQ_v2M`YAo|{v}zpJC1+Uh z(&aQbLiKftUtj}Y&i#-kK8B5I+*J5lT+UaJ5sb3@PQDV`C8HB{6R$ztYDdno^IBeq zX0u=R=K)@i+IBInB57WOl&3Pe0lD%j^Ikae=0#`_(`jFp+`vy#0nYwt8V8kupC>~+ zggG03@@zd1BNPoex0*L#nU4Hh$ycF~?m#Z~^3{lyQ<>&f;It^P8#1i<>_%hI#CSJi zY+|xIiplOMCcC4U?2cf<*F-SEoXr}4H|XjV`WYC|0#m_Iwq2V)K%>ICceftkH<&~3 ze67Y$KD-6`s-xZxfBRzkM4M9q8Gp-%w!oc#klCYt8b5{18jYWd$!TQboKDWbK>L;g$8r^oj}Edoc-Z2)Ci-vo3A5I_qqUYzz2 zzx5t8ndv`1v^|kCY<>nXzHa}KYI#kZNVS8X$_zTUQH6d_uU3R+&e4j-lThRup$@_6X3_#>(A(a%xJP1 zlI1oOG25XZnn8o*pP^7bi~?dOOpv=^qI?u4$tR+R3KJ2{3;9I~`6>Kjeu+h8C)kpc zlS?&zDIJPm#xJ)nG=GeoMwc7D%qtZ|5>fjJQ9~t!yz)~s{7meFep+vQeU@%*|5DC8 zHgv~^ZG}ChO%N_n_GnH4S-x0*{hC?*3_V`JHosz%q@txbZ9R2-T`lyvx3O2 zhR=qHt*{r{4#c+m(3ilPeFX0}6J85G7!2FWSgBh!!o&iq`>8ySaAbU#nToAUmJ-?? z+fHU{X7+q4-;UA*7Ufg9Y2FmHer$B2y0ZHWaQQ6QzxNak0dt7wBMkj}3}MQMX8Fn1Nd8guue>i9h>9b(ik`8CRsq+FwNBr(Un zQ;f>tb5tUGkx^~%3Ezl+Dk+vxu@%48ayL`JzK^8uKGye;VL7c=0ItK$bbU9Z&S!C? zj?Qn0e8$GdDVYO2D`m6_pu3n}RxVx4QC4nqF=tu1-Nh2h$~6}=%F1;YODro-!J;Hg zuq+u9EKI?~;bN(nI9)6alLQxYVPd#gIwpxO=Efw+#WFBScCk!b_gbYTx=jF z*)BE+lfEuC7?XZ3HUyI#7t6(@zl#mUWPpq1VRDFz4Z~!hi{)c7$i)gU8SG-iF&W}w zg_z{J*a%F9y4Xm6O!8c86eh!5Y&0hME_Ns;1uk|NCc|B<2$Mn=8-vLRlRP6`>~Ks* z(NrD)mXcwS`3ObkVnyb$ip=8_na3+KPcX?m(IoScCYdLhWS(r2d5THqsV14HnPi@B zlKCi;%ri_fmzZRpX_EP9lgzVBGS4>2Tw3-3n{z*#vyIJ3eSjSk3DrLU*N_fjF`r?r zVAZgW3%G_GsGB&yQE}r z8vp=sNRv@?A(y}!4hNU;n+*oHzH$vs8v`z*7`G0N4ble=E~6MlAuW!;hy?%uEew}Y zMiwELz#0w*m++en3b!DZ4Vnc5E~6N?y_*e92?H{t7`F|j4Ko7{GNTwp9dQR%@HhYf zV~3Yn2lY7hD}xpI|M{fks%o%kj*TB z`v!^|qT&+V*QiyCr~#y{SQV?a*1ayRb*b9gpG&K?f67uYhhHYhL_;R|$t9Dyrl%oO{A9?0A%lN@^2t=L zO!G-gru$`v%rs<{A$$2LL1r5=$B?}Z*~c%BkbV8KpX~3GN6K6-<@u?HG!2>WCyU<& ze#+o?p`Wt&J-|=d()3eLIWSHRl7sm%gzJXJ(OGgBKaS$MqYYVP$l-p<tErOSs=0o^lvJN*RQ?hMdP!kK~#Y zxWjyYoXC#_{8-43lf3d|?l73QIhJ==%Acpi$wl&1ek|s?kRg{Cvdn)+r^s@CgblgW zPa($HGC!5sI9tv=PvOxO?pEhNM(kKd!wT-P(vPvnFmU6!RLS5S!;eZsR>e`Btd65a zvW6eE-2XJ5td2|djI;4PvVr?G8gdo)S{*0X09LF!n0uYhk284c3B2Z+Jp3$voXuU% zG32>^x>%ZV@;q6}kHLTZIG?e80Y5G@1)WV{B#pz;wE{uS6;*KOZWLhVkPqL%waucl`7T zZZqU_<_yxAC4K-}iy2A9&@53_2w5FMj$;e#9T64EeDkKjD4-l^=g& zLVU_C!}u}8kbmd*3V!?#&-xjcK4-@L!jNAY@*jfClInlzaNYRIPFO?g;Q!nBI&@QlW) zCE>ccp(T~5NuE|y7OFfUR9C^@PNl11c?DKFYFb%M)u0u%;WhPx%EKtvR#b-T1}z07 z%Lj$Z8Y+Kkst1kLuW1$a4RgYwa=mn*4yCsGxfNC6n#Kk}=jFx#%q=4hHGk>+NhQ^_ zjSZy@n67F>NlA%4x-x`qq7u6uk=HE%0a{XdxMs=H#`>}lS5DVB5ha2QyEFDYu)9;b z%R-Iym?jVd-rVJNHLDqwXqVwNg7RW^URG0G)>wa67p`s?G;vM1tdZxMxTY*z%LNSZ zRbt{WC=O^6J7Ns5XXN(*y>KVVc?PWPFR`xu}(vzVQTwnM#f-! zS`BdBb&N5O5BZ_lI(+k(J_j-RL7m`MXv6S#_=tx5O1pVkf*$!lARpc5#rUNaYhvZ2 zI=6c>bfEi>5Qh4SGr|tLL>b%@au~v0QC-gJI|VwsAq3M|H!aF8=%?z!fZ5HWfUkem z9qHX=Zs`u?I`SEFP58&J+%1mYcv#fwf&g@%e#y(i4KwR1;QNFsqjVW_NH`DTAfMEn32fX!B3Pv2t-ix9rBji26yanW(^D2y7p!Sjy_HTdKcgDbG;T z-rJbDWJS1)r}jXSv?fog3ayy~r$~RhE7QWO!Y~mo*3o#O4^|&}I2bnM*Mc7X539=m z5c+$7)n|l5bx}1ntefIEWnmsHx2mdu_4nd=La4Ga%)W1ALKka6P-&s=Rn5;3v|mD~ z&6lsyRO)>YJLVl^fiV_6FXWlIy~?m7%gQtLcBaT8m;gOLIH$ z_>Zau>DOs4eP-ohB zmif!W)zfse;IFLTlDO=xR?gw`PtWV&{V*ji+{Z`L6G{WT6cyR-0QhzRf|2 zi_u^Bf*VpB6||o16NqCQX4Rnf{T~wzc9KNvMr8W~Y(Hhn!2!;~gJXm);|e6>tjaXU zVykKn#Z^V^P)L_fUZbGOszGN1&l#aAj$@#GXX%7?Fcf2#=U0C;ET628CV>0!8UO;| zBIH)JjL&#Z^T2>2=7H$LrCe1}U(paQj}nPpN`_~4W0)hRq?n!QD!_Y0$GT2acmFcv zRYF|&-w8l}N{Sy==+*5!P?z|r69jjQ!;WxrEe(*p4kG4cAfOz?!J+OUz9(ayZaEwJ zkYz%sA@n^%>?nU_Ze6Ilz7njdPfdO-={vfn2UT>Er05{$3p;$5lxXi%tb)TikyGr^ zW3WhZLUxK2)zhSX@@4bA#T<5vHKQ-BoSu zKWPN;Qn7yuxUvl%cfGwSKFH*Cja3nVdSH!;dL1NTJN4QzXrE2=m4}x!F0+q*P3~PD z9;ZhcX_lL?!Im7kmmbVnKf$b{yJla$e}Y+^>)IbXAy3)w z5bC?6x*@#GIU24!G)7`9MmM18EX8AkHT?UHQv`pi?*a6n^PcY;`I8cty@=}#S!l?m zhFoUIZw&dQA>SAB*FS|*aadITZxZhR0}I=|EYD#L{z1##Wwu`Uzr@szC*d7gR_WYZ z^4p}JRKb@{0&NbOea&bfuV@Od@EP*oru zxu<_!tFt3hwkks8*`2`8hNABffS`n_B-U5TR4(NF_0GF7tbX{r3_-bF-7NgKAMV=zP-kLwxv4T$mZ^HFZ1@@NHJzz)xT&}5W2z%mUsLr{{Y`Pa zm@H^acUPLwb|%a@0^aJ8rg%{0nko zOfg@aXo?NuNx)f7!)vng)DLrqf|{78RiYEL)S z425VbC3aZ#%5XUkHsrt1k*PG3#demO{Ug-Ej2dix4$FQi?|)$Td@w;-<>JD&OA7g znV}Y&Dx{WhhcZJ!BZt*eQ!Qhw&`T}nBu}U4j8PAa)CyCrP%BMUsj5s>tq{?sb&`0^ zsi-Z^;l1(I*__OqrL1XfnsfT5e^y8vPnXvLKbmLmGcs!}xP@E0$G* zyUX(svF7Lyw%AasOto6AG1ckn44@31&s1lb>TGome0x)!%lnR7B?uL`O297Xr{Db4Fp%T6T=`yY7@R<Tqc*vsKF5KBlR7yAMg!~(a-X5DG}T7#@3E)tnn1US%*4|g zLzVSi@^NBB#U2IAaus8JR9F3@2^HY~27N2X(flBUpuUF~A1;5Z3JsdkSXs#eaJ8wf zVXvpSTfk~c%?U4K4Fvs@^Futs`e#!+*P&x7%@iJCz-N!qZ#m&MN8nJ7!;G4S@pcXW zYCtn0Hg>I`5#8F;gz!>Wz)6kOj&nD%OQVN(IvQlWj)m=de%zp%1SNJLd7++`P{2 z8k$S&pwPMgrgHgI&I=^8Rg?&t`yaTej{r9(GE_tBP_us&&6VNl;fCckgT#)MKq+0zc$mCrcZU|t@stPR)I4;mk;E(=#yvN@SwQ@4_3-UXizPGV_p z=ktvZ+1*D>`GNI1MK|BN8*l$aCbbGQs(KT+*sgIg(a=n#m3iER)*WIGX!!=I;Beg+=FX7?da!A zijg})5REDNcm#qn6Jbfu+$nh-Q+zs8U%ku`CVzi@%y3t(KJiyNxqnP25OfhHj|Kn} zrnSRH%+`4=EpG#JyKzF#15&Wxxit-u+vJfG==gg3?x_8fl0z%Xh@?R&Oo+D4s%%`w zS89t71x}|UV^2l^T#z9 z_(Fg7*6Js&VO{6ps~N1DzL&?f?vC2IU^|A0*grmKTOO*Pp>H=UO}`^^OS&omw&yrc zBf-mFs$KNkH%<`m@ehogldAfuVMuHIvi8hkGTGX${wBpwUy_wuP!)u zhVeb_^r$!uVCm~Jb7Q!DwJE~V-g*Zrmg9ee?rMNKiS-@e6y(k=(IOn*P6z4x`}SR$ zV5fNH%x(lj{F|F_c%?>QD0=T^Nmsb5lbn0E5WwQ2FVOe^VMV3=d&Yi;m|$#et*xVZ zOhY8+(LsB*H!AIol(*K2INA6e++m7FCf`=pJL0q4vUW*QPd(rHU(JG0TN~z|?G1nE z($Y>K&JZ-z*i{{*Ei&|k_WtbY_1b}wtg4)&e9j=Z`!#7=Zl?_$rh+L0eZeY@n-KX< z>F5NYmU+FRJ|>N=87a13osN-Xt%Puids0!Tx*~Bx@V1_IRPeo z)S>w1ho%`}i{jYQ>2}&p(3L;_zVv?&D$5^)rc=&SKxHfmW88eSX12#}N2WRexF4X-aQK-K1*G!Cxu5`2%Xt7`)(n0wN=PDdNHOyqw`{^6o7 z0qxPu5$4uEg4ODJzz=wT2PqMN_>G5;)gyJ{QjA$?~aQg+6L>ccj%{+sA1ZLG zy9^-|=TLGFV-f02J%x*i1f_FE4y9BQd}NNNA76veBJg(SZzJ(A3Q~W>;px$pQ-q19 zX?GCuq6gkSksuOD@nBI$KJudOvaKXrNbMq53%Q#pc`JGJr_n;*W^&0Q&rb3!$S=su z3b-tHz_X3~TPZHuW!+XXw^RHs>QQW1#+G7_h2e=@ev*=!$Y&Y5DCvpVujD6^d$v%@ zb_#5zpy2MQJE_NlZIpkuMFTsHrc(mB^j3-}9?w&OiN$m@Ev0dIPod@LQ9(0l1)V@E zX%SUYIaT3VO?6aD7gD|6`cm>^T%kx3$w0{zY`dpOAp>Iuh=2&9G?R`JsUi)nK!dPE zI*~4Ah)fO1Wg-h>r7rbCN$FBHN-kZ>5xs%hK2bFD97h1PeNlhzN$y_9i7G?%+fP9} z4beYd9Ek=mrb(tGkt^~v#qvRw0#RsFMSX;=Ct-@mc9I2@q!$}IDFcPfV((7MLZMf& zFW)i>EU)FuTIUP6)>&?~ld{p0vz>Yu`z`Md>LaL$;vz`pR<1ol&^GE@9EYKCR@@Hi z2klb6gZfL_K}UZ|+C{m=re!`!d7G(pC*@&mesO}8VEHVwg$lM)q0?lhY>VF<%8)beF+r(u}fZzZS}I_hpZawi?V zKy9O<;zU$gi7hnTO0@i#n9Ikk3$JgXW4BWAZW@fIl~8}sLL+w2NJUnHu;*%~U~ytQ z#=^kVfM+ue%(oIUmF3<}qj^8*KBk%Gb<(++#soaB+vwPxG#BrCzyX8BFd8MMic`d5I?j2Ib>8E|S>h&fE9&j{Sm!;?;rCmJS>z&!=A~eg z%P4~`r(=I;BigS52XCT`*0b(GS^5!2v&yJ zERI3RN5_b>#j$|TPYcCKq8O{i(JC=Uj6j_UEWNCCL4uaud}jqMyUuJQqqB{|Z1xedMd2w#Sncq+s{c>x}Q??lx^R9cOu-r0JXK zn5by_pbB`37MfxCAeBXah`OPx!U4Z6qgdF-3pclho5^pvu=dRP5zXaBE5vY?oc@`PT$a%V9|fT0{>IQ)7M%G&Hx`>K?R!QeV8d-lz=b& zSZBVN0(me1!TFH-fuM61-6E!;mHB@+QF9*Y67#CiC7buXuy>HC!pmYc%cbe))mH%(6a8r3_~^kZ2KET zFS~7Iv~3jH4wkbM$j|qu9CQ0JS`vWAEnw;sn#f(SrJx{&8NsoTj)L{<17$B@-)DZY zp^Cf#Z@_a0C0mBrK_^O@zt(>%np;0>>*G~LzJM>_xf6Z7kv=}|gV`6bAnkxsfgbO} zrIUm&F0p(F^?+p2mA$EgvS*G{0?BS;7`&in@PVHHIWC?>#8OS zT5-GR6t?B+F*;R07q9hW@tye&r5uXxq!3<9c2XH$6wV8s{5HMhRP8(kKe%H*#F z+&_wycs)yT539$Ml-oo-EYs?tl>=**w=J_x58OeypkFeSY)|lWkkUjd<-q0@K<6JV zGH5j36GRrx6uoGH$fkcKcrS-7Sqr||1dV^a=trAHf7r_->0yxzTbBo$S3oboC3{s2 zptm5we@6R9VyMUyqwpLpj)oLV%gZm-> z4?^-yEnfi|2v=bNVD-`*r{trxu#F3~rFxZ2*qM`|S01K;x-NeXmVL7B=ZBo8>AHAv zJ)(kB#3Jg!d>gf-TeMygx)iabTcVb9i?*LG%yEOZfo|Yvqn0iYFttvcidoHng$9~$gl|^SOgKlC?w2YErHv5uK z8^(#+YQjL`H3ok`@1?+gisv#)`^asG^1YP19}+C~(Gln;_fq;^R%Rz+Fuu`YALXI2 zhdlc!MOT*hgL>;k+}RIu;U+TSBrYy;H4_A!2RFAqmDNPO11^8t&L-yvT+zYJl#@csn<+iu zzJ*)dF)bdnJQ&rG#hRYb;LzQ1q7;6}TzDY!C=VKIF#NQk&{@Zd1<>v%fhSI(sp3?c z1HY{iSZ4m342)+WvRSTann&59LR%qhG-7d3T7f#DODjbs=%(lbQKfyXI66aAvyIZ! z3X*R>zz~1?;oZ3s_K;g~|bYyv0 zVMHO!7{J(c6$D+{2U#iM!zLFDuzivNcAU`M`g}o~Z1-aLLB1YhDdmEI1H}p&DOO_d zRWt+8nvVB2kh1j7T+jtaXer@HZ5H;;ve5%LJB@!WZPZfOZDrB6k!a&xCy?4t0c|bI zk7i!7`KJ!st``lCYgUG3I4J!le>+u9w|6^ZfV0~V2SnAM3*;RRk4Nj|K9-AhGNR%Z zs$zeqdR>UiHS0pd-OY3{cbo2Xn{Icjjp=rp-EA>@cC6YYoJItObb*q20bE{~qey#&~B#|DFSsX~q*5VG(A$a|?FSB9^ZPFdiI( z0u&nsg@(J>ybo{$aelF9fNh;Mn`rKw$R*95+V}ScT|qB~VAo@%8)%Ve zqGe(;)gY8SUEEA(iCZ*9PX;YcqF&-WP{2=%pz7?3>*=I0pz=Ejm>l>r{w3n7xFn|NOH4$-o zt4*A=hb-;@L*EJAeHRsqduWho*2rR}OQV#iW*Zzu%wVxTs@d!u6xYmh^qEP@wx#{s zc2O=MS0j! zBsy%N(~I2M0r$GlacdPc%OlwjM)%gA4X(H!O!71A?*WkgLCo_I?AaEYB(}oOzaO^j zQN7orfQK|F5nCYp(UIbE9XUy`)B-05H#aJzb8U+jv;VoaXzKkZ^8SA%j2K7d;#-Km zje{$IgAL+J2M3p9Zl1Nb8kHHrL27N&!FEKKKfQzIOWFGIk>hKv;hdn~6jOB}PR0pR?SY z#5+@xCh?hV2$`glmcN23cmi(MF6`q;K=^BL@l&Ak(}?w+0i~Y>b$&zT;yDdn~ntsT&?5jQQ&`=YqS!dMB~LK?XhN2 zrNc7@t&eib#wYh;> zmBd;4IYFz5eN^b$OJ*ykb+vV4PuCsQ?tcEAi9_Q%92#$k;lj0TT<9o}$^p>*#jb(@ z4!zDQcC!P;q}G2Xz@vjx%k4}s%5n$1Q4aCNItD>cczu!Iav_xUuiHUqyC~>E2~+4` z_LrLF*R)aC_D^2}%fC*k;teqQAE>W*6Z+;Y#8_|Bbny;!-5;q+{0WNwT{<6i7o-0b z;)5tvPl7i&LYv_#XtT?;xgHC?xK11CzEq}_y9=6mKD2*WI&eQ4#^id=c~B~N#@2rl z6p0AfhA4eE=*)?T8fkluGM#tW5T)t{oh7lgBTNPh9TU=PQ%JO_dQhsBCX#X*V(E4R z=+*?2W^0cYti@{-=j#mn4unf>?%^r2njD56@h!RA&~zKnbUQ@UjsSK#$=QKG)47Zq*TXs)>xivL zL!1{CI!~mYt>!$=slsYbkLFaNZhPAqR948&L5F2T@~j1LzKrd3UZMRy-!h63oVqQK zlOcbidw50!7&9!74loM1$x-EA%gd_V%R+B2;bGAa5BD`w&)yxXEFp>JhCB*;{eEiG}R z*e3?aOwC3&Ai$ddQ)I^uI}mE$sZGo^hz{(?;x;%QXM$xosqD2|F*4HcWAwAfeii8_ zvLpSl1F4zOL-8UJoddDkhCGFrun-|Jl+0v!aoO-_L(q zYaguwr|zfWhPVrbeU#ur^q{}*cD`Eys5@$UTYxYtgJs9J!UjD@btxDjrD z3r)$mliccoeASi&apmX7=0)`>Z-Gte&~PK>Xws+8DeO;wzUALevoda>#QcoN*k*7+ zaa@LLv7IjAmc=nGW`2gVMmz_m5jB6rsX#{&&Et}ziTHFfA*zZJRZ&tP$x3uoQJ$3; zNYa96#ot4Ltj)YBuH(~Bt&)u*C-|+i8x*Td79oT-SdCQNg(m z{xHb`GG!t4kb@{gLMzH4bc`HEW93nFyey(wayXqJkA?6Q(^@%#Hpr2*RgR)vay0#3 zj-fxv?L&Cz7_mr;j{&iqr$x#K z4{?$fGe4~mh2nmlLtQJ9#m{tbxj}fv13HHq5jY#pGQeriF)KR9Y^Z-G7Pz^TWI`{U z$j;tGA%x2g+gYTDj?zb(a-O*9{Jnf|qT38>`=SGg{`D9M(WUm%TL~Qx?F`VV&&OC)LB9w9YR$PpX znj9A7^TmL8E56Y7^sRq*%Y@uUC9y}q)kI5KYNA4tz`~$~WCoWUAxX62So$1sOj1S3 zfn+Pm5yw7OQXttD#~$n&;49)9Bts70Y;Juh;BKNREKi-RGql}0W^|q0;v_4{o)MK% zx9a))jKUULm!GBO%VW!zX~l801Nkzwe8shwug!>5NmfI?YWRQu6AJQG5BX}Kp|X)i z$W=5=uBKAChUUvNX^}jemdSIdN}dM;bv~UZFQ7~0g|tzwqs{Unx>a6GPs#Q4vb==e zlb6!x@-o_ka;w}Rq`XQP@@i2auMx+}O^~%~#Z-B{m?1Zdx$-8lK;A4C%Ui?>d8??E zw~1Bq4lQH5z$bqrC{v%j`{*?)(9)JnFVjFRZ7hK!wPYoVV<}lnTaqY%f2He~$D-1< zCMs=fbaF-NQkHXGutxkGa_7>eEhxDmfv0E*^gser!M+JZ;v zy2t4HW-*GJZfK%j1<&%;Bz@L6t$_R7@F+F4(B@{5&RyWk4(8fZic@X)tW-Nqo)%2w z{B$BnkQOCDGkwH^raObC#|}CzI_SWO?FSv0%!3e4-^+s*6{lL*+l|mRX*=mA0Cuw# z*Ft}{SZU9aH+fz&Ur*Du$+zlSJX+{B`&n%9&<564oN7(C(xX~2JvP;v5zO#`3y!v- z8=hsqgBhXW+4%*913-|hpb^Zrtbl37^FcbA(Yn4U30lz^&!-9D_%}%a74XaywN@04;w(=gMEw z1#%a#@)TVqpQan-GjxaCO%KRtsYU*V9+%J2lkx@HEq_PP%a`bF`7%81SLg%zI(;eM z5FYuaFy&h!DBl)+szYy=pFU1G)AL5_#Yq3}UOA7go^vi$Ck@8zvCiln{ za<8nD-^sJ(K6#C7l{YCNZ&fbYtUU7P%8*-?Pd=vNSXqi=D4TAi{@PC&&D%uQW-LaSyaAJZ45dVp6ph+X1I=Tg*B&TRIfuD$BW=&GZfRi6-}F^4_!*BA+P zE!>p4j}K(w81*s4Q%5B3<0CbEjTYX0l&bxtB9}|-rM%ufdkm3BwIVK0(dv7gA&zsR z70$r(ttwloKV_d3PvF{hXdr)lJlzUw*xhjw_lA8!1U}E&)TLZc{yf*ui>qNi=>Kr1`w3E7T-njJ89g4>n^9*@XqgDZ7oYw$nW=)U0oOCP9Bs-TQ=qu-Mv44@GqF&!K;K14h6H3%Diu;mF6j?X(r;u4$od zP0;Auo5`I#k2~(*YJI`%@$IyeYkr|S1`=B6m)q%A5l#OD)=%EmLQf8Olz!bpPuZ?% zo3fu8RrXI8XT-qz49^B9dUx`(y0n9S!=0YfE4I+{yy9;oi#&hX-1;!aw$Ka7^DuXc zHig-dseY#cgIR0myEsP{^|o?a==GoJlpf8- zALsMSbPk@VLaQjE75M9GP5m8o@pmG=-_qY6cTw*^@B8(M zl>ML7**}g2iH->LDzci%*GwK)QARVZw6a?0?ItSa_d9=^X(~9D;+Pfw$graFPuuC; zCd%S*R=VpkTFgC;;vRnn%9|-q*PhC?y}0&0UE4D{&-?h+OWo#>GH9dDq2Xc%XPp*> z&2%=uKi~^rcz=jx7~g+!-NwoP7W(K(`nU-@ckQH)7YMbJJ^`}->Il^~`dbTqI-dvr zy@_(U|NnpdaA!Cr1&SS^&zmVwoVAs{+)BaZfAGFjo7Fii3SfxL-82kbk=a83WZL(# zdhJG_*GnTVJrK{5kJg>^)dFGl+D2cu(7&KgG6R``;2o4^d9mS4Y}kndGod*?v1MNj zWHcYKrb5E|gFF0dBao>EaU!m34xitsz@dUHhVqJV5>MECXY-`1C|=VlQx#=lp{PY@q6?y*+5luR^;+mV zCgyjylFwC?)l7@{YoD#~AeatLCv!>TbU*OkizW5IW@khp18cJbxL`9`cDwW4RtFrbmu+=8VRv;P)pZwL9wC1XAc#>e8g!knuxn$!Z6<&wZ~#7@OB!Hp z=6b85K0ti$He94eKiiC9pFp3@FuT2h;&0DwZhfqo)p5X-0U(U`iA%4Z*&womeB22O<` zj-Md~Q%$j2jp17LoxIXMhranZ{|stpiu`+ZKt|rfxP%*=e$K<>N-?Rx&xfg!FYS5G z`vQrIV0HMb6o%YZYu37Aatd{HoCWLTKNZpMZVM^SW5EQ>2FiW?+-{{uKf=w!3CO3W zrBZSv2I8zE)3c)!B4)T7_2j?5pE<8KkWaEv3*$GGPb8dn^-N49=PF7$d$jz0nuXpD zj{Yi@IGADG_Ejc>E=v=2$L4_QzKvJhxAYx-J+FFCNe_egx9Oc?IXktT1A;m={eq+t znmQGMYzFX5SFy~o(#HcU^%CD41yz<}-s|FG&C_D_0~YJLhcum>HVw-nfdgBJ(q5C^ z!B@?Irj8j&{Xc`6hkESO;^m3ft%q`MVTTBADTmB;6Emgdjw=P64LZ|_<-`Zpb65ui zb5qs{htzImhp=uLhcZ!%`r_Q85Q;(q$MYgF{&O-1;x$F zZU^?a`v)YqUNc8+ax15+xxTw?vI6U?KS`X0e*XFrKhu>dS2yDl<6?aR<4?&|9OpfPdz|YHZ;Ee+;2+$tA~Y)}`5N z^zu8{YxR=vT6awL0Di3GKzvN|;5O4?S~gSQ0B20_x@kkh0Wbd{Fz(0dhli5-D3JqV z)1MDHY>Iyew8~aLjw*pUnUzoRxk`YMeA6Ml0tYO;J_n{-(AQz-F4sj>Vt-felzevO zH4MF`riEG-4&FO}ucJJ&AL>0q7q_(sl03bf*iN>xQTTB z!D4@>DF&168E4SB^^;Fe$>(Eghs4Wn8@#xEuYl-x6%kzH4-SLVhZaqwK~v9&=QP)D zU?I^u1uHCl`c+Z5nK6Ay;GtAy%%c_t%jz!ogn&YWD^>Dwrp#KH$2d#hisaRdlS%#_ zJp(5AlTEZGta^mdxp9*d0y^fYNu6M?H37qOq>6(nD1&yjYuz>I&zzd=}z@A^DTEo`Phaz+M8wgXE7re28pkYdtSUjG~EBYT=WXbjbP-L?9{s z2beG zBkJCCT|fRBjF07?cx0E$xBDpT9K*NSH66uFnzNYmPR|bs$xI~kQiKd-AwtPSG^Xf#w;$TZN~!Mr05-c7~cKsl*X4(I0Q!S=m%a3)UMvd8?|n{M%)Y3NH@2CyU!D9$A!-{ zQ0zuU$Z--HW|H$QLhu3oNqpS13QpZC)F zSXv%;XrYIb6z?X2=g_{c#W1$KUIG48Vy!^%Wd#hZpuG3@Cw9T70jFC3L%idzXj#B2)BKN80||A+c@Ee5?KJ(e?@2 zp=j3*wgByEB1D?|cu(OJ?+X{9s$(yPn=xk}gJa>$n_Dy3A^)(S=RQ!{HH>L$=;hI5(B zlMF4UNIs;c&g=ciA6Axc)DfKf?wLQ#mDdUW4xi7+VID^xG1L7XU7N!3+Pw}1<|7}4 zH-))Rn3kosSZ+z3_Z*DK>P0b*?A#28ovyNBds$UeqYT+hK>FZG`4@`GL@m<&qZ)lz zsCJ`Ixiv06xm@q8_G=F*nvcGi{)9|&)Rj=2M@#UDw6^tXd23Ql%-NvkX9$`8pgf2K zyVgOJWlKwZew&nE(B53nC$9MDhuz(W+fWLmt2niB1XgoMyJ>dX*L&AJKV8e(6hjD<9@*$>DGf85oT*V;pN|4-JHm` zJ=@)M)YPWWNyq`Z2^ z-9uK_ke@)A@|(4;N4*Q$?|@FUyL9mK?!iyFUx{=tJzxA4nq`gZ@;R&bi%w2f!FV2c zv+oY0XlJj-i6*4dX(1N=B8K*n$9w%Yr%^qLISpRNa8<-!n!G9(ZI?oYeYyC&1#B2$ zC)+4x5mgb;(Q#s+0msLPX|D-Rf((m9Yx%yyF23J4k-cCRVcnnR=)asL%~Rm5N^CxN zUsX-!rZey@{+^mIvzF`)+b)b>1aC&ul@#dW-wJTbe_Gr!X9_B}wX>wMo~u8q%t1!P zcN6k}%x*VfGjh#baK{WaOr$lXX5Ycii&Xg&c(%JRiT-tJPS{fiqQ{&89sOnAcOG1Uu^Mel(oc`5#Txvw z@eTV4$ld0CCD$@^5_UzyKnyOBoov?=;KPsMmnp}bnn}^PH#y%XfQ>v=ycXxPhcVtr}j36SJz&V!5Wym1kK_M8%SM1A#d^+A{ z_A{D>kG7IdECqe{>9CHounzn6tIp$Sexb3X#FFcMqrlt|xZW(UwEC`7t8BWwDp$f< zdqDh1%VSMY?0~TdQkSGhjh@6IlR$pRsLevixKN0Y#;D<^$&RB_t^G@@TKyL?b8~3- z)oR~dP12HGX(nNqn`k0!l5O7}(-XB|mmWBbI+_~8jgLL4^mQMNKxR#@_|K%;a69R= zX&vrp7VXJ$uo>~BSryGH8jJJ-DZK?*)?cRPy;Rd=?@Ywn48laAwG$puNe)w*8l zSoK=cc2$nph9;F0@JZA@lifSI6&C2CqVemM! zKi0Wj+f;0-TCF^w6LNiYU^k1Qo?E9Tu|R!MR@{ug0_#ow#Aml0X){r{U-rDj|5zVX zpjEATqg`$IJREDo)TrTd6C ziU~E*|5kP07o*gCs`o|LIG9_X?!4SHTkel^_n-z-u;Jte?sGcEj@L^MI_mxJt zBe{rT@~JIImVJ*psaM`K^(zXw?fCRzS?>qFI9^|D4KJQ(Bz8@kwp3~(Gcm}OoR{9k z8sDsg_2=dvzf8MdlVzn2%%&&^aQaZ#{8^Ro_Q)DBwPyF)6v$vJPD|Ra#eeUlsYtpv zHdOgnoP;h7H>XVJxb=FwIz}RjR-dQ6lJ`rq0z*{Fqd60`STcy zh3CwQ&kC}5U@l@CttGogS8ur##o`Z{m<3!;@PX%{O@=t?hx9UcB|{bVu`Kr7hb@S} zV0&WTMab(R;q_osPB8XXM$|TsJVq zGG9$`ekJ^6bgk|yjyknxS4gq_+x;5Xh!_;--3ntL7Ad*dC*kqQcwDi8JSuhlDnNZ*mSOZEBSe>DMLvL%|Jt%XV ztyi(;k^?K3cQRq^ z_xq+}Z@GK(kpp_H2OBuT-h=<}xLSzzdq--z*|;2c;Qey>eBli95we>m=`vCP{az^& z{&P1)fG71xJzTvB{>jd*FJm8NVJDQvI-JJlsZx|>6~UM(x`8nI;dkCA_JebV+0DlW zlnT`$!q1bS+KFLRq?;&LBvRt7goZFn*2de2J8th_7;@y;gOyTZ#cQzrMmXb2Gfw^Q zJnyV^6s|`Hr7=4=LDIF}UF2Cc*$thf7ksEsv`X>6vR{U0LsT5+jNz7| z@M7e*CD}#RlnM-+jWv)#-nv^IVc(T|`zvJTdzYzC%OzW$}E1D!UXP zRf@eCr(iO>7D3<7I3hL~Q_SFeMghx5%s4@s>Dh})K(~K9w~*)8)@y>oXXT)Mzb_JZ z#B8#jO!<-a?45a{-zhIE?zz}F($Y}hT03TFgVR#of@-kW;m^{8t=9dg=suo(^Qau| z2n@Ps8s-+?0dyOJb79)l<3a6%uq8@oa?6W$`>`TwMe{_ydP;7f%uzCgT3LxcSX_t9~5&=8|b{RF-!{aA8x@pZU zTAP>u^fi#LO&^epY$S*TBEFx<&8qRIg4A#rj=gT_vQLNudvoVpOG)g*U^d6beR)Ue z$V1PQh4F<)UTFkpDYW0-q&kG{f>UCE?+>)$`fZ3*7c}OXv`iMwJ_3Df+Qw#buN(PN z2uGe(CwBSRx^V`ynj(36o;Qjy$=v;9#JDEh0k|&j%%QnQD2M;b0{#=y6H9Atp3%jjS^vT))S2 z3QH{EIS_=i{uly><;Xpc;9l-AwPauKgd zER6-@!2$REpyVhI){Mf7m(r^H8vPh2(~D)PNJqx1SIuUwUmEnC`tYV+}9`B z-q$0Tn;8x!L$8*qn`r5yYC1GO!ky4y|5BhW_hBb@4fAW1OO|o3PtwAT)#hVN_bvS7 z<>6I;!#HYN5u2WzYz$4b;S6V%B&jmbT#qNu^i{3IKFICbiUX*;l~b$pZca$nwz_tP z1sviT%+RuU0{inB<4oD%w`pdu$whu%;s#+{&v6VchtKYKVIf13CpThw!Hek$i zuH01zPxqDPQYmdTWlwRrh?GJo!hxu%3R6ygx3oyw@WG0^U}>2|DgHe^X+p;;NS5+x;IH-S?@_dbyY-rLzm*r;U zNiwm}%0n5D5N3@0Ze050tW4F#rV5kHLRl#spha=7MV)g+pFv^n7Oq>OodssFXZn%3 zT5S3f0)&<2*r zt=zfIN=7Sz5v}R;ccH5wm27+yhqm;%K!nCZ`qNJmpk=0V^SP zd|SH#{HigOqhGFh*50FBFbdc^^=<^TjCc{b^_rpt=NO{u5c^joFHkpZ2)`RyQBHUD z?VB8Fp*90B(o41t_i(3#416G^R`J)ahC($bPa2?@?l6z9jB1B+Bg4`D5EEv z)g)5<`5dP~Rb$h>sMlxO*zJ>b-E~*(DEH#Cgak8gaFwePH}`e@R@*zuuH&!sJc>nZ z{l17@Xiun@4*uH*FL$;VXW-uK(|m(VtdGjST|J3zDCe_RDV&o=f5LQ>q;9UgrVz5Q za41kvNJvnx=a|(a+@j+_|2uY!{0{x^|DXr-Xc&zDPB~*0)qik(egCERdU%-@@E zrh!D;Qlr(25d#uX|J7cg0}#OeLpSdM^l<<9iYu^aBwm~IL5Dyy0=OXucGRGHH&%es z+c9bV9|5cg|5zUR048w%kdZLJ<_(R00+=HG6XVnULM@311qH_XPYhjxFe*a5ojkw> z@gK*M8sPYiV@Ml-@+NQI5TFVF@4eng5L=hptJM%V$Qe8m1;jA|fL3o~4sd+4cGVJ) z2men@upIyy5&b`F<8pB9j9yvNAay&?REeJ2+)NZuYTVZVEx9c;Q=6hGvv!x zz&*-8UhL6ScSl$#s7VN!3Xr9~ECi77cKn;eJWaaM>w`dKh%x~t9fUOofLQMn0q}YA z+23eD!5b=w2c#hUGy4cfRX*g^dt5*WxeAaO0&=IuuTM+?#Jwp@p9SE@{HOZoDnR?2 z-3$$Y5cq%0a5P+?+t>E)Q6T4ySacA_VE}UdSt|hN%~eR9fU7q#FRx1q-)I8E05hb2 zRxm4UN^`t2(KCyfrNU#j*{DHfZ&^!-1C5&w(>Q< z^KT=eSr}N1^wt&9z!D_n|Flvzy>|HvdFBMN*DI<3$=(`SPQVa5f`fv>1wfou{_D~p zYMlBGb>PjLhK)Kv-8Zdqjez`b8fsVoY2T2aE$}ro*k1$v#1ZHO2Y5x|G$by^CJ0ba z0T>Wt4*+w0nj0_x;a?rHufV^EZzu?;g!r#E=ydXK^0i;xQT_!ILgT2txaQ{c0}9+b~{@0ph*&?0q~?7#iunDrO#90}zq#KxOc~2i6?U zvqZdrC<%*GIQh5=D}5Z3={F{5G(c}}Z}SDcN)ZPQC!_Se4;n{IBTfJxNQ}i zhz!1Xom~yZo08;5zhl((RGkEZIQ7uUBeRhHWEJ0~glCo9eG3rQ$pW)uyP{ElaGAK& z-l`^+Cm^yM`ED$3$tb`_NDP`&UP)z37wJnrRLMS160jUj{$;9#@?9kS?$=ta?Ov%p z4@&38uaD$CaslvO?9wWqi9SsAO4-{FR!UqKVN;KYr37UXOfjkQdw2S=+bp7F7DftY zOdc;3W;zbb@$yP8t8suWxIIHj=x=91wLKAP(a95zABP+WRh3*OW^8jEYrAou9SK_} zK0}6JH$;BmrPFI2>xD$fv>12~%cUvQ2WZai5)N&b29e{Gu&I=h9t_tWYw_&QU7IOm zFg=KlSwy)ybL6ZapuBh9;<3rC4mS5jiyRtlFrO?csdfuwVJ`$LdR&#`d~I!let3!} zqUUa4`zv3>ANX-ubyQQtXLte&H~6{~a{ogWf+eBxWl`gt<_CT#yXsyP+)!EA7Dks8 zf%IHgX{<&5oaf)4BqKaD{wcxTSGvK;txw{zR%HTNBXhcn3(KbJ-FLRVCkO8oLQ~kS zRtB`Y5A`K%C_}Ho`74JCL?3&eXNZ_#%zHfQR*Y#s*S{2**-?lu zuxO3R*x>q>cb0P zP3lpS^tF=UO(6SzqB^b!3)em^TC&s`wj6K{3lBE*SM!Zpa|FiQ%k1x`d>*bEzCr`4^Y!Vg z^*DTNiCVL|0}DK7Z^jVVuPZV}X7qVj-?4vbc<^knzC*RIzC^lQ`wdPD_BgZ0fkR}t zm+3NOBb$B940Z`EYREGtL1nPFX$ZXi$QV8ZM}w38khNV9Z2wf&jek%4_s`yfX{1qK{3v*DQXAm_Q>2EX2jd~uK({jvt4Xjn5kXgKRiX2G#`Ht^I9itpCJaTFqE3J*uaPFUf=}c{jdPZ zk*N*-{Toud1A4s}l51h=(2#nWow|j(Nd_6cX-l*Gd>4074^3su#ZoXk4@Em`=f+N9 z!jSmp6?loaz>szHi;{$MENz3SLfTK%B~|D=ij|p3qi^<6lHZnM8MyT)hJy(@j06c# zel2MW7^idOYnQZoG4!00mfOx&ntNYx3xPN-envAjq>S`EkgEF(t0mwP8rT1(zPEe- z!{~zYaTJ4kO36zp;*2&ypa?r=eY35cD?tYT!*B3Pa9Qq_=~t|j+MG*vso%SsrB1g_ zMVqwD^;=QbB%3zz@*DFgXW!@c2!o9S4^__wCD*p)G>lYMKbhd({KQ)3S>H-LhV8&; z2Cfp)8MAjDntojzYwq-}{3}3rdA9PMopi5GW021&S#u;Kkdk|_Ie?ky@~W9Sonw$&QylaknIQ&ATa`ntfusgv`Vr7rXwGoEY z16*b#<6lo4#oag1U+$_r>(Yq=+K$0q+3oL zc+QyFF$h&4u;xjAU7Ej7;{1b2Lx6HiWWgCiuOrUZ7c9k^h>VWrWV6G&NY_6Kb4>6d zt9=FM`1|9Jcoe^4=8fo{UOGPwkrO~uW{<~;iru$xGnflcQT*zaz9Rqa3%xX``iVs* zE?+dfvcxSXC>>JLyo6inBgN}OLfRgv2)<(_aYAK#sonl&k%Bpec7{gM&1kdCDD!6} zGlk$Nn=A8YBU?Ep9xpDXa__j%t-hgq_P;5 zrE@X|R{L3P1J(V*@dN_L-YGj#XKj7{#4Kxd#qE>%({i74ZiLw2{vKv0ts{@3?*WVw zogo@vBzkF=)J#{r5$!$yu^LjUON#o5H^8Hc?*!N0qB>%yd-G$&7w$HmN;|;`Jgl6Q~^L6w-QeW`HIHR2vctUTW&!#&~Fum{Ub| zvzqCd2HlipJD6`zyr(?tFnvXxA2RuH!uq{!a&vxBxIyfZx#mPzaHzd){8e8+C4EKl ze;aq8wSJ+tYp_9C-G9Fa{@*Fff0;~cI?(SeUlGm$D#HHDQheL(4q#uil-Acw%n$x` zwh=)Ms2|A((!u^qXYPuCdT&Ux3`p>n*sQl_#zej5D@+LgC$T}Quc!r9!2Dw|t_M!M zYMeW z2f*yNr%tCp1cZNn;F)N$jCnQ65&;rt2VjP{#Zwc4^VD<|u|%++^O;(!-WAaWgwq8q zsc6BqD92_?P?HM^_xxEJ2OP&ApIEr#-cvuLka8%qrryCmDfhBB!y|t$VX+)dNxAf~ z95wfSxj#qkz}{7DNDv2f;p=rsp?K6t2`lDg&zcbAXn$u->TRfwVx)0o`8I%^kH^c| zh=UZ&`ZS5KwjJDa+*GwGJ5>(BkFUwMdr-uCca>K>#lfjpwS)grq{&7{l)!CZCHP!r z0OETCq=hxF=Y$mA0Lj41Kr!P#9Cl+6k%k^6-XT7`$z`{1`X$_Gq%l$=*fL^T<*^2E z${4!Ox>gUONijJQn*h?6^v4!GZXh(yzE~lfT-KP7>9K^Ps28AjDAvZ&LHo|XRx^h= z{P5c?+5%k&i=2A@^RI9CnoONa{6z#f%!i$tBm_-tWj|1H@x8!6&iSd1T5Hi_zFT~g z;2#^%Bp#ivlRTkPf0HC2F%9+~`AlcZ`Hg4i(}>`$AyXf#r_Re?1uV zqfAZQP}hBSsTHsXPbjA3j3pdYc!k$;Tdnjbw0xTVu;8RqxB2-iVwK50;ih4K^p6lT zX8vY>DunT{vxnF>mL(BM!Nw>x!N0`# zbr#at?Gy?_oV@ivd{(y$=I`Y*9Kg0aLVQF^kMJ7frkKZpl{0(o6yLuLbltB)22nZJd~ zjTor&4K+)Gdfy`R=WHbQ3POh@m{pRt|G0+L|zo(wZpeT}myvS%6 zG0^}1+C7T#koHPJLEYv-s#*~KTY!ZQF)X46K!j6J;32?5YE*D*EAm(Mo&_O67l_N~ zN_<+{H)`9TWN`4G;KYSRG06xp`(fa4(Lk?2E&$cucNwi8$|%GOKrYj&{3 zU;|yD*E1*K8oVb@hKv0S;6ByC=Udd@5R%*y`1S%*(e4Vm$LW70Yj-~f-i460L*JK0 zfV;tn7v3r0Ba^r%tXLtVKLrZ2Vc_6JaVUM!%MblHDTeTS1pRKb4nqz`)AF&pWcB9H zjR|f_3*hhfS*(Y_!!Ji>Yz&vEDKFw1hP?NhPZbI`V6qniC2-A$QM{%Xzy*-@CHMua z&OxNj<>K_dUD#LnQnFZ^b-q)CvARd*SLOV8<Srxr0}c-L#UTAH!45r{OqvVHM3(JnXvVbPAU`+tc9^cpG3%IlH${;+aZy&iTQmS z;E`p!4_-GL)8-9W1}f0Tj*_vF=?jxUd4h7^OL4`XkOBR#pgi$%Y5OV3T7|s=`B5(L zKHd6H_e~r{SO`r&1oA_FfNHHOME}m@q;L~VO+p2oEj=^J*^;WMkE3_1=Y$QtKs2L24e4j`t$TwqE;U%mfShGfRj zKSWmH*Mf3E(9aP&C$b9Vi8Zw`XdV<51ZT8u?tbK0=U9|jnb-uf0%3)~bZ8z_XTUbU6i)w`aIuKB zu(im6@PP<{Fo8&_Ftc9^>;-fGn8+&ZJ$yflh%fwwV1I>(Ak;l*n~SU+{vOHwnb^Ah zbuS$0mX2lG+Ea|?GNi>Oog;8&|2y&5CSPmB55g@yNr+-*ZPC-sFQl0{VGWdH^W@<7&9uul% zc>{S>k#yKTa?t@4VU+~Byo_v&yu4xz4mgKuw6t4P{m1I}?z^Dvt8S4n zBp)lRdnlSM!U4CPjlD`d~DnWn2nn?@eb zg`XenRo+3ewKAzzPp$-+g7PP-0A~*%e~*D<&xGxIfrl zzA6nH&`z)la2cHLlwR0Ew21PK`}HYlA!)n#REl zcCN?GH*43KxBJRDQ?R{lf$N$Uo2JfPq&wU2GySQ>UbPwpB}|jMoXk>2x!(A5l%luY z#r)H9-y^ILS3xBmA4_w#5?6hPA_b>g!E(>T81*CxwG~B>Fd;hAX6XyKplSX&vW4C( zNQ*7mkI$`lpt@%#hF13*%>-D2Mlpk*vzbi5#@3!wK}+y{Ftjv)sP<#NTC6_zN61y& z1+5(2aK6l?g3$F!cL5e3R;`cT^E5w!2^e4G+ph3e&U^H+9~Ur*dMF=EEQ2lNC#e2- zZv%YjCM^v+Kq<3+cx?wuL#L>_m>-yqFC zbH(3qle-9ws%z;j=|7*r*n)g3#JAZs)U;z~3I{U7X&>rBi8%Ods{h1r9Aiu{`MO{KV8)d6M3CZxSjkKN3mWO>8^yY6h!J@3e8lp@Hdh??2^{x~S7 z{FDa3iN+*m{uqr_q7*fuMwlkRCP_5+X+tomq{jiJNqnJVvIXe_xLW#IX*xSyJy#*P zNfk5}mX(&lRrNWZV6o49hZ-AuTTBrq3RyUuiLT#^iOu2bO$ohfgbEE>?i7EU(i$9G zm#v%{Y$!iZb0w>d$*%_bs!99So74>~mCR5^Y!tFb^*BJ#jC8@#6EcUz z-Ov>$@|_XeaZ%LHPe7^QTUWr4|6=sWB2v29aoV<=x4Ii!RGUmC-POXN=AVW zaPsYU>gQ0g&DL~Gp1(OyY-!z(9FWgXTP-Z7eUF#4cTgllh?5JU^;BmfUs*{-ArQrj zf-jgFAEsaLH3FNxkHaDRNw0FJ*y8>jE3-8aM?0PzrbaXIM3njhGh>+BrkB-CtI8L1aDTN( zq9f;o>5syKQSXO4IZu(wl{h%05!Sw$bXOAJZAj@kRS5ped)@v+Dx7m)-nvcvsJ^JV zDOppIcK!fANKF9C?A;HwF`Ai@J);gi0&Rg9&9S|BaV=<2w~n7Nsuzb+0iuWYww zmaIOYBY1!jD^`(Dm}6J`Sg1J}by^Y4SSnWgN^UPn{_y%Sqwym-BV7V74=5QXmEZH0 z41G@eOu9AG=Xs4B$>?!e#ouSwI8e~URDY*%@|;_Y_cB=$UUI93GnZb(P_C z#%|AFxG(2WnZ(qRsdD`4An_AzHxa ztHWGkvns+~qOp#NoL&ZbG$x-hE7G~Vx7VToD;Jat7AqI53o5HD(&Yu1bKMSc zRbl-YX4QWE^=1Ks^<&u8XZDwxzPq8Fz*z6kd+nsuUpFp{V{?>B(ZY!XO=vkJ8}!cxAR zlSsE#`{f#FOJP}T~b?Qku29cvy9i+p+DjDC55@=A(lttf}tB^ZgSD2G33@@s8tg1#g4 zZ%4k<^=rowll5!YUs@>PBQvEnJEFnYl=W|yT$(8HCN~wj5`=mRTqj02iNiGI3VO=v zs~coHp4SrqIKxzf87h-x`gxFf3dr}+w$oqtAjL)6^iXXry2d-%Aq+Hd$}SDr)O_Tb z+XX$>c?S8|38tb(e|{2wMQp}~x}x)QNfoI8{YE~^J@4R*4(Un4LX{ODob1%SE*IRasCLoFg~%sT{w z7oChCu+1<{8Zfumj*76ikrt;mmi|7Ol@+*HH`n{!&4LMz6=M|3hc(Ez53eIoFow0_ zbp#%wB40jG$gdqnypmNqTiYTXD_DTs>~osw6AUGO?F4r=e(iv}!;gH1Yf$)UWTxz? zx?r-LPkfNM`ndGNC34e(-IzHKkx~12m)7rR6{qkwf<~u^HzG!)0Vg5;-q;Q1$?kGX z?T574U>?W!e%_c(Sund+^0$YUe%^qFJ>**nwvE+fkp?acYu>fwyoJYJqRw_U+*iMW zO`(m~w4~;_-eKHCQ3v^$(!UlZ=DCu8@!{G$}#CM& zFV4eRB1}h{RYuso*{_(cHqgjTb)j%8I&uN_OynZ}V;9`|Yh32Ms4sUCvtd^TB#r)|EOR@((oY%Q@RC z3fT`g3aIL?9c%lJzTPD0%{!JiA`S`k{UhUq1wAa ziFfkGF)Iy@{7AKR!`lgNYb9algmQVk%MmGkq+<={33J_n@@Z+wzZG`AxfadSo9pZ~ zlyUDKIrdsx4R!mD17lr~>bhcGu$v&zk9d`epS@k0iSBSZD&U^!g`Ta}v!I`O*0We9 zn1h8_XrQykl06D$v&OJ-xWHk1XOgR^ElztR)?vCHO->#U4l7_L5?QM2Ps)btOf9r$ zG?`m8ZLp_OTqh(=Hn;0-8J}?@LWI_@mYvoVJPw~QR%Kfi_k3VZ#`nvokSR{4^Rzd4hlZ;^aGi@;x~b(@7Nb?i(dD21F7T^(Gdk08)034S z7EAIhuDdR>+Rwr6rYPZC8H8bvF7>5+ci&{1GR-J(L0G z{Dg`W)jnUW&$2n8PFFD|nl{7a{9v%QU_MfcDK;t2D4=YE6V6@kP>}1PV zx@a%?D+Z7Tx-OADWNa=MSd{6r*}ie)(@pB#s2zY)9t?j}RY;^n{%D)~N+QTK{Pp?p z34Nh!&DKirlIfYVBA8)j3WtI{R9%35`78BI%{bqZgc*RT(W{)LzrhoaYt42fSMhbZ z17lFXI9|&O@XR4} z-H()ohJz^LfIkh$W;H3Fv+ev%bVt01rD0SqLHJ_-C&B-md9JU{5tP&*s$ z3m8;3&<_p~+0>2+8bmhGXYN&VEf)+GOB1f46edC32y|)*Sx-m*-AE!DQK_bRagczg z>l3c|x_sE#jatFoEl;T$Q(uhnXSmDX@AAXS_y^qShva`s1Os6WeP+YREqh{XO!~D; z1@N1wT)-Gr#o>=sB{mV`8lqRr?YaYw20oc{*g#VIij+|s3#vIe4^X|uF6+2gqVzLX#(wIEg)vOH12X0xn_sC#B2@+X-HbcJ z?O;2RPO%a9SYiw1Z*xaiDr@CPmr7bSe7ybfvLi{6Gbe0I?Mesp5i9eSNf(_(rtJ&8 z!AgD5>|MqJi1fQNL;;Dwv>n)C0TY6>qOHOd2C{dwYkwUnxK{hi!Xk><`()#eO7dyy+7=(i+4!{j(#iJn-0fpcb@|4IpSG9lE=PVPl!x*&pH2lQnt=96c`gRO3;;9+ML-gl{Pu?vUqQtn^>XW2Wk9x@|atmOTcs~)yR7;al0 zJ{m`cu%9DB5;C2bqHlKAWNHE7#UuTa$Qa+`ba*m$zCp33YS1?oxLDS5@=5eqgRL!S zE|HRJR-Fv_ajFH+5KMvazZm<=s5qK0a2HKNfCLF)2=4Cg?(XjH?k0A@69>?b;pAxkr!WKL7N`(eFeY ztvzLNa#*traKY+!ElmhInhaNIhjOdpCia>NUuQ;cgUX4Oe($JBATSsd$mKYrK#uqA zXErOSz3oHY3ki7ZP*ex=Z-;Z6MLD-T`uq6`e{8P~rZR5%M~*(TD(`JEVo>bXu9$R^5=_tZLaC= z>2~CGs-$8o(^3%-|lNRWi z;LZKDa1g8_FjbrnHQ=(rOM$;>krI=S)YCA5=zinpF@jr(>pr@RBU$>3gPVH4n57fq zRQm^upbz5DT#et6WpR(P1HXFv;dOx13f+zevk89q!WZ7Myd63BBMwq~S% zWR?n?SVSW+nYU-xhFz=rd1iqpGCWBD9=Yy>Y_etwiKD&2csJZ&~>kW1oG5X z@Z)WFCq1B;;l8atZJAgQ3&$My`#QyJDN4!WS+en4B! zpn>xwipbqPfqe{1+B)5Ibm+k{0_!LjAd2ej)KCI*BlWV4D%1utG|@tgD&qMkvwQA!Jg#ACy)Z7P3=6g6z|R>Jgor zgHOd#jVC3nu&TK$ixpqH*_D`0XFD3*O_W%s{xlSv;@GEw72M^*Ipia*Pql9WZnJE3 zvUK`XK7AVBo@r-4Zh&j}*%Jz{bp;E}U{Cb_bw9bV)hHv=_hOaoS*#cByYX<0H<+#) zq``{N!L3fdK62l7^1G02+iYuL^UruX(;b+d5^B3e(# zeVwnT8!@!eum{M3P6x5s($*rBB`g;)w%ZK{N(fqm5i^6f6GLgu+CLuJAzrXF<_Fhw zV6~*n4!qd0ujrSVd9ep!a!;6jPwWij8L?lq-KAR8pX0`%*|_@5uVY%9UMX`h3aX{v5avUt*T9~<$R8p~Nh>nTv~n}hDMD8>y4VSU_*SNt|c5kq2vha^Kw zB#*&v^U_54eQztY+7Zo3j2MsHSy7$y|2#g#<}hQKS8@jF$vVO4ReV**FCL^P z`b3?!zHOKpmu~9}f5>slCQlwi4nSr$SS!u{w(*48|1MPr0w#Gbo;*1{ikAJw|=7r2QF^^o!&eaeI)>*p8!-ta1@qEPe zhM0UOzlGs;DRI}V`}Jbb!sN>$kx+SH(D)9Pj|Ar~-r=|K>QsKm+eVH*x9n{b3WYz9 zb61xRCA>#$#-%J~&xN&3Xsw){KFP8610u)H6`Scged0A20T9IbWsU`P$u6rHrq0yI zN;SGptLn^2HdeMhmTe_3tr6LC+1}`Yj`&b$Y%MZD`S(0_Lx6eOg+AqZ%R(R)bn4@8rT##YAUW}*5-0E@r|F_(qVX( z_z;}7zWZGxGZ53dF};3&QEw5njW`IeJrQiYAWd`%=>1`{4Os~sY=d8!2sSw24&*F6 zQ0Bo{XX!O?cF(k>M2xf-a48Gr9r)BLC9iN!T-Bh3?|+ zFo`Py;HcR-ia3T;poL{Gqj@z)s=G$3`jWP~{hmRw!l-afpb*4)Zc8c|`GSibgsV2A zq=^=WD4bgqiSUKy&_n4rCj~#!Zz)wrd$~EiqNSkrO!RXccKqQp$IEZ==J(DGJ1r|0 z?K^RHlc#SG z1KKY;El&pbGZRVQJtH~Pc3Ye(Lq6pm?jG<=*ftw|##GrFxaZCCJe$uEsAg-uv%{S~ z03JzYUtA;eH?4Et8M|Mu#cPkXcAS$3+O326k9U0qHU+)>5ds=2Eo$!ypA46%+N&E> z6RN+o{<3s!zh~>g)v#;*B`j+luKGS-3!n%`CqWp51$_a%chnBoAZFy4J=~-jRG_EK zMYD`)V1u%8Zf%C%ZTc7iV+lQrRfH&^9q&eP>)!<1j=s$o|Ahco@D%po<18i#Oi|SJ zd-gLCE{B!ch z6QKx6BKg{}wVB@PS>Rvv0tp%sOaU4!2r2O$(!Hb`V`q&2YD65AB(q|IDixaRW>7_{}p%AWG)fxo~R!HC~8450Zr z92gCSiIj-Q^xlMMgd`p(9$i3huu119SCv#+(;!s zZGa4vC+;>PTxb_Hj&R#RCV_oG7orjZ6Ryb{U_4%vpiyww9|D~Y%LL$?ydM#Y7bS=i zO!cRM)`V%mF@YYDidQA56rA_3g4Tp>z%zjw5sQ~4$P{exw}Ga7zXa2OYXUnW7q3gu zDJUg)<9`gj1lxeW{cc1sUYHLbQdoMo^e|V$#rt$aV7kH4L zGaN?kO?Z45viMw}b(z{ldp4qd{^;qB_cqno4SPL;e`G~jyizz72FXN8Y!w?7M9hxKNU@ToWLbctW0+`p#$uVva5WP&KKpsJIpe?2!dIEEOAa zU9EM%&z-8Pr2VV_^%By)r$&#?i|Rq4c9?;);(wb2d1a*?LaNPrZBwS{(%MiaJ7XPU zzIni^X8nr|Z_7cJDhk)lB5L94s#cSuO<8q@Ds(>zwWfrN$l(h0k)?(+yl1l0z(m*9 zI2+Ayl)Ih_uofpW=-I`Q`ffswU_3+inCIy{+WQv1IBvvRS5t&fC90Y&r|7;6z>j_( z`0DDNeevAkNE^UvD4h9crQTN3yL-&bDv5w5rlp?ZTPdW`&9>ca#8krD3YD`7)&y$ zq!XLCz@G{tHXfqSur`PW;N=MZuq3fR2(C#Cu&t>~A?~m&ji3r;G^@|NTvCJv8{(Py z23Z;v%02Q@zq;6zLe=xW+R4_t^x}M0uhE6t2|jZBX)Wb1e=n)+!sBGV-Bck9AfWb5 z7n;G$1pFjnukF|GL~0$^qln7X*XWNm$Y%wH%+2MBa?c61 z=msZpyM8O}FD~Kb4qa@DUexSpYb~f~!+wA+&#BHKqBctSJFb@~EH62sz&`tutSdW&-(otF2*la*Hb!hP8C%Tn|s2~ zMxf&Ec}Ph|)lr?`C*80Ey={ePn(BEmhok+-l`^8VZisa+@yT6hA zL{e!)3L+E-bd%w#IUp;n2a5nb{_^LTOu_cBqVYzv z1j{dmW1Mlwfn45Z%~|65(M_1Bbt>#q%9 zfn#3He4z&cNNaWF^c39$@zzvlWL5R_+ypyquE$fgBRbFdPKI~nCvZ3D=zGi7wyO#p zlPtRKw6?vQ?Oxp}T2VIg*H2Tb`rSnD?@yc>;mFLk`o2gSxvv(MMEeqY!JD4n3M;RQh1|ne=r*Q2MTCe~}1y)op*Fy~)yS9FE(gVfx!yrz#k?HC{t{9W}zK z?Bt@T_(EUYBMkjS)K^p`blsU_>q(}sU)|?qHZ_H^p??aQV(u|th4FTnpOHak{>oX( zV0e*SurTPZFaM{i9V1B`?Yk0uV^qgbc`b{JkYB(9F_i8^&jmN-qD_vG93?L@CDUD)qV?tS5o4t#`;oFW zwv=bfsVPlOgbvfL2B-4T$q``Ug(-r=90h&0 zC4F+AlBS3FSQt5pW0)7}7FA|V5KedpEvws#l3AADnd^vIDV5CcDPaRzU~dB|zu`gt znJs&(wb-WM{D|cS3s2#&;n|DCdLBwn!@4_1jEK|}9BD0SD3m$lq%BJV)!)7?hLQ>s zTyTh%7E(T9N^pWOPkE8atfo?Kc-e`tfw}ID_#}#v7jsRywC80dI9u*53e~p93EZ4+ z7DCH!VSFF8NLHChjST=$jLT>0N~CW=i=23Fv0>TSmck&|;y6hu3=wPhc<5mggsE^@ zqHnI5&$O-@R-3;GSthqOT&vYVwU)cR7V+V_u8+;??!S<8zk)Lul3Nm)rD+(81TiHg z8A?eLv@VoCrxPnHZOzEQV2Y6N4KYLl;#Gkih&BFS`BMwee^vudBxFYySz2+6y!?3p z3jUM+DcGatzU@9RCwYrO|4bt5O-HR%n?;QGEdOa!n1o8EQ7;dvo%z%O zbpu!U=_P2xH4>Q9L41r^L)SjQ$x3EoV6#*ZWAalbvioG4z)BlXq7lNak%S@!l9eaD zZ6z~eug2tg2DnGSY&M4T5FgA*?*4Gi}bgvgcTg-cRmWWGGlyB z5@hmqJ{nbw0X~;J2Fz|aXUX!<2bksI%5TMDBX61xH+D!~q)OTO1q zNJa>U6&C?S--gLaNW&dcljC_Xj^aZV!;$A;p)mQa^It^3;R3PS(fLr6RC#pd(Nb^W zk3V*2b4W?aP@-{i87NZw(XG-=T;7cafs#feO>olD7==XiFna}1xzpZ^Bgqzmsi<@E zu{t);`4lZ7A&aW0C}@|@5K|pISJpdH{K-3>Z3M7{dLE-La`xI(z(_7Z?3a%*jf5U7 zDXIJ(Ycl(`+>rxp7@n@^9RX#~PcJbh+Ms#i8&?D=ly<0`BMGU982k(-B4p#xVzTJJ zTL{v!lJeowKRnF6gp@!LD0qh|)B{HOnal}nd~BR@HvUO$1d<|^ELq{fSIBqiEHsdm z1RQ{1nAIh(BkB!~b(ehgO-b}x43Ku^Y2}l~7z$!Exo%2Es29x{6co~q4$Q$**=Haf zPCTEcKgP@yd$0DCrzzo&^?@NdklHrVV33sb%K(xFv{1OwL z@P zf?Wvu_559r$Vm@Yul~CY!IKyFs=_ziS{|?ea=m+1CF%MAD#tmNp3u9Ts9}W7prJ*8 zkOiqWV)-aZ$R2)O5Uo~n`AFe}RnuE`MlZ~=cA$AdC5KFJu6Y6BeC%&%+ucsLViD|J zx)002Wm6fy@Q&t7);gZ>R_>mrioG=RehJuX_zh2}Dd|1zW0;C!o+YpO_&_tmm;za5 z-wjU#$MBgEd!^WT#!wz}T{d9*d~gH`f_>L~3hKgy+L8j~o8Raq>LuZaH%&C0OK_T|UKtlP-T$bS0-hLV-TZgo0$On` zH!vQvwqFvKmU2f90W-s6c(jR^ey%!tP5K*D@91Y$3$T<^p(YCu;F4Iz9u4$Luwr)n z)iGrJsS=|&K=oVP_s(Qf^K&ozRAEL;5zpXdx!InwMG;sNFrb^f?;UZy=hx(@zAXlf zuW6(yV-dSZg$wYjIWt8%pksQ;B zC-u}%nzQ?yS_>Fj)0Zas0L^@8oave+E7Ik;P$?lvHR9#@2Sd@s%9R?hU8i2hiPvF^ zw?wNh_}vO;nrQRdb5ohnn#BNXVaWZrUuItxA@?YmOFj@gc=HC@z>sAk*UTl?%+dF3 z)IV+Aq%Zr(Pg^wAnenqoUoAF6&tS3WLpdeW(I7_Fl5nET;A&KOpt0F(riHC4sG9c3 z#QFzb0E5?R9>9wRZT4MPc7spm= zz@w^d&n^U&!@J7?T;fd2QUq9P6Mb{8gt{AlLOmxgpnTX4li+zU$-pu4emOm;{7^Ff zaHW24y?o`7&mWU_kgqGpR2ve*Q(??8W3DaFwvu;-7xT+OA#+$i?B*#ZFWitUJoB^T z_^baN86Yj3C21T_!S()}WC(%nDj9-W z)>>(4e6-9c!dqg zNT*Vff;%A$xk(gyd^v-gm`0Uau)!0AV?9%v)QXP&L#{E7Q6Yxiq8@^8@@0k4DP@3W z)s4geiO3}ZK=vUM0o~B>W$p^~>zqK`_ax&LC$(%16dA3WT~V!>GX_ahnB);~7g`G5 z|2gTvnE|hZ4A&u{Gse=-d0e z(DL`*hSrttH#{p!)%3SxeC58=i259Z6XSlEI_4V`;CLM)(M=y>IZxOa=*rV~T53gJ z;l|gOq0Aaup(|H6jX{KjF|0HohTFK5LmFhtn0sP74`It~ZlyIxTAr^Hx4o{)ttJ$> ze(8Ascq!^KG#ug=b)9Fa9z+)5!_XL2YfXBj*4Lq47k0Xyr?2$=3DtI*o>Hb8-~Vjx z+&8!v5cxP!?2{h)>a4|ov2WaiXMQX>?>GNa-Je{!qA4R&sfmV6Y3nty4n4y>o5MJM zV_al=83z={W7a7j&hnR7+{l*RXapYctx^+K~X1nWb$ewci-^XFX^=+J~k0|`@}(2 zo0X~?g`(1%3M`48yj>xP`CxCwp~@5qd6r@I25}>%=NObLsTe)2LUgR|W-)sYShB*~ zb>|fg?w=<~BQ_uEqg4L}EbIiwU-^^Om+lLg`fz$T*qy^rK_?^=>Udys_`V!{W;*%u0``WDEWx z1(Qi?b|a-5e5Mt6QK>Vix`}(qtTW2CIjj!%MxkZn)KvV~unK}VX?22JwZ1NNEQ4?& zj+VW{+JEy%Sy_$RLe6a!+mw7`k=+KM_R$41KDyJC&)rrrzvl29Ye$-MShF4G$VWKv zZsdgoGHMN5hB*I%W&HgIrJn`qCv$1X%a53FbZGNBWum55bG%1in*Q|w(G_l(qGGiQ zE}_rVTQlzAYi0OP3Z1$~_tU($eH)$SyZf2k#5}DIFm8!V;Q{-;t zFPB)8G$=htDviNcRB1R=&ZHRy%vAwq-y@XdC851HM|8(bVJH@a)a_t5%HMyP{!q7q zg!b$+)rp>lLb7)@`*WpwrMz_4L{7K3vtAEw`p3Z(*4?MZ(7KE(!9+X7VHlBH46U)O zQI*CU46h7Ch)-VNP&T?UDV$in``sZ9*%CTKm@nS_cc0y6dQhO3Qf?9r&>nV%+E*4* z;|Jd(UnVaYc~%;4oh-ej45tcE;SeC*(H3pL1 zzu7)kNTFqvYl(FtMExMWhy>8O@~X=is- z*Dt7ys#G4fI8@(OdX=$L9kaL>)^=SJcZ&*M_-%Wo!*tI{#b0=Vm!hxOKKYd_eY>s(c}aMOCM8$-K6y<4U^esAe0yHSO94}62a}3kF%CM2I=&LWNz1Q*uFfUNgSK4iF)TrvOr6jcSFDvMvYn_ZFh@|Lid=caNg{_UAKhCwB& zG7_6Zs}iedS#%*jEMy@sR8Z!U&*U!!lY(B>C2NYB(yby97O$_|F1e#09g;YiFRx6P zEo`n#xDt|hB4k}2pOary3XW}TZp)*(m7BPlR!wg!+8k8x_DkJ*+|B25wJ>La7{(V&3(~!9L0Wok+o8J&5MT&ZX zzF|uBwiLsv><%7PcNvf9jwh9JdHlpcs}iSN$PG)@e-e1Z^8Z~n0r-j9jhUwhxD@*l zc}g~klk%&QL=n=cv2m48!povN-%{XJ_)0F&FO=a@ousMO$_AB3ixS06$x>WZz9^NK zTxe6hJ$;?z3O$xizfiuZOM--$aQEdxenkqw>K3wa)sp$FoEEaNkL6dzOj&TyJU@<9 zQWf9)dHtV1f&c#;x^L4Ss+cZgij~r?G6L3FDZ?pn%7DAiJz`hkBhU5Cf{SriR&bm1 zxK*NRLjTX5os#xQ2PgU6f2Z|4Ea-Wf(D9bxk(OqJz5o2nvs1hecw)%{q{ykB%cePz z(j|5fsm9BXON6+BpAyGdsWuX)-n?2^7C)KKTo!*KH0qZBtyD;IYI^GYdjOoSwihLt z$N!PhdA-Qb|B2%IZTV{61@FBj#v795|8XitHDmNVhL}0eF$wAgnBjl&&#SOZZT78N97M{h`JC{!pafyFKALeP?=o*l~th#4W7#h{ZGWE zbN+wJ#q6{XN%dD9>#*d|SXx9}=Zxl28sp@9Ws0FMl?DSqTyiL1IkPh2E-@8zb#yT{ z#O+}OA?RQ>o!G@}WW#k=BFIzHJeDc#><}Uoq$$XG=x5D|jcZJAE)Nb(t_aGZG@i;a zn~DfXv5|rH*2CqK|1rYE0OyLJX%IcPqE~8Abl5nI)%b7#afE41n#8eZ7;rUfnY?<+ zVn0 zJp=x9x-x!{GCpC`d;R{Qs+wX&SwJyEX9EU#(nAlLa#+Swq zj|T!8q0Flz&Z*vYK>2vROLkZlC_C?PtHoF@-iH9{h-UcN_ZfZ1c}%4#^$YTi>?}w= zje*_8Zqg4~t=F72^sZ+0eNQ6ha_nh{T+X3=G;`_9h`VOloZ|+Qj|b;}sZwlOUj5t1 z4jXqd8WCP|tr-wsbIt#k*uN$EdCb`vukl_fFQ+| zBevhZt^Q<7ERE~adt%$2s*l)Bwjphkz5KJ)ZfX$;Q)My61&+PTi?mpg%Nq1pc+K?^ zELm1twlfZ8F&}1t>Ac37PsYVo)q&aSThHam0?Pcf|8{eBD9fa<1*O`I-KRu*;a;zF}Z@UtYRmC}Z#6 zN?m)vjD*45dx)gbi{0vFUSWU7{0p9FI$t2?C(Eo%OubVfpn`Jyg*wx9_v}b^K zF$?PRQ9}oQS}=s|TiY|GA#EghHw_r{UNR*A5zy6`(t z&c4?Uviy~fe;~7x>k8SxglxRs#_bubuM_aGAp^j}h&;kBjPEu+!mf=kJU?ri@>N1E zCZzN_0UdFdKzEun=suqBxuMUdIIhcx!8F@b)m*E0HhlqM7vBYP1kx@K=elg^qnS<5#fC6)UB3ypw?pl+GyH5OMtr!sY zs{^$l&NrYGf?3666E?(;OPMJx+oi+?c)K5z6fiF#am^VrTp#hDvZUef6YIiUc1^lq zLwvdBj2YCAAYX$ttC)omccZxGtQo}jAq+v7mCU{{mjM>i5gvsiU7~9J84<0XgA#ap z!^9k+LyJ@zLI>3w_xK9Zk9T~-$6;wE{E*cfVj76vaKZ5pjizS~Yx7zI+!Jy@lYT5c zZh5NVL!#L2e422M1*W=ymK-&2?QO)5`% zO|g&h>p_oai*}D^OYa|l9G5+#xItcE)$DplCYNgK^cQOz;*J*fEMsIc@=wmx2SfRcmD*r86Bz%{~M z^tf}WWZtfINCXh@QoO1ik^y9{;94o(ZEPj^d-wz7dwV7Od+YW3PiQUB9R@=14>e9tcq_^lw;$w4yHNDB{a!Q$rG~@#Uf)WV@0JY zD6@@HK`dhJ1g4a^5?jerMK(LqmIW8h$y@P7=(t}j8;G^W+?x{goLsuE~iOy+(=U9*?Yy8lYrHM`DBz*%w?p?-c#n! z-%nyzPMpQ=I(P?rH7&FBIw!^Y?Osy7Zr7=NE~HYuuB4K^&b;Kl$76{vzp0Y>oV#gs zohFiM+R&sHbTW&vYd{C7l`;>ju0jtJzC~j{}Mxb~Kw*zv}w>_pz zJmdFlJ;TjIpNh;=vbHs;$-QsJ26$k%Ri?b1I`-5rK24!|Chv9dEMLYvMelLnw||X$ z@(EYR!=BZ{!=Dw*`8une^KDk#kB~%i5>YbYQmA2@l5lG$Fdn>95Wlbu7DgMZ4W&sa z4M`rc2ZE2|H{du4(Zf{6n1$#@8ioAmras@xV36JK@X9-NSxliXqdL}6x|QH zsF*&z$e0ee=$QWKDZDS?sl0FDDQ!`s1InPcN6Mx zK3sKTT=4veX+Hkg4`Keqabf%MlzbpjKIDZW7dY42c3%I~KDHuLbF)sp;K4oKye_`O zWuK*UhD*fmk()yAkqh3qMjJWvEFJ5;noQZarHkkPYnKRYtx*Bnyi~92-a0RX+VsGo zZ6duFe=5B$9ZsR<2TBiWBzBk7NC zr9>9-Q_AY-lXv-Qny!|T)p{t3V`@WYCl^F5&yFfq_ptL^u7)VHeK4h>?UOJ3&!CGd z?Hgv-Zd+yt*o6-cw2QAUs#Wo>PgEa(yDt>JzI(|pJ-L)nKD}x%4}OJ%k9Jf+KDpGw zKCenS2{*e z2uNe%_sFDw?NLhq)+6mn=o6QS?I$$~&tEC?`87o8>r0Q)H$PQR&Zp1|t2_P_!1B)q zwY^9%g}rDnaGY+4I~Pqf+ifJgeDTBk|ttAEmgFupej7Aq$*OQ zs47CEqAF^!#3p>P+$NGjy+tHTMT%%$u|>SA^f^Qcq;5gzgvw?mSdq<#1ne*F$ zVysAu>KM@q^$%iis-1-Hl(7*JU`NFy(TVJWb4SM{RS8wIOhvq>>ZjPG@*y!gRZK!= z3VZ_TSZ9Lin0Eqsvc4D_#hJLC0$=!($i3{g`IvZuK2>krlh!?nloDTz69sx)oWXhV5&XKZAvUFlJ?v6n6D5oFv0z;bTXuM@vx z+-zU7XCmjH1T(jmzWq<$JArR_8lOp%kt;Bh{au$aGE|H^Z&XRrR8f)l zi{+1=q7-x8+AH5RI4Lj!JWzjSd8~jpc59zUmKnhiAk;m$9ikrjTKVf0^DzO@$nMJN z;jBh)GHv0S*E{@GqJbei6X_wR`S(Tx9hyAP>!jcOW}Qa=>BC-&2>ju_mBd7@r6y7;CY(^F!=cuaASVcZOAm({ zEdT0AN%>fQVQ zVXr8_0u`kA;G39p|GHHU`G=$8A_G1AYm=Q4g!J)0Y;o(P+Yc~58Hlqrj26`OZ?6~w2=-rD z1vb$6hyVCp0`Af0WpB1ogB^=t-+<5jAY|}r{TseKkrUMLub4Ow=<~m!#Agm15&86n zbw>LiY?~VFK=#&==7u*QSRp@1?$du2CR7K0I(@596)YePVl8Es0R0^21nR#oS#;YCf$h;y7{PV> zpiiyy+923})%?~2-Tgaw#SkR^&s3vjiCBd<#@F~80C5Gx3?6NHtJTF6r1g*GHDd|7 z{#Rtw26XffU`K)nC7gnG~$ z5@zg>6qqZ0d1(L?zGkLXg1AuvPW=mP#Ek#J5+6LD}S}9 zZ5&-L-P+`~_@0%A|Lxg(@ncRh1wk$HKWsDKx}UY*=6FxGn|Gi8GM49&6`8y5cIild zArAsxz#6OeiXUu7&jzkb7m_q8i^aHko^*KA7P&u&hW8i zlLObT$uV;X8?VVNL9meO<{a+7G@TQ0$NZMTMrxU}aa;5Vufn$~Rhn#YY(WTJvZO;= z;P^32e9V%-49%gmrHB>RqTKVFb3!hJ2j(Z>Xa^Iw<2W0=;1TFgF6G=YZ2k$+lPN7Z zmiUsDE}j^kl`e6PY+R;(Sb4jtoGC3ecA!MsK9q$NYwD**YK-}cC2}q$Ie7U%DF@2( zT+=OQ{BqWlk3POcMuHOE2;Hh{WH`#SqhF4-OJu9qt-`dWUb$zyNYidh>RxTBO{)iB z4Ri`2;MdMb39MEt2YsT&@)KKA)i+kDBTM}IVxvde>+Q+p1>t^b{l z+jci**1)wpW(~{x*oBaNv2A8j_V|~FGS_gX>2H*C7VBgAQnoLPGapZU2*X&uSmPK< zS-akA@fems#$;>M)E%V?mtCyNjRV zyO4p@=y>vd=U?6#ynX}=M^G;ggFA6mpFaBdZk5FZcfE*(2>&P#i2u>uj~eM;7vX#C z^gx^=CNE(teH)rREJh~1UgRn>AM&1E0$=6e+PgwKgWXHWwI+s704F8D3vAyEP;aNy ze{K@X=;E;RGWE@C_fVd0WYsyo$-}>T;K|>F$)#RZIj)HFfO^^dn;MEaWLnW%K)M<{ z0Q*x+=Q^`eM-U~Q_c&s(TyjEtFRLj-@^YABWkU_3aaB~N@<(r(y1q_ga z2N)N9{uU}q08K6c^02uM?*IOtYE`df)YsOnl?7J2JBM~CYTEGu`-5|`T8qUhT-ZCp zVM{2?7BTsvE?T0BjEpy{dT^X7-5=KasbRO}yeUY?2x4fA`>`q9=3UHy`HmSR+`7Y$p_Apvfa!s#>fYU&Ts04)C3KyW5;_&A>$jNOh&Z60 zcuIHQP@Q!DrO=P1r)UPrvN-JHZvfWe&hw-^~_x!A@g z|Eca}Xn>;zNwo|iEq}LBx$}&K<5iP|02^)F>dOK&LZd|5cWF=Fj?3eGD=PXfPb=93Ta^Hqt@qI_b(=wEBIkfxJot5MlA{8(%L^?t@?~;p(QN9iv zd!)g*sS1|J`f6>l1CZ(It|A=BDN;+ZUT$kW<))*%Yeho*IQ~sLkwehJZGU7wg=>8X zmG!ZuLBzQdPE=JxE`hmxEXktgYBe%rSgpHjfqBoS==#@-q+f~Y7(Mcq%tjs>BPXoH zGGmz@CMlSI4ux}ut<)QXqX{L$!`^96G`*vq#nyVdHaleh1nh}*U9-k_Qx`Z%TThdI zKJ3D~xptk`+=C;$_<@imb3wM!2O(KoE8^3ttG zsx;e&m4!>N6R05ErZYLj`pL|tFMWIHgR5VAi6}72ej!^IRaYRsXMg!+Q7wr6cjW#P z?n@1hD|5w850S9%+l-u!p)elv*#%nd5Uld|<#CXP+@enR#5x;05kF zpo`bVRIc&B`up9ePi;`Nb-LO1TiG8vbm8=b16*G4&H&J&-L~sN*W9~TJn$W$9K95&?iL7vq%@hT>Ox@-=Q63Xk7eb-Y)Co zaR*NvYe2~*AE5!iK8o_snqLm+4QOFP?^iwLbd%V#u!!}3SK$(3?D5b+8k9X);Hr>)F2%=mSdA(xVyE#aITf~CF9 zOPLiF{3&2`YyMud9+K^oW~t$B32yc9wVPSa=LOi&b`PI$_~|F$B_x0Dmny8S!l;zm zW&6pW9l4O&CavSUcp)M7Qn0Dc;a~II#LV59X6ygK#p~$t2y&4}{l?GIA@GIsb-w>rH&=uX#YhZj?|PxRuWHuS+{}(5z6-u0Um}I3hC8 zC_Uj^0hWyqn%|9uXGd99Kd=qWZZlqB)^x}kxisOLynKje*Ft2trP@2T`}Sk@<48Xp zwb8H9gHbe6YQkAlbx~7UOY|6T{Vw&851vU7N>LVWO;Q&rD!6+-W6m@{^ z6#AAZfc~&+Wm5@OvC2oqlP8IWP!btP@9Z!^E=^^BH9$wuujVs@_jv8IL-Gl=83k;h& z=;JcXy(=k}9CA>K!*=srS3_$0`(v^Q-N7mRam@Pbd#tV)TCo_qdvBxQx(|`tQ;w(s z3XRktMJMV5Z9!udmo*q7v+E-uyKJS!wZMt`v8t-GcZ1XWP?1R%f3?u&1dS$f-(Yph z6b_O0lchwsOzrHrenuj=%>lW7q;r*+uD>?9b)lDp><5tziF{OIH|NMBd?Fo|GZ<0Hr6&}o0HD4@T4!JK!G_mxmA+vgB1Tkh}69geYQp zkb}{=U_>dMOIXJr{Ba<2BX{x^xgi@&Pjuhu12>xQ)`B)N?|gya=DfI_9-5HYK1C;t z3+vK2#OZhnL|zF^#(nJ%CwVqsS!iImZN7&>rJ@A!+I$zQqIL0KhCs1Uu{lfU8#hg7 zq^7iJORgJnN|X+nX@4|0`RIUc5*?v*Du{(0q=wElENb~gBWu>!9K=G%#yr5`LG*=B z7uQG3#!Lj9-Zcn7>Pwd?n^|n>?M&cWov>w@&R)zi{98h8RD^{0ZMb68J}61wtB5OG zu#$AbXgPkdEq0AR^g8B@J1x3Aup4<`v>5WMC`BKYtyO^X6^OYKznJ~e6v0_Ew`cw7+p#nyvyL*eB{cY1A{b;rA} zg5^dV{N;=+X7>`I{P$>NipWMOzQ97BGNZ4^nH;3ya1A<0Lb1E^edF{;K3FYB`YVU9 zhAqgJ0i$f;qekIlg3NSWc&zZo7J(Xp_} z{=?@mbLM-_oO@>O-7|A$)Y4tqvV;Y{+`G`)O$gwAG1vh13K zlC(35?!XCT%=@fC$~D3 zZ7Rmk@?|XQGCG;G_ER~hLjR@R{S8^(WH`c+{G+z~2iV5=+*?{{v~Wv|MdSHlP+UYq z=*0f{#0Px6Nc7rVcmBaqzN={2UkRn_)HnF&wvI@Y$g0DQ27U+RO_|<=DW)Ay+%3zD zB)3P|KaaGYH0O0jJ3cv+Pl^{2 z;z=fYQCh^r*GeA`Q^BoseCJhqmUa=jakB0CFc(GbiSaIAt9csra@F_oa!N(4#?2S%QN(5P8?M$)pL4`> zW$TV`<`O;|&NAO@oU6w>dKEg0YjtLzkjs}$RYBLQ*zR6*UDAcS$>zNJvT+u>D_ax(bQ;B7?eI5`b{ zjQ?Fx4n0J@vo{{B_)kTj(w!SlEhaqHDMm$8?q!!|t)H6RIYr)G>SwFT?1#6?>euZt zXWEcaNYA~w_8C9h$NmdJVLFaC{>oq#34df&-u(j^!@uY zxsD<@W7Wk{!+rCv$BSW*yT7!WKgXf;q13+hw|u%P(hI~+EkBnJFsYW?vXgI!9anMI z@lPh67>?h6+qKU;rO&gg@#OzJ%rP9@!>9bawBmI3Z!FU%_5=dpSLfn>dfGY-mk^$58#irJmd zhU*S-Ea?^x#yOAGG5R|@=|cMV?25Zl#m7|b-X38YLfTaREcqsG(MbF;+uXF2dx@*$ z*{2E1R{NTKzXY3qmd?FqL>_6my%T1t#<|mLq2RCLF*Y)I!C)x3mEY1_FGY4C z*t}C1Pc`w@w4Go(s*{aZBc$(d{R!PjuU`7Wz{8P_D1a-;K5?mwd%E0Sa}*uKLtJ?LRU{ zgB+9@>E=frTzMSnY$4}w^zikPdB}3 z`H!-u{IbdT&Nlu$Pp%rM3#A)6c2h$xl{$OF4YzG4Rn0AbadGvn8$CpFztTbp8T>`+ zCzKt^B%cP({@nw9=>E@@pH~r0g$}8#Pe9C79NlXI5debn4*! z4n^Zczc9c(nz-ncQXr;n(#K7Q&g=qW+G!JXy;7&XmUqN5_gMs7>j=_bJV zZ^#y%4hZF?Hbip>$bI}ja;Y$+KY@5SHr8!0d&ocp1ad#1C$s1z(KS85Ejm_vbVv|6 z_!pf7NY(zP)5XV^1eP2Ap3-UJQvsAFasW?g7C>gk-oyBxAn<4(H#H{tAKe!`ERRUY z=GZF0LrVfg=b3?pg9$o1Ox-2jF&-AI91mhjf~C&MAhV!KVtWBUj{%jA!3!Mg&~)S& zN@@s{fbvQxP5bu60RU(ThOWZ{AdDCX2!s$+?mi5niI3$gb-y=q)oo9-w*o{Gvk!+* zfGn3th$_g^B5HSXb#>x@Si;#LR3J+VC&U1xR(JqBtbW({A>{|40j>GbG|Z6Lv%{@KG2&0 zu*3QG5K@q($`K+0QlDKQQ{bbUI9Q(R1XKtj{og*si~)VXb%zXr%c{vIVhYx}FG83>LnM5L+y=`wRv{rY*oQ*@T^#o- zE^vnqTFn5)ffk+T=EOAog6!gA9RbJLCU6$0wZOl+5|lmT1cJo;ID%||wFm6C5Y~Wx zT!dGve(WtLka%#=B%MJt_^<%PGOP-W0KgP3+8$2H-ogph$HnSr#03oosZnmIFG#8I zLLY-v*EQ%Is3}?y>Wzyp1UwlsVdy>qmO2-QI)j3orJ#Cb*nX(*I&5bHx}2fe1z;SQ zFDlShkR?kUY72t?(}22yl#3>`8H8umg~||O6|yvf&VVgMO`$yhDKm#^fwM%^hNCkn z4FJ!DUVTZyj?VuAtSo-DfWm368n?JXft$Im+{e=$>Pm#A7JQ)!psO%EhMI%O-eJ&> zV69#h^c-xV7Yps8z_uXIfKHKNsg-=_9k7LJA@l@nAzuL{0*Cj>dNUV4aDy^E6F6ff z6VQ{Py(^%U=!tLKM3{scs3bYo_aTvlart;^aC6G{b)pDKL)1Pz4g~Ey)>9`LQ#=AhRJx z7jP2%M=H%Mlmh)>6Igybn}7nh{s0TVn8g|BEpluVnFBq4dEnvs<6qsE`+qm7+2SV0 zpjM#Q@vu*MLsCgc0bmS6vpywk%WX97 zOERpTDA3^y^rUE-1K{pCGY$G)HY^~_k=_S^rQ%TZe?k49MbIaMBMI@8J`$t~qUfK2 zlwb^fG%hJH&NNF}nDefolOpKl(8fpHEEu|2dU0HmtD3>6$ZoW4BE39%6nsxh2yVf{m$D>95gab(Jrr z-$G(Nm%{G1Brae$PQt5|diIPoE^>^`06iOMB-9{%H8?0l#^_~1l>6iKiy);vK`%#y zMX{2c{nSYZ%%8m2`3Z~CK1aVshn4nfn_dJo|0EIY1&HiM3Ind^yBf$ZC}C1qywWi$ z7&tyBm|)jIHU?%G2l$i}xnNP?vtcV)s?r8#I&C~O?Fb$_W}h4O095EMFN_In_lOVn z5-ej7fc1fQS}hB~9)hpDq#*Ys z(>c8VFstgqh|v?cJY<-7Ef_FPu53V|3j^*+yrN_bV1UO1l;(YZYD+C@9GnS$aHw7> zi3S=|qDk<1C@>txFcWI*O=zt$(UP|TjVM5SfW0Zd3wsD^!)gbUAjaMU179D*g@#!3F8MJP>wI`A83y3VAutyaL!}c zDp(dC3HwQmZE@TPgM&|KwMH~h4!8{*xUUiT(&IqyU&08`+LSzu80%&ja3}axM+@3v zM_`vTyI_+9_) zF*cn{E`o>$5q7X-+EiD%3^rkrG_<3gIK+iVaQD$2s~>T1tIa*?@AF;LeOA9~R@t&x zai=MxCE)!0hwX3M8QZK&g%d*_3Ekl}ubjW*Z%*>Q<^9cl_#w38Pi<))`|IL=n-sov zhD>i_n19a9e{&wwKrz%?uTxOF{Y>dKkh#OL-kx2Pu_?Qa+$;I>LQyfzCD;}AVeZs|dTbS$xH&v* zL(M!iq$^>ZbvA_*8N*9_sPuI`iemvi5}YIQiEv7As?}uuttaa4S^>8WSEPQioLUw{ z;*3k#GV6w(h>XzHa8veoZ^k7qbYj`?~Q<-Yq}i|NE`8v-4PB zMVk7>AspV3b^h{k2}SK>Q1vk1haxE(zJ^Lgn=uzByR`+DnpLZU??slpwLhX3*&1Zx zDnd-#b;}+;UHn;qdU$3NtYo}?DAm=Yv01OJ#qTsQ(b}s)iJWMi)JSxX>nfoz8B=d2 zndP`?QYJLz{-VUq5tQtWlE|ci#2`_+B(dBklr)W-(DIb??lXGnto)@2 zb_uI_sJMer)IqL?bJfJwD_e^<_P3bj^)qvp5=`EVq^mT9i*v##xaN^R{^=Vc&Lk`-j0)%s}WiydQ+y8lOAH`cjKgUg? zlgpAYOVmHc{_xg}tJL|boucd02!@g91bswA{A*{nyPgCnE7eCgj+!zHq+6R!DAgPn zCI_|ZeS_+ZsskQ3!bSF$#BuAC0@>MqUVAR7e*Uz%uB)Q6xi?`B9xi_4cu}W^q*~^+ zTClO7{F;#3Pu0n~ki-oO`=|wiCrCB9qNc{;}Uh%rfjVqdB5&@E|V>RZOt;R=n~yQes4X!UJPg8 zs@yXh?MQa#@s=ET!qE@7ouwe102BM9o!sos!A)V8$O6=S60=}fkHKw?8LKyjRSqjI zdZ|OUxi;#t4YGLg9#aN}<8Zcds)s%$_aBQH>E=W-`L7RXc=r8yu!Q*M(@6jGxGc!? zzI@1&bb^T6iKO;;--tM!VI2Aclx*_+R?zq6&uOdrpH0={1oNSvzLO-ay;ZW{DxFbU zH2-rM>fh{)vRO?jG>E#FK>JhQLKj_T%rGJ;(&_T@Hxr&B`T1(=g1eS|{UBOYXqb8I zrkJn#jC-QHL|Qy;&L4&~l2tZok>sqjkPw;$P(?xI*C$5<~+z+COEQ1W^MM{UCn{!EGYPmreH@*1A} z6*a%-sA0N#C$4>>;+tewg4>V$bLKb8lU`7&LPK-56&kZ4PBs;xOj)J%5|#6>14qBj zS3YtZe}CK7Ux`?&3W!d~jTm}c=uoBFeqT*1iM;a7?0kWI_zaKO{X0t}#2RKvR*^S# z;%Ye>l$KH2x4j?_mgDX+ClpR;ro`V09V5sw>0dF}Cz z#QyD1g=e?5+DS`e#?goL7W)<-yckpFil_S@bDP~#xjuu-=0>A&RBt3RZ76U1_V$m* zl(v=Avkv{g{UXOd9(?rc%2WF^EF(6?bPSz5{UMKvM0w4fX3Kx+!-yOHG?s8m(HWNP zlmDW{DmI4PZJIs{=)%`79S@ue6ANRY+Y~htWx~^$@o;M)S-NA;HTfz-9u>b!+ww{N z%h<`)0)FY?`9F_b*8JyxmrLi&KGG$+qdE09_x2;@Rj&V)3bO#xjkV=b&jYtRVpzA= zbyQSRQ1*YnRV8R~_9SDdqO6RnfIHsqzbDP^xn&eTIp-YB5G(iPxCMTcpwe0ZlU&Ocwo!N%I zeE0hpzl-|Q6?(TYj@nwX-%Q;#)44s0=QlWj8x~(pl&XgoP4D;-->5AC-vIweub8_)ZWa4+2mH2wst7c)2e7v9q`x9tDR(`n^03NP1j z$x^%-9QUUR^}ytvW@78p)z&6XXz}nh0rDAFvl&mXzE1nodz9oorVTztl}52D#fp(5 zvIg40-+b-`C(dD__}U_)hMA{|OY#R^Whp$(LPfdsxrlR0xecp55lnvL_UtTDB>Ffr zh{MHE#bEE_G-?6kN2u*L`HV0LDplBUQe@9X$gx^t_wdopP=DIYzoKa}b1|JWKa^QE7nsY4K7n*{Qn~!WnJ0+nJc{eS; zrI-xge8s6(Bpo;q!JxYXH{ijPyUDC{74g3MZk1s1q78pguJ3z6xpCI4A-{$oa_u$A zKyNfIoCjCdRGB+hh*T5p-~3eHlIeZgwsK!-+N3LQM~gM9ldZN+xZqkO=F@RpsPz zLN&K|8~(hbko{pRe$$8d z_HA@K*}XqS={x1|StU_l4z)K=(gl7oKCX!HUt?=Nw++)${bVvJ&+ZgDN3YO4)b5IM zDLqnDY? z)ucxrA*wHbGl$SL5{WMzQ`#w`NSxnA$4s1vhJK{$gERW)qvAzs(|%e$Y|K5o^Yz#7 zWb-eYyHun5-<%%F^EF1!qtV4qKXN5^|4=dQy?f|rjI-0W?m2~gG;F_@U)Aw5HWSru zGuWWuW=6c={K*%KWfsh_9jB;OM6TM^=F6dI<+FjoDuVEy}{n0Rgc#%=mxSm4wFp(Rt-OUBbD1Q}2Uj zuR7+*yR&~7e?-<9ebPBo{rNUql9AkWCC);CD@wDw2kA>CaT_}#>*wow!gz-^nNUAxs+GyG@lmO$@ZEegk#f9sp$hX2IKk-!UUdt=`xm0u4ztD5b1y=cOun?-Yx z+QYpar{uovVt<4?U3Q*~C3TMWBv8M~pHBIr7dRah&;KZC^yIfmaOm;q&s)EKyq4fk zL)^NRJYP0M{ztmPqG9tZe$(QQttHX!p!N3-U&}Y$#ys0+emqW^gTDEN>ZtLwdZ59v zSfR6UyH=n!o8RN9BIz-|qwWd&RHx@i;p|(huG)xc8)jYEAc~zIVd* znu*J6@Y6eL`~S-S?(#I=TWF~IXJqxNTO{@s(*Of*GK;D&S)Dkm#WiAOX?)tmBUn-o z#tqSO>5H>MB>NX8dt%i38x_{-C2|f!94U()EBrghMWKqir-|=Bx=$l7Ga>&zh_yb9 z{FeQo{gKDp-m^#V{nYwzWnSX?TFK$*dGpu(5p7Fkoq7c|+T@(Nq~L3T4vfy*(mktY z+f3(76}ljsIbO?Y5g-3jMU{9_GuiESR1k6=`1)@CaEg577Wr^X{soHqmV2n=b-r{d z(S}QDN4_K0k>%u9b}hh3%NLwc(-~ivU)+4d)BBRJ8DTPd+V09Z{O7`=UVMSq`)4W1 z{H0zB`bF|dX4box*X%BIS$PS(!sTB|exg$xAx`l6Ui47D?DOVUKIOSn@{3!_F%crF zmm-FRoP2sEr2;Rb$Bpe`QMYnhY4xA+ghBMAS=Dpa>#5%^wf&|;#8L=F5&s#-4-MnJ zGoh(P?9n3fqk!mTb6YqHSFWI`?>m+=zt#A|{!u|fYV%C4*4SDGnQmL|IQPQM4B)aOfh4qPk0TXlqlV&-i z0`rCsOgg=;``p6|`FJ1;Maishhvlh0&z}#DNckw2O?AK(63IKQpgR8dTDbE1J)Bec zY4+Qp19#=zhe1*w?9(=V$Ukg)JXW+FAwOlhJB(?3zPGLz7ET@{BC_Tw{IxWgv^%=5 zRAguQNz=irXJj&?_5J+yt`S27uIOK(M_;}_w&=x7T~4@|6&^O@{B=QDe9`)hI}BWQ zl-)t!b4gJzBr5XSppzjg`lgb_cQoH6=M!Xs)(e-U_qhst53^z(i{Bfha6P>(eq^Nc zH1FMz>Yocot$m&IUf#lI3f$a1HX|WLGJNdXiTNLVk^_`=OZRSD7OGTsa9DHrzPzOV z-?itfc-rkbT+CNG215eMtN$vC65nb7k-B{J9w7+_#*Tr(oe&#M`+#IX!LXF61j9=( z*0!U-a1#$3SF7~CWwaoHgY(KCyE=jKR%W=Az}8s9?f8>mI5;mQ(YOl;V3~^^2-j8n zGQ5UitCz z5uuY`GZ0{&moadIfkI3T!)H*tObkN?3BCvrMilE|FaraM(E|*8)L5t}f24mQJBONpOI@OJ?99$53!F;?iORq%=~Dy-=*#W9!Pj{{bOeS9C84 z3+GjQlng_z#|Q(hd*jXA!v&UGdnE+A3G&X}_bfD&2d9M+wj62Y!4*J-WQcXwyDu+)^}P zJ+%ANPA<&*?`f~^KRXtc%pq!N?O&A$O(Fd_OLE8a70ZOJUpxIM@;CMc3Y6>{)5Yu5 zK_gs?#q)t-md~*!xYq2(Yc?}0bu^}TV(oQ`x{g+nY%URA9u9^ZjTlo-nD9)G^Nr}*OK4hNkCv>w_9!4n{~6(% z9OvUd`0R(FCfx7eA`eEgY3yh0tyJXXpP(_WMFRQ5qbb5=x#Ksp;-QBE;xh60^i>FV zPv=L72R~x(%XnD79{>KQ-Ho#*D>76(_-60WBB!{W+1Kqf8I&^j8pE*Rw2!&Z;8a5O zOcmdP#Mon4+TBsdg&zd$y@-%&O#b8e zbpFjJHvb@jl!%vgJUZykGa1qMb=RKVAo6orxUuBBhBT*eRJ&CdK)IR7{UUaC@fxx2 z_p{S8THOZgiSW~#hveFq2KUKLwkHeGq13@ka;yln{3 zn_F9x#hXi9Q23{&XBLBjIPiYj;+{OAmUhEi{6zFhSl+m}eRhCqEUY0Tz+W*6 zg5$V{=cMQFA!hVm|1$j3`7IJ-FLLYilR(mhe|hZhLice)Rf^ifpZ8F*zAHeb?HK1X z%<{RH?rjo`l+vMsV{@v*PxRA8wjQ8+w)eUBm!4e@uU&Z{cP_JkA{(i>+1t2Ibph*Y zBr;}m@12)xTT*q8O$yN2@{x4z%3&WHXmDOxRB`R@*gx4feki<5K*nYACEjA~=0+LI z3lcL{JVfvtY0M6L9j9b3tj3Mx`IEbLf#pB!SEzKZEm0+*I$%1FaVY+5Xgv^0mef8d z^ZaYB;~8NoY5Tl7*}(f zw0xp?SRHd+csffpwxGv@^)ue~+|-yy4A%f}C5r-YEGTiU+;qAA5W)sK0qbZuSY85T0mIDw5*{vE1j@cL~>O#b2@A_sSAL zNcT|hvpNWhiH>eCtZJXe&I`ECeAp*{A)U2;JAzMg!)>0LST*Vki3D|%bSnQFB98$w z%9O67!W&D}>ykH*HHexOB{iSFDv)8Ta4p=nAhIgIS+0l*Aam(~9U8n2 zBWe8_cJ{&idGm2)|74Sl8KTKrU4XsJH1T8}KOKK%#-uct;-0h4P9Fi&O3(EhWG`4_ zNpgE?SKLd@P!7yO%=ce6iiBEdx2Si+w)PY`7T59a*kBWzyH)MjtKN z8$PcalNGc)jq7E>+fjAxa~)OCg5mpEBbY`#kQ657tSG)4durHSfPS^*}h(4??jk>R1&eRYOSj-Z1l7&2ghBExFLZJ%>{L z9|=;Q`?6@>a_ra31S)=vO>m6=X1yzs42c&jr{__K|7vb!uSagsyq{$sM3H4(d}!nq z(Ht%*`tJ7^P3m+jO>2Kuo6~J+@kX-Pt^tW z(rH%GCP`qD?SWIj6Jzq9nuhyUe}rA3)>3h+u2e1e)xV!H>d4_xmQW&&1q_NW{}!eB9Md5f5k^4Mp$9K-y3Ac3W$MpZ) zF)_14_2WHCa@uKm5=WS|ztxu(PDmxF1FZa$r$UVz*0xu3e(3s)A092^4$=PlhgZ5( z?jA||E4ve4kF+&EAHAmQ1efiq>gjsd^$pizSmqt6P@U_5(uPNy+TAL)+SM-SJDm|J zqv@v4d)M&LRh12S8v*o1$IOGD<>L2uL|cN9&8Rx5 zP4tbnmhtJq!{>#m`#vQKpMo981wA76pvGDfk9BvP8qS}L?sU#5>$aTCw{~VP^1eGZ zQb1u?U$@+D*_&<+m1#!5J0{9qGMo`c@4UP5HJqH(gdNwVWSI5=$x2#y7F4b%73T$= zw}T!YeiCmF8ENK=HM<@t-c4OqH9Zb|El7_D?gAeXJ`tT=F@a+dmsmb8uDNb_M(WQI zZzuQE4qi8@OK$x@vMpuepBmkT+nDsQ%_)=@=Q&F$>m8kWt$Re%wV7dl!fW^cD6Ld^ zMll6ikrR+Ddj^uvNcW~FD)OoN|w&Z?VX)nkC&h8Z5j={SOZzzLWo=cW|n*`{(@KDV7lV1V3l9bX1e$V zRl1zyl8?68nmLZjIyj5?OcxZgISa`;P_EodFbe$&hcbHpS{*;)l3CY;%~|@?r7r6x z%of7m2~{=Ts|(TX@R+EDms)&6#Z4>K!DB2wZ4PXYyKB9f4fV{~?H${1o9&b?S#tB= zY|rI)dnBP~&z{Rb%qJ4zH?5YOl&-^x$|~qpmsg>hDkCu~kMdJP7O{_s4u07QiU-VePy*>QzrQ=hiqg#E5#<7zx_YmFsX|5&gS z;iC&2Wvt5kBhXEaXvrcldYh!(&qv`Xz@_!bgXC-Nj&diLdI?DXaBO4-3C3wpTo+wZKpc-%#{KTerwK z0N$mU<=<8+13U6*n@uy6{UL=ZE2Xbt^YCsB!SuZN!Os1$>TWZO`>1o^t2@ct0j+cT3<-YKY)#!?>6zg zX(6oPCFt{L?|I>^MqC85=pLQji}-cRIgo$3uA+tBvwdP31CK85BMRgQT-NI^Gkx^3 zQf6oPQz^Z4jkVKj%?;n*pNKGRsdqw+kGX37?;U#WnR0#$n6MeigH{|bU#mnZWux+5 zt_OJHzxO$LeOe0_Cv%tcTx+UuPnub7$^GuEL;vW-$mmU3Lpe3elAv-5z6USJ%iPVR z`A*E*ZY)%HsD4xaM*i&qKXqBw_webNuJ0yN*`wk=qaS_4ZIES+zYoW? zfTW0iYLz`slZD62jo7i*mYsp6z;(xzkyK%1C@8@peuz&vIASf8*Pi23+Kp?kvvA*B z`xzST(BZ;YvSe7l^l+tgOMpV8Cvl%{nefq;bEu^a32+6~ij)s$hj2iDwu1<&LqPfI z2|fKWAJOCd)>RE|h_YF9?~oqV)_s=41dMbOQMQOj;1jq(+V@MV470NEM!G%&fVY8XuF@5IW( zXKNStONvJTHN-NCYj8`-;5PFX%8b(B#$N|k|7*v$8|!Pc;?HN)k!412)xHZNE5>_! zzbhhN=OxH}*L#2Khxb#azSa9m8|9m;*M9pVtMA6M{0>1D)(jQS7+U0ezE%HipOdc~ zF;u4D)6q`MTlvVR;tva~{I7T1A0b$!%BuVC+d1VdJ(ew8IS=%E*WEdNx~fqm`X1BX z1s=cn+j9D!| zc314b`^;rA{y^}rpyE&$PkoJb+=OIhLIijK(`DxS<3G~t3NSRcS5VrmCSA=qFjY!tg;!Z zXSE;vC~VH1TTK3T70IEy;}`5_{r{N@k+4g)QQ5;diYuKB-+yqS)|vIcko%Gs#;PZ`-R>6sxsoB%L3S z#94P50k-e`&MRS(TL6RD~Mbi9? z%8EjL7i$OdW@H)d?CXqzBwR+rT|zVobjF#nOMgu^3}O@D)DS)gvn^v^8Kr+ zEti0t5C3Fex$b?KNZUa9GEPg5FBjpaCAYI`nH^m=yWyo%1;J+gIa!I|NkfwA!LH6ZG1?j-| z9cFCIyoYgbWv55mKWUl3(s1S4_+rPMm#G53O;m?!8?oFO__a}t(qGUz*~@TU7CF3s z$|jrK5ynMKZk;bf`JQW}!NDs}G)oEDgPIg3Wn`21s6J=0MsImf$iyizZMLOsCM)^* zGgXORbM>bmdfPT?G)a3YBT&uwyFA9O(?6F}nZ1n{_H$tK9n8DAX+z7dPrAMNtX7nT zV<-O7Kd%UK-;rBAMqM}6l{77S`1+X* zln~3T)A}Ee>izJcmboWm9$r$IPw36pLEn278G_5H2dyh?f0_k*8v2wcylHORiByal zG+`Xxj_`0Ahhf^8TlU_2Jem9Jwz)mfjTy#>8av2Y$|RloJw`3w2c`$pbWzO@>J;*){(T= zV|^<9^KIuoUzdP!Q|eba0=O*obIwW(4Oy|%?68+^)BQp_&T-zwo3domc6_t$bqo|X zs?rG`jw@X~f8SF?u`o;-A@|wy!sB(ArdFi{``t%Lz}o?qoJ7xA9gMSPWK^>~t7#ML%FWVLcY+BVKxhT1O^bIY|Uex>iPyntu? zf_^^W$&Eq27M;F7X#t(1?0Gn0M7pPPxnCKIWNg)i!!%1zrJxgIO7z`P>jw&DJ$v_# z-ZRWfu;wM)EtgTYN&43G(p1zcFHZf!sYa2WenUef*jajH=d=665-aIabq&@-AC)8C z60Pd7oq-%Z8+#Ny!SWX~+eWT-Y`wI~K*!Yl>!%BKWanbrevk(7U&2w9WwlHXst9)* zKI1CJpf6F2?=QV#OD?BRM+a>4Sue;UeN^fXWXz&lT)%g-z6}hmn(5}%t0czHb#>CI ze(^^}b%8o5Dfm*pPnj?>LoCcnISI$$)?na>jfT0whLtnQ;qS7#PeFyZ$>^7x{*NCn zAwsiNKd}F;uiV>6YG8-bs7D#tN4nd`JTB-pRgWo*!Y8}VVL(F!jdg76MLMYS=$f)h zeALxOF09<77~xgL)ntsuH?NU^57SFn-0^jF@!Pahs%dHQ6Dp@rDJy=M5hGLFzT@ch z%IAS+Cw<-y>d1;WL@i6_#q}Ils(9htqz7N8Y#!7JNBFs?6br zBT<}Lx^5XHP21P3vMSfZl^6d&h^~L8|Ma|&Ya^9tmxuCk4Pl;(!=cq`)OfnHs>*6c zdXkv7Hs8+k&DFEisf$!)_6Hp`91j?DZmD;OhLBQYgzfDM0@|Nwc4s0iu6wP-@2_bj zAsGX|atD=5{gPc1nV$Bt@LQ@%e>}Mp&fs<^(%hG4WL)oHkq~zr@7c;))Bnzbf8UpH z=5|kIsv${jPc9DMpG%zo4J2P};1o(>JOaa>Y5F;%kR}x~(Ga0Xef!Qbd zjQvE|z^ryDqc15ohS^caNJN2+nNGere6a^??DoKB1^s8Qs6sCz6tz&`stv|0)rINtIj zqYT)reu*)R7%P2v)vuuph%f`^pW!yac+k4+JoK2Lb;bq|OXxe}3Mi9iml4>mdbLTF z_!r{@)fLse2-l^>7V*%*(?F_&6OI6Ty(j<&k|?ekjETaDLF%Io{f)lSAi9vq>pt0M*gX%6ejR7_xysKD0 z4;J`}hp=T8?f~lMvfH=CK7$P8V?ojv*T(1S_~$6?Owb0={s>`k19?nI zFHsF(v~xVr6E8Ekh|mZn9tfr?6wwOW%msxA0d4lH0Y88n=(aIhtPhU^LlcS61=Y8S zLi_=J$}$V_2;7(dF&jZhh#f0m@)6pg3Vg)~6zEfxC5R3ttdHOCMG%03eEJYSK+1Li zaSBpagNO;xs824(dy4^874ffJn**JX<|0Mk8$m!&517=TN`*gaYL>FH2EusFm-3?> z&Hl`rT_bc;TO`)_rTD#!^T%$3Ld%&YDHqpQb`>@i{;#_=u5S8M;_topzU4gJYkU8D z>>GV}VA+!BL2EcN@9V+LpoAi3zpqc996_-0pip()i&|38n>_C z`>f>N?Sc|jxn{imoZ|Oj=*k9e zWT8pnwP!Y0kgoU6ZJ=96EP3^I+QeDX05|8hTxq*|FRC+ex_C4wV0KfeJ#am zI^fLE#yXKD{=CX2_h!UB=J|QQWbG#fTPgjYeDLZ}CjR?mQbZT8s2I&NG#>96I@(J7 z{FgSYtXY1&g|_zJ7;}}eTC#kR5QE>fj$!&N3QwtvVWf&sRUJn>&V!^QJrPhkuTFN+@k-mzH^J^od@a7O8+L-P?+UanA3__kVE_ z`&Qp@OcH1CbvApPJ1om*C){5b*DM$8WhDJ>ft<0sF}u5NjPQ|?+AYuj>o`zg2E-7* zLu7y+oj-{<2dB9FX~gF%k3c_}L9AkjnFLyU&Mv!8%XAy~@ZwP!u z41@C$t&|4IU%)Y;Xf;hZCzcQW`8qHT6c!MK_*kq*^NFUe09FL(J{SNi9)!90geU-c zdW+@aU4ZpXRX()$8vH-<=2sD6G+0ly{Dn{hXaC$|L=5QVyr+mTkSaSvaDwS*&@VwDm}3XY2%S|pH%bCp{&Pmgq`!cy8? zNFnguAIO8`Cc&1y5=Q!f$dpdg9T=d;<3wq_BJ5aTO;O|+m`rvIt6XFQW`vI|4lnBp%3z(nbPFMps%Pbdf$_i|6{t z5RjrULK1=Emg0qS4uA~q>onN+b=m}!5Tk8^1QNBc+FDp3|C3c$V}(owTPV1>u7v^$ z>JXz-YLUF?6)PkuChQI}2^36ij|5K6ylRYeM1CR0QWp=9H^8(&5g}I{THx)eND9ub z;eJSYQ1#9rWGa|1CwxiiF$?gJk%OOX$tFBR==~rh0lMx9k^qzV7`Y8L34VeE-tAYS z&LWXOX7v??8-tt&XRhT0T3)mJ%!v=MJU0P4|22{q6P=1w2EPu5(viT| z)D=QSCUOwOf0&B|Ch@DX7q5}KU|Do2vK8c0t3(HT`yF5XFL#N<@*-rU3JalLiOCECco&^sP=5;$V0`za*4&)Zt zgq}ph>mTrSkc&OG7RWsXnqW-2kWefm+NB%0ffZuXgERwMNKk!QIRAfIp#NC`dmavY zk;EYW-#%nENWC0Deg&!UK_rkhd!?|#2(k_QCO(-$ra`b}i5o~?a8g&@YpbjUjM)r) z>S6N`@9^-Vh3*0$#r&Z(IlK!Lyt*P~MaR-XVX5QJ@{Vi+h_=BXxe6e8u1Y&nvGs}T<%U^qD2Jn}Zqp|Z^ zGAZ!s4FM;n{0BUw7=2gfO3*{je3*ObupZL+lvxdQc-&{qHejt?3Nwlf>-ugu!JEZ^ z4csZg%`T!Iz>foX4s$>FY4oLl85m1f&gWdjdh=l>12?JC(?CJp_r1)2fst9y=I4cpx_BYEcE|yW|goW+~cHA21v9?lT zVTdhQX$i5lh&!yr;0uD=iPaXQVmw%Z!6FVAI@*gB0lq4BES7?m03rN%=!1M#cFcqi zt1T!V;xE{=NC6m`3;m>=l^qS#5TcD90S^A~A?sHPtQ4zo)rp4k{LveMk(#7I~}@`?QnncWBr^ z?Y^22p?>8*9F@@qm%!L^nrkagC6AoP<&=~@9d7P@`0{@Udke5AyC!a&?(WV7q`Olo zB}KXgL`u3ugat)X5CpmD?(UW@3F!s}Bt?)C1c~q7#pikTeZT+r-^;zOd*?T2X3m^B zbKko%a}f3{wK{fDC~Cy!qjjQH7+#D~^sY(K$x9&867w&{Ts?Y0pzXTY<%fz-!NjuH zVzp%i{j~DE(aEhiqr5T7f>Z!!%&<#fu@6Ujer$IQEs%V`r(?ABiGgLU(L9MplylOZ z@pttNjUBY|=N*>a+*G8&E9<3h_dZwlI4O=`S2=c(M47oXm`>{7N@CHEyDQ!6Xl!t1 zlDLvRO;hc7sG`M-H9@AK2<4%4vz+nUr6_X|fU<4J-Ez@B%^Gq8Y~F4XX5jeka|IV3 zt$f+AK*6!H2?K7kV|e%YHal_8efvR@U1d|84l{MOCA_@l!Pm1s8|bfq-AJ!X#2QnbhLz{KB5fP(DJ|`?jtcW zUAwA%58?Vim$5cZ@gw4$MT=oEjUm>aq9~;C~$w3*i zonx*T47DFAe%OP&Sz+=~#b8!&cL?|Npkaukx{TT{y*Uz|!6}^o>c@{q1`!s*2B8JLqR#N!zk3WfoWi5;ldNXABcCZVl zm%m8^O9#UNk-U zyAVpyU+Bk>;PQC!gxO#}s(eKFk37IPh?N)!-=M$wQH5`l z-VG7XtVkF-?gc9E!~Ty$0Et(uxbyUw` z?%+=uKS^Or#0Hpzf#0g+$r=1^GIkd|gXGN(5s`@@8XNAyIBo{Rn}FHpVc@zENYBpz zxw%pjWFWk`G7@IsLMH^Bu4r@IE4#ywfUseWfItU~(KC<&B~lEy(C3&Bb*6rtHlBVQ z@=a8`lkg}&4ha!6D3R+48b-uh1fsi0M0E%}@&cG0Pt;hs>|MM33XOG5z#UmT{hl%W zMcq{0^q$^Ao9S*=ZRvEGidO6A#_z*x>IwUqF^k@xO-H1EiJ$i9%lhr{5vpsK`xL5> zCAz(3d};QeDl{URJpy`W*r`~^KBy)>r+OWu-6Eu?@#8^m%Hx4;yF(Ady?26ZYVscs z$L|}ix-p0xs7{eXY>y#({`S{rnHYZrt@kE|pQxzLL#4+&rnixXr^~ zJ}t**IL{IyA}{8*-l+>%4m|cZOyn_M%k!Ay5OsGAWL&_R`=~96Gq;`ls;WQQ)J#Iv zX@zM(QIwot{^V()l9TY7h`iHgjAToVn%P#agbyJ(xqG06Ip3N_d5ePC*LT2&!HG3e zH-No-4JgL(sRcx!2nUB$KHTzdwB_#a8J+hZ7?iE8DmgWVIq=JLkWZ`)ACd)s*W+;# zT-!C9=W2V@FS!WN)cZeOOf~Z%-xydrWEI^`=Mq?3G7CSb;`fmz=Pz$j{^T(5>t|zM z^r`PQQ{zk={?qNpjU%eSAbMlnXU;Y*dVw`Wf0?0S&WVa1sD8_x0cEu_U2T~GnnPi2 zna2Zt>SrjYGIj&`PY)-8p9iO#i(2!J$o4-xO*}N@#XC%4$LA-O8Tskc!HGY}Y|>)e z4~%b{o#D#+PpJB?)wdj4pM^8FrE1{!e|I@Br8_BNY_sW~!8!AjziOAseKu1zN~6?; zuYSfnk|=7-4b8jY7u?cRJJT+IZhAEo=lpa%`EYXxzm0GG+GpMP5XifD#}0KI_?&Q9 z51!4({#j)G`};%u!#5@uVdQ>&ao>{;N6gOBE+W{k?FZTt55eww?RS4RGs+&1I~>xR z#O)hi+YLZnN7@pjuPth>fr#XWEs=HQyo=d5W%V;zGw6AOzCV+s+F2p{o8)jc7Bv?2 zT(xzi@VEsXI&I240rhu}Im!#i)z<}eg9`=Jg}ZeO^Qi1O+A^!&A2S;0uRq;RU*;vf z--RP=!XL3eh{5AFmak-)LDi#3w|09y*}kT*7lEY+;gOCNu5i@06!|NOVVy4>xkaNo z#A?E0I*QP|q(?;=g?C=Oj_R*VnvM!(fDUi$PrDczH)Q9Q$dEbi+9q=Mmzc}6*;`!3 z6}}KCl8|h&T8Wzd>SB!F>pRVDQd#1kmyxnDU3b^CLHfZ`rSRhPyiP4U&8|kt46%bF zXYrHBDP>Co-ckEV!ytCrgz@)MG?5lA@m4PC4x;!_^~_Kxng_{t*hKoD?1m1%QPTG^O2(qnt7(1qfTKH1??MmTEhKwv zAMdssRN4$>dZggZD{9^XT<>ki%m#$zUfRn3c56;;9?lv47q?7T@;qZ~+4PbPJXQ-P z5quD5;~MIXQl8+KJ%04mNHU4Z zBvDt#Z#6|*>eUm}A4`rgr7#ARSA{ZRScG zHcQ7!vrtrhU?myR*y3x=W=mv)UGGFBMDtAsBP_!;E5KSo>&HWRxB0FG&dR9ZrY7cA zFC{K2Cr7LJ%9DM^@Sx;#bNA!U!6bbNWlAKd$$Di2qSWm0nRlTiFCi&%OPvQ)%J>viSTK*p>pE)A083# zi4{!+D&drxZ75_Hv(sQ(5$Fkar(&?TizSq#(w81TaG_rCuC2_cv}WeCm>R-~NuCYd z#0x;SGX3^~@hU*)0FBcku2h{hZxKSO>g!`kgWRZisqFS7FEbYBK7+Nao<)2_`Ga`q zvv>X*UR66pC$l&yEv-N9An+vigyhm;xnrf8TQ&3BEo7BehI%d%va69zxCt{?Y5RI> zD6p1>i(%_!C%>=uSN`^bDMWIX;>lcI@G%rfGb{f@p+mrtcf9VP5EezhbR%z-RfAHq9Y zQ#uh#(us~ih*N#S+|EkfJlAE3O>6f(e7BSG$6Yiz7<^$FHB=tv6M6 z>(Il|!bk&_&uG=Z$@gYONcv`xeQbpGwsIBKmeNY|KUq z>4}4pRWh0ULWT3ZNN50y_A1wgd9V-e;4=@A;>{6$T(*e;q+c4>&yNISHJNM&H-p-m znw~8+jrd?p%?G8T8i(6%id3|EWdq7toIklsS?1>^tX%_|OKabg28nd3A5=&|-}`EV zXO)%MSOz|AA&3%i&rr}9Dq{jr|!TtrstZoBF1YKKK(7EYaD zn!3dO_S=LbiOV?#4YkOlJ_K(1nnpIE2Se5?r7;bSiTl_5qVZ_P!&*htzk-u2`;ig2 z7NAWm zlWq6_8V-#COJupEsIkU_bz-i3Xs zz;wegBy>)7EGP^f5YfTw74bY-Zb{NcQpA4HyyH%_@NFoXa>rzL3`5?wz*SC5TE{4R zS1QNYF71I?JDXCdNs68HMa^wD0vTa-^}cA!bP3aUM+-PDsV_exr6;j}Ite2dIXuojIJ}PtLd{W9YI3p8!xufUhRj1fVE904$^k%A?#Oxu~!~5@KbaOL$*MsqR zvP`-gX8RQd$*CJC`g#=5EE(6lD{#o7Waq993KhR{Ron^ug1)3k`6)t>=R~8^jnXXL zsHDixKFsK=ws6sO{#OMSa_7E4@5dw*^VTo=^W%%FacevCzbfWwmOh#+fv#GWZjerg zsy$>zZZq&JwSO2ob4GyZydQSfa{f%$t^ilYGfIN|o6dbBBcq1}N6)`LCspG6rcLcr zsMKpdE!PAQHWc~HmPGPe>*^jei@~=JD*+k3?);=42bn1*H$QvgBSkN)u%kjfR8a=+ z(NWxv&mZn!r8mjd9(X;|uoD8^qobzBrzZnx>gv2khX3Er)^*n;Yc$+mE(~XXSd16&06IWvh^0wpJ!O z3-!`6L@WG_7V57?=}l2A>SW{<&rR{kzeCb0a*eyRqAo0Byy72rYuJ4WpH7$DOBu~^ zmGR7O`jFq+Kjd58gj!ahxm2_vZV^M~i>)ojf8@rZ%}=aP`SP;4_g^GQH!r#g{}QwAGhX)GKX};0h!sgmcb}8LVWin%M53GY%I+ z1Bu$khwM7T*^7s@PgS{%=#C2e&J;BH>ICNA@{UKj+cji=xUYFWsjb$`7!{>HFaMEh z6iMH@AiHqsB;k^+2A2Xl>*zarMLa)iE{SVKm`{rHqefFYyLFG4vS^0w6FI${DVauE z<9j*Te5a6kseYRsA@G)4#$2? z{uXyDcTG_%T#^CRvGUu?7u*^~h`Js@V|@MYDxvqyZ1xO3O^ zn~=Kg#90+4_r<>2EOdOrPFG_=##5=K%C=6sm)PuGHUEloN9184xuK&(O3c?Nia5g8 zU8?r+ntt+r6Zx&VW{OkT%xR=5u;*Ru7QNQU54;ICD=IVPE+aKRjXe)v~J{u5Qe#Uak;l0*d zRIja|u@8NrO1@2U?0o^mI%TOYcioQOT6*PU%8bS1udb|0#ed-~Sc@xbT|G6Lza7~u zD6YuyCmHEp{<45%`{~d`C|GJa^sL+xM=urUC0%zS zVXG&HW)t!nLX%8YF5CDRMPe$4%$|A2VEwa|-u{a^5!$={pM24}%#=r8WOXo5mPmU- zP}06_TnsYI`0j{BOjK7cY^23m1&n59fZeu?H`w#~(#$+mwxO@r>=5h*Y|`QynqLbx z&LQqt`SnD%vM-tfPmjJD%lvAW`K666Nw~VVXa8mKZV~74J@#^uqX(w1Pl=^VC5a-~ za#K4#L^%z=w>wuw*im6kV3IaW&AR9A{P>U?Eovd@{>!fL6oAI{M}Ladm%yXabAC=; z`-?Sw{jiskWyo)#4>oX2n?4rw9F^^D)TKFHI^H(65yglmbh0lBVeTJzss8xE3mNf9 z#P{zoA`BjQ67`!tvi`1&cmqOz5j8&9qm+U8!A;XIqh>4XHhgO4Vg~t@f8D3p%(GNS)I`w?N*JB56zw% z9&+|l7LPwlZND0YvM(J{oaDrwqp_E31n(P)dU@9|+RJgS4cWf=#XEr}Ou$w~(PlkH z9`Y@x!Smy6)thA`c_>A7i6K<-i`2_q>O);p$@G}X@dtiYf)u4o*k^fY_FQQMbwzb8 zkJ%Evm&6tX#ITtn9W9<3M11p&Z^^p%@^j6;E?smkbEn?UFKAho=Q&ydq1g-W!@)`u z<)KW)(h38cq#x{;Y;|{{vtmv@mY$={h!5iB32W!odbtOcM8-xqKm6(NwqMT5N>KM} za?!U(R$YzJbN9Tg13&tvMIYBB8FHuID%7=zPL17ujZ}*LNHsg7GuB}F%+xe&#BAKs z)sRr=N3~5wM_W8p+hoQrB=YieEJU?^vx$^lR`{B^CpC(hu=(XkylLF=0j;Rz>}&0T zd3+aVp}|I%GOx=yx*9#tJ_dkps>C(~uf@fbwx0JQ)6|f=fpVpX=@)h`&c2JEgRlO@ zv$!7H$R8|p)u*eWuO8ul<@`84U1RjUGfjnM6MIf3Yxuz~bPms}j_C6I6U}4h#Hn9` zKNiygj?KMLC4-@?)OOs6=K~INo-4 zM4Cq#WmM+%LXS&Q)Hy~>gd4OJX4Br0#5QkW0#pO+vqnZNE8RDVr~ zda?%GU6IXt=MOc^-q=9J|DJu=A}w@5P#FAj4eQ6-h3~h=RFxvLxfAr~Rar&%-mbPE z=%;o~d|Sz6`neC;- ztyl>}4|LKoGAOPAL2=#~1ulgZ&n*=pXSY%kN3gU}J&u2tN`d!-CPIRkO7=klSKjQt zBf|6N6_uJ}(PjhBVuDZJLPgJ%PPOU~b7TTlqRJrc1C!KdC@H3D%(nS2wfm4l3l*Np zD_Wv>CB?UQ4~wvdQxLizZLGif+9yAHd%0uZg?nJ9Vhs9&VZc);&`E8%!(}=1u3G)U zeTc@)Qx|0X^$$<^R-Yy?J~kQ+8{|*U^bKUR#K3VU7C~e-L>&JC^=|$xKgu}2P@a5b4`gW^vMa2|(k}?jbCtIp zj!CA!WwQ})jbux9b7>)>JRWDpyytU!5Z%2u*0L_aN)(K8`VsHXylvXQ+#D}wg^g%`qZIOd#h-{OgCk8Yvcvr&N##2`C)ybHR&M^&k1k~#WFrSg zI2zND&I~t~H02MgIrcVB#^0}1yLbn*WR@He8MMe!M#RT&$)9nZZHq4-6O`sMlLTKa z1=Zo5>mfn0nQa@v!&Ey|)iJp|7QWezqpl92kOjw{Vft`$t%V;mb`58*Rr2wf>&#O$ zkmUu4H+A>QIUd}-C6RYguxiFJt9fO)PM?3Qs?D2PmnVklrE1$6l4_ovdF(fkOE2eh zaVvAGqM`sPF2^ChAVH@fvqqr@5}=QA3vv1dih(|K?jh>0ju-b_JB6;UktcQx&TN+7 ziSA#qPOkIP@SzgJ{zXz_XlJ5M+^Osjw&Qgf<|Lovn<{kEZx?o>$7N@K9JK2eSVtdU z!Ed1b7G>;iO7NDx!Rbue99#SsS_DwNzINg%D%Rg!&KHSpHfG}6o=FOB zncSS9(4113FMvLKLF)Y|&R3_AkdI>GbsD>a7v*caGR-CR2~Xo!F%J97cFlG=_sR$Z zh@qt6<>E^Zn)4nrKGpnCQiIXYe2(9K$s6^9FyWUKmAtYYS(?o#|1tE=;Fh-0tIcQ2 zd0H6rT#%liEb5?SCqlF(9<|8%$G2ikk}{@3(ec8}XK?1#hR{&)c+YvyF zOMG3Iz4q4DfJJY??Gz*4n!BE>KLx|<2%VJEPE>Gy99c+wOLl2)uWCUV<#N5rFSJ^E zi}zbDrEq4~8&=MTD^?@PN(d*FmKf^6>C&n=xv%ys9hNON?Rv60D%3S_AD0t4I9l&O zS%od1MtKcTJ!x>RioD!*6@Q`sEm$iR^Tl*v5v9wRl7wjuQAG0BWgzZYdvPS9eegq| zW_rl0{4l8y4#_3AV2@Ir5RrvfJi^b^UeILy(I+e&PqOa_sdVs6nJ;j2NULocd5<9EY#=l5NAX^a7V zF^|TRq-w4?dLZwOYZ>p#0dreu`};-%lmfhHeepKEwk&yfe^T zH`9<`wi;V}^8-tn0nG~UTweNJU}=`2zvR;|zUuO|H7M(o1_d+X4j zzArt)DKT_5$}7=!dU6;o{%yg|Wstx*?!$=LAfDh;=8VAMJtL@Hse{?Rp@jT>=qt{d zA6%*I%f)(bj;$Hwg;kxYP|@}IZmvDifLiqa(hc$X+SM7_zI4uwmyO3Ata1Z)Csz|Z zF|vU`ap2`^8|0-QvmT_!%l1aNri7wD@^3ej*wbQeDR5?akJk>*r?4C4t^=u&&s+m- zyP9?}UDpn}c9(4^8fDh2HBo9Mpix?sGcv);28jV0k&!&f&(iJv)NAHD(U@0V8m;G$ z_WV2^mvJs98d;=pFg-EP&|7%V+;gc==Tb@MOdSy6ZYz}Im?DP%jV9PYbOtDzsWrW0x{RH+S}qh1@K7`iIlVQx}3S!Ho^#9c;rC z7LC%wRH{S<_BBE>N@?YlYi=%3wIjJGun`ANvhf-Jw^u#<{E@kI#*!Nr!tJW+BJmWr zLmW3*m*JzE zB$n*itz$|CJ!uPFtZerEPQPP$CZXNYj^TLV*dUqrPY2OSbfs%$%-&EYxVUGgUug6cGV?+CGD9fE~D_N2# z$txZ@9<2CCWDI{s7sqVK(`%3)+SuHwIN?QKj+H=J!+eiiy;B4+U-NHo!2fp4pf)L^ zFpIBs_c>+E7ewXh56EapdxaEVoXO3{Hxtr=_0d~~mG=#zNE)jj~F!EH-9lrpdW=pNdM+qn0#rm~Zn<8`JXiu0t-y4}7oV`e1o zx}C4>-CHv{fi-6K5-u0-O-49tIA)%{3a)MnrOD_au<0V(6!%*2s7b_-9cCsqOXHgs zXUu1!B_98QqFulK>X(FIy&zjifwUwEI6{e>#vqfAm&IsA%Ci-z1O1{IPhv4$PeZE>Gd`-^H5J*U(xBNR zkRiuTXY(QOpru&9bta1xFcXg6bEQDDJ!ay~no~*{SnME68Zuc^f`2mpGupvuI`e%T zxtr#oL>1tMr)4eQPb~4x?pe4I-gq9H$IG&MJRElXj@!O;D&L@d1Xpk6RYq#GzU0j< zA7w;Rr4lDcF?SvNQNFe8sOyOu?n5`v8g6En{>kLHmy4Ztm(S}~$o#K@3Cp+~oYbe3 zKfz@P{XXt;z=3mlO2hX$1V=_KrEAC~TA7gPNa%{@(}|Xe1g~Zd(yG>8)uW))d4`=A zWx;MEbP~AFZo9sKTC3h}cej4ze;ZHHx$X3)Gj`cZC3;lbhl^d6Rp;6DADZ^5veZ&d z1BvZKvPk3pYBC4J2v^!vEN18hvdEiPDS6@M2o`O5KC6J-O8Ij66>CSP69>8Z6ebrv zQlf9|9ZDoc_w#Ez+HW1L?IZZ2D)|l-ALr^Wx`$#=ZJftb<5J?{hB+ezD@m>Z2t9WwcUGvwp$^pM4@NH32S7(Zzm)hcM|+XT({c3Rz>MiNh4YRba@J?=G!o6g2%a7eV4muiz zvRR&IeUIkO2X7i28(YFx z`+ulB^wOVbx$w2MXx04;G`x89d9JN1s+7jD#2b@-qUp9b0?KGGUc z!cCW;b4LB?Q@+{(VoQG8%bly+s{5@b7ucT;+KBT$szwl<8V_gb)6`@~${dtLb(c_d z#poPVaY~)s66$xSSw+YXaoO7J!LD;^h&4GMCB8J@%1#v)+hM6?lzYa`*2c4-ZWyw4 z7)-=BM~ZF-of%&a@DOJ*#J4>6IFP;D$1it7^ippVsqt3{DaiX=)-b5tS zU@uA3eTrjDp6)@sN%3ndLh3uKLt672rw$3A zH)PR1pYhAi$+)8`=t-_EH^_b8?USXo1L%i)RitsqZF$jZ;(-@#Op(!wLiaSX6a^G& zZHs|iXpLUHmVri|>Y7fIl16sO+O~&6{DiSvFa^6!_;YbpwYQ{}RVmzg9~v>|=x*mn z2nty}E1YjVdWLOtSyv%7Jh4j?!>&S8Z*Fyq+x3^Qv4N<0CT5>47t`nL8UX~JpBk%l z`>w_^n;qSsw7&3`>K+}+hn#99YPasKQHaQ1aYF;X@HFb#H2a%K1-x8;?l!2BkrQ6E zhQ!h59%Zr?U0;allWemYcXkx~{i{wIX2gO0oln8h7jgI#{Y>5@c$!ot>ki0HynATY zdtY;xgc-w~pQe6fEv-BFuI52m7Hebt z{3B$~LC<5<#x(GZlyP+dwfg>}ZIPkR+|+XmbXj6WcG~qdRFOqCuUrFrro00K6%Ymt+HX} zKI#tjfhN5|;#JU#t+X-m<98=#CQjnW8vXhUHVr>3t*`h1|D&zVc*^JNkMNFimRdu4 zd!W22%U#VOJ`5%1R&~BZt)2q0O{Q$SJfWvm58s>^@IKQi6JLI-Arh-x7p>`(^<++^ z(M>S&9l2b}LV-fvgvT7B>t0sD;vMe~ws+KA6%O)RBlbsu?vXhwME-KZHo0L%tL-}n z&;p-=Ac=0{l*+NtVJ6p~nj(@DNJocPY6hHoHdio&h`kv}h z)LwSJ!I4Y{ZR+Kcrty-Z-|_40h3g-P!yiN*II*zQYc(z6)io15@g|(zvrOXlezDHu zDwfCDU4BeS%1zux)>gSbv1}YK)#J_8rvChya7+n(_M2zFwiuw#S^NjKc6RU3&eegAbtlIU_ z#oeQ}cKq^dKH2e0<)16mgF`y2E$@SxCAEvoE6qFt(eaMiJUJJwo?dYHB{#C2O>2*= zAn;{gh~3})PETy^{kpacm{E^-L(>?d=MPQOJ=-%seXa1#YUBLr*zwPH6K`4W5yf`7 zL#l^Aj7AS7s5r{=R}Ph^Se%j6+c4-_6Iln1GgO>%eGWy8ZaL>u`Jk6Zdyn_HiJJ0& zhwrROABVQQF#}E~M%K;FOP|X{KPSlhpn~nuF@oUNzViHRm5^8{1p6s_wonMC0;)Vz zIHcJwWk3A$4$dAVvzy){%~yby7&=KgNO|mhz&1Iak@boEd&WlYtK+DrZ(1s{8d?qVMrsePtn@v2Y+N-Y?tUGd2~+yulWy&?wKyU`MRS?0a^@$P~C&x#xe35K5Y?_J4L zJH=Yrt&+<6~trXQG z7o@Z$l5psgEbjN$#_^pL@sD>B8|072sdV?Se;%G_`7%g5Yqxv*`=E&o&1z~RL0hGT zgq8=tHzl{sfA_UhAHA-s)wmVSU;4(ZQtugN>uN)QujqPy%Aun_j_P2ufE2SMfKPTT zLbpJ94DD;Y^tre2on-{E=w2m_vq>6de+&B44?`TY%1U~6K94U-0@b_>eoWQ)NxWY{ zZXWLm)cjoK(j`VqEioj9O4x?|ZWRiBXP$h%<@;VI$6^oYP=086kB$j=PIq{Ugt`_H z-3Bl~KWE%I6CnMdZ(DRB@@QXjKcp4?@|>!6fW9;BB9!N?Y%tCh%HxatW0o_)XLnlf znFF%bFhLe9!M+1x5|XVliGrOb$(BSgxU5!Gmq> zsTZ7&PMot8{24yJZ6mKeB-P@*W|=G3i1~?bUxMw`dqylAA=`MOx$}i<^2*xBr{HqoJQTI| zI#eVTWsdzSf~q8?;r{2()T4A5&|OsHT&7B+=QxpX^Mu=l4(YQITILurUM=#(=sw4J z;Et26gm?N}t<@@YUrb{>TPBNt-#elvgQgZWM)u&5RT4DR%wa2Az%#nlT%U;Mo%Kee z34#2T?Kb*lm91f+<}&(oEbmX0KI=Q$Z_6$xu2>=F>FP*=@_~`p7EVcGXizzBwt|6= z6Hhkr9bTXp=CF2~_s$w-%|~AeJ;ts7F^<2Zav?jO-uo1f23p_!-FkzoO2&M(oORLh zm+gal?dzXNTpB-mJKs_3RAS&Pe&hdKwJ|@zU0Qa`e^V12LXr0CP@?bhZL8+}0FB05 z+KqMzhxc0r3hpQB6ph=4tK>tm*0Xy!UQQRO%@+iZvbK1GKhP?k*%c2=Cm0}}m*jFC z6iy#eTcAh1l$R0$@@(;3wHRN#v(^i}v#^VQJYJv;Wn<2m6ZzU5pHtc{`bB#VIM~y) zO}LWS7_br|nm?xS*z2n>ieu#$IPgpHY?PK^cbB4R^|x!3T&Alfr#XZcD0QamUWf2V ze9sHkj-tBFtji-6zapgZ1FG>BIsZw?)tvxAm+6@)lP~4#L9{BxnjeI6NSKU$n;zT) z{7TPjcDK#MClyDMYf}QSXmir_8Wdhh8VsE^`1lgsZwM!4+MW?_J{An@o4?hf4={%f2Koh8}bieKtE4jd*%A zH|_Z*#xmSxEp3?iS?t8eva5Hug(N-Yi{(_b^T67egj6>f(Jg3K)m(*&bJoVScn#ET zkayHFu|do47+T@%%yJG*EVv9;zM4X^2 zc#1?qS>5v|@+Rv=Ak;lqeH`q`_%%mk-trCw{&2A=^F+Dy=xf@ zM(wm+{FiC!`GQm1V#eYhMUagiv+5QbF6U#}>s4nOZpal6)_npwsN=5R{J`b8PX9{1c;)?-TI$MshZ^TPeFsXdcJ2E^_<$d}!Vg{N zhkoJzew2X!bm;TWm$Rsphqs{iu2(v@Om>jZ+VIo{3(thibni&(jk(nZOn;%&ySx|4 zA|w?vXM)g)hC|*!5?hs>R%idD}Bv`cgc!#gc2;$9=pG-8~nx@}y^1*Ly6^ z?Sj0^fqBOjOS77&J&4{iJHxCqXYW0Px~WO&bFP1k^ZVv#yry3!JiULlobBDnU&1WJ zfTg9{ucOMYI`!hKr;rl&%OX>}uj%T7Q&mm;`exmV~g}Un{$oN zF|2Au6}NusoY^gCXlgss&n<@rHS5vXl7QyMfl;NoVg15UJlW zFjo#zSkZd04;94X(&p2Psy=f^_p&C#5SR5!8C6Z+x~RF<-l-n4)TOz8J&{;5U9Vk4 ztXG7s@)TSB!4h5vM%V&@7x9xR7v(!fpEcB1DZ1nGdzf7gLQAn^_UXS9AJ-6s1U;eP z*vh!CI+ddJ4aWve`3Kev4 z-RXJM=~>j(uYMV>#MCIw;3_Y9Ois{vmg{;W=G34UVmXR@szMEE%r0rmQ&GF?agOHo z)xBl^5z@P4yPP_`JP+-z60S2y{LeKB148k`kTQ9Ctp-!;cX$ffXhp<7N98-&p2V;<_ zkk}nFAo49FO$B4M*%`AP@v8FM%`gXL0ScaIgJoS{V*`-k>wg$xd5|!GUx5%TWIh-g1EEF|K#D~~5d;igKyVm9;$NnV z|6@4<%=Ew;PQD9d44@5Uhs#KR3CftgLF8VeU<2$g|9=GuAj4H=l%ik&(IESO1cf03 zV}mF%!1+H^%pg$w7a0GYKjscIo-i1knk*0#1W|&Ip9eV+<6xhK06u@_pyM6*`2p!;Gl8+zr^$XHHZNV=(xZY z_-ncTu^7n-3pn_K3yH13`g2POf)kQ?4Z5!Z3kcN3=LGI0L$Db@>R-0~t>y{~sC*5P z`5!Luppf4$*bLObV%BH^5uhRz6!_l>g8d&(_%2HYi&#O^0ESvZbRZeFQZTcMB0;m( z{(%HgK)e2>YT*JMl*H^n>0i`%I4@g#Gz9NItP3~9SOz>4j{oGc|6cyT zJ;HzoZWLM|BN_s44h7G8NH#ab(`X3%bZ>wG3`C?tJfPBmgbrAiB|!l+Vt(5Qi&>;i zIK=ip(}IUN2R?9nnMCN%EdVYO0N+YJ_%NAl;OXiZfbm-h7Q=rV`*%Ea-mnAhP*Uvw zQPzH zGjOd4_W8L0ew%@v0GcrYKp0>xi2&7v-((|@jHnHaB|!N8%3+{sf9-yuzcy%z(Bf722{SGrv=Xbp~9Si6bSP6(K7>g zlfgUoe@_8CK>YU$mcQD`00Jfk5_pLH4=d$Aobdd$|C_Zx8A1$u0);=~AhVGp0GV%D zX#k3p|BEv4aHKz!JtV(TW{?6Qfpg`&B1&yKvUHzYD4wwUnC1PW&z}Ade5MuZgE(*e?sKF^rfXmPJ*A!-C z;hZ^HV2Xq2F*0P2h5WfO6r=uya6VClBGodpW;}<}jk`BanFOf84+? zCgWHJMqC#7o#$`SX|`}fKHH!JKXV{Bm@uaq63i0`1B5vcQlw}nxDv(O-%5;gK_!@O zaNK-+R~A`$}U&A%Pf%s+`@3C5r#xIBMH7udH8F2xjrhyyt1gOLKeS^MXMqWV~G zpyqrCFPypyqq=kcOT`9SIS|nR{0lIQV53wDKs>(m1`jEK(80svWm|0ltgR#h7#3WA zhs7?8l@X9D1bbrA?INPXBN9I7tmsq=)(G?C{|xH={_h}4__R$5L9N1v|58zb^g;*` z{J}6+Kqh((jE7s`qW!&58!uq|Qg8tTMWBFfL?E*mLJO!AL1^HUv4c@#QEsTC$VhbX z>;r#pAB91pm^TnsF@zFsa`lV}TNN4tf*9U^=OkwA8`g)#5JtFN1YRPLkUL->m<-Ui zzg)sh1Y;F}tC=qb)$HrQ2oQj}1VRg^N|u1skta9Q=Oqw2I5ibU6@3PyG69P)Dl8%{ zVbr_+Fe)P;Sqh(~3J}80`2#8iA-Klj@5fqo zKt?&Jkt**G27*cmF$T;e4j%eKAiW$yhQwU(2k!n4jzBKa0UT6dy1d-8xZSmoSIO3!@yS$I<=?zw^Qe{s*K)WCW_pI%18^Rf|Tn&2Gzx5A>`?bFrSPm&we=`iU z|G`lG4}<>r4FAs?31nS=Fp$;#*3MN2YPab51M>L?dIN)s`u>0xK?rV`zeCmjZ?Qi< z{L8=u$Hb)Of>!~0SOCfm-CzvkNO-`TLC_%u^` z2rt~^%y91=`29XUVXrlN_UzfSXU?2C=Loz${;;4c_{TrreoSWl52I7QjTKnr z*dmVX=wa!&EGm|rA|Tt;B4*4zBgl(4$#G$`8Od-#aZDAJlqQ``)$yI!>Zh)PX#~cNf9@8@tACP z_Ayu+@LWK_$K@0ihhGX0dm*HYj|Uawx}QC~dc6wtPDW4HRCF)=O4LT2mDA7sT|Ka( z;4-x*!@diJll}_w=cD|c$(dT?nEwfc-Mt?I!-lL2vpONI^E?4Njum1ZFJU9}{)r%S zhWDddvvGveHfS>8YfW{yzXk33p7<7(A=OT|(qR^?-N_&~zAYSAHn}G)^pE1r#j1(D zvHc+HvS61_V!Tl`Pfwzn`Yr-m?riML8lI9Cv_AzX-ctuzutOf$IKF*S;#UYCmN>d4R*1*v5l^Q zY3G16jS|SVnz9hD>F2#kBWq(pR@)gbR9C`fa;)GtJRfAq?wkv9;rx`PMJ$LP0e(Y; zU!k#%@5}A!cOJDq{6k33;Sa9h)z2rFYoKXfXqsB#xAuaXc>xtRxF9R^K2*LP@m;}J zD_q-2#}^gmUO4+Pn4|xxOnk`VH8vAOtj_<%W zU6Mh)<1#Edm&#KA397~{u1NRKZC&>GKocXQM5HU#n8Qp^$AQY5v=qM-p1)K`U!@z{ z>Kzw2Kj~HywEQTbWy)&7zrV`ZPS0PpsYs>%uzhI(7YyGZ_&I;eT7Th}!VR|y>H00u z^7?P-$P1AN-VB76RnQWvbXU+W;hG&kD#x_=1500}!*Md55R+*DK%9E}|(A7v`oyVp&)tzxI$d6le z{~9dXc|l0+E+C@nU6-BI<~pDSR|K@@dQbo_aEqj4u9LI^3%eC$#j>vw#WYk=#dsB{D$bx0ukm=^u4JaM>G(R436Pw%=!R>AWKl)mS+p&zBxI`l8 z9zn4mbWm|FZF>vSV_$VrTXyJHkS8}Vc6Zw;J20?5U|^}vIrz(f@BPa#s2r`=e`N4z zPi$qVy>ruqUCG8Qdg&UHS|t+`XYN2=)3_7;M$k)x%@B!dXWh3nC{)AJ#K3=b2W<;0 zgW1oG7I}*QPTKQA^X6b|`)6Y_Z|fcDzH@ib+V+kLEF2e}4dkbjf|#&2P9`?`9Ps9B z_x&$m=4Pk-!!FH*3jV=8TJkP5J@FzzO*S2W@Ft$@>tehc&g@&jncuLFLDV*ZCiX1j zy^M~dmQNyDVDXZUJxbLjUL^&8R0$J%{g+zVscOTL#JUSOvK5iqVS99f5{EDRU2|{`x z-o#3uD--?&bfc?)_Wv8?#;5%cbN{-{Cgft;Z_rynCI1U@pFyb2yx_45{I+&Atsjkib_5}MTbWbRGm$FAT3);(uxy=^i!VH{vo70rV6R` zRH&gTgAv%_y%_Vf@2>JM9yH*u0iQ>E##2=NDnkc( z^F=RL)$03@;649WmEAEN-;phTCaeCh@V1(6aL{(NTy;?B2?M^%bGe=fd5)^LpEiI} zp36+MiJ+8=62j>LHvR=ZLSy?vE)?!gJCV^CUipY_R;z0Ck6K8K^c63l&*GMV-nlY3ur=~8R4=Z}Xb!uC}AL#gwOy{=IuTfRCM+VUHhlo=jb6iv8GB;1JW%}1rG_VF5s1E=2UYwui zWr|53(+IEW!h2}i;4d@eP9x;#MF-4 zSVQoKe+u#zLH*;TQ7=%ZgBqozsZq5A_2nly-T1{_|9dy=%Yc1q`p6FD|V=kOu0>;U8ocV-5$_gPif27Hp0O5UxWO4SDyb0Eoc;Cc#ESmW*qEsE`PdW>JWM@+mL|oO8Z%}omr+`ZIG<9b7_hnY)@ z7JNll>AZ8h+RrZ$fTlb`-m9hXi>5BlVf#UN~JWjEz z$vV!=_$60YckoN$FPpir!f&~j{#EGW*jN<*8^zV|uCkLeH~$WDcc8I3W1C5bIjCSW zei|)ks;SRv?L!Aq^5g9=`PwEq1`Z8F#HfA!U_Ugqr4C+jRD;`78Tc~-kF;pSyxH^% zTk42{!_X6|1FVm;CWSO2j5iiS(aEQ{O*tpgGrFV{P#DPW^Bl214@7q*6T7})vO5~r zu7GcvUg7kumywfn8#VStpy==G94UPrd5;DPZ(ETEE7R*i(TxIqJm{)G$rmQf{h9y{P#1e0W zB@_+E#ZMk`Jr8+J$izx|q`sA`qWHMD#r+T`J28&b0o^n_kB%c#RvK~nf7c3%N<`_A za@HDgHPr;a6mAitN4C^4!)*Yp^0~{-5*$`v5Bu53g5mh3@b$)oRARx6&7Ae#tY3FR zxwB}0MYLa?;w=9leq$aqe{HE`d=jk21>&$=J66+H)7&3NL8Bj6x^mqCtmg$T7}|9b zbtl+qjM*Do3@ti3YHbIzu5{Ny;%4l4lE(C9sjiw}cGgbg$#vIp`}xF+t{BYnXKSlr zg1W+9W5(JKHFIS4!N_1_koT+A;Zd8(gfQONu{=u{mZ8bYNV4!!>P?o20i=#TAkAcHDQUF8#`(*y==jDgdpTUFD`Z(=r}iY)^jf$uTq)FYtthm54frc!WF<$7J@0q} zTw2D~Q24{v6TdY3=`8)~>jGbG+)mO^mb@EzufL1Nle;mApvXNs2#2)L3WCyHfqXik zLrhuR0Sp42z14S4d^-#N>y4F#dMjq^Q7Y7c>(3=E-ASKu_H@8eW5g2c(I(>*xVT zwDXW1Il9c9$`9e=Nb~$Q$7B;#*!-5t&cMAx4^0@W;i(A}@pA4>?p<_hE6lZOXa(b5 zq6b22izh;hmNCUU|8p=5RcMjHqm{1d`B+eWyfj*_H8;flb9rbT3NNb3{>N(;;Di2( zdyUpouk&^t^nz{kKM2UwTZVl=rb(Mu7=D$YMO|Ut`7EdoG3PW>i+L*5qaIUQrJ!n>6bm1;z+DZ*;{ zApl+%Hh1A#d0X!Lpe@&M%-s)tRMJ=GpJ%UvB4{t*B4!@7u0mFV+R)P6nMJxu+eW<@ z)yo_n{Dosv>R@xR<@_{1O#rvAPw>N@ThWT5R{2N#Xh&i;&C&xexIN0#5k}ikVjhh3wsYv(ps|3e&)7pg@ZKOdhX5{ZPCE}NZ@KC zdupjrFx#y$chy&7HL_wU514L^4p18z7$W$g0Wz-*Z8<5{3{=|fQ}f8;FhN}wfC-R> zVP*h2;72(jwFuPsaA}D^NLN?l(zL4P#%ySy9H8lh?5UcEh=Af{EQD=G)! zD3X?n5z?V`%-!^T|BRq<4Fq(qKH94DO%>y3>%7r`n`nUA)~}5PzjkA&((&ik+1~j+ z_)F2P)s+q#++6VOH8K&F(V*5Xt%P)>CNI6e?_KvI6qJPmb-31QBdE!(&Akjp!}?Jn z7yd7QPzS;9pw$%P!Srvj--(?-r88W$6x&vH64dQo&CS?Ntu*kf76x|hri0x16w6)Q zvlyUTJ=u;DNHvMA)hgxY~#Kp)9bExx1cU)9P1_9indl*5qpR zz34CaRr^D~ZiwBtUfRnMA>IlhuC}7}Fu`9plzK2Py(BLFIy4zWa$|w1;lgO*hcU0w z<_77-b4l|;{3GzNU$tl71mcVIvisce!@Jq%oEbDrR31?3x@PK z6H*%nZ_wI^cU%%dlNPfHA!zvRV43D-4oWYqcWrC}7*%hQhk*G$;AQ8bG`b7Z;E++gx89g4O++h%}|3zd1uK0Rn% zHVmdbR7cSluuI3cV4p*!Up>O0s^eZAWX1Z1Y5cjpa|qI8>L4$DV$__rycUASZo|QG zH8gLW)$z^Q_61lDmp*H5qYu)7e_UJP1?T@lP^_`1wIzoh287x*2K z2h_ZDqcAH|9kzrNwy@VXdqzc6-NH;jcPq;I=qE{2&4u)_84Bpue*G%}GO`xXA66Fn z)hl~W(0DrmMO4=K^C0iNMLU2TSEhjDzBmf1T{Z=FQm8pEDRP3|1B7yc@J+qfcMk^R!l4SV>A{9bLzILq^guu zRno#i-x1#${j+BjRCz;{8oNzH1%G{MLw@xo+qM@)v+pB{8!1s-rabYhvdkIwmh7uW z(+kh-#w3?abbcy{Ik~{AxGHWDg8XD$v#@5rW?? zTwV)I2#1z_wS_cfrN)xo50~EmPSE;T0X3>27vjC%_H*rlA=wW4RX-**VyQJWt+{b8 zYoKh0rX+}FjUqITykT4Fcj~-F_J5q>h(j&ega}P5UN$=dWiPj-dbKRGo0S>!Zi}Ae zM~Z3P6dMWretSKh77uS%Zx7BUFS)|o73eX9K2ARoma10nj#mo$^D?~N$ePeQyQ2a- zuq8ERY#k(cRc8gZXTLgGm@>~O8I>iXzzLY8a7@{VC^?oE5j^p9KKN;ryc)61Hl5&u zocO4~M1Sl|zA{c{EF9S-dQ1c!iC)<8$QZf@>{4I{Gvbo2pe<`uTjRtY*U~ui=KiV$ zV-l~bxF!IPW=0oUZT?|2rp1hu{0Z)KYfDyUjb#M0Td#5B51ziNjm?*hi?}$N&0Mc> z<|-;D6*m4k#K>q&{X+RRgRZUN+C?uH2e)b)f3HMnGOMSdh@8rqyF0U5g`SR3Iq^GX_bwk@QFv zE={Y8Z9}Titm3f5KA1C4;Nr2VS|N^*p*)x-Yg9+Km%-R!M;geg$Ux$BhJaXd^3`42j=s*5fNntgz-TmVauv-Bj>9PE;YLYa{@W&J zKRj^)^MRU3BXC@ev}SdK*}94RU}p0btFSef9+^KH+TtVv_fs!K1D_$vU0vZB3ku0EQ$><|KZ&Cw>&5U|!2dmuSOf}}}%oY5Mjo7y)YL$1>8$Jy% zGP3NHe~)(G0zqxvNG95`jZmTKej&YtKe!8Dk~I1tNh`33#xgQHHiooHhLD~;Y$X@# zRAa!f#WR|~xCO`)s(06C62B@7&$O~)H8vqN5dU=FMXU}kb6*7JU%0k8LHx#?Rkm8I zI&ZLsI|r3&Vm7+Yt~5bnhAtM|6lS%0O~uNyF-?)wNV=4y$sdIDRa2}#=@CY!sOi%k z5dn0Tx2h5aEx)ib%`|oSbCjc-p)AfyagB|?TA3@)PLchOiezuy>SJW|9qC97k=Spn zP;*Ulo^6WtD%!m_lAiNv?NG zBszMED!e63`=^E!x2R$5$RCL0b*A0Db!Ihe+gw0Te3UG(wH0o#ylAO$=LMcvT!>na zG&lvWub>#&vaVr)dok9QtZgf}l}zZ>3MMq|peJ~9r(GoR;C@p4HPPCR`L{+9c!Pzu z2G(dC$3ofY)*A6NPb!IbPUYgttnwv|H8*Q@{N!>|;g2XJ0@W-wL#p?lVQnv-1SR#Y z+dxnMREaI6zsS%-^vkrxQjB*dSTn1(sG4Hhzb&w{>kP5}ZRLbFld#X{46)m7HJ&^U zGt*aPYLHi-VYI1N21~CQ7ASqq+MUI>ldFcrcFoF~NS!{cV zjo;|S)@)IGO%TU23G@DFh}n10IPrn*kx?_@D}v4u4ph^}ltL`EyT+F_*4S9G-W@b0 zIDbIgx}kKGXdIR#QA!NlH#XpJx3n>5y^U?0Sx&r6Jk|&Q8qfsoecQnoNVwK160C|sL~NeB)S^lV>@a}acDC^7We?TbfP``+z}l@ z(d63+&`oaxsAnfRozEudYoGyiqmwN4iy$mz@)VZT`?mj!I$wss_Onyxn%*YR=m zv9qQmkBDcTp=w$w9c0DAy2$lT$?WP*eo$otRq94a&k!BolD!PJ@zA^BXcy>v7;1p` z47KqV_E9SA7ao|h5R=q3T)>1WeQ~cW6)MSwcGWoZ#~E$TGHuBA{zUf2)ddq zpqOME2Ufq7R#XrWlAJjm&IrL(vzo>?;Ko#U?3MecA=v5pXKv8(;p18vVPoMNZqur% zd=lg8jx<#quZ3I}eB- z#On5xvtO^C@XhbfLb|CZZun6QUm~d|_9cjG-wS&fB(2tqq~CQ?GuHN-jgxr%h|CO& zYX5C8%xniUTPZEtge?nFb?LW_KQrx(MH1;N)f=g6fsri>sAyA^FfHp*TaLYzge7_D zF@Kia2lLfSPg_^!+eflO`ha!UCm+k5Yu`ZF-zD^zE%Pj48;D01@Mt_$U!pGvuY&~v z@1(J0@i<1tM)t)eAmNJ$_bQ{}u58pZ8CDjFz>ihLjgR}bC0OG`S*#z4KUA0Ey@{G) zTw4x_Ti2B0MUl47EFn=gBd#B?)6o($i?;RFV}}U~X(+M24QxI2Sa5$}S6fKTxdmK9 zI{D-j7Jt@uGddy^3nex8pJ*cs-0v@Kvlsw9R}!SS@c@Wv+>9h~scur-yQ{5u%#N#f z-0_z?9mx5FJ9KISzR^P#C@~PXCdiRZ213ucL@7Sn*VapKX6kB}z6pq#bm&qij#)$W z1@P$jAWaaj*x}ppE%cUwme}o3Z^bqmE(@d#%X0(`hO;ZImoLF3hqG6HM+_Jv3p^d9 zDaMsMXDuGuAGzsoq%yTteWy$AmT9&gdh`3;)TSq(z$D}Z^?pe8*|NasS%zKxVlaI1 zDMexxQ*7Pz-Pw8wuod$pwql4z%iVXD#MKu|vHehuxNN_ACb3m6R(F$v^Kaw_u8`bu zL$TkC9*C}9ZE9L)B%^xZtL^Hzli3f)#{HY2^5W8B$MLr%&>4Nuv1;5DJs_y@!=zSY zZ6*89X#7`rSDj6^91+yZ!>|`f26VsPW$$8Wy$Y==6>sf;0S$Od6NV$fd^tk`+zdWr zYp?gs1%fJG6lzCYuyxl%;UfSoy(XZXtA-xk0;outTihLG+0PO3BF1MV#3ggMI7+W* zHi`WoaB&E`F;XVO?<9VYHyQD9Uhc8s=jys}E$?UNr#C2vpg4_yW(L{$>TRjsscNqftXJ1z{!&BLyd?1(af|&+ z4Zipb@sx{|s>+&QhFBrYW`ZWrfXVp`?YZA2?w{DdC{*v{;3NFCv z7)PwqY;CNa$RfP1Hj_}7T{G5XGU{4ANg8*Sq`m(jX&7^ztnuQy|7`I1-|y(F2#h4v zf}L%NDlCX9)4I_u_@@N?Q&;Ix`;Nq_#M&nqw$^6~>cUflfI?Z%DROZzi=-p^if%g4 zCokIQMP@$tyUl1jIf_YP+%$rw zNNBR1oaP8RL{OjE0=l1qH-cGB$4Dlq)O0}0=I9`Uw6K_MA!+n!(=~*JW6% zv;OFx6?pnW&2bg*2siN?&A=`#Du@m}5$PR-%(GNPQEQdI1vK)CY#Wa@zZ5_Vt_!Gp3dSj!nMBgJw}tdtiYAy> z8+Kq{)=yX%hH6y{DBT1ux3`Xu;6=1MKg=R!;8 zuRkHKn|+kU6_t zPFBV3+p+xE@>OVVb1b{-D9tTejS4mAtOqAT=f)#AT(N9aStV)`t0J>v*yJPIgBh%R zQJbU{=uWp8n*s^fvM=;dZf9r-hZZ%-@2D&IxScH*52VUtAykd5FQDEFaTP|=IV9cH zL`ZRG+KfGggje7cZFJ5PL+1@fnVMU6;AulL=y!AJF|KOlBB&~jM-BJxB}q@m z3u(k+DNR@m>6k7;dcL!vW+4)A>)J_1*BWE1Z!j3?Q6J15J=BZ6t*^j8rc!Pi0f8Dhetmg$X-m}3% z;kR@-^LQ>rHQ(_VJlWG{sdQ#4Nki}iJV|kj*@C@*gxh7g4A2ie-$+oqWtd{g+OZ^E zgXbGbdU=_2&Rdf9n<=CjGwkIuj|wC%2h;2s2HS}3HrJuK#2-lkoj zr*sTm*fy3t07dvq7O1tE5Mct%AO%+YO-b z?S`RObv5um_88zBcN^CCcemV%!%<&Mf%@(qFerrCTMoN5(02qkWylL?S`hbT>YDO# zBQUxLVDY8;@~>lpiaX~PX=|k`eep}-wWkHre=Tm7&;{v_#g0MSkitx0jyf|WohPb% z3GKbL*fpdWFZ3t0u!|C+m(Vu)Q%3d4dj~%)!2Oa<=o0l}cCLBDkWz*Q(-o3JK=(+WhxhQf-Oaf|o6^9%T== zBtZ?}YyqJymY-C(Z!(!`Xb?xnC48<*ds`}YvP3hTQ8exMkivjJMF z3zX8dmze(B;&q0!u?lp30;zmeEKNM2BfybryNc!}Nkj6i8aNu{&IMiShpuI12 zkSTlpmlaNu;?A15e?Yi-A$DxDCTKx_N4&9!HgCwRGMjnwS&6DR;r1{;j4@0BbK;`d5F`VX(SZ#45{{{ z*>J6+9UHMt`eb~CQC~6;`EQX()V<8Ycrc&%HMZjs6H>h|Yv}3!uiCk^piT>ss=0y3 zw!=UNJjOy=Y<9>&SPH)s_QE49Bu%b}{<(QgdU6gyc2xzGy#pI~LA6SN~?w`@m0!vAVvfFIf|i{2sVM=JxU zUn@tPpE;tjHm3&k$VfcN9I`a7g*&%1AkEvOapwka-GlO*;te3*ct;!d^r-Ak|0h#M zzlQ@7-~csv|HRWVx>kC0aO#)J%1xve$ELHcqY^t60^%i^3OnQ@vI%mgc8x-nyRHmckqo}_>COE0j zl4T#2x%Wfy-#gx-{sE|8&Aqjr>iBMKe+As_qOk2(^Rzt;*3saryRgZa`J{eZX7K`p zH8WEVgG-sH|K4i@y!C60$kGTM?w{~uz@y$9;3>ys^4LhwaJ)D`r~1b+j0k#_`@vfe zENDa&47d|tb$km}^((6CcN|sGd)LPvhd%3{I^3L{gM{k~9r^fTF7!E|Y3kjyYDTQ) z2~7zW*22-0ZU60P#Uf~glfH(3LEk_;FQda3|Ak>j&|!j3;UO4;Dp)x=DQ8v4nPpxN zeenq)`w4xi4w+?mul)&3xTGiP1oXUgVr9-^+PHN><7y6R^!3U&kBY2Y4(DA7s&NuN zqXMl@qQEFmA${ZFWXI1!@HVEz`A?vc)xJO*&-e(w-6@Tm1y!&&EaCG<7Jm|(o>l<@ z8}DzZYgOAaA3s3XAm~y)_B#VBXf<+sO38`-}Cu@F}j(cIN<{ZZ0gS(cH zMMspUH>&eaFO=0%dy{QHgH9jPRS=$a0pY+C*@7zeb*?p}7e7w82# z53XjbqQgY7qtL-kx=YG>juO&)BhiL-snXSLL-tO#g_hQ^D^gig&mJfE^Db%pxIY&k zS=!kc)Ob+UwaFKD;R`Hc2 zX?a6hil+)_=^Q5~zE#O9=x_y)(Gme|ydnqHS&~**CZ$WAZ1vr^vf;h`*V&~j=*I3V z1!3&pn0Kk3C4Zw>+8QCXTJwLrTx)rsE!|+X6;3Fqlj7-hqFBR!WDZX1ImEXH8d(*? zLLHbBw^Ify#$Io8au+ifb>Jb>)5~eG+X?E`DEHc}xyPRxTsjD(Bs$PY~9rqdF zQ?JSpD;yUXLpiA6bhPcD0YB&<@&JFGDj9L{`G2!MqR@C4q4vMg5raYfl5zbsnk9nIW_IG zlQ-LcQ{%+#%eo2smVVAdw5;?k*{R{TfVBLUhj=kMhQq5ctK?VB9aa2|AN7)VDL$i+ zqwz^A>Rf_Z-j<3yZbOlqMj)S^yjbFGTzaBi$g4A^euuq*U~}8?0l57;a9lKjfhs}9%v_P8_@bg z!Zjol6jq0zVl3jm#*uA{b~b1IA4=oC6aFMthX-;0A4%GqG9FFrTVT^7un|$qvz`xS z7+t&%1z(#8sc()PNAH5uj=e+YB_kG99|g7~Y794SNe;^PZcT!6?0F9Ef1ovKxe%W1 zNy1`mb1pW-dOVba;Z5!JGhASj3wAQpWniVgI=)!pWs#OugM`#>kh7=0$<_V^lrvgD zec2l|$jnNHbAGn{cEKUelaEd?IxopX99p6aXz@OwquQ`32p`@y&&Sa6{EQB=X1yLGI_TKa zID&d#5s>{g45UksHR5v$v)0D+`H33pdgSlI)z@@YF=p`%8I^ha8w{-p)YU&fUkQFch!prpUMQ3BjlRK4~>i*<~@KG(indJu} zzQZfo(3#KB&;!4P&a7vMc+&Lk?3b|l(9{WggEbXRRSUDX&v9>gOCc9mu7&gMY>Tw1 z0sc|c9I5a_Oay=XbJ-LB-F5V%*UQs`YpRiF&4}8JD_q#gXQL@t^yXkyVGDdp?m1S_ z=PX>DgaMRzmj_gGYYF~G@Ku8kShJchHKo&D%KBMa^WBkP(t}j0=6<+(dx=XIazL$m z{txLE{A>(+m1Tps7(gGp`x5gNsA;d@z&`k}6nW*ovx~FvE#=<61Ua~~D{rxtd-xSj z>5}v*Nv~88(%1?vF08?8IojL32DGrUfb1)~1nLt(HbGsm3rV`NBV6qDrQ+TII$Bde zi{9Yu9aVFTq(^E=U2k!_h@{otLV6z?@^6t=XT6mP?$^t#%8THWM`&$~(tXXw6SW2Z znn#IuDBENbJN8*q9AAfXF=wYIy7;oO?-8@q2kl*dya+^~2SQUFMazT928G_d!#x$^ zZ?7L&R|7shR8?2u_nKzhvm;FH(Bl{c`04BOU0BK z-q_{9kg2Wss>pg$iqj>ZH9=gTb;8H;^dYID7`y8B#4DEh8C&`k2R2_|PuG z<>JF5jpw(QgUeYzMirycHR_Jsmy3db@rz7_ZKp@g84p_Z0;#avB|-f&3j=~?Gp_pV z!bT->VOG-u6RG_bHsC9cMv!eszrwcqH-v(t*O6y*(_!gvfOLR{uL{|I$0JO-9Lup?424D|-^N6>4$*WE)ZenDO#L^^G z(Vyc(^iu5T4~--5JNtGIH&%ifXYhk-6WzZx6HHi>pE#%E{Zn4T`Tu!mGd(dGgPvA5 zTa&ax=`Rh8nDJ8@F>I7W`Sak@hu75e?!}4=e$G$1QSt33T2i~DkVgHI7ohRKAk8U7 z(g3y;fACwBhe*1%G)aBf_WAhwfqiLLXM=C$iB+ioZ_vET8qlVearNgPK;vDWO1Nuz zjxPw)TCl6X5o6$<{Dct$!wA>0_xqzQYT?v|-H%Ay4J3i9Ygn37}B7f#RS`bi3>s8pLrb=>Q zw=u8sPLG;;bqXDczkz8+^|xJ&L7~W4SKON|q!kw;Pf6*uSQU3-H44i$e}lrnjT)%9 z4NEVq6`KSH2w&DHKW<(`E8hILztYt5Ezwl#0zp$F-k{Ki4zA)tgHMI&0~<7_iJ>k| z!>HFlPZC6-%p%&N{D@+4+w7?u;YJ(Op>yIX6CAiu_gR8^ z>ZmR(y$6DLi?RHs-C<+2uW~ltjZq0|K}pT*w_wMs%!49gLM2-JlK*= zpry-5oz#`x%hR&Vci#<~^7|q|<(}7du(t7z6g~@FY0!uqlF! z=8jLEbElq#SIG0~P^~59bIXoI)` zi8e6czq!&tH#al3%|=GV1%hs;=^$%%`3P*|715_Qmz{dqf!@#23R|gaMO&8`6uNJ# zHDlv#5vKI%&_%XT>bFY8eK_=+plO>_$c)vu)4KXoeL>?gUEiV08+hgK_Bp!^3T?8} z25^0s?4U0j-`1l1lHlfM%>Y?3e|xP9*LP!IQiYzll(EBZj+!3oT{0*%)?VvwLG|CW z9q{-fTaMy|O>XK44)fhC*(-ZQ88z>xJ?hjx*Q3nG$<0phvrTJ~PS!%_tiay48YClM zi$W_Lw57PJEC;A^`DmcZ+Q-d;tKxVWN8mW}HNi<+oZWTQTC;gxS|{GJrU}=I8eyCc zK=MDq^6<$am0_}tn94Y-S@cT zP$eo-SqnQ7E120i%MM)FqS2`hXuKmjQKc>)DX0TL+ZMpsVPPoT_RWzGOkFQhvEPv#oA2$THlhS$M%dL6-`<`{{!s%pK5M ze9D5LA^3wgtD8xKwk0r9bI>$3iwt-ys5kSdyF2D_RfFLo)vWIQ*;{XI zG1g|GY#isi_PDliB)ne<6N9?AI5C{~)p=Bg`Jk?u<4B-kqt?0GvhhCBJ1GSHo=#8@ z-o>N!<7%%QdcWW`+T0hWsN=wV0a+Z#svU!t2wyq+ex;v}?E!uf^sc(c-(ZoB@5Z+J z%33pgQLE)r0sZjR2Ju?kRy`7a7~UQSO~J~lCu60cZaV9ZT}VG@!4)nW;|DE&trpN> zKcr>~g&dNe+aRQV{#XJ~_xw2~bSj-3U4|B^33_d6g+YBu+8-aOA-{EahFXrID38r7f|{KYkWHXg zOjaR*kj9-8(o2DuSB3@3+%<W95-&=7jt+kI58`qdMU_}0vH3t)IVrnSDs+0a#_yn`MS6L5qE z;wiYw4;-r z5>E+`V%uV{Xk4s^Im^_d91$)N!7fNo@a5`4i$VNdE5(V$v>I;KUjviM-@uxw47T~y zN%M6{J=com6q8BrC+YF2m=7~%^@?jbDb zm99F$p85qEFtVrQ_DDq(^2AT-zd}!;dn~s&;*&mG&%#SVF?C*B`lVriS&C!JOUaq! zFk!9(46w9dtv5H!FBnkifd&xkOd`rU6X=)g!zGp(jE*OtL=TPm9!v2^Ia*0+Wya{a zwk%{V98)6%jv-|YLZIx@cs;?C%?*+EZ6mD6L__TJ1`m8j3GbfbRSpgxJ#rSZ=pU$7 z9br%NO7RwFZ}e~w&Y~(ul!n?flcict$S93=le@AB+dah)^ADAsRXr5gip7T5_)r>H7qL|-wJNU-(ohdJukBM{YG?D;}p zhB;P5)ns`X{j%(p0W_+jOkR-g~hQBB1P9<3O?zabCn(3uwewDFU zqn8ZrY8bI%6l$Wo@9O1>|OY6%ndwb#~m!-Yj*|N&ATenok+<4nU;BS7r8ndvf zcth}~%5v%TFs?_nWoRZnL!+9%IzTPt$a+@Mdh!K8^X3S4 zU!@u}w+L5B_^@PGkm&FVZ_d>>$Hvk{3%%i7U4Aa9nZM-oYSITW>Gh0jqd-?|8K`sY zt!T9nrqSy1I=)|Zm@~LRe!SZdFBkp>A8yXHKaZJiMfCkdKdYM8wh$#FYhZ8CGh7a) z@Ng*I*wO%6I?hYJFOLS(yPZXbYM_e_s;SGhVr>lyc~0`O=jZ)}Pd@dI*o5`ks$%(* z)AIJZLSh}==k=32Wnu3z{HPZN_<$yl%Y+E6IZIybC61o+?X+Jjho|m^K^F^5_nw0d z3R$PaC^{g<3%y;l>IRK7M-;-^Q}=JpguoHHLgJFbr}72Iaxf?hKV@`8+S2SZMn^Sg z9oBl;h*L~7E9FMOldr}a;5mQd6&%w$VE3HxnvuY_EK+fEHak*oR-|u@@|lMU%fd!= zTa_KU`pL5E~iL2uL z3BR+Btwq&z4?^wa{woDPFbeZ4Z$%Vp?Xg-&!_UJ3^tLHJ5LXgZXrq9xUxDxWJ0?*o zx}ERQaWmk^v-nYSSE0?sugi7!sRaf9azQC}=qh^rNG;jeiv*q8!kW~EAC_G6a%Qt? z%Uy#-cZ*dW0^=EsR~tJUx7=%M>u}>1*M@?YJA{IJ_=8J-kaW#%A&rcdYp3{VNaObk z>1zDJxyMLa1b5}hgqyi&Ihnu>52yp^;5h-MyhE>Z>#(qkKDNB{sfw_UW(0MG^DB!5 z)Wve|(kG1H@E94T%~#hkF9q&({HU#&ep$yiVI96;kWwMOIISOp`YrI(E$N#bgDWSh z`p;739a=%nFhqhH#i7@T8pIx<9H(yjdbOk*t{&TH@-O|aJbS_ zux)jj=t%My_P=%^Q*1$iugs@#aPTI17o3zR>4WJ zSOw!=Tnuaj;=_e6NqCd_lffZzNL$2g9EVDc@ZfAyD47$d74LN0LDIqILi#pNYPGHh z=}>$jnz;4rA)Ath{v>^7E2P`&X#=^%-D<5#dw@~X0+Xyd5>`3rsJ5(Vee4aAkMBFx z`MMjKs3|5F+@u^&yPS=D;>_;(Dds0-87W~`~8<6E$? z?Y+%dLNgo;rb_0_*x2?UD!Eg@<=CaFhoC|oxTn<^%LSs>pH%fP2L18a)e6z|C*}Sz z)v1mk)~JiO6|37zgIUsOZ%bAm5y1H`8!UK4#{t%& zjGA$7wxAc!$+pJLkSSps>qpXX zeD##1D1awnn@K-b4(@)l9YU@vDp5Dc?0OO(eLKh7O1aBP8p||?#y!0RV?cAQ8&9ya zNLsuvE7Su1zt9|8J>;1$<&RXEfL7YVza^EfvKm0t%G}24El~FA5E5wFxE7dgsjT0s z*B92I>}`})&HFTxUHJpmg#Dp4X17~l0ZMkgCM}Q0=^)WJ+ow;r?t?~-L?hL{Sv85M z#o6#p|0nM6jeD3~1w}@}05$FtrckjO+{EQOvhHj{w0mIDuSWahX~IAIx5+`vO&rh? zCO(`cpuM}0h>y0EL5j2O_^2gb;YxnDZ6)WqkXDekNo4`8vD-WnfAGb?n4+(=!_lTx z7^vQW+&!15RoUxS^3KSHu)kgD^8E;?QA!6)pHI}rT%n73t$sg%E(KG)wi<-j#I@GO z@@eF5YZ!BeQL#`~qK!1>`GD6J|G(^xg@T%#iH4s2L#{!#qhMiEtd~g3k2do9)}t+? z?Uo2>mA_CR7$@(!asSTv_D2c~qt}k8WAq!AR-`4Xt-O$ZMp|;QfFfz+Q@B3sl(z$` z`ar5WHlXB>rUB96vd+6(YOo#i4*_f8{`yQTl-G`>qH?vfIqfhAgNSrUc zzD1{4&3GgllX$H+56v4+&qM3Nw6d5g)vJu9=ZGpUMQ6pMZ1szx>)*qcx@cRB(zf)=I=(AwnV@yzSG9c;pz6cl2GE5B+#MlR%|2fB z`vFz-vK6&io39!0(|>xKv$&3M6AH1`9ih+mrUCxzH}K3n{1V|~ZX4jGJ0WvWeL=5k zR;Qi+4{)Pu`r2#*zVTxmwxp^Kbb_i=_jHgC^Xn|FDBT&*vm71d%91+ETDDah*^gd% z+o^zqYW`=yFWg1)H~S5r-WYs(eV}U9hKC0HVc>JClDeSk4o?iAhW0*Y?8_Q_4Ut;; zW^u<+U(m{W1?vCnnL(kBU1j}$X0Mq1FFY~=vsARwq5dxgKeMa07_a(SS5)2gtxk&* ztJ4i}MYTT7);e#1mPMF=;}k9NI7v?-h%jdLiQZqcAR zgQ}iheQUvL_Ru!q={U6q%$jGz9D2g+z7>3|*ywmn(bP<*Df>?p55QZ8q6#eX?TBB8 zD`?Xb3QWt0%I~-GvF8dnbc`T>yhw$bV9`sf;nFg_AZ=GwNJsRNn`|pcIy906^u~2d zy&gUe`i$`0Vo~`)Sm#VHmj6amn>gav$g!S++Pjb3qe$+97SzI(J=Nu&?juf& zaobV`ZunIZw$T}CwZh1ef?u_-tT3YI>27O59fep>udGgw7S!}Lh^?)(u%k?x(HFHI zA15HT&c}|~CrZdK5zwz`0_vQo4dAxy%Dilwg9`4T0@aq|GX?d0B5c7fb@bORSNGCh zL?=w`wUxMhpG4h)w8&}zKfgG^a5 zP;1H}2I7uW{{b=`H)&d@PXZFhFL*+2+V&&)3*8!kYdmV-S5i6dT>ofq?E_ z&_RKG1f9G#VBA8q>K0n1E?>+1qod-B=7TVo(ui9hS2w5z_#NPIHQKyy8t^~;MmLWi zB)yO_2vzUM*5RgXy0Nbtdy$8KC)_>P0Do=nYsVT7MtRygj~@)Y$$tiTaVuX(UY?(C zi@kli-(cj+L2mgYa^^#WLe@j%m2mJ7=xhF#AWR}2zOHQa5L89e^elo(zt=&w?8BiT zM?Y$MZ-Y~-?18B2i7pq*NlZf!ZM2bBX%g%?fNOy0mrj*L#0zT z0xB}Pi0`~6g}g=4R;7HM`8!Dhs5*qV z)9C(4Z^VpNiO-Q2eCOr5db1tFa1}s}JUsoWT=&)`C5+24SDI7ZR>|m9Qm{O_&H*a{ib&KTCFgxNPNZ=qubK%mDWofh8#o zsMl>$Ophb;n>pmyH@boWzkYk@8$Uw!PYOyGo*J&htyrB>^2*{VK~JJ}kR4m=g@+O7 z?TbCKyBs(Tznnzms!{tm#(+O(BpOc++KOKao8VBAY?XW3C|SSVC?NCd=@8s+8ilI> za$R474z&`{x>49XqHgR|>*uU%h??g}`X!WZsnMb3F!77B|Hk4#qHVzLf$VC`ual`N<^0T8AUZms5^pSTmtJ7r1tKF1~_IeNP0KcRXzP4KrL@pI67 zqiRm?No^69LkgT>+kvmbkvArv_Hz<^`tDBOv9FsALT69JkGezDVGZ%axq-(f!a(1( zLP4QPa3`7VGYQg-TZOd!Bpk%0u=6i^Z!@jJf?>6KySn0jLAA(1*Je$UL*OoHxqL`K zK9i**tKpZzYmNx%sL9x1qZ*fzH07v}-kmHv@Eb{uaej@OS9OZkgL`hr_%$aRz>Z;v z3w6Wj)JZ{I^wJM!E)hpOaCc0BmJVkH^mYms57e45KUU7P!FaPqmR5HX=3NlfZXfde z2@9iFz6&YW9LuK!&-|MM@3I7c-&DB*aEL2BoNllmgMsS!TyRTJdld4Qp+Kf+ZZFNC zN1&>~6t%0W-xYj26TCr5H!$AW^?$w@-TE(n)Pce73x3#i9DThr4GE8&`(_$B7iaUx zjex{Ao*PexbmBuHoiiP)a#h%&uMZ37WbN zO;t1Q0UI6PjUAjNFCw~sI2G|6Gwh?TMn=AHecrz{6Q1C3E9u`{-QSu&8P8prTYN>K z>FCyH=++fx~}5OXw>fTWbEdX#e-fCEwLSiDT36YxeW6iQRgM& zqLl7yWsrhJnA%dbF6=e_;L&4~0_nc?LK=|*wG@;;6BF+wz>{O(42`Y<Ni09sdmff3q_9C|(!V31usi4h3bhWVBC;rW0Y)61aNzun zuf{vjr$)@Ncnnhbzwm?=@n_7DE9(t&(1H+5MI^m52WQ5p!k3-4Os2P{eL#ik!lEm# zg;M4IP485c4aXHws@9v8{1bh9C{+%Wa|9Vr)IoM>8~jc6u@-ALaqt1??*k*%lu%|0 zmGNTnbCLL}!<27TdjC6V6ZNoJzV%14Gtvr7-czVckHTLAI*)O_B1od=d)v-7w8 zXSpD@axP4L-UbCc=Sfpb%tL2BY7itc!1=*JZro1Z>*EPq)JS4uhXw`c!#9_(XN@Ix zX;_d8FUJ?TcKar*qj$v>M;ps39WcF_zJLYmKVMsv7x*5$Ej<(k!caiX!6q#X3tXPB z4dTn(); out.add(new CommentItem(new String[]{ "", - " * " + AppStrings.translate("decompilationError"), - " * " + AppStrings.translate("decompilationError.obfuscated"), - " * " + AppStrings.translate("decompilationError.errorType") + ": " + " * " + AppResources.translate("decompilationError"), + " * " + AppResources.translate("decompilationError.obfuscated"), + " * " + AppResources.translate("decompilationError.errorType") + ": " + ex2.getClass().getSimpleName(), ""})); } diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/ActionListReader.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/ActionListReader.java index 8dbce7f5a..1f18644f8 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/ActionListReader.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/ActionListReader.java @@ -12,10 +12,11 @@ * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public - * License along with this library. */ + * License along with this library. + */ package com.jpexs.decompiler.flash.action; -import com.jpexs.decompiler.flash.AppStrings; +import com.jpexs.decompiler.flash.AppResources; import com.jpexs.decompiler.flash.DisassemblyListener; import com.jpexs.decompiler.flash.SWFInputStream; import com.jpexs.decompiler.flash.action.deobfuscation.ActionDeobfuscator; @@ -727,7 +728,7 @@ public class ActionListReader { long pos = sis.getPos(); long length = pos + sis.available(); for (int i = 0; i < listeners.size(); i++) { - listeners.get(i).progress(AppStrings.translate("disassemblingProgress.reading"), pos, length); + listeners.get(i).progressReading(pos, length); } a.setAddress(ip); @@ -802,7 +803,7 @@ public class ActionListReader { curVisited++; visited.put(ip, curVisited); for (int i = 0; i < listeners.size(); i++) { - listeners.get(i).progress(AppStrings.translate("disassemblingProgress.deobfuscating"), ip, actions.size()); + listeners.get(i).progressDeobfuscating(ip, actions.size()); } int info = a.getTotalActionLength(); @@ -1015,7 +1016,7 @@ public class ActionListReader { } } for (DisassemblyListener listener : listeners) { - listener.progress(AppStrings.translate("disassemblingProgress.deobfuscating"), ip, actions.size()); + listener.progressDeobfuscating(ip, actions.size()); } } } diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/model/UnsupportedActionItem.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/model/UnsupportedActionItem.java index afe46f96a..0dcdeb7a1 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/model/UnsupportedActionItem.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/model/UnsupportedActionItem.java @@ -12,10 +12,11 @@ * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public - * License along with this library. */ + * License along with this library. + */ package com.jpexs.decompiler.flash.action.model; -import com.jpexs.decompiler.flash.AppStrings; +import com.jpexs.decompiler.flash.AppResources; import com.jpexs.decompiler.flash.helpers.GraphTextWriter; import com.jpexs.decompiler.graph.GraphSourceItem; import com.jpexs.decompiler.graph.model.LocalData; @@ -31,7 +32,7 @@ public class UnsupportedActionItem extends ActionItem { @Override public GraphTextWriter appendTo(GraphTextWriter writer, LocalData localData) { - return writer.append("//" + AppStrings.translate("decompilation.unsupported") + ":" + value); + return writer.append("//" + AppResources.translate("decompilation.unsupported") + ":" + value); } @Override diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/locales/AppResources.properties b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/locales/AppResources.properties new file mode 100644 index 000000000..7597306e4 --- /dev/null +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/locales/AppResources.properties @@ -0,0 +1,36 @@ +# Copyright (C) 2010-2014 JPEXS +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +decompilationError = Decompilation error +decompilationError.timeout = Timeout ({0}) was reached +decompilationError.timeout.description = Not decompiled due to timeout +decompilationError.obfuscated = Code may be obfuscated +decompilationError.errorType = Error type +decompilationError.error.description = Not decompiled due to error + +decompilation.skipped = Decompilation skipped +decompilation.unsupported = Unsupported by decompiler +decompilerMark = decompiler mark + +#example: 1 hour and 2 minutes +timeFormat.and = and +timeFormat.hour = hour +timeFormat.hours = hours +timeFormat.minute = minute +timeFormat.minutes = minutes +timeFormat.second = second +timeFormat.seconds = seconds + +fontNotFound = Font with id=%fontId% was not found. diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/locales/AppResources_ca.properties b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/locales/AppResources_ca.properties new file mode 100644 index 000000000..c63bf4b93 --- /dev/null +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/locales/AppResources_ca.properties @@ -0,0 +1,36 @@ +# Copyright (C) 2010-2014 JPEXS +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +decompilationError = Error de descompilaci\u00f3 +decompilationError.timeout = S'ha at\u00e8s el temps l\u00edmit ({0}) +decompilationError.timeout.description = No s'ha descompilat degut al l\u00edmit de temps +decompilationError.obfuscated = El codi pot estar ofuscat +decompilationError.errorType = Tipus d'error +decompilationError.error.description = No s'ha descompilat degut a l'error + +decompilation.skipped = S'ha om\u00e8s la descompilaci\u00f3 +decompilation.unsupported = No suportat pel descompilador +decompilerMark = marca del descompilar + +#example: 1 hour and 2 minutes +timeFormat.and = i +timeFormat.hour = hora +timeFormat.hours = hores +timeFormat.minute = minut +timeFormat.minutes = minuts +timeFormat.second = segon +timeFormat.seconds = segons + +fontNotFound = No s'ha trobat la tipografia amb id=%fontId%. diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/locales/AppResources_cs.properties b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/locales/AppResources_cs.properties new file mode 100644 index 000000000..88f511890 --- /dev/null +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/locales/AppResources_cs.properties @@ -0,0 +1,36 @@ +# Copyright (C) 2010-2014 JPEXS +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +decompilationError = Chyba dekompilace +decompilationError.timeout = \u010casov\u00fd limit ({0}) vypr\u0161el +decompilationError.timeout.description = Nedekompilov\u00e1no kv\u016fli \u010dasov\u00e9mu limitu +decompilationError.obfuscated = K\u00f3d m\u016f\u017ee b\u00fdt obfuskov\u00e1n +decompilationError.errorType = Typ chyby +decompilationError.error.description = Nedekompilov\u00e1no kv\u016fli chyb\u011b + +decompilation.skipped = Dekompilace p\u0159esko\u010dena +decompilation.unsupported = Nepodporov\u00e1no dekompil\u00e1torem +decompilerMark = zna\u010dka dekompil\u00e1toru + +#example: 1 hour and 2 minutes +timeFormat.and = a +timeFormat.hour = hodina +timeFormat.hours = hodin +timeFormat.minute = minuta +timeFormat.minutes = minut +timeFormat.second = vte\u0159ina +timeFormat.seconds = vte\u0159in + +fontNotFound = P\u00edsmo s id=%fontId% nebylo nalezeno. diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/locales/AppResources_de.properties b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/locales/AppResources_de.properties new file mode 100644 index 000000000..532368772 --- /dev/null +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/locales/AppResources_de.properties @@ -0,0 +1,15 @@ +# Copyright (C) 2010-2014 JPEXS +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/locales/AppResources_es.properties b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/locales/AppResources_es.properties new file mode 100644 index 000000000..d8dc158a5 --- /dev/null +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/locales/AppResources_es.properties @@ -0,0 +1,36 @@ +# Copyright (C) 2010-2014 JPEXS +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +decompilationError = Error de decompilaci\u00f3n +decompilationError.timeout = Tiempo de espera ({0}) alcanzado +decompilationError.timeout.description = No decompilado debido al tiempo de espera +decompilationError.obfuscated = El c\u00f3digo puede estar ofuscado +decompilationError.errorType = Tipo de error +decompilationError.error.description = No decompilado debido a un error + +#example: 1 hour and 2 minutes +timeFormat.and = y +timeFormat.hour = hora +timeFormat.hours = horas +timeFormat.minute = minuto +timeFormat.minutes = minutos +timeFormat.second = segundo +timeFormat.seconds = segundos + +decompilation.skipped = Decompilaci\u00f3n omitida +decompilation.unsupported = No soportado por el decompilador +decompilerMark = marca del decompilador + +fontNotFound = La fuente con id=%fontId% no se encontr\u00f3. diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/locales/AppResources_fr.properties b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/locales/AppResources_fr.properties new file mode 100644 index 000000000..cb83f5753 --- /dev/null +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/locales/AppResources_fr.properties @@ -0,0 +1,36 @@ +# Copyright (C) 2010-2014 JPEXS +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +decompilationError = Erreur de d\u00e9compilation +decompilationError.timeout = Le d\u00e9lais d'attente de ({0}) est expir\u00e9 +decompilationError.timeout.description = Non d\u00e9compil\u00e9 car le d\u00e9lais d'attente a \u00e9t\u00e9 atteint +decompilationError.obfuscated = Le code est probablement obsfusqu\u00e9 +decompilationError.errorType = Type d'erreur +decompilationError.error.description = Non d\u00e9compil\u00e9 car il y a des erreurs + +decompilation.skipped = D\u00e9compilation abandonn\u00e9 +decompilation.unsupported = Non support\u00e9 par le d\u00e9compileur +decompilerMark = Marqueur du d\u00e9compileur + +#example: 1 hour and 2 minutes +timeFormat.and = et +timeFormat.hour = heure +timeFormat.hours = heures +timeFormat.minute = minute +timeFormat.minutes = minutes +timeFormat.second = seconde +timeFormat.seconds = secondes + +fontNotFound = La police de caract\u00e8res n\u00ba%fontId% est introuvable. diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/locales/AppResources_hu.properties b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/locales/AppResources_hu.properties new file mode 100644 index 000000000..66e18f6a8 --- /dev/null +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/locales/AppResources_hu.properties @@ -0,0 +1,36 @@ +# Copyright (C) 2010-2014 JPEXS +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +decompilationError = Visszaford\u00edt\u00e1si hiba +decompilationError.timeout = Id\u0151t\u00fall\u00e9p\u00e9s ({0}) +decompilationError.timeout.description = Id\u0151t\u00fall\u00e9p\u00e9s miatt nem lett visszaford\u00edtva +decompilationError.obfuscated = K\u00f3d tal\u00e1n obfuszk\u00e1lva van +decompilationError.errorType = Hiba t\u00edpus +decompilationError.error.description = Hiba miatt nem lett visszaford\u00edtva + +decompilation.skipped = Visszaford\u00edt\u00e1s mell\u0151zve +decompilation.unsupported = Visszaford\u00edt\u00e1s nem t\u00e1mogatott +decompilerMark = visszaford\u00edt\u00e1si jel + +#example: 1 hour and 2 minutes +timeFormat.and = \u00e9s +timeFormat.hour = \u00f3ra +timeFormat.hours = \u00f3ra +timeFormat.minute = perc +timeFormat.minutes = perc +timeFormat.second = m\u00e1sodperc +timeFormat.seconds = m\u00e1sodperc + +fontNotFound = Bet\u0171t\u00edpus (id=%fontId%) nem tal\u00e1lhat\u00f3. diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/locales/AppResources_nl.properties b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/locales/AppResources_nl.properties new file mode 100644 index 000000000..4e3db5bae --- /dev/null +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/locales/AppResources_nl.properties @@ -0,0 +1,36 @@ +# Copyright (C) 2010-2014 JPEXS +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +decompilationError = Decompilatie fout +decompilationError.timeout = Timeout ({0}) werd bereikt +decompilationError.timeout.description = Niet gedecompileerd vanwege timeout +decompilationError.obfuscated = Code kan worden geobfusceerd +decompilationError.errorType = Fout type +decompilationError.error.description = Niet gedecompileerd gevolg van een fout + +#example: 1 hour and 2 minutes +timeFormat.and = en +timeFormat.hour = uur +timeFormat.hours = uur +timeFormat.minute = minuut +timeFormat.minutes = minuten +timeFormat.second = seconde +timeFormat.seconds = seconden + +decompilation.skipped = Decompilatie overgeslagen +decompilation.unsupported = Niet ondersteund door decompiler +decompilerMark = decompiler mark + +fontNotFound = Lettertype met id=%fontId% is niet gevonden. diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/locales/AppResources_pt.properties b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/locales/AppResources_pt.properties new file mode 100644 index 000000000..532368772 --- /dev/null +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/locales/AppResources_pt.properties @@ -0,0 +1,15 @@ +# Copyright (C) 2010-2014 JPEXS +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/locales/AppResources_pt_BR.properties b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/locales/AppResources_pt_BR.properties new file mode 100644 index 000000000..532368772 --- /dev/null +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/locales/AppResources_pt_BR.properties @@ -0,0 +1,15 @@ +# Copyright (C) 2010-2014 JPEXS +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/locales/AppResources_ru.properties b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/locales/AppResources_ru.properties new file mode 100644 index 000000000..b1d45459e --- /dev/null +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/locales/AppResources_ru.properties @@ -0,0 +1,36 @@ +# Copyright (C) 2010-2014 JPEXS +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +decompilationError = \u041e\u0448\u0438\u0431\u043a\u0430 \u0434\u0435\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 +decompilationError.timeout = \u0422\u0430\u0439\u043c\u0430\u0443\u0442: ({0}) +decompilationError.timeout.description = \u0414\u0435\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044f \u043f\u0440\u0435\u0440\u0432\u0430\u043d\u0430 \u0438\u0437-\u0437\u0430 \u0442\u0430\u0439\u043c\u0430\u0443\u0442\u0430 +decompilationError.obfuscated = \u041a\u043e\u0434 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043e\u0431\u0444\u0443\u0441\u0446\u0438\u0440\u043e\u0432\u0430\u043d +decompilationError.errorType = \u0422\u0438\u043f \u043e\u0448\u0438\u0431\u043a\u0438 +decompilationError.error.description = \u0414\u0435\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044f \u043f\u0440\u0435\u0440\u0432\u0430\u043d\u0430 \u0438\u0437-\u0437\u0430 \u043e\u0448\u0438\u0431\u043a\u0438 + +decompilation.skipped = \u0414\u0435\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044f \u043f\u0440\u043e\u043f\u0443\u0449\u0435\u043d\u0430 +decompilation.unsupported = \u041d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0434\u0435\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u043e\u043c +decompilerMark = decompiler mark + +#example: 1 hour and 2 minutes +timeFormat.and = \u0438 +timeFormat.hour = \u0447. +timeFormat.hours = \u0447. +timeFormat.minute = \u043c\u0438\u043d. +timeFormat.minutes = \u043c\u0438\u043d. +timeFormat.second = \u0441\u0435\u043a. +timeFormat.seconds = \u0441\u0435\u043a. + +fontNotFound = \u0428\u0440\u0438\u0444\u0442 \u0441 id=%fontId% \u043d\u0435 \u0431\u044b\u043b \u043d\u0430\u0439\u0434\u0435\u043d. diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/locales/AppResources_sv.properties b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/locales/AppResources_sv.properties new file mode 100644 index 000000000..40e73c9f3 --- /dev/null +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/locales/AppResources_sv.properties @@ -0,0 +1,36 @@ +# Copyright (C) 2010-2014 JPEXS +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +decompilationError = Dekompilering felmeddelande +decompilationError.timeout = Timeout ({0}) n\u00e5ddes +decompilationError.timeout.description = Dekompilerades inte p\u00e5grund av en timeout +decompilationError.obfuscated = Koden kan vara obfuskerad +decompilationError.errorType = Fel typ +decompilationError.error.description = Ej dekompilerad p\u00e5grund av fel + +decompilation.skipped = Dekompilering skippades +decompilation.unsupported = st\u00f6ds inte utav dekompileraren +decompilerMark = markera dekompilerare + +#example: 1 hour and 2 minutes +timeFormat.and = och +timeFormat.hour = timme +timeFormat.hours = timmar +timeFormat.minute = minut +timeFormat.minutes = minuter +timeFormat.second = sekund +timeFormat.seconds = sekunder + +fontNotFound = Typsnitt med id=%fontId% hittades inte. diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/locales/AppResources_uk.properties b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/locales/AppResources_uk.properties new file mode 100644 index 000000000..78224a30f --- /dev/null +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/locales/AppResources_uk.properties @@ -0,0 +1,36 @@ +# Copyright (C) 2010-2014 JPEXS +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +decompilationError = \u041f\u043e\u043c\u0438\u043b\u043a\u0430 \u0434\u0435\u043a\u043e\u043c\u043f\u0456\u043b\u044f\u0446\u0456\u0457 +decompilationError.timeout = \u0422\u0430\u0439\u043c\u0430\u0443\u0442 ({0}) \u0431\u0443\u043b\u043e \u0434\u043e\u0441\u044f\u0433\u043d\u0443\u0442\u043e +decompilationError.timeout.description = \u0414\u0435\u043a\u043e\u043c\u043f\u0456\u043b\u044f\u0446\u0456\u044f \u043f\u0435\u0440\u0435\u0440\u0432\u0430\u043d\u0430 \u0447\u0435\u0440\u0435\u0437 \u0442\u0430\u0439\u043c\u0430\u0443\u0442 +decompilationError.obfuscated = \u041a\u043e\u0434 \u043c\u043e\u0436\u0435 \u0431\u0443\u0442\u0438 \u043e\u0431\u0444\u0443\u0441\u043a\u043e\u0432\u0430\u043d\u0438\u0439 +decompilationError.errorType = \u0422\u0438\u043f \u043f\u043e\u043c\u0438\u043b\u043a\u0438 +decompilationError.error.description = \u0414\u0435\u043a\u043e\u043c\u043f\u0456\u043b\u044f\u0446\u0456\u044f \u043f\u0435\u0440\u0435\u0440\u0432\u0430\u043d\u0430 \u0447\u0435\u0440\u0435\u0437 \u043f\u043e\u043c\u0438\u043b\u043a\u0443 + +decompilation.skipped = \u0414\u0435\u043a\u043e\u043c\u043f\u0456\u043b\u044f\u0446\u0456\u044e \u043f\u0440\u043e\u043f\u0443\u0449\u0435\u043d\u043e +decompilation.unsupported = \u041d\u0435 \u043f\u0456\u0434\u0442\u0440\u0438\u043c\u0443\u0454\u0442\u044c\u0441\u044f \u0434\u0435\u043a\u043e\u043c\u043f\u0456\u043b\u044f\u0442\u043e\u0440\u043e\u043c +decompilerMark = decompiler mark + +#example: 1 hour and 2 minutes +timeFormat.and = \u0442\u0430 +timeFormat.hour = \u0433\u043e\u0434. +timeFormat.hours = \u0433\u043e\u0434. +timeFormat.minute = \u0445\u0432. +timeFormat.minutes = \u0445\u0432. +timeFormat.second = \u0441\u0435\u043a. +timeFormat.seconds = \u0441\u0435\u043a. + +fontNotFound = \u0428\u0440\u0438\u0444\u0442 \u0437 id=%fontId% \u043d\u0435 \u0437\u043d\u0430\u0439\u0434\u0435\u043d\u043e. diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/locales/AppResources_zh.properties b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/locales/AppResources_zh.properties new file mode 100644 index 000000000..532368772 --- /dev/null +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/locales/AppResources_zh.properties @@ -0,0 +1,15 @@ +# Copyright (C) 2010-2014 JPEXS +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineTextTag.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineTextTag.java index be1e781ff..fc9eb2603 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineTextTag.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineTextTag.java @@ -12,10 +12,11 @@ * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public - * License along with this library. */ + * License along with this library. + */ package com.jpexs.decompiler.flash.tags; -import com.jpexs.decompiler.flash.AppStrings; +import com.jpexs.decompiler.flash.AppResources; import com.jpexs.decompiler.flash.SWF; import com.jpexs.decompiler.flash.SWFInputStream; import com.jpexs.decompiler.flash.SWFOutputStream; @@ -168,7 +169,7 @@ public class DefineTextTag extends TextTag { } if (fnt == null) { - ret += AppStrings.translate("fontNotFound").replace("%fontId%", Integer.toString(rec.fontId)); + ret += AppResources.translate("fontNotFound").replace("%fontId%", Integer.toString(rec.fontId)); } else { ret += Helper.escapeString(rec.getText(fnt)).replace("[", "\\[").replace("]", "\\]"); } diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/treeitems/HeaderItem.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/treeitems/HeaderItem.java index 20fd01a85..2af12c7d1 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/treeitems/HeaderItem.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/treeitems/HeaderItem.java @@ -12,10 +12,10 @@ * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public - * License along with this library. */ + * License along with this library. + */ package com.jpexs.decompiler.flash.treeitems; -import com.jpexs.decompiler.flash.AppStrings; import com.jpexs.decompiler.flash.SWF; /** @@ -25,9 +25,11 @@ import com.jpexs.decompiler.flash.SWF; public class HeaderItem implements TreeItem { private final SWF swf; + private final String name; - public HeaderItem(SWF swf) { + public HeaderItem(SWF swf, String name) { this.swf = swf; + this.name = name; } @Override @@ -37,7 +39,7 @@ public class HeaderItem implements TreeItem { @Override public String toString() { - return AppStrings.translate("node.header"); + return name; } } diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/treenodes/HeaderNode.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/treenodes/HeaderNode.java index cf33b23ad..258de9cd5 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/treenodes/HeaderNode.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/treenodes/HeaderNode.java @@ -12,7 +12,8 @@ * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public - * License along with this library. */ + * License along with this library. + */ package com.jpexs.decompiler.flash.treenodes; import com.jpexs.decompiler.flash.treeitems.HeaderItem; diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/graph/MarkItem.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/graph/MarkItem.java index eab086535..f55c5fce4 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/graph/MarkItem.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/graph/MarkItem.java @@ -12,10 +12,11 @@ * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public - * License along with this library. */ + * License along with this library. + */ package com.jpexs.decompiler.graph; -import com.jpexs.decompiler.flash.AppStrings; +import com.jpexs.decompiler.flash.AppResources; import com.jpexs.decompiler.flash.helpers.GraphTextWriter; import com.jpexs.decompiler.graph.model.LocalData; @@ -34,7 +35,7 @@ public class MarkItem extends GraphTargetItem { @Override public GraphTextWriter appendTo(GraphTextWriter writer, LocalData localData) { - return writer.append("//" + AppStrings.translate("decompilerMark") + ":" + mark); + return writer.append("//" + AppResources.translate("decompilerMark") + ":" + mark); } public String getMark() { diff --git a/libsrc/ffdec_lib/src/com/jpexs/helpers/Helper.java b/libsrc/ffdec_lib/src/com/jpexs/helpers/Helper.java index 6d39af092..9457ae2cf 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/helpers/Helper.java +++ b/libsrc/ffdec_lib/src/com/jpexs/helpers/Helper.java @@ -16,11 +16,10 @@ */ package com.jpexs.helpers; -import com.jpexs.decompiler.flash.AppStrings; +import com.jpexs.decompiler.flash.AppResources; import com.jpexs.decompiler.flash.configuration.Configuration; import com.jpexs.decompiler.flash.helpers.Freed; import com.jpexs.decompiler.flash.helpers.GraphTextWriter; -import com.jpexs.decompiler.flash.helpers.HilightedTextWriter; import com.jpexs.decompiler.graph.TranslateStack; import com.jpexs.decompiler.graph.model.LocalData; import com.jpexs.helpers.utf8.Utf8Helper; @@ -651,13 +650,13 @@ public class Helper { timeM %= 60; String timeStr = ""; - String strAnd = AppStrings.translate("timeFormat.and"); - String strHour = AppStrings.translate("timeFormat.hour"); - String strHours = AppStrings.translate("timeFormat.hours"); - String strMinute = AppStrings.translate("timeFormat.minute"); - String strMinutes = AppStrings.translate("timeFormat.minutes"); - String strSecond = AppStrings.translate("timeFormat.second"); - String strSeconds = AppStrings.translate("timeFormat.seconds"); + String strAnd = AppResources.translate("timeFormat.and"); + String strHour = AppResources.translate("timeFormat.hour"); + String strHours = AppResources.translate("timeFormat.hours"); + String strMinute = AppResources.translate("timeFormat.minute"); + String strMinutes = AppResources.translate("timeFormat.minutes"); + String strSecond = AppResources.translate("timeFormat.second"); + String strSeconds = AppResources.translate("timeFormat.seconds"); if (timeH > 0) { timeStr += timeH + " " + (timeH > 1 ? strHours : strHour); @@ -681,10 +680,10 @@ public class Helper { public static GraphTextWriter byteArrayToHexWithHeader(GraphTextWriter writer, byte[] data) { writer.appendNoHilight("#hexdata").newLine().newLine(); - return byteArrayToHex(writer, data, 8, 8, -1, false, false); + return byteArrayToHex(writer, data, 8, 8, false, false); } - public static GraphTextWriter byteArrayToHex(GraphTextWriter writer, byte[] data, int bytesPerRow, int groupSize, int limit, boolean addChars, boolean showAddress) { + public static GraphTextWriter byteArrayToHex(GraphTextWriter writer, byte[] data, int bytesPerRow, int groupSize, boolean addChars, boolean showAddress) { /* // hex data from decompiled actions Scanner scanner = new Scanner(srcWithHex); @@ -697,9 +696,6 @@ public class Helper { } }*/ int length = data.length; - if (limit != -1 && length > limit) { - length = limit; - } int rowCount = length / bytesPerRow; if (length % bytesPerRow > 0) { @@ -754,19 +750,9 @@ public class Helper { } writer.newLine(); - if (limit != -1 && data.length > limit) { - writer.appendNoHilight(AppStrings.translate("binaryData.truncateWarning").replace("%count%", Integer.toString(data.length - limit))); - } - return writer; } - public static String byteArrayToHex(byte[] data, int bytesPerRow, int limit) { - HilightedTextWriter writer = new HilightedTextWriter(Configuration.getCodeFormatting(), false); - byteArrayToHex(writer, data, bytesPerRow, 8, limit, true, true); - return writer.toString(); - } - public static byte[] getBytesFromHexaText(String text) { Scanner scanner = new Scanner(text); scanner.nextLine(); // ignore first line @@ -809,23 +795,23 @@ public class Helper { public static void appendTimeoutComment(GraphTextWriter writer, int timeout) { writer.appendNoHilight("/*").newLine(); - writer.appendNoHilight(" * ").appendNoHilight(AppStrings.translate("decompilationError")).newLine(); - writer.appendNoHilight(" * ").appendNoHilight(MessageFormat.format(AppStrings.translate("decompilationError.timeout"), Helper.formatTimeToText(timeout))).newLine(); + writer.appendNoHilight(" * ").appendNoHilight(AppResources.translate("decompilationError")).newLine(); + writer.appendNoHilight(" * ").appendNoHilight(MessageFormat.format(AppResources.translate("decompilationError.timeout"), Helper.formatTimeToText(timeout))).newLine(); writer.appendNoHilight(" */").newLine(); writer.appendNoHilight("throw new flash.errors.IllegalOperationError(\""). - appendNoHilight(AppStrings.translate("decompilationError.timeout.description")). + appendNoHilight(AppResources.translate("decompilationError.timeout.description")). appendNoHilight("\");").newLine(); } public static void appendErrorComment(GraphTextWriter writer, Throwable ex) { writer.appendNoHilight("/*").newLine(); - writer.appendNoHilight(" * ").appendNoHilight(AppStrings.translate("decompilationError")).newLine(); - writer.appendNoHilight(" * ").appendNoHilight(AppStrings.translate("decompilationError.obfuscated")).newLine(); - writer.appendNoHilight(" * ").appendNoHilight(AppStrings.translate("decompilationError.errorType")). + writer.appendNoHilight(" * ").appendNoHilight(AppResources.translate("decompilationError")).newLine(); + writer.appendNoHilight(" * ").appendNoHilight(AppResources.translate("decompilationError.obfuscated")).newLine(); + writer.appendNoHilight(" * ").appendNoHilight(AppResources.translate("decompilationError.errorType")). appendNoHilight(": " + ex.getClass().getSimpleName()).newLine(); writer.appendNoHilight(" */").newLine(); writer.appendNoHilight("throw new flash.errors.IllegalOperationError(\""). - appendNoHilight(AppStrings.translate("decompilationError.error.description")). + appendNoHilight(AppResources.translate("decompilationError.error.description")). appendNoHilight("\");").newLine(); } diff --git a/src/com/jpexs/decompiler/flash/gui/AdvancedSettingsDialog.java b/src/com/jpexs/decompiler/flash/gui/AdvancedSettingsDialog.java index b74588cba..a2fd50009 100644 --- a/src/com/jpexs/decompiler/flash/gui/AdvancedSettingsDialog.java +++ b/src/com/jpexs/decompiler/flash/gui/AdvancedSettingsDialog.java @@ -16,7 +16,6 @@ */ package com.jpexs.decompiler.flash.gui; -import com.jpexs.decompiler.flash.AppStrings; import com.jpexs.decompiler.flash.configuration.Configuration; import com.jpexs.decompiler.flash.configuration.ConfigurationCategory; import com.jpexs.decompiler.flash.configuration.ConfigurationItem; diff --git a/src/com/jpexs/decompiler/flash/gui/AppDialog.java b/src/com/jpexs/decompiler/flash/gui/AppDialog.java index b1c53b135..90edc9289 100644 --- a/src/com/jpexs/decompiler/flash/gui/AppDialog.java +++ b/src/com/jpexs/decompiler/flash/gui/AppDialog.java @@ -16,7 +16,6 @@ */ package com.jpexs.decompiler.flash.gui; -import com.jpexs.decompiler.flash.AppStrings; import com.jpexs.decompiler.flash.configuration.Configuration; import java.awt.Window; import java.util.ResourceBundle; diff --git a/src/com/jpexs/decompiler/flash/gui/AppFrame.java b/src/com/jpexs/decompiler/flash/gui/AppFrame.java index 1a7db4d0a..08e2e11e2 100644 --- a/src/com/jpexs/decompiler/flash/gui/AppFrame.java +++ b/src/com/jpexs/decompiler/flash/gui/AppFrame.java @@ -1,46 +1,45 @@ -/* - * Copyright (C) 2010-2014 JPEXS - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package com.jpexs.decompiler.flash.gui; - -import com.jpexs.decompiler.flash.AppStrings; -import java.util.ResourceBundle; -import javax.swing.JFrame; - -/** - * - * @author JPEXS - */ -public abstract class AppFrame extends JFrame { - - private ResourceBundle resourceBundle; - - public AppFrame() { - if (getClass().equals(MainFrameClassic.class)) { - resourceBundle = ResourceBundle.getBundle(AppStrings.getResourcePath(MainFrame.class)); - } else { - resourceBundle = ResourceBundle.getBundle(AppStrings.getResourcePath(getClass())); - } - } - - public String translate(String key) { - return resourceBundle.getString(key); - } - - public void updateLanguage() { - resourceBundle = ResourceBundle.getBundle(AppStrings.getResourcePath(getClass())); - } -} +/* + * Copyright (C) 2010-2014 JPEXS + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.jpexs.decompiler.flash.gui; + +import java.util.ResourceBundle; +import javax.swing.JFrame; + +/** + * + * @author JPEXS + */ +public abstract class AppFrame extends JFrame { + + private ResourceBundle resourceBundle; + + public AppFrame() { + if (getClass().equals(MainFrameClassic.class)) { + resourceBundle = ResourceBundle.getBundle(AppStrings.getResourcePath(MainFrame.class)); + } else { + resourceBundle = ResourceBundle.getBundle(AppStrings.getResourcePath(getClass())); + } + } + + public String translate(String key) { + return resourceBundle.getString(key); + } + + public void updateLanguage() { + resourceBundle = ResourceBundle.getBundle(AppStrings.getResourcePath(getClass())); + } +} diff --git a/src/com/jpexs/decompiler/flash/gui/AppRibbonFrame.java b/src/com/jpexs/decompiler/flash/gui/AppRibbonFrame.java index b758b2866..99f8dbb81 100644 --- a/src/com/jpexs/decompiler/flash/gui/AppRibbonFrame.java +++ b/src/com/jpexs/decompiler/flash/gui/AppRibbonFrame.java @@ -1,42 +1,41 @@ -/* - * Copyright (C) 2010-2014 JPEXS - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package com.jpexs.decompiler.flash.gui; - -import com.jpexs.decompiler.flash.AppStrings; -import java.util.ResourceBundle; -import org.pushingpixels.flamingo.api.ribbon.JRibbonFrame; - -/** - * - * @author JPEXS - */ -public abstract class AppRibbonFrame extends JRibbonFrame { - - private final ResourceBundle resourceBundle; - - public AppRibbonFrame() { - if (getClass().equals(MainFrameRibbon.class)) { - resourceBundle = ResourceBundle.getBundle(AppStrings.getResourcePath(MainFrame.class)); - } else { - resourceBundle = ResourceBundle.getBundle(AppStrings.getResourcePath(getClass())); - } - } - - public String translate(String key) { - return resourceBundle.getString(key); - } -} +/* + * Copyright (C) 2010-2014 JPEXS + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.jpexs.decompiler.flash.gui; + +import java.util.ResourceBundle; +import org.pushingpixels.flamingo.api.ribbon.JRibbonFrame; + +/** + * + * @author JPEXS + */ +public abstract class AppRibbonFrame extends JRibbonFrame { + + private final ResourceBundle resourceBundle; + + public AppRibbonFrame() { + if (getClass().equals(MainFrameRibbon.class)) { + resourceBundle = ResourceBundle.getBundle(AppStrings.getResourcePath(MainFrame.class)); + } else { + resourceBundle = ResourceBundle.getBundle(AppStrings.getResourcePath(getClass())); + } + } + + public String translate(String key) { + return resourceBundle.getString(key); + } +} diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/AppStrings.java b/src/com/jpexs/decompiler/flash/gui/AppStrings.java similarity index 95% rename from libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/AppStrings.java rename to src/com/jpexs/decompiler/flash/gui/AppStrings.java index 944afce77..a6c296127 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/AppStrings.java +++ b/src/com/jpexs/decompiler/flash/gui/AppStrings.java @@ -12,8 +12,9 @@ * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public - * License along with this library. */ -package com.jpexs.decompiler.flash; + * License along with this library. + */ +package com.jpexs.decompiler.flash.gui; import java.util.ResourceBundle; diff --git a/src/com/jpexs/decompiler/flash/gui/FontEmbedDialog.java b/src/com/jpexs/decompiler/flash/gui/FontEmbedDialog.java index a12df4e2d..25779bbf4 100644 --- a/src/com/jpexs/decompiler/flash/gui/FontEmbedDialog.java +++ b/src/com/jpexs/decompiler/flash/gui/FontEmbedDialog.java @@ -1,220 +1,219 @@ -/* - * Copyright (C) 2010-2014 JPEXS - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package com.jpexs.decompiler.flash.gui; - -import com.jpexs.decompiler.flash.AppStrings; -import com.jpexs.decompiler.flash.tags.base.FontTag; -import com.jpexs.decompiler.flash.tags.font.CharacterRanges; -import java.awt.Container; -import java.awt.Dimension; -import java.awt.FlowLayout; -import java.awt.Font; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.awt.event.ItemEvent; -import java.awt.event.ItemListener; -import java.awt.event.KeyAdapter; -import java.awt.event.KeyEvent; -import java.util.Set; -import java.util.TreeSet; -import java.util.Vector; -import javax.swing.Box; -import javax.swing.BoxLayout; -import javax.swing.JButton; -import javax.swing.JCheckBox; -import javax.swing.JComboBox; -import javax.swing.JLabel; -import javax.swing.JPanel; -import javax.swing.JScrollPane; -import javax.swing.JTextField; - -/** - * - * @author JPEXS - */ -public class FontEmbedDialog extends AppDialog implements ActionListener { - - private static final String ACTION_OK = "OK"; - private static final String ACTION_CANCEL = "CANCEL"; - - private static final int SAMPLE_MAX_LENGTH = 50; - - private final JComboBox sourceFont; - private final JCheckBox[] rangeCheckboxes; - private final String rangeNames[]; - private final JLabel[] rangeSamples; - private final JTextField individualCharsField; - private boolean result = false; - private JLabel individialSample; - private final int style; - - public String getSelectedFont() { - return sourceFont.getSelectedItem().toString(); - } - - public Set getSelectedChars() { - Set chars = new TreeSet<>(); - Font f = new Font(getSelectedFont(), style, new JLabel().getFont().getSize()); - for (int i = 0; i < rangeCheckboxes.length; i++) { - if (rangeCheckboxes[i].isSelected()) { - int codes[] = CharacterRanges.rangeCodes(i); - for (int c : codes) { - if (f.canDisplay(c)) { - chars.add(c); - } - } - } - } - String indStr = individualCharsField.getText(); - for (int i = 0; i < indStr.length(); i++) { - if (f.canDisplay(indStr.codePointAt(i))) { - chars.add(indStr.codePointAt(i)); - } - } - return chars; - } - - public FontEmbedDialog(String selectedFont, String selectedChars, int style) { - setSize(900, 600); - this.style = style; - setDefaultCloseOperation(HIDE_ON_CLOSE); - setTitle(translate("dialog.title")); - - Container cnt = getContentPane(); - cnt.setLayout(new BoxLayout(cnt, BoxLayout.Y_AXIS)); - - individialSample = new JLabel(); - sourceFont = new JComboBox<>(new Vector<>(FontTag.fontNames)); - sourceFont.setSelectedItem(selectedFont); - cnt.add(sourceFont); - JPanel rangesPanel = new JPanel(); - rangesPanel.setLayout(new BoxLayout(rangesPanel, BoxLayout.Y_AXIS)); - int rc = CharacterRanges.rangeCount(); - rangeCheckboxes = new JCheckBox[rc]; - rangeSamples = new JLabel[rc]; - rangeNames = new String[rc]; - for (int i = 0; i < rc; i++) { - rangeNames[i] = CharacterRanges.rangeName(i); - rangeSamples[i] = new JLabel(""); - rangeCheckboxes[i] = new JCheckBox(rangeNames[i]); - JPanel rangeRowPanel = new JPanel(); - rangeRowPanel.setLayout(new BoxLayout(rangeRowPanel, BoxLayout.X_AXIS)); - rangeRowPanel.add(rangeCheckboxes[i]); - rangeRowPanel.add(Box.createHorizontalGlue()); - rangeRowPanel.add(rangeSamples[i]); - rangeRowPanel.setAlignmentX(0); - rangesPanel.add(rangeRowPanel); - } - cnt.add(new JScrollPane(rangesPanel)); - - JPanel specialPanel = new JPanel(); - specialPanel.setLayout(new BoxLayout(specialPanel, BoxLayout.X_AXIS)); - specialPanel.add(new JLabel(translate("label.individual"))); - individualCharsField = new JTextField(); - individualCharsField.setPreferredSize(new Dimension(100, individualCharsField.getPreferredSize().height)); - individialSample = new JLabel(); - specialPanel.add(individualCharsField); - cnt.add(specialPanel); - cnt.add(individialSample); - - JPanel buttonsPanel = new JPanel(new FlowLayout()); - JButton okButton = new JButton(AppStrings.translate("button.ok")); - okButton.setActionCommand(ACTION_OK); - okButton.addActionListener(this); - JButton cancelButton = new JButton(AppStrings.translate("button.cancel")); - cancelButton.setActionCommand(ACTION_CANCEL); - cancelButton.addActionListener(this); - buttonsPanel.add(okButton); - buttonsPanel.add(cancelButton); - cnt.add(buttonsPanel); - View.setWindowIcon(this); - View.centerScreen(this); - setModalityType(ModalityType.APPLICATION_MODAL); - individualCharsField.setText(selectedChars); - getRootPane().setDefaultButton(okButton); - sourceFont.addItemListener(new ItemListener() { - @Override - public void itemStateChanged(ItemEvent e) { - updateCheckboxes(); - } - }); - updateCheckboxes(); - individualCharsField.addKeyListener(new KeyAdapter() { - @Override - public void keyTyped(KeyEvent e) { - updateIndividual(); - } - }); - } - - private void updateIndividual() { - String chars = individualCharsField.getText(); - Font f = new Font(getSelectedFont(), style, new JLabel().getFont().getSize()); - String visibleChars = ""; - for (int i = 0; i < chars.length(); i++) { - if (f.canDisplay(chars.codePointAt(i))) { - visibleChars += "" + chars.charAt(i); - } - } - individialSample.setText(visibleChars); - } - - private void updateCheckboxes() { - String fontStr = sourceFont.getSelectedItem().toString(); - Font f = new Font(fontStr, style, new JLabel().getFont().getSize()); - int rc = CharacterRanges.rangeCount(); - for (int i = 0; i < rc; i++) { - rangeNames[i] = CharacterRanges.rangeName(i); - int codes[] = CharacterRanges.rangeCodes(i); - int avail = 0; - String sample = ""; - for (int c = 0; c < codes.length; c++) { - if (f.canDisplay(codes[c])) { - if (avail < SAMPLE_MAX_LENGTH) { - sample += "" + (char) codes[c]; - } - avail++; - } - } - rangeSamples[i].setText(sample); - rangeSamples[i].setFont(f); - rangeCheckboxes[i].setText(translate("range.description").replace("%available%", "" + avail).replace("%name%", rangeNames[i]).replace("%total%", "" + codes.length)); - } - individialSample.setFont(f); - updateIndividual(); - } - - @Override - public void actionPerformed(ActionEvent e) { - switch (e.getActionCommand()) { - case ACTION_OK: - result = true; - setVisible(false); - break; - case ACTION_CANCEL: - result = false; - setVisible(false); - break; - } - } - - public boolean display() { - result = false; - setVisible(true); - return result; - } -} +/* + * Copyright (C) 2010-2014 JPEXS + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.jpexs.decompiler.flash.gui; + +import com.jpexs.decompiler.flash.tags.base.FontTag; +import com.jpexs.decompiler.flash.tags.font.CharacterRanges; +import java.awt.Container; +import java.awt.Dimension; +import java.awt.FlowLayout; +import java.awt.Font; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.event.ItemEvent; +import java.awt.event.ItemListener; +import java.awt.event.KeyAdapter; +import java.awt.event.KeyEvent; +import java.util.Set; +import java.util.TreeSet; +import java.util.Vector; +import javax.swing.Box; +import javax.swing.BoxLayout; +import javax.swing.JButton; +import javax.swing.JCheckBox; +import javax.swing.JComboBox; +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.JTextField; + +/** + * + * @author JPEXS + */ +public class FontEmbedDialog extends AppDialog implements ActionListener { + + private static final String ACTION_OK = "OK"; + private static final String ACTION_CANCEL = "CANCEL"; + + private static final int SAMPLE_MAX_LENGTH = 50; + + private final JComboBox sourceFont; + private final JCheckBox[] rangeCheckboxes; + private final String rangeNames[]; + private final JLabel[] rangeSamples; + private final JTextField individualCharsField; + private boolean result = false; + private JLabel individialSample; + private final int style; + + public String getSelectedFont() { + return sourceFont.getSelectedItem().toString(); + } + + public Set getSelectedChars() { + Set chars = new TreeSet<>(); + Font f = new Font(getSelectedFont(), style, new JLabel().getFont().getSize()); + for (int i = 0; i < rangeCheckboxes.length; i++) { + if (rangeCheckboxes[i].isSelected()) { + int codes[] = CharacterRanges.rangeCodes(i); + for (int c : codes) { + if (f.canDisplay(c)) { + chars.add(c); + } + } + } + } + String indStr = individualCharsField.getText(); + for (int i = 0; i < indStr.length(); i++) { + if (f.canDisplay(indStr.codePointAt(i))) { + chars.add(indStr.codePointAt(i)); + } + } + return chars; + } + + public FontEmbedDialog(String selectedFont, String selectedChars, int style) { + setSize(900, 600); + this.style = style; + setDefaultCloseOperation(HIDE_ON_CLOSE); + setTitle(translate("dialog.title")); + + Container cnt = getContentPane(); + cnt.setLayout(new BoxLayout(cnt, BoxLayout.Y_AXIS)); + + individialSample = new JLabel(); + sourceFont = new JComboBox<>(new Vector<>(FontTag.fontNames)); + sourceFont.setSelectedItem(selectedFont); + cnt.add(sourceFont); + JPanel rangesPanel = new JPanel(); + rangesPanel.setLayout(new BoxLayout(rangesPanel, BoxLayout.Y_AXIS)); + int rc = CharacterRanges.rangeCount(); + rangeCheckboxes = new JCheckBox[rc]; + rangeSamples = new JLabel[rc]; + rangeNames = new String[rc]; + for (int i = 0; i < rc; i++) { + rangeNames[i] = CharacterRanges.rangeName(i); + rangeSamples[i] = new JLabel(""); + rangeCheckboxes[i] = new JCheckBox(rangeNames[i]); + JPanel rangeRowPanel = new JPanel(); + rangeRowPanel.setLayout(new BoxLayout(rangeRowPanel, BoxLayout.X_AXIS)); + rangeRowPanel.add(rangeCheckboxes[i]); + rangeRowPanel.add(Box.createHorizontalGlue()); + rangeRowPanel.add(rangeSamples[i]); + rangeRowPanel.setAlignmentX(0); + rangesPanel.add(rangeRowPanel); + } + cnt.add(new JScrollPane(rangesPanel)); + + JPanel specialPanel = new JPanel(); + specialPanel.setLayout(new BoxLayout(specialPanel, BoxLayout.X_AXIS)); + specialPanel.add(new JLabel(translate("label.individual"))); + individualCharsField = new JTextField(); + individualCharsField.setPreferredSize(new Dimension(100, individualCharsField.getPreferredSize().height)); + individialSample = new JLabel(); + specialPanel.add(individualCharsField); + cnt.add(specialPanel); + cnt.add(individialSample); + + JPanel buttonsPanel = new JPanel(new FlowLayout()); + JButton okButton = new JButton(AppStrings.translate("button.ok")); + okButton.setActionCommand(ACTION_OK); + okButton.addActionListener(this); + JButton cancelButton = new JButton(AppStrings.translate("button.cancel")); + cancelButton.setActionCommand(ACTION_CANCEL); + cancelButton.addActionListener(this); + buttonsPanel.add(okButton); + buttonsPanel.add(cancelButton); + cnt.add(buttonsPanel); + View.setWindowIcon(this); + View.centerScreen(this); + setModalityType(ModalityType.APPLICATION_MODAL); + individualCharsField.setText(selectedChars); + getRootPane().setDefaultButton(okButton); + sourceFont.addItemListener(new ItemListener() { + @Override + public void itemStateChanged(ItemEvent e) { + updateCheckboxes(); + } + }); + updateCheckboxes(); + individualCharsField.addKeyListener(new KeyAdapter() { + @Override + public void keyTyped(KeyEvent e) { + updateIndividual(); + } + }); + } + + private void updateIndividual() { + String chars = individualCharsField.getText(); + Font f = new Font(getSelectedFont(), style, new JLabel().getFont().getSize()); + String visibleChars = ""; + for (int i = 0; i < chars.length(); i++) { + if (f.canDisplay(chars.codePointAt(i))) { + visibleChars += "" + chars.charAt(i); + } + } + individialSample.setText(visibleChars); + } + + private void updateCheckboxes() { + String fontStr = sourceFont.getSelectedItem().toString(); + Font f = new Font(fontStr, style, new JLabel().getFont().getSize()); + int rc = CharacterRanges.rangeCount(); + for (int i = 0; i < rc; i++) { + rangeNames[i] = CharacterRanges.rangeName(i); + int codes[] = CharacterRanges.rangeCodes(i); + int avail = 0; + String sample = ""; + for (int c = 0; c < codes.length; c++) { + if (f.canDisplay(codes[c])) { + if (avail < SAMPLE_MAX_LENGTH) { + sample += "" + (char) codes[c]; + } + avail++; + } + } + rangeSamples[i].setText(sample); + rangeSamples[i].setFont(f); + rangeCheckboxes[i].setText(translate("range.description").replace("%available%", "" + avail).replace("%name%", rangeNames[i]).replace("%total%", "" + codes.length)); + } + individialSample.setFont(f); + updateIndividual(); + } + + @Override + public void actionPerformed(ActionEvent e) { + switch (e.getActionCommand()) { + case ACTION_OK: + result = true; + setVisible(false); + break; + case ACTION_CANCEL: + result = false; + setVisible(false); + break; + } + } + + public boolean display() { + result = false; + setVisible(true); + return result; + } +} diff --git a/src/com/jpexs/decompiler/flash/gui/GenericTagTreePanel.java b/src/com/jpexs/decompiler/flash/gui/GenericTagTreePanel.java index 4b25295c5..4bec55b39 100644 --- a/src/com/jpexs/decompiler/flash/gui/GenericTagTreePanel.java +++ b/src/com/jpexs/decompiler/flash/gui/GenericTagTreePanel.java @@ -16,7 +16,6 @@ */ package com.jpexs.decompiler.flash.gui; -import com.jpexs.decompiler.flash.AppStrings; import com.jpexs.decompiler.flash.SWF; import com.jpexs.decompiler.flash.SWFInputStream; import com.jpexs.decompiler.flash.gui.generictageditors.BooleanEditor; diff --git a/src/com/jpexs/decompiler/flash/gui/GuiAbortRetryIgnoreHandler.java b/src/com/jpexs/decompiler/flash/gui/GuiAbortRetryIgnoreHandler.java index 5e7739270..94e8a883a 100644 --- a/src/com/jpexs/decompiler/flash/gui/GuiAbortRetryIgnoreHandler.java +++ b/src/com/jpexs/decompiler/flash/gui/GuiAbortRetryIgnoreHandler.java @@ -1,43 +1,42 @@ -/* - * Copyright (C) 2010-2014 JPEXS - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package com.jpexs.decompiler.flash.gui; - -import com.jpexs.decompiler.flash.AbortRetryIgnoreHandler; -import com.jpexs.decompiler.flash.AppStrings; -import javax.swing.JOptionPane; - -/** - * - * @author JPEXS - */ -public class GuiAbortRetryIgnoreHandler implements AbortRetryIgnoreHandler { - - @Override - public int handle(Throwable thrown) { - synchronized (GuiAbortRetryIgnoreHandler.class) { - String[] options = new String[]{AppStrings.translate("button.abort"), AppStrings.translate("button.retry"), AppStrings.translate("button.ignore")}; - return View.showOptionDialog(null, AppStrings.translate("error.occured").replace("%error%", thrown.getLocalizedMessage()), AppStrings.translate("error"), JOptionPane.YES_NO_OPTION, JOptionPane.ERROR_MESSAGE, null, options, ""); - } - } - - @Override - public AbortRetryIgnoreHandler getNewInstance() { - // there are no non-static field in this class, so return the original instance - return this; - } - -} +/* + * Copyright (C) 2010-2014 JPEXS + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.jpexs.decompiler.flash.gui; + +import com.jpexs.decompiler.flash.AbortRetryIgnoreHandler; +import javax.swing.JOptionPane; + +/** + * + * @author JPEXS + */ +public class GuiAbortRetryIgnoreHandler implements AbortRetryIgnoreHandler { + + @Override + public int handle(Throwable thrown) { + synchronized (GuiAbortRetryIgnoreHandler.class) { + String[] options = new String[]{AppStrings.translate("button.abort"), AppStrings.translate("button.retry"), AppStrings.translate("button.ignore")}; + return View.showOptionDialog(null, AppStrings.translate("error.occured").replace("%error%", thrown.getLocalizedMessage()), AppStrings.translate("error"), JOptionPane.YES_NO_OPTION, JOptionPane.ERROR_MESSAGE, null, options, ""); + } + } + + @Override + public AbortRetryIgnoreHandler getNewInstance() { + // there are no non-static field in this class, so return the original instance + return this; + } + +} diff --git a/src/com/jpexs/decompiler/flash/gui/HeaderInfoPanel.java b/src/com/jpexs/decompiler/flash/gui/HeaderInfoPanel.java index 069d25f81..bb9c6d38d 100644 --- a/src/com/jpexs/decompiler/flash/gui/HeaderInfoPanel.java +++ b/src/com/jpexs/decompiler/flash/gui/HeaderInfoPanel.java @@ -16,7 +16,6 @@ */ package com.jpexs.decompiler.flash.gui; -import com.jpexs.decompiler.flash.AppStrings; import com.jpexs.decompiler.flash.SWF; import com.jpexs.decompiler.flash.gui.helpers.SpringUtilities; import javax.swing.JLabel; diff --git a/src/com/jpexs/decompiler/flash/gui/ImagePanel.java b/src/com/jpexs/decompiler/flash/gui/ImagePanel.java index 7cefef044..ad7891373 100644 --- a/src/com/jpexs/decompiler/flash/gui/ImagePanel.java +++ b/src/com/jpexs/decompiler/flash/gui/ImagePanel.java @@ -16,7 +16,6 @@ */ package com.jpexs.decompiler.flash.gui; -import com.jpexs.decompiler.flash.AppStrings; import com.jpexs.decompiler.flash.SWF; import com.jpexs.decompiler.flash.exporters.commonshape.Matrix; import com.jpexs.decompiler.flash.gui.player.MediaDisplay; diff --git a/src/com/jpexs/decompiler/flash/gui/LoadFromCacheFrame.java b/src/com/jpexs/decompiler/flash/gui/LoadFromCacheFrame.java index 797e09829..f958d3260 100644 --- a/src/com/jpexs/decompiler/flash/gui/LoadFromCacheFrame.java +++ b/src/com/jpexs/decompiler/flash/gui/LoadFromCacheFrame.java @@ -19,7 +19,6 @@ package com.jpexs.decompiler.flash.gui; import com.jpexs.browsers.cache.CacheEntry; import com.jpexs.browsers.cache.CacheImplementation; import com.jpexs.browsers.cache.CacheReader; -import com.jpexs.decompiler.flash.AppStrings; import com.jpexs.decompiler.flash.SWFSourceInfo; import com.jpexs.decompiler.flash.configuration.Configuration; import com.jpexs.helpers.Helper; diff --git a/src/com/jpexs/decompiler/flash/gui/LoadFromMemoryFrame.java b/src/com/jpexs/decompiler/flash/gui/LoadFromMemoryFrame.java index d44826f13..33cf7c293 100644 --- a/src/com/jpexs/decompiler/flash/gui/LoadFromMemoryFrame.java +++ b/src/com/jpexs/decompiler/flash/gui/LoadFromMemoryFrame.java @@ -16,7 +16,6 @@ */ package com.jpexs.decompiler.flash.gui; -import com.jpexs.decompiler.flash.AppStrings; import com.jpexs.decompiler.flash.SWF; import com.jpexs.decompiler.flash.SWFSourceInfo; import com.jpexs.decompiler.flash.configuration.Configuration; diff --git a/src/com/jpexs/decompiler/flash/gui/Main.java b/src/com/jpexs/decompiler/flash/gui/Main.java index 3c4c455aa..0a2c6819c 100644 --- a/src/com/jpexs/decompiler/flash/gui/Main.java +++ b/src/com/jpexs/decompiler/flash/gui/Main.java @@ -16,7 +16,6 @@ */ package com.jpexs.decompiler.flash.gui; -import com.jpexs.decompiler.flash.AppStrings; import com.jpexs.decompiler.flash.ApplicationInfo; import com.jpexs.decompiler.flash.EventListener; import com.jpexs.decompiler.flash.SWF; diff --git a/src/com/jpexs/decompiler/flash/gui/MainPanel.java b/src/com/jpexs/decompiler/flash/gui/MainPanel.java index b0787e818..c22c6cd24 100644 --- a/src/com/jpexs/decompiler/flash/gui/MainPanel.java +++ b/src/com/jpexs/decompiler/flash/gui/MainPanel.java @@ -17,7 +17,6 @@ package com.jpexs.decompiler.flash.gui; import com.jpexs.decompiler.flash.AbortRetryIgnoreHandler; -import com.jpexs.decompiler.flash.AppStrings; import com.jpexs.decompiler.flash.ApplicationInfo; import com.jpexs.decompiler.flash.SWF; import com.jpexs.decompiler.flash.abc.ABC; diff --git a/src/com/jpexs/decompiler/flash/gui/PreviewPanel.java b/src/com/jpexs/decompiler/flash/gui/PreviewPanel.java index 36ab9fc2c..0a2bbb8f4 100644 --- a/src/com/jpexs/decompiler/flash/gui/PreviewPanel.java +++ b/src/com/jpexs/decompiler/flash/gui/PreviewPanel.java @@ -16,7 +16,6 @@ */ package com.jpexs.decompiler.flash.gui; -import com.jpexs.decompiler.flash.AppStrings; import com.jpexs.decompiler.flash.SWF; import com.jpexs.decompiler.flash.SWFOutputStream; import com.jpexs.decompiler.flash.action.Action; diff --git a/src/com/jpexs/decompiler/flash/gui/SearchPanel.java b/src/com/jpexs/decompiler/flash/gui/SearchPanel.java index d620dcf93..883696cee 100644 --- a/src/com/jpexs/decompiler/flash/gui/SearchPanel.java +++ b/src/com/jpexs/decompiler/flash/gui/SearchPanel.java @@ -1,152 +1,151 @@ -/* - * Copyright (C) 2010-2014 JPEXS - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package com.jpexs.decompiler.flash.gui; - -import com.jpexs.decompiler.flash.AppStrings; -import java.awt.Insets; -import java.awt.LayoutManager; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.util.ArrayList; -import java.util.List; -import javax.swing.JButton; -import javax.swing.JLabel; -import javax.swing.JPanel; -import javax.swing.SwingUtilities; -import javax.swing.text.JTextComponent; -import jsyntaxpane.actions.DocumentSearchData; - -/** - * - * @author JPEXS - * @param - */ -public class SearchPanel extends JPanel implements ActionListener { - - static final String ACTION_SEARCH_PREV = "SEARCHPREV"; - static final String ACTION_SEARCH_NEXT = "SEARCHNEXT"; - static final String ACTION_SEARCH_CANCEL = "SEARCHCANCEL"; - - private final SearchListener listener; - - private final JLabel searchPos; - private int foundPos = 0; - private final JLabel searchForLabel; - private String searchFor; - private boolean searchIgnoreCase; - private boolean searchRegexp; - private List found = new ArrayList<>(); - - public SearchPanel(LayoutManager lm, SearchListener listener) { - super(lm); - - this.listener = listener; - - JButton prevSearchButton = new JButton(View.getIcon("prev16")); - prevSearchButton.setMargin(new Insets(3, 3, 3, 3)); - prevSearchButton.addActionListener(this); - prevSearchButton.setActionCommand(ACTION_SEARCH_PREV); - JButton nextSearchButton = new JButton(View.getIcon("next16")); - nextSearchButton.setMargin(new Insets(3, 3, 3, 3)); - nextSearchButton.addActionListener(this); - nextSearchButton.setActionCommand(ACTION_SEARCH_NEXT); - JButton cancelSearchButton = new JButton(View.getIcon("cancel16")); - cancelSearchButton.setMargin(new Insets(3, 3, 3, 3)); - cancelSearchButton.addActionListener(this); - cancelSearchButton.setActionCommand(ACTION_SEARCH_CANCEL); - searchPos = new JLabel("0/0"); - searchForLabel = new JLabel(AppStrings.translate("search.info").replace("%text%", "")); - add(searchForLabel); - add(prevSearchButton); - add(new JLabel(AppStrings.translate("search.script") + " ")); - add(searchPos); - add(nextSearchButton); - add(cancelSearchButton); - setVisible(false); - } - - public void showQuickFindDialog(JTextComponent editor) { - DocumentSearchData dsd = DocumentSearchData.getFromEditor(editor); - dsd.setPattern(searchFor, searchRegexp, searchIgnoreCase); - dsd.showQuickFindDialogEx(editor, searchIgnoreCase, searchRegexp); - } - - public void setSearchText(String txt) { - searchFor = txt; - searchForLabel.setText(AppStrings.translate("search.info").replace("%text%", txt) + " "); - } - - public boolean setResults(List results) { - found = results; - if (found.isEmpty()) { - setVisible(false); - return false; - } else { - setPos(0); - setVisible(true); - return true; - } - } - - public void setOptions(boolean ignoreCase, boolean regExp) { - searchIgnoreCase = ignoreCase; - searchRegexp = regExp; - } - - public void setPos(int pos) { - foundPos = pos; - doUpdate(); - } - - public void clear() { - foundPos = 0; - found.clear(); - } - - private void doUpdate() { - SwingUtilities.invokeLater(new Runnable() { - @Override - public void run() { - searchPos.setText((foundPos + 1) + "/" + found.size()); - listener.updateSearchPos(found.get(foundPos)); - } - }); - } - - @Override - public void actionPerformed(ActionEvent e) { - switch (e.getActionCommand()) { - case ACTION_SEARCH_CANCEL: - foundPos = 0; - setVisible(false); - found = new ArrayList<>(); - searchFor = null; - break; - case ACTION_SEARCH_PREV: - foundPos--; - if (foundPos < 0) { - foundPos += found.size(); - } - doUpdate(); - break; - case ACTION_SEARCH_NEXT: - foundPos = (foundPos + 1) % found.size(); - doUpdate(); - break; - } - } -} +/* + * Copyright (C) 2010-2014 JPEXS + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.jpexs.decompiler.flash.gui; + +import java.awt.Insets; +import java.awt.LayoutManager; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.util.ArrayList; +import java.util.List; +import javax.swing.JButton; +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.SwingUtilities; +import javax.swing.text.JTextComponent; +import jsyntaxpane.actions.DocumentSearchData; + +/** + * + * @author JPEXS + * @param + */ +public class SearchPanel extends JPanel implements ActionListener { + + static final String ACTION_SEARCH_PREV = "SEARCHPREV"; + static final String ACTION_SEARCH_NEXT = "SEARCHNEXT"; + static final String ACTION_SEARCH_CANCEL = "SEARCHCANCEL"; + + private final SearchListener listener; + + private final JLabel searchPos; + private int foundPos = 0; + private final JLabel searchForLabel; + private String searchFor; + private boolean searchIgnoreCase; + private boolean searchRegexp; + private List found = new ArrayList<>(); + + public SearchPanel(LayoutManager lm, SearchListener listener) { + super(lm); + + this.listener = listener; + + JButton prevSearchButton = new JButton(View.getIcon("prev16")); + prevSearchButton.setMargin(new Insets(3, 3, 3, 3)); + prevSearchButton.addActionListener(this); + prevSearchButton.setActionCommand(ACTION_SEARCH_PREV); + JButton nextSearchButton = new JButton(View.getIcon("next16")); + nextSearchButton.setMargin(new Insets(3, 3, 3, 3)); + nextSearchButton.addActionListener(this); + nextSearchButton.setActionCommand(ACTION_SEARCH_NEXT); + JButton cancelSearchButton = new JButton(View.getIcon("cancel16")); + cancelSearchButton.setMargin(new Insets(3, 3, 3, 3)); + cancelSearchButton.addActionListener(this); + cancelSearchButton.setActionCommand(ACTION_SEARCH_CANCEL); + searchPos = new JLabel("0/0"); + searchForLabel = new JLabel(AppStrings.translate("search.info").replace("%text%", "")); + add(searchForLabel); + add(prevSearchButton); + add(new JLabel(AppStrings.translate("search.script") + " ")); + add(searchPos); + add(nextSearchButton); + add(cancelSearchButton); + setVisible(false); + } + + public void showQuickFindDialog(JTextComponent editor) { + DocumentSearchData dsd = DocumentSearchData.getFromEditor(editor); + dsd.setPattern(searchFor, searchRegexp, searchIgnoreCase); + dsd.showQuickFindDialogEx(editor, searchIgnoreCase, searchRegexp); + } + + public void setSearchText(String txt) { + searchFor = txt; + searchForLabel.setText(AppStrings.translate("search.info").replace("%text%", txt) + " "); + } + + public boolean setResults(List results) { + found = results; + if (found.isEmpty()) { + setVisible(false); + return false; + } else { + setPos(0); + setVisible(true); + return true; + } + } + + public void setOptions(boolean ignoreCase, boolean regExp) { + searchIgnoreCase = ignoreCase; + searchRegexp = regExp; + } + + public void setPos(int pos) { + foundPos = pos; + doUpdate(); + } + + public void clear() { + foundPos = 0; + found.clear(); + } + + private void doUpdate() { + SwingUtilities.invokeLater(new Runnable() { + @Override + public void run() { + searchPos.setText((foundPos + 1) + "/" + found.size()); + listener.updateSearchPos(found.get(foundPos)); + } + }); + } + + @Override + public void actionPerformed(ActionEvent e) { + switch (e.getActionCommand()) { + case ACTION_SEARCH_CANCEL: + foundPos = 0; + setVisible(false); + found = new ArrayList<>(); + searchFor = null; + break; + case ACTION_SEARCH_PREV: + foundPos--; + if (foundPos < 0) { + foundPos += found.size(); + } + doUpdate(); + break; + case ACTION_SEARCH_NEXT: + foundPos = (foundPos + 1) % found.size(); + doUpdate(); + break; + } + } +} diff --git a/src/com/jpexs/decompiler/flash/gui/SelectLanguageDialog.java b/src/com/jpexs/decompiler/flash/gui/SelectLanguageDialog.java index 3179a2b13..2a8f31c74 100644 --- a/src/com/jpexs/decompiler/flash/gui/SelectLanguageDialog.java +++ b/src/com/jpexs/decompiler/flash/gui/SelectLanguageDialog.java @@ -16,7 +16,6 @@ */ package com.jpexs.decompiler.flash.gui; -import com.jpexs.decompiler.flash.AppStrings; import com.jpexs.decompiler.flash.configuration.Configuration; import java.awt.BorderLayout; import java.awt.Container; diff --git a/src/com/jpexs/decompiler/flash/gui/SwfInMemory.java b/src/com/jpexs/decompiler/flash/gui/SwfInMemory.java index 2e706c04b..377f6d340 100644 --- a/src/com/jpexs/decompiler/flash/gui/SwfInMemory.java +++ b/src/com/jpexs/decompiler/flash/gui/SwfInMemory.java @@ -1,52 +1,51 @@ -/* - * Copyright (C) 2010-2014 JPEXS - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package com.jpexs.decompiler.flash.gui; - -import com.jpexs.decompiler.flash.AppStrings; -import com.jpexs.helpers.ReReadableInputStream; -import java.util.ResourceBundle; - -/** - * - * @author JPEXS - */ -public class SwfInMemory { - - public ReReadableInputStream is; - public int version; - public long fileSize; - public com.jpexs.process.Process process; - - public SwfInMemory(ReReadableInputStream is, int version, long fileSize, com.jpexs.process.Process process) { - this.is = is; - this.version = version; - this.fileSize = fileSize; - this.process = process; - } - - private static final ResourceBundle resourceBundle = ResourceBundle.getBundle(AppStrings.getResourcePath(LoadFromMemoryFrame.class)); - - public String translate(String key) { - return resourceBundle.getString(key); - } - - @Override - public String toString() { - String p = translate("swfitem").replace("%version%", "" + version).replace("%size%", "" + fileSize); - return p; - } -} +/* + * Copyright (C) 2010-2014 JPEXS + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.jpexs.decompiler.flash.gui; + +import com.jpexs.helpers.ReReadableInputStream; +import java.util.ResourceBundle; + +/** + * + * @author JPEXS + */ +public class SwfInMemory { + + public ReReadableInputStream is; + public int version; + public long fileSize; + public com.jpexs.process.Process process; + + public SwfInMemory(ReReadableInputStream is, int version, long fileSize, com.jpexs.process.Process process) { + this.is = is; + this.version = version; + this.fileSize = fileSize; + this.process = process; + } + + private static final ResourceBundle resourceBundle = ResourceBundle.getBundle(AppStrings.getResourcePath(LoadFromMemoryFrame.class)); + + public String translate(String key) { + return resourceBundle.getString(key); + } + + @Override + public String toString() { + String p = translate("swfitem").replace("%version%", "" + version).replace("%size%", "" + fileSize); + return p; + } +} diff --git a/src/com/jpexs/decompiler/flash/gui/TagTreeModel.java b/src/com/jpexs/decompiler/flash/gui/TagTreeModel.java index b16792886..de1449b1e 100644 --- a/src/com/jpexs/decompiler/flash/gui/TagTreeModel.java +++ b/src/com/jpexs/decompiler/flash/gui/TagTreeModel.java @@ -244,7 +244,7 @@ public class TagTreeModel implements TreeModel { } swfNode.scriptsNode = actionScriptNode; - ret.add(new HeaderNode(new HeaderItem(swf))); + ret.add(new HeaderNode(new HeaderItem(swf, AppStrings.translate("node.header")))); if (!shapesNode.subNodes.isEmpty()) { ret.add(shapesNode); diff --git a/src/com/jpexs/decompiler/flash/gui/View.java b/src/com/jpexs/decompiler/flash/gui/View.java index ce679d15b..3df20b3bf 100644 --- a/src/com/jpexs/decompiler/flash/gui/View.java +++ b/src/com/jpexs/decompiler/flash/gui/View.java @@ -16,7 +16,6 @@ */ package com.jpexs.decompiler.flash.gui; -import com.jpexs.decompiler.flash.AppStrings; import com.jpexs.decompiler.flash.configuration.ConfigurationItem; import java.awt.BorderLayout; import java.awt.Color; diff --git a/src/com/jpexs/decompiler/flash/gui/abc/ABCPanel.java b/src/com/jpexs/decompiler/flash/gui/abc/ABCPanel.java index 5ab0e6e03..6720ff4f7 100644 --- a/src/com/jpexs/decompiler/flash/gui/abc/ABCPanel.java +++ b/src/com/jpexs/decompiler/flash/gui/abc/ABCPanel.java @@ -16,7 +16,6 @@ */ package com.jpexs.decompiler.flash.gui.abc; -import com.jpexs.decompiler.flash.AppStrings; import com.jpexs.decompiler.flash.SWF; import com.jpexs.decompiler.flash.abc.ABC; import com.jpexs.decompiler.flash.abc.ClassPath; @@ -40,6 +39,7 @@ import com.jpexs.decompiler.flash.abc.types.traits.TraitSlotConst; import com.jpexs.decompiler.flash.abc.types.traits.Traits; import com.jpexs.decompiler.flash.abc.usages.MultinameUsage; import com.jpexs.decompiler.flash.configuration.Configuration; +import com.jpexs.decompiler.flash.gui.AppStrings; import com.jpexs.decompiler.flash.gui.HeaderLabel; import com.jpexs.decompiler.flash.gui.Main; import com.jpexs.decompiler.flash.gui.MainPanel; diff --git a/src/com/jpexs/decompiler/flash/gui/abc/ClassesListTreeModel.java b/src/com/jpexs/decompiler/flash/gui/abc/ClassesListTreeModel.java index d1903ef08..89720fa6a 100644 --- a/src/com/jpexs/decompiler/flash/gui/abc/ClassesListTreeModel.java +++ b/src/com/jpexs/decompiler/flash/gui/abc/ClassesListTreeModel.java @@ -1,188 +1,188 @@ -/* - * Copyright (C) 2010-2014 JPEXS, Paolo Cancedda - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package com.jpexs.decompiler.flash.gui.abc; - -import com.jpexs.decompiler.flash.AppStrings; -import com.jpexs.decompiler.flash.SWF; -import com.jpexs.decompiler.flash.abc.ClassPath; -import com.jpexs.decompiler.flash.abc.ScriptPack; -import com.jpexs.decompiler.flash.abc.types.traits.Trait; -import com.jpexs.decompiler.flash.abc.types.traits.TraitClass; -import com.jpexs.decompiler.flash.gui.abc.treenodes.TreeElement; -import com.jpexs.decompiler.flash.helpers.collections.MyEntry; -import com.jpexs.decompiler.flash.treeitems.TreeElementItem; -import com.jpexs.decompiler.flash.treenodes.TreeNode; -import java.util.ArrayList; -import java.util.List; -import javax.swing.event.TreeModelEvent; -import javax.swing.event.TreeModelListener; -import javax.swing.tree.TreeModel; -import javax.swing.tree.TreePath; - -class ClassIndexVisitor implements TreeVisitor { - - private TreeElement found = null; - private int classIndex = 0; - - public ClassIndexVisitor(int classIndex) { - this.classIndex = classIndex; - } - - @Override - public void onBranch(TreeElement branch) { - Object o = branch.getItem(); - if (o == null) { - return; - } - ScriptPack sc = (ScriptPack) o; - for (Trait t : sc.abc.script_info.get(sc.scriptIndex).traits.traits) { - if (t instanceof TraitClass) { - if (((TraitClass) t).class_info == classIndex) { - found = branch; - return; - } - } - } - } - - @Override - public void onLeaf(TreeElement leaf) { - Object o = leaf.getItem(); - if (o == null) { - return; - } - ScriptPack sc = (ScriptPack) o; - for (Trait t : sc.abc.script_info.get(sc.scriptIndex).traits.traits) { - if (t instanceof TraitClass) { - if (((TraitClass) t).class_info == classIndex) { - found = leaf; - return; - } - } - } - } - - public TreeElement getFound() { - return found; - } -} - -public class ClassesListTreeModel implements TreeModel, TreeElementItem { - - private SWF swf; - private Tree classTree; - private List> list; - private final List listeners = new ArrayList<>(); - - public List> getList() { - return list; - } - - public ClassesListTreeModel(SWF swf) { - this(swf, null); - } - - public ClassesListTreeModel(SWF swf, String filter) { - this.swf = swf; - this.list = swf.getAS3Packs(); - setFilter(filter); - } - - @Override - public SWF getSwf() { - return swf; - } - - public final void update() { - this.list = swf.getAS3Packs(); - TreeModelEvent event = new TreeModelEvent(this, new TreePath(classTree.getRoot())); - for (TreeModelListener listener : listeners) { - listener.treeStructureChanged(event); - } - } - - public final void setFilter(String filter) { - classTree = new Tree(); - filter = (filter == null || filter.isEmpty()) ? null : filter.toLowerCase(); - for (MyEntry item : list) { - if (filter != null) { - if (!item.key.toString().toLowerCase().contains(filter)) { - continue; - } - } - //String nsName = path.contains(".") ? path.substring(path.lastIndexOf(".") + 1) : path; - //String packageName = path.contains(".") ? path.substring(0, path.lastIndexOf(".")) : ""; - classTree.add(item.key.className, item.key.packageStr, item.value); - } - } - - public TreeElement getElementByClassIndex(int classIndex) { - ClassIndexVisitor civ = new ClassIndexVisitor(classIndex); - classTree.visit(civ); - return civ.getFound(); - } - - @Override - public TreeElement getRoot() { - return classTree.getRoot(); - } - - @Override - public TreeNode getChild(Object parent, int index) { - TreeElement pte = (TreeElement) parent; - TreeElement te = pte.getChild(index); - return te; - } - - @Override - public int getChildCount(Object parent) { - TreeElement te = (TreeElement) parent; - return te.getChildCount(); - } - - @Override - public boolean isLeaf(Object node) { - TreeElement te = (TreeElement) node; - return te.isLeaf(); - } - - @Override - public void valueForPathChanged(TreePath path, Object newValue) { - } - - @Override - public int getIndexOfChild(Object parent, Object child) { - TreeElement te1 = (TreeElement) parent; - TreeElement te2 = (TreeElement) child; - return te1.getIndexOfChild(te2); - } - - @Override - public void addTreeModelListener(TreeModelListener l) { - listeners.add(l); - } - - @Override - public void removeTreeModelListener(TreeModelListener l) { - listeners.remove(l); - } - - @Override - public String toString() { - return AppStrings.translate("node.scripts"); - } -} +/* + * Copyright (C) 2010-2014 JPEXS, Paolo Cancedda + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.jpexs.decompiler.flash.gui.abc; + +import com.jpexs.decompiler.flash.SWF; +import com.jpexs.decompiler.flash.abc.ClassPath; +import com.jpexs.decompiler.flash.abc.ScriptPack; +import com.jpexs.decompiler.flash.abc.types.traits.Trait; +import com.jpexs.decompiler.flash.abc.types.traits.TraitClass; +import com.jpexs.decompiler.flash.gui.AppStrings; +import com.jpexs.decompiler.flash.gui.abc.treenodes.TreeElement; +import com.jpexs.decompiler.flash.helpers.collections.MyEntry; +import com.jpexs.decompiler.flash.treeitems.TreeElementItem; +import com.jpexs.decompiler.flash.treenodes.TreeNode; +import java.util.ArrayList; +import java.util.List; +import javax.swing.event.TreeModelEvent; +import javax.swing.event.TreeModelListener; +import javax.swing.tree.TreeModel; +import javax.swing.tree.TreePath; + +class ClassIndexVisitor implements TreeVisitor { + + private TreeElement found = null; + private int classIndex = 0; + + public ClassIndexVisitor(int classIndex) { + this.classIndex = classIndex; + } + + @Override + public void onBranch(TreeElement branch) { + Object o = branch.getItem(); + if (o == null) { + return; + } + ScriptPack sc = (ScriptPack) o; + for (Trait t : sc.abc.script_info.get(sc.scriptIndex).traits.traits) { + if (t instanceof TraitClass) { + if (((TraitClass) t).class_info == classIndex) { + found = branch; + return; + } + } + } + } + + @Override + public void onLeaf(TreeElement leaf) { + Object o = leaf.getItem(); + if (o == null) { + return; + } + ScriptPack sc = (ScriptPack) o; + for (Trait t : sc.abc.script_info.get(sc.scriptIndex).traits.traits) { + if (t instanceof TraitClass) { + if (((TraitClass) t).class_info == classIndex) { + found = leaf; + return; + } + } + } + } + + public TreeElement getFound() { + return found; + } +} + +public class ClassesListTreeModel implements TreeModel, TreeElementItem { + + private SWF swf; + private Tree classTree; + private List> list; + private final List listeners = new ArrayList<>(); + + public List> getList() { + return list; + } + + public ClassesListTreeModel(SWF swf) { + this(swf, null); + } + + public ClassesListTreeModel(SWF swf, String filter) { + this.swf = swf; + this.list = swf.getAS3Packs(); + setFilter(filter); + } + + @Override + public SWF getSwf() { + return swf; + } + + public final void update() { + this.list = swf.getAS3Packs(); + TreeModelEvent event = new TreeModelEvent(this, new TreePath(classTree.getRoot())); + for (TreeModelListener listener : listeners) { + listener.treeStructureChanged(event); + } + } + + public final void setFilter(String filter) { + classTree = new Tree(); + filter = (filter == null || filter.isEmpty()) ? null : filter.toLowerCase(); + for (MyEntry item : list) { + if (filter != null) { + if (!item.key.toString().toLowerCase().contains(filter)) { + continue; + } + } + //String nsName = path.contains(".") ? path.substring(path.lastIndexOf(".") + 1) : path; + //String packageName = path.contains(".") ? path.substring(0, path.lastIndexOf(".")) : ""; + classTree.add(item.key.className, item.key.packageStr, item.value); + } + } + + public TreeElement getElementByClassIndex(int classIndex) { + ClassIndexVisitor civ = new ClassIndexVisitor(classIndex); + classTree.visit(civ); + return civ.getFound(); + } + + @Override + public TreeElement getRoot() { + return classTree.getRoot(); + } + + @Override + public TreeNode getChild(Object parent, int index) { + TreeElement pte = (TreeElement) parent; + TreeElement te = pte.getChild(index); + return te; + } + + @Override + public int getChildCount(Object parent) { + TreeElement te = (TreeElement) parent; + return te.getChildCount(); + } + + @Override + public boolean isLeaf(Object node) { + TreeElement te = (TreeElement) node; + return te.isLeaf(); + } + + @Override + public void valueForPathChanged(TreePath path, Object newValue) { + } + + @Override + public int getIndexOfChild(Object parent, Object child) { + TreeElement te1 = (TreeElement) parent; + TreeElement te2 = (TreeElement) child; + return te1.getIndexOfChild(te2); + } + + @Override + public void addTreeModelListener(TreeModelListener l) { + listeners.add(l); + } + + @Override + public void removeTreeModelListener(TreeModelListener l) { + listeners.remove(l); + } + + @Override + public String toString() { + return AppStrings.translate("node.scripts"); + } +} diff --git a/src/com/jpexs/decompiler/flash/gui/abc/DecompiledEditorPane.java b/src/com/jpexs/decompiler/flash/gui/abc/DecompiledEditorPane.java index 1f94ce734..498dabad1 100644 --- a/src/com/jpexs/decompiler/flash/gui/abc/DecompiledEditorPane.java +++ b/src/com/jpexs/decompiler/flash/gui/abc/DecompiledEditorPane.java @@ -16,7 +16,6 @@ */ package com.jpexs.decompiler.flash.gui.abc; -import com.jpexs.decompiler.flash.AppStrings; import com.jpexs.decompiler.flash.abc.ABC; import com.jpexs.decompiler.flash.abc.ScriptPack; import com.jpexs.decompiler.flash.abc.avm2.AVM2Code; @@ -28,6 +27,7 @@ import com.jpexs.decompiler.flash.abc.types.traits.TraitMethodGetterSetter; import com.jpexs.decompiler.flash.abc.types.traits.TraitSlotConst; import com.jpexs.decompiler.flash.configuration.Configuration; import com.jpexs.decompiler.flash.exporters.modes.ScriptExportMode; +import com.jpexs.decompiler.flash.gui.AppStrings; import com.jpexs.decompiler.flash.gui.View; import com.jpexs.decompiler.flash.helpers.HilightedText; import com.jpexs.decompiler.flash.helpers.HilightedTextWriter; diff --git a/src/com/jpexs/decompiler/flash/gui/abc/DetailPanel.java b/src/com/jpexs/decompiler/flash/gui/abc/DetailPanel.java index f985c86e3..532402dff 100644 --- a/src/com/jpexs/decompiler/flash/gui/abc/DetailPanel.java +++ b/src/com/jpexs/decompiler/flash/gui/abc/DetailPanel.java @@ -16,8 +16,8 @@ */ package com.jpexs.decompiler.flash.gui.abc; -import com.jpexs.decompiler.flash.AppStrings; import com.jpexs.decompiler.flash.abc.types.traits.Trait; +import com.jpexs.decompiler.flash.gui.AppStrings; import com.jpexs.decompiler.flash.gui.HeaderLabel; import com.jpexs.decompiler.flash.gui.View; import com.jpexs.helpers.CancellableWorker; diff --git a/src/com/jpexs/decompiler/flash/gui/abc/DialogMissingSymbolHandler.java b/src/com/jpexs/decompiler/flash/gui/abc/DialogMissingSymbolHandler.java index 8aa8193c4..5caace182 100644 --- a/src/com/jpexs/decompiler/flash/gui/abc/DialogMissingSymbolHandler.java +++ b/src/com/jpexs/decompiler/flash/gui/abc/DialogMissingSymbolHandler.java @@ -1,45 +1,45 @@ -/* - * Copyright (C) 2010-2014 JPEXS - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package com.jpexs.decompiler.flash.gui.abc; - -import com.jpexs.decompiler.flash.AppStrings; -import com.jpexs.decompiler.flash.abc.avm2.parser.pcode.MissingSymbolHandler; -import com.jpexs.decompiler.flash.gui.View; -import javax.swing.JOptionPane; - -public class DialogMissingSymbolHandler implements MissingSymbolHandler { - - @Override - public boolean missingString(String value) { - return View.showConfirmDialog(null, AppStrings.translate("message.constant.new.string").replace("%value%", value), AppStrings.translate("message.constant.new.string.title"), JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE) == JOptionPane.OK_OPTION; - } - - @Override - public boolean missingInt(long value) { - return View.showConfirmDialog(null, AppStrings.translate("message.constant.new.integer").replace("%value%", "" + value), AppStrings.translate("message.constant.new.integer.title"), JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE) == JOptionPane.OK_OPTION; - } - - @Override - public boolean missingUInt(long value) { - return View.showConfirmDialog(null, AppStrings.translate("message.constant.new.unsignedinteger").replace("%value%", "" + value), AppStrings.translate("message.constant.new.unsignedinteger.title"), JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE) == JOptionPane.OK_OPTION; - } - - @Override - public boolean missingDouble(double value) { - return View.showConfirmDialog(null, AppStrings.translate("message.constant.new.double").replace("%value%", "" + value), AppStrings.translate("message.constant.new.double.title"), JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE) == JOptionPane.OK_OPTION; - } -} +/* + * Copyright (C) 2010-2014 JPEXS + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.jpexs.decompiler.flash.gui.abc; + +import com.jpexs.decompiler.flash.abc.avm2.parser.pcode.MissingSymbolHandler; +import com.jpexs.decompiler.flash.gui.AppStrings; +import com.jpexs.decompiler.flash.gui.View; +import javax.swing.JOptionPane; + +public class DialogMissingSymbolHandler implements MissingSymbolHandler { + + @Override + public boolean missingString(String value) { + return View.showConfirmDialog(null, AppStrings.translate("message.constant.new.string").replace("%value%", value), AppStrings.translate("message.constant.new.string.title"), JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE) == JOptionPane.OK_OPTION; + } + + @Override + public boolean missingInt(long value) { + return View.showConfirmDialog(null, AppStrings.translate("message.constant.new.integer").replace("%value%", "" + value), AppStrings.translate("message.constant.new.integer.title"), JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE) == JOptionPane.OK_OPTION; + } + + @Override + public boolean missingUInt(long value) { + return View.showConfirmDialog(null, AppStrings.translate("message.constant.new.unsignedinteger").replace("%value%", "" + value), AppStrings.translate("message.constant.new.unsignedinteger.title"), JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE) == JOptionPane.OK_OPTION; + } + + @Override + public boolean missingDouble(double value) { + return View.showConfirmDialog(null, AppStrings.translate("message.constant.new.double").replace("%value%", "" + value), AppStrings.translate("message.constant.new.double.title"), JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE) == JOptionPane.OK_OPTION; + } +} diff --git a/src/com/jpexs/decompiler/flash/gui/abc/MethodCodePanel.java b/src/com/jpexs/decompiler/flash/gui/abc/MethodCodePanel.java index 0df5d6733..f5accf41a 100644 --- a/src/com/jpexs/decompiler/flash/gui/abc/MethodCodePanel.java +++ b/src/com/jpexs/decompiler/flash/gui/abc/MethodCodePanel.java @@ -1,173 +1,173 @@ -/* - * Copyright (C) 2010-2014 JPEXS - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package com.jpexs.decompiler.flash.gui.abc; - -import com.jpexs.decompiler.flash.AppStrings; -import com.jpexs.decompiler.flash.abc.ABC; -import com.jpexs.decompiler.flash.abc.avm2.ConstantPool; -import com.jpexs.decompiler.flash.abc.types.traits.Trait; -import com.jpexs.decompiler.flash.exporters.modes.ScriptExportMode; -import com.jpexs.decompiler.flash.gui.Main; -import com.jpexs.decompiler.flash.gui.View; -import java.awt.BorderLayout; -import java.awt.Font; -import java.awt.Insets; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import javax.swing.BoxLayout; -import javax.swing.JButton; -import javax.swing.JPanel; -import javax.swing.JScrollPane; -import javax.swing.JToggleButton; - -/** - * - * @author JPEXS - */ -public class MethodCodePanel extends JPanel implements ActionListener { - - static final String ACTION_GRAPH = "GRAPH"; - static final String ACTION_HEX = "HEX"; - static final String ACTION_HEX_ONLY = "HEXONLY"; - - private final ASMSourceEditorPane sourceTextArea; - public JPanel buttonsPanel; - private final JToggleButton hexButton; - private final JToggleButton hexOnlyButton; - - public void focusEditor() { - sourceTextArea.requestFocusInWindow(); - } - - public String getTraitName() { - return sourceTextArea.getName(); - } - - public void setIgnoreCarret(boolean ignoreCarret) { - sourceTextArea.setIgnoreCarret(ignoreCarret); - } - - public void hilighOffset(long offset) { - sourceTextArea.hilighOffset(offset); - } - - public void hilighSpecial(String type, int index) { - sourceTextArea.hilighSpecial(type, index); - } - - public void setBodyIndex(int bodyIndex, ABC abc, Trait trait) { - sourceTextArea.setBodyIndex(bodyIndex, abc, sourceTextArea.getName(), trait); - } - - public void setBodyIndex(int bodyIndex, ABC abc, String name, Trait trait) { - sourceTextArea.setBodyIndex(bodyIndex, abc, name, trait); - } - - public int getBodyIndex() { - return sourceTextArea.bodyIndex; - } - - public void clear() { - sourceTextArea.clear(); - } - - public boolean save(ConstantPool constants) { - return sourceTextArea.save(constants); - } - - public MethodCodePanel(DecompiledEditorPane decompiledEditor) { - sourceTextArea = new ASMSourceEditorPane(decompiledEditor); - - setLayout(new BorderLayout()); - add(new JScrollPane(sourceTextArea), BorderLayout.CENTER); - sourceTextArea.setContentType("text/flasm3"); - sourceTextArea.setFont(new Font("Monospaced", Font.PLAIN, sourceTextArea.getFont().getSize())); - - buttonsPanel = new JPanel(); - buttonsPanel.setLayout(new BoxLayout(buttonsPanel, BoxLayout.X_AXIS)); - - JButton graphButton = new JButton(View.getIcon("graph16")); - graphButton.setActionCommand(ACTION_GRAPH); - graphButton.addActionListener(this); - graphButton.setToolTipText(AppStrings.translate("button.viewgraph")); - graphButton.setMargin(new Insets(3, 3, 3, 3)); - - hexButton = new JToggleButton(View.getIcon("hexas16")); - hexButton.setActionCommand(ACTION_HEX); - hexButton.addActionListener(this); - hexButton.setToolTipText(AppStrings.translate("button.viewhex")); - hexButton.setMargin(new Insets(3, 3, 3, 3)); - - hexOnlyButton = new JToggleButton(View.getIcon("hex16")); - hexOnlyButton.setActionCommand(ACTION_HEX_ONLY); - hexOnlyButton.addActionListener(this); - hexOnlyButton.setToolTipText(AppStrings.translate("button.viewhex")); - hexOnlyButton.setMargin(new Insets(3, 3, 3, 3)); - - buttonsPanel.add(graphButton); - buttonsPanel.add(hexButton); - buttonsPanel.add(hexOnlyButton); - buttonsPanel.add(new JPanel()); - // buttonsPanel.add(saveButton); - // buttonsPan.add(execButton); - - add(buttonsPanel, BorderLayout.NORTH); - } - - @Override - public void actionPerformed(ActionEvent e) { - if (Main.isWorking()) { - return; - } - - switch (e.getActionCommand()) { - case ACTION_GRAPH: - sourceTextArea.graph(); - break; - case ACTION_HEX: - case ACTION_HEX_ONLY: - if (e.getActionCommand() == ACTION_HEX) { - hexOnlyButton.setSelected(false); - } else { - hexButton.setSelected(false); - } - sourceTextArea.setHex(getExportMode(), false); - break; - } - } - - private ScriptExportMode getExportMode() { - ScriptExportMode exportMode = hexOnlyButton.isSelected() ? ScriptExportMode.HEX - : (hexButton.isSelected() ? ScriptExportMode.PCODE_HEX : ScriptExportMode.PCODE); - return exportMode; - } - - public void setEditMode(boolean val) { - ScriptExportMode exportMode = getExportMode(); - if (val) { - sourceTextArea.setHex(exportMode == ScriptExportMode.HEX ? ScriptExportMode.HEX : ScriptExportMode.PCODE, false); - } else { - if (exportMode != ScriptExportMode.PCODE) { - sourceTextArea.setHex(exportMode, false); - } - } - - sourceTextArea.setEditable(val); - sourceTextArea.getCaret().setVisible(true); - buttonsPanel.setVisible(!val); - } -} +/* + * Copyright (C) 2010-2014 JPEXS + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.jpexs.decompiler.flash.gui.abc; + +import com.jpexs.decompiler.flash.abc.ABC; +import com.jpexs.decompiler.flash.abc.avm2.ConstantPool; +import com.jpexs.decompiler.flash.abc.types.traits.Trait; +import com.jpexs.decompiler.flash.exporters.modes.ScriptExportMode; +import com.jpexs.decompiler.flash.gui.AppStrings; +import com.jpexs.decompiler.flash.gui.Main; +import com.jpexs.decompiler.flash.gui.View; +import java.awt.BorderLayout; +import java.awt.Font; +import java.awt.Insets; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import javax.swing.BoxLayout; +import javax.swing.JButton; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.JToggleButton; + +/** + * + * @author JPEXS + */ +public class MethodCodePanel extends JPanel implements ActionListener { + + static final String ACTION_GRAPH = "GRAPH"; + static final String ACTION_HEX = "HEX"; + static final String ACTION_HEX_ONLY = "HEXONLY"; + + private final ASMSourceEditorPane sourceTextArea; + public JPanel buttonsPanel; + private final JToggleButton hexButton; + private final JToggleButton hexOnlyButton; + + public void focusEditor() { + sourceTextArea.requestFocusInWindow(); + } + + public String getTraitName() { + return sourceTextArea.getName(); + } + + public void setIgnoreCarret(boolean ignoreCarret) { + sourceTextArea.setIgnoreCarret(ignoreCarret); + } + + public void hilighOffset(long offset) { + sourceTextArea.hilighOffset(offset); + } + + public void hilighSpecial(String type, int index) { + sourceTextArea.hilighSpecial(type, index); + } + + public void setBodyIndex(int bodyIndex, ABC abc, Trait trait) { + sourceTextArea.setBodyIndex(bodyIndex, abc, sourceTextArea.getName(), trait); + } + + public void setBodyIndex(int bodyIndex, ABC abc, String name, Trait trait) { + sourceTextArea.setBodyIndex(bodyIndex, abc, name, trait); + } + + public int getBodyIndex() { + return sourceTextArea.bodyIndex; + } + + public void clear() { + sourceTextArea.clear(); + } + + public boolean save(ConstantPool constants) { + return sourceTextArea.save(constants); + } + + public MethodCodePanel(DecompiledEditorPane decompiledEditor) { + sourceTextArea = new ASMSourceEditorPane(decompiledEditor); + + setLayout(new BorderLayout()); + add(new JScrollPane(sourceTextArea), BorderLayout.CENTER); + sourceTextArea.setContentType("text/flasm3"); + sourceTextArea.setFont(new Font("Monospaced", Font.PLAIN, sourceTextArea.getFont().getSize())); + + buttonsPanel = new JPanel(); + buttonsPanel.setLayout(new BoxLayout(buttonsPanel, BoxLayout.X_AXIS)); + + JButton graphButton = new JButton(View.getIcon("graph16")); + graphButton.setActionCommand(ACTION_GRAPH); + graphButton.addActionListener(this); + graphButton.setToolTipText(AppStrings.translate("button.viewgraph")); + graphButton.setMargin(new Insets(3, 3, 3, 3)); + + hexButton = new JToggleButton(View.getIcon("hexas16")); + hexButton.setActionCommand(ACTION_HEX); + hexButton.addActionListener(this); + hexButton.setToolTipText(AppStrings.translate("button.viewhex")); + hexButton.setMargin(new Insets(3, 3, 3, 3)); + + hexOnlyButton = new JToggleButton(View.getIcon("hex16")); + hexOnlyButton.setActionCommand(ACTION_HEX_ONLY); + hexOnlyButton.addActionListener(this); + hexOnlyButton.setToolTipText(AppStrings.translate("button.viewhex")); + hexOnlyButton.setMargin(new Insets(3, 3, 3, 3)); + + buttonsPanel.add(graphButton); + buttonsPanel.add(hexButton); + buttonsPanel.add(hexOnlyButton); + buttonsPanel.add(new JPanel()); + // buttonsPanel.add(saveButton); + // buttonsPan.add(execButton); + + add(buttonsPanel, BorderLayout.NORTH); + } + + @Override + public void actionPerformed(ActionEvent e) { + if (Main.isWorking()) { + return; + } + + switch (e.getActionCommand()) { + case ACTION_GRAPH: + sourceTextArea.graph(); + break; + case ACTION_HEX: + case ACTION_HEX_ONLY: + if (e.getActionCommand() == ACTION_HEX) { + hexOnlyButton.setSelected(false); + } else { + hexButton.setSelected(false); + } + sourceTextArea.setHex(getExportMode(), false); + break; + } + } + + private ScriptExportMode getExportMode() { + ScriptExportMode exportMode = hexOnlyButton.isSelected() ? ScriptExportMode.HEX + : (hexButton.isSelected() ? ScriptExportMode.PCODE_HEX : ScriptExportMode.PCODE); + return exportMode; + } + + public void setEditMode(boolean val) { + ScriptExportMode exportMode = getExportMode(); + if (val) { + sourceTextArea.setHex(exportMode == ScriptExportMode.HEX ? ScriptExportMode.HEX : ScriptExportMode.PCODE, false); + } else { + if (exportMode != ScriptExportMode.PCODE) { + sourceTextArea.setHex(exportMode, false); + } + } + + sourceTextArea.setEditable(val); + sourceTextArea.getCaret().setVisible(true); + buttonsPanel.setVisible(!val); + } +} diff --git a/src/com/jpexs/decompiler/flash/gui/abc/NewTraitDialog.java b/src/com/jpexs/decompiler/flash/gui/abc/NewTraitDialog.java index 053d11b66..0bc9a221c 100644 --- a/src/com/jpexs/decompiler/flash/gui/abc/NewTraitDialog.java +++ b/src/com/jpexs/decompiler/flash/gui/abc/NewTraitDialog.java @@ -1,179 +1,179 @@ -/* - * Copyright (C) 2010-2014 JPEXS - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package com.jpexs.decompiler.flash.gui.abc; - -import com.jpexs.decompiler.flash.AppStrings; -import com.jpexs.decompiler.flash.abc.types.Namespace; -import com.jpexs.decompiler.flash.abc.types.traits.Trait; -import com.jpexs.decompiler.flash.gui.AppDialog; -import com.jpexs.decompiler.flash.gui.View; -import java.awt.BorderLayout; -import java.awt.Container; -import java.awt.Dimension; -import java.awt.FlowLayout; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import javax.swing.JButton; -import javax.swing.JCheckBox; -import javax.swing.JComboBox; -import javax.swing.JComponent; -import javax.swing.JOptionPane; -import javax.swing.JPanel; -import javax.swing.JTextField; -import javax.swing.event.AncestorEvent; -import javax.swing.event.AncestorListener; - -/** - * - * @author JPEXS - */ -public class NewTraitDialog extends AppDialog implements ActionListener { - - static final String ACTION_OK = "OK"; - static final String ACTION_CANCEL = "CANCEL"; - - private static final int modifiers[] = new int[]{ - Namespace.KIND_PACKAGE, - Namespace.KIND_PRIVATE, - Namespace.KIND_PROTECTED, - Namespace.KIND_NAMESPACE, - Namespace.KIND_PACKAGE_INTERNAL, - Namespace.KIND_EXPLICIT, - Namespace.KIND_STATIC_PROTECTED - }; - private static final int types[] = new int[]{ - Trait.TRAIT_METHOD, - Trait.TRAIT_GETTER, - Trait.TRAIT_SETTER, - Trait.TRAIT_CONST, - Trait.TRAIT_SLOT - }; - private final JComboBox accessComboBox; - private final JComboBox typeComboBox; - private final JCheckBox staticCheckbox; - private final JTextField nameField; - - public boolean getStatic() { - return staticCheckbox.isSelected(); - } - - public int getNamespaceKind() { - return modifiers[accessComboBox.getSelectedIndex()]; - } - - public int getTraitType() { - return types[typeComboBox.getSelectedIndex()]; - } - - public String getTraitName() { - return nameField.getText(); - } - - public NewTraitDialog() { - setSize(500, 300); - setTitle(translate("dialog.title")); - View.centerScreen(this); - View.setWindowIcon(this); - Container cnt = getContentPane(); - cnt.setLayout(new BorderLayout()); - JPanel optionsPanel = new JPanel(new FlowLayout()); - //optionsPanel.add(new JLabel(translate("label.type"))); - typeComboBox = new JComboBox<>(new String[]{ - translate("type.method"), - translate("type.getter"), - translate("type.setter"), - translate("type.const"), - translate("type.slot"),}); - staticCheckbox = new JCheckBox(translate("checkbox.static")); - optionsPanel.add(staticCheckbox); - String accessStrings[] = new String[modifiers.length]; - for (int i = 0; i < accessStrings.length; i++) { - String pref = Namespace.kindToPrefix(modifiers[i]); - String name = Namespace.kindToStr(modifiers[i]); - accessStrings[i] = (pref.isEmpty() ? "" : pref + " ") + "(" + name + ")"; - } - - //optionsPanel.add(new JLabel(translate("label.access"))); - accessComboBox = new JComboBox<>(accessStrings); - optionsPanel.add(accessComboBox); - - optionsPanel.add(typeComboBox); - - //optionsPanel.add(new JLabel(translate("label.name"))); - nameField = new JTextField(); - nameField.setPreferredSize(new Dimension(300, nameField.getPreferredSize().height)); - optionsPanel.add(nameField); - - cnt.add(optionsPanel, BorderLayout.CENTER); - JPanel buttonsPanel = new JPanel(new FlowLayout()); - JButton buttonOk = new JButton(AppStrings.translate("button.ok")); - buttonOk.setActionCommand(ACTION_OK); - buttonOk.addActionListener(this); - JButton buttonCancel = new JButton(AppStrings.translate("button.cancel")); - buttonCancel.setActionCommand(ACTION_CANCEL); - buttonCancel.addActionListener(this); - buttonsPanel.add(buttonOk); - buttonsPanel.add(buttonCancel); - cnt.add(buttonsPanel, BorderLayout.SOUTH); - pack(); - setDefaultCloseOperation(HIDE_ON_CLOSE); - setModalityType(ModalityType.APPLICATION_MODAL); - - nameField.addAncestorListener(new AncestorListener() { - @Override - public void ancestorAdded(AncestorEvent event) { - JComponent component = event.getComponent(); - component.requestFocusInWindow(); - } - - @Override - public void ancestorRemoved(AncestorEvent event) { - } - - @Override - public void ancestorMoved(AncestorEvent event) { - } - }); - getRootPane().setDefaultButton(buttonOk); - } - - public boolean display() { - nameField.setText(""); - setVisible(true); - return result; - } - private boolean result = false; - - @Override - public void actionPerformed(ActionEvent e) { - switch (e.getActionCommand()) { - case ACTION_OK: - if (nameField.getText().trim().isEmpty()) { - View.showMessageDialog(null, translate("error.name"), AppStrings.translate("error"), JOptionPane.ERROR_MESSAGE); - return; - } - result = true; - setVisible(false); - break; - case ACTION_CANCEL: - result = false; - setVisible(false); - break; - } - - } -} +/* + * Copyright (C) 2010-2014 JPEXS + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.jpexs.decompiler.flash.gui.abc; + +import com.jpexs.decompiler.flash.abc.types.Namespace; +import com.jpexs.decompiler.flash.abc.types.traits.Trait; +import com.jpexs.decompiler.flash.gui.AppDialog; +import com.jpexs.decompiler.flash.gui.AppStrings; +import com.jpexs.decompiler.flash.gui.View; +import java.awt.BorderLayout; +import java.awt.Container; +import java.awt.Dimension; +import java.awt.FlowLayout; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import javax.swing.JButton; +import javax.swing.JCheckBox; +import javax.swing.JComboBox; +import javax.swing.JComponent; +import javax.swing.JOptionPane; +import javax.swing.JPanel; +import javax.swing.JTextField; +import javax.swing.event.AncestorEvent; +import javax.swing.event.AncestorListener; + +/** + * + * @author JPEXS + */ +public class NewTraitDialog extends AppDialog implements ActionListener { + + static final String ACTION_OK = "OK"; + static final String ACTION_CANCEL = "CANCEL"; + + private static final int modifiers[] = new int[]{ + Namespace.KIND_PACKAGE, + Namespace.KIND_PRIVATE, + Namespace.KIND_PROTECTED, + Namespace.KIND_NAMESPACE, + Namespace.KIND_PACKAGE_INTERNAL, + Namespace.KIND_EXPLICIT, + Namespace.KIND_STATIC_PROTECTED + }; + private static final int types[] = new int[]{ + Trait.TRAIT_METHOD, + Trait.TRAIT_GETTER, + Trait.TRAIT_SETTER, + Trait.TRAIT_CONST, + Trait.TRAIT_SLOT + }; + private final JComboBox accessComboBox; + private final JComboBox typeComboBox; + private final JCheckBox staticCheckbox; + private final JTextField nameField; + + public boolean getStatic() { + return staticCheckbox.isSelected(); + } + + public int getNamespaceKind() { + return modifiers[accessComboBox.getSelectedIndex()]; + } + + public int getTraitType() { + return types[typeComboBox.getSelectedIndex()]; + } + + public String getTraitName() { + return nameField.getText(); + } + + public NewTraitDialog() { + setSize(500, 300); + setTitle(translate("dialog.title")); + View.centerScreen(this); + View.setWindowIcon(this); + Container cnt = getContentPane(); + cnt.setLayout(new BorderLayout()); + JPanel optionsPanel = new JPanel(new FlowLayout()); + //optionsPanel.add(new JLabel(translate("label.type"))); + typeComboBox = new JComboBox<>(new String[]{ + translate("type.method"), + translate("type.getter"), + translate("type.setter"), + translate("type.const"), + translate("type.slot"),}); + staticCheckbox = new JCheckBox(translate("checkbox.static")); + optionsPanel.add(staticCheckbox); + String accessStrings[] = new String[modifiers.length]; + for (int i = 0; i < accessStrings.length; i++) { + String pref = Namespace.kindToPrefix(modifiers[i]); + String name = Namespace.kindToStr(modifiers[i]); + accessStrings[i] = (pref.isEmpty() ? "" : pref + " ") + "(" + name + ")"; + } + + //optionsPanel.add(new JLabel(translate("label.access"))); + accessComboBox = new JComboBox<>(accessStrings); + optionsPanel.add(accessComboBox); + + optionsPanel.add(typeComboBox); + + //optionsPanel.add(new JLabel(translate("label.name"))); + nameField = new JTextField(); + nameField.setPreferredSize(new Dimension(300, nameField.getPreferredSize().height)); + optionsPanel.add(nameField); + + cnt.add(optionsPanel, BorderLayout.CENTER); + JPanel buttonsPanel = new JPanel(new FlowLayout()); + JButton buttonOk = new JButton(AppStrings.translate("button.ok")); + buttonOk.setActionCommand(ACTION_OK); + buttonOk.addActionListener(this); + JButton buttonCancel = new JButton(AppStrings.translate("button.cancel")); + buttonCancel.setActionCommand(ACTION_CANCEL); + buttonCancel.addActionListener(this); + buttonsPanel.add(buttonOk); + buttonsPanel.add(buttonCancel); + cnt.add(buttonsPanel, BorderLayout.SOUTH); + pack(); + setDefaultCloseOperation(HIDE_ON_CLOSE); + setModalityType(ModalityType.APPLICATION_MODAL); + + nameField.addAncestorListener(new AncestorListener() { + @Override + public void ancestorAdded(AncestorEvent event) { + JComponent component = event.getComponent(); + component.requestFocusInWindow(); + } + + @Override + public void ancestorRemoved(AncestorEvent event) { + } + + @Override + public void ancestorMoved(AncestorEvent event) { + } + }); + getRootPane().setDefaultButton(buttonOk); + } + + public boolean display() { + nameField.setText(""); + setVisible(true); + return result; + } + private boolean result = false; + + @Override + public void actionPerformed(ActionEvent e) { + switch (e.getActionCommand()) { + case ACTION_OK: + if (nameField.getText().trim().isEmpty()) { + View.showMessageDialog(null, translate("error.name"), AppStrings.translate("error"), JOptionPane.ERROR_MESSAGE); + return; + } + result = true; + setVisible(false); + break; + case ACTION_CANCEL: + result = false; + setVisible(false); + break; + } + + } +} diff --git a/src/com/jpexs/decompiler/flash/gui/abc/SlotConstTraitDetailPanel.java b/src/com/jpexs/decompiler/flash/gui/abc/SlotConstTraitDetailPanel.java index ea234b375..38fef426c 100644 --- a/src/com/jpexs/decompiler/flash/gui/abc/SlotConstTraitDetailPanel.java +++ b/src/com/jpexs/decompiler/flash/gui/abc/SlotConstTraitDetailPanel.java @@ -1,142 +1,142 @@ -/* - * Copyright (C) 2010-2014 JPEXS - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package com.jpexs.decompiler.flash.gui.abc; - -import com.jpexs.decompiler.flash.AppStrings; -import com.jpexs.decompiler.flash.abc.ABC; -import com.jpexs.decompiler.flash.abc.avm2.parser.ParseException; -import com.jpexs.decompiler.flash.abc.avm2.parser.pcode.ASM3Parser; -import com.jpexs.decompiler.flash.abc.types.ValueKind; -import com.jpexs.decompiler.flash.abc.types.traits.TraitSlotConst; -import com.jpexs.decompiler.flash.configuration.Configuration; -import com.jpexs.decompiler.flash.gui.View; -import com.jpexs.decompiler.flash.helpers.HilightedTextWriter; -import com.jpexs.decompiler.flash.helpers.hilight.Highlighting; -import java.awt.BorderLayout; -import java.io.IOException; -import java.io.StringReader; -import java.util.List; -import java.util.logging.Level; -import java.util.logging.Logger; -import javax.swing.JEditorPane; -import javax.swing.JOptionPane; -import javax.swing.JPanel; -import javax.swing.JScrollPane; -import javax.swing.event.CaretEvent; -import javax.swing.event.CaretListener; - -/** - * - * @author JPEXS - */ -public class SlotConstTraitDetailPanel extends JPanel implements TraitDetail { - - public JEditorPane slotConstEditor; - private ABC abc; - private TraitSlotConst trait; - private boolean showWarning = false; - private List specialHilights; - private boolean ignoreCaret = false; - - public SlotConstTraitDetailPanel(final DecompiledEditorPane editor) { - slotConstEditor = new LineMarkedEditorPane(); - setLayout(new BorderLayout()); - add(new JScrollPane(slotConstEditor), BorderLayout.CENTER); - slotConstEditor.setContentType("text/flasm3"); - slotConstEditor.addCaretListener(new CaretListener() { - @Override - public void caretUpdate(CaretEvent e) { - if (ignoreCaret) { - return; - } - Highlighting spec = Highlighting.search(specialHilights, slotConstEditor.getCaretPosition()); - if (spec != null) { - editor.hilightSpecial(spec.getPropertyString("subtype"), (int) (long) spec.getPropertyLong("index")); - slotConstEditor.getCaret().setVisible(true); - } - } - }); - } - - public void hilightSpecial(Highlighting special) { - Highlighting sel = null; - for (Highlighting h : specialHilights) { - if (h.getPropertyString("subtype").equals(special.getPropertyString("subtype"))) { - if (h.getPropertyString("index").equals(special.getPropertyString("index"))) { - sel = h; - break; - } - } - } - if (sel != null) { - ignoreCaret = true; - slotConstEditor.setCaretPosition(sel.startPos); - slotConstEditor.getCaret().setVisible(true); - ignoreCaret = false; - } - } - - public void load(TraitSlotConst trait, ABC abc, boolean isStatic) { - this.abc = abc; - this.trait = trait; - HilightedTextWriter writer = new HilightedTextWriter(Configuration.getCodeFormatting(), true); - writer.appendNoHilight("trait "); - writer.hilightSpecial(abc.constants.multinameToString(trait.name_index), "traitname"); - writer.appendNoHilight(" "); - writer.hilightSpecial(trait.isConst() ? "const" : "slot", "traittype"); - writer.appendNoHilight(" slotid "); - writer.hilightSpecial("" + trait.slot_id, "slotid"); - writer.appendNoHilight(" type "); - writer.hilightSpecial(abc.constants.multinameToString(trait.type_index), "traittypename"); - writer.appendNoHilight(" value "); - writer.hilightSpecial((new ValueKind(trait.value_index, trait.value_kind).toASMString(abc.constants)), "traitvalue"); - String s = writer.toString(); - specialHilights = writer.specialHilights; - showWarning = trait.isConst() || isStatic; - slotConstEditor.setText(s); - } - - @Override - public boolean save() { - try {//(slotConstEditor.getText(), trait, abc) - if (!ASM3Parser.parseSlotConst(new StringReader(slotConstEditor.getText()), abc.constants, trait)) { - return false; - } - } catch (ParseException ex) { - View.showMessageDialog(slotConstEditor, ex.text, AppStrings.translate("error.slotconst.typevalue"), JOptionPane.ERROR_MESSAGE); - return false; - } catch (IOException ex) { - Logger.getLogger(SlotConstTraitDetailPanel.class.getName()).log(Level.SEVERE, null, ex); - return false; - } - return true; - } - - @Override - public void setEditMode(boolean val) { - if (val && active) { - JOptionPane.showMessageDialog(null, AppStrings.translate("warning.initializers"), AppStrings.translate("message.warning"), JOptionPane.WARNING_MESSAGE); - } - slotConstEditor.setEditable(val); - } - private boolean active = false; - - @Override - public void setActive(boolean val) { - this.active = val; - } -} +/* + * Copyright (C) 2010-2014 JPEXS + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.jpexs.decompiler.flash.gui.abc; + +import com.jpexs.decompiler.flash.abc.ABC; +import com.jpexs.decompiler.flash.abc.avm2.parser.ParseException; +import com.jpexs.decompiler.flash.abc.avm2.parser.pcode.ASM3Parser; +import com.jpexs.decompiler.flash.abc.types.ValueKind; +import com.jpexs.decompiler.flash.abc.types.traits.TraitSlotConst; +import com.jpexs.decompiler.flash.configuration.Configuration; +import com.jpexs.decompiler.flash.gui.AppStrings; +import com.jpexs.decompiler.flash.gui.View; +import com.jpexs.decompiler.flash.helpers.HilightedTextWriter; +import com.jpexs.decompiler.flash.helpers.hilight.Highlighting; +import java.awt.BorderLayout; +import java.io.IOException; +import java.io.StringReader; +import java.util.List; +import java.util.logging.Level; +import java.util.logging.Logger; +import javax.swing.JEditorPane; +import javax.swing.JOptionPane; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.event.CaretEvent; +import javax.swing.event.CaretListener; + +/** + * + * @author JPEXS + */ +public class SlotConstTraitDetailPanel extends JPanel implements TraitDetail { + + public JEditorPane slotConstEditor; + private ABC abc; + private TraitSlotConst trait; + private boolean showWarning = false; + private List specialHilights; + private boolean ignoreCaret = false; + + public SlotConstTraitDetailPanel(final DecompiledEditorPane editor) { + slotConstEditor = new LineMarkedEditorPane(); + setLayout(new BorderLayout()); + add(new JScrollPane(slotConstEditor), BorderLayout.CENTER); + slotConstEditor.setContentType("text/flasm3"); + slotConstEditor.addCaretListener(new CaretListener() { + @Override + public void caretUpdate(CaretEvent e) { + if (ignoreCaret) { + return; + } + Highlighting spec = Highlighting.search(specialHilights, slotConstEditor.getCaretPosition()); + if (spec != null) { + editor.hilightSpecial(spec.getPropertyString("subtype"), (int) (long) spec.getPropertyLong("index")); + slotConstEditor.getCaret().setVisible(true); + } + } + }); + } + + public void hilightSpecial(Highlighting special) { + Highlighting sel = null; + for (Highlighting h : specialHilights) { + if (h.getPropertyString("subtype").equals(special.getPropertyString("subtype"))) { + if (h.getPropertyString("index").equals(special.getPropertyString("index"))) { + sel = h; + break; + } + } + } + if (sel != null) { + ignoreCaret = true; + slotConstEditor.setCaretPosition(sel.startPos); + slotConstEditor.getCaret().setVisible(true); + ignoreCaret = false; + } + } + + public void load(TraitSlotConst trait, ABC abc, boolean isStatic) { + this.abc = abc; + this.trait = trait; + HilightedTextWriter writer = new HilightedTextWriter(Configuration.getCodeFormatting(), true); + writer.appendNoHilight("trait "); + writer.hilightSpecial(abc.constants.multinameToString(trait.name_index), "traitname"); + writer.appendNoHilight(" "); + writer.hilightSpecial(trait.isConst() ? "const" : "slot", "traittype"); + writer.appendNoHilight(" slotid "); + writer.hilightSpecial("" + trait.slot_id, "slotid"); + writer.appendNoHilight(" type "); + writer.hilightSpecial(abc.constants.multinameToString(trait.type_index), "traittypename"); + writer.appendNoHilight(" value "); + writer.hilightSpecial((new ValueKind(trait.value_index, trait.value_kind).toASMString(abc.constants)), "traitvalue"); + String s = writer.toString(); + specialHilights = writer.specialHilights; + showWarning = trait.isConst() || isStatic; + slotConstEditor.setText(s); + } + + @Override + public boolean save() { + try {//(slotConstEditor.getText(), trait, abc) + if (!ASM3Parser.parseSlotConst(new StringReader(slotConstEditor.getText()), abc.constants, trait)) { + return false; + } + } catch (ParseException ex) { + View.showMessageDialog(slotConstEditor, ex.text, AppStrings.translate("error.slotconst.typevalue"), JOptionPane.ERROR_MESSAGE); + return false; + } catch (IOException ex) { + Logger.getLogger(SlotConstTraitDetailPanel.class.getName()).log(Level.SEVERE, null, ex); + return false; + } + return true; + } + + @Override + public void setEditMode(boolean val) { + if (val && active) { + JOptionPane.showMessageDialog(null, AppStrings.translate("warning.initializers"), AppStrings.translate("message.warning"), JOptionPane.WARNING_MESSAGE); + } + slotConstEditor.setEditable(val); + } + private boolean active = false; + + @Override + public void setActive(boolean val) { + this.active = val; + } +} diff --git a/src/com/jpexs/decompiler/flash/gui/abc/TraitsListItem.java b/src/com/jpexs/decompiler/flash/gui/abc/TraitsListItem.java index 89843ec4a..3112d43e5 100644 --- a/src/com/jpexs/decompiler/flash/gui/abc/TraitsListItem.java +++ b/src/com/jpexs/decompiler/flash/gui/abc/TraitsListItem.java @@ -16,13 +16,13 @@ */ package com.jpexs.decompiler.flash.gui.abc; -import com.jpexs.decompiler.flash.AppStrings; import com.jpexs.decompiler.flash.abc.ABC; import com.jpexs.decompiler.flash.abc.types.traits.Trait; import com.jpexs.decompiler.flash.abc.types.traits.TraitMethodGetterSetter; import com.jpexs.decompiler.flash.abc.types.traits.TraitSlotConst; import com.jpexs.decompiler.flash.configuration.Configuration; import com.jpexs.decompiler.flash.exporters.modes.ScriptExportMode; +import com.jpexs.decompiler.flash.gui.AppStrings; import com.jpexs.decompiler.flash.helpers.HilightedTextWriter; import com.jpexs.decompiler.flash.helpers.NulWriter; import com.jpexs.decompiler.flash.tags.ABCContainerTag; diff --git a/src/com/jpexs/decompiler/flash/gui/action/ActionPanel.java b/src/com/jpexs/decompiler/flash/gui/action/ActionPanel.java index 54156b208..f404af8c6 100644 --- a/src/com/jpexs/decompiler/flash/gui/action/ActionPanel.java +++ b/src/com/jpexs/decompiler/flash/gui/action/ActionPanel.java @@ -16,7 +16,6 @@ */ package com.jpexs.decompiler.flash.gui.action; -import com.jpexs.decompiler.flash.AppStrings; import com.jpexs.decompiler.flash.DisassemblyListener; import com.jpexs.decompiler.flash.SWF; import com.jpexs.decompiler.flash.action.Action; @@ -29,6 +28,7 @@ import com.jpexs.decompiler.flash.action.swf4.ActionPush; import com.jpexs.decompiler.flash.action.swf4.ConstantIndex; import com.jpexs.decompiler.flash.configuration.Configuration; import com.jpexs.decompiler.flash.exporters.modes.ScriptExportMode; +import com.jpexs.decompiler.flash.gui.AppStrings; import com.jpexs.decompiler.flash.gui.GraphDialog; import com.jpexs.decompiler.flash.gui.HeaderLabel; import com.jpexs.decompiler.flash.gui.Main; @@ -361,8 +361,7 @@ public class ActionPanel extends JPanel implements ActionListener, SearchListene int percent = 0; String phase = ""; - @Override - public void progress(String phase, long pos, long total) { + private void progress(String phase, long pos, long total) { if (total < 1) { return; } @@ -373,6 +372,21 @@ public class ActionPanel extends JPanel implements ActionListener, SearchListene setEditorText("; " + AppStrings.translate("work.disassembling") + " - " + phase + " " + percent + "%...", "text/flasm"); } } + + @Override + public void progressReading(long pos, long total) { + progress(AppStrings.translate("disassemblingProgress.reading"), pos, total); + } + + @Override + public void progressToString(long pos, long total) { + progress(AppStrings.translate("disassemblingProgress.toString"), pos, total); + } + + @Override + public void progressDeobfuscating(long pos, long total) { + progress(AppStrings.translate("disassemblingProgress.deobfuscating"), pos, total); + } }; return listener; } diff --git a/src/com/jpexs/decompiler/flash/gui/generictageditors/ColorEditor.java b/src/com/jpexs/decompiler/flash/gui/generictageditors/ColorEditor.java index 66658c161..414cce831 100644 --- a/src/com/jpexs/decompiler/flash/gui/generictageditors/ColorEditor.java +++ b/src/com/jpexs/decompiler/flash/gui/generictageditors/ColorEditor.java @@ -1,179 +1,179 @@ -/* - * Copyright (C) 2010-2014 JPEXS - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package com.jpexs.decompiler.flash.gui.generictageditors; - -import com.jpexs.decompiler.flash.AppStrings; -import com.jpexs.decompiler.flash.types.ARGB; -import com.jpexs.decompiler.flash.types.RGB; -import com.jpexs.decompiler.flash.types.RGBA; -import java.awt.Color; -import java.awt.Cursor; -import java.awt.Dimension; -import java.awt.FlowLayout; -import java.awt.Graphics; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.awt.event.FocusAdapter; -import java.awt.event.FocusEvent; -import java.lang.reflect.Field; -import javax.swing.BorderFactory; -import javax.swing.JButton; -import javax.swing.JColorChooser; -import javax.swing.JPanel; -import javax.swing.border.BevelBorder; - -/** - * - * @author JPEXS - */ -public class ColorEditor extends JPanel implements GenericTagEditor, ActionListener { - - private final Object obj; - private final Field field; - private final int index; - private final Class type; - private final String fieldName; - private Color color; - public static final int COLOR_TYPE_RGB = 0; - public static final int COLOR_TYPE_RGBA = 1; - public static final int COLOR_TYPE_ARGB = 2; - private int colorType; - private JButton buttonChange; - - public int getColorType() { - return colorType; - } - - public ColorEditor(String fieldName, Object obj, Field field, int index, Class type) { - this.obj = obj; - this.field = field; - this.index = index; - this.type = type; - this.fieldName = fieldName; - try { - Object val = ReflectionTools.getValue(obj, field, index); - if (val instanceof RGBA) { - colorType = COLOR_TYPE_RGBA; - } else if (val instanceof RGB) { - colorType = COLOR_TYPE_RGB; - } else if (val instanceof ARGB) { - colorType = COLOR_TYPE_ARGB; - } else { - throw new IllegalArgumentException("Invalid value type"); - } - if (val instanceof RGB) { //Note: Can be RGBA too - color = ((RGB) val).toColor(); - } - if (val instanceof ARGB) { - color = ((ARGB) val).toColor(); - } - setLayout(new FlowLayout()); - - //add(colorPanel); - buttonChange = new JButton("") { - - @Override - protected void paintComponent(Graphics g) { - g.setColor(getBackground()); - g.fillRect(0, 0, getWidth(), getHeight()); - super.paintBorder(g); - } - - }; - buttonChange.setToolTipText(AppStrings.translate("button.selectcolor.hint")); - buttonChange.setCursor(new Cursor(Cursor.HAND_CURSOR)); - buttonChange.addActionListener(this); - buttonChange.setBackground(color); - buttonChange.setBorderPainted(true); - buttonChange.setBorder(BorderFactory.createBevelBorder(BevelBorder.RAISED)); - Dimension colorDim = new Dimension(16, 16); - buttonChange.setSize(colorDim); - buttonChange.setPreferredSize(colorDim); - add(buttonChange); - } catch (IllegalArgumentException | IllegalAccessException ex) { - // ignore - } - - } - - @Override - public void save() { - Object val = getChangedValue(); - try { - ReflectionTools.setValue(obj, field, index, val); - } catch (IllegalArgumentException | IllegalAccessException ex) { - // ignore - } - } - - @Override - public void addChangeListener(final ChangeListener l) { - final GenericTagEditor t = this; - addFocusListener(new FocusAdapter() { - - @Override - public void focusLost(FocusEvent e) { - l.change(t); - } - - }); - } - - @Override - public Object getChangedValue() { - Object val = null; - switch (colorType) { - case COLOR_TYPE_RGB: - val = new RGB(color); - break; - case COLOR_TYPE_RGBA: - val = new RGBA(color); - break; - case COLOR_TYPE_ARGB: - val = new ARGB(); - break; - } - return val; - } - - @Override - public String getFieldName() { - return fieldName; - } - - @Override - public Field getField() { - return field; - } - - @Override - public void actionPerformed(ActionEvent e) { - Color newColor = JColorChooser.showDialog(null, AppStrings.translate("dialog.selectcolor.title"), color); - if (newColor != null) { - color = newColor; - buttonChange.setBackground(color); - repaint(); - } - } - - @Override - public String getReadOnlyValue() { - int h = System.identityHashCode(this); - return "     " + getChangedValue().toString(); - } - -} +/* + * Copyright (C) 2010-2014 JPEXS + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package com.jpexs.decompiler.flash.gui.generictageditors; + +import com.jpexs.decompiler.flash.gui.AppStrings; +import com.jpexs.decompiler.flash.types.ARGB; +import com.jpexs.decompiler.flash.types.RGB; +import com.jpexs.decompiler.flash.types.RGBA; +import java.awt.Color; +import java.awt.Cursor; +import java.awt.Dimension; +import java.awt.FlowLayout; +import java.awt.Graphics; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.event.FocusAdapter; +import java.awt.event.FocusEvent; +import java.lang.reflect.Field; +import javax.swing.BorderFactory; +import javax.swing.JButton; +import javax.swing.JColorChooser; +import javax.swing.JPanel; +import javax.swing.border.BevelBorder; + +/** + * + * @author JPEXS + */ +public class ColorEditor extends JPanel implements GenericTagEditor, ActionListener { + + private final Object obj; + private final Field field; + private final int index; + private final Class type; + private final String fieldName; + private Color color; + public static final int COLOR_TYPE_RGB = 0; + public static final int COLOR_TYPE_RGBA = 1; + public static final int COLOR_TYPE_ARGB = 2; + private int colorType; + private JButton buttonChange; + + public int getColorType() { + return colorType; + } + + public ColorEditor(String fieldName, Object obj, Field field, int index, Class type) { + this.obj = obj; + this.field = field; + this.index = index; + this.type = type; + this.fieldName = fieldName; + try { + Object val = ReflectionTools.getValue(obj, field, index); + if (val instanceof RGBA) { + colorType = COLOR_TYPE_RGBA; + } else if (val instanceof RGB) { + colorType = COLOR_TYPE_RGB; + } else if (val instanceof ARGB) { + colorType = COLOR_TYPE_ARGB; + } else { + throw new IllegalArgumentException("Invalid value type"); + } + if (val instanceof RGB) { //Note: Can be RGBA too + color = ((RGB) val).toColor(); + } + if (val instanceof ARGB) { + color = ((ARGB) val).toColor(); + } + setLayout(new FlowLayout()); + + //add(colorPanel); + buttonChange = new JButton("") { + + @Override + protected void paintComponent(Graphics g) { + g.setColor(getBackground()); + g.fillRect(0, 0, getWidth(), getHeight()); + super.paintBorder(g); + } + + }; + buttonChange.setToolTipText(AppStrings.translate("button.selectcolor.hint")); + buttonChange.setCursor(new Cursor(Cursor.HAND_CURSOR)); + buttonChange.addActionListener(this); + buttonChange.setBackground(color); + buttonChange.setBorderPainted(true); + buttonChange.setBorder(BorderFactory.createBevelBorder(BevelBorder.RAISED)); + Dimension colorDim = new Dimension(16, 16); + buttonChange.setSize(colorDim); + buttonChange.setPreferredSize(colorDim); + add(buttonChange); + } catch (IllegalArgumentException | IllegalAccessException ex) { + // ignore + } + + } + + @Override + public void save() { + Object val = getChangedValue(); + try { + ReflectionTools.setValue(obj, field, index, val); + } catch (IllegalArgumentException | IllegalAccessException ex) { + // ignore + } + } + + @Override + public void addChangeListener(final ChangeListener l) { + final GenericTagEditor t = this; + addFocusListener(new FocusAdapter() { + + @Override + public void focusLost(FocusEvent e) { + l.change(t); + } + + }); + } + + @Override + public Object getChangedValue() { + Object val = null; + switch (colorType) { + case COLOR_TYPE_RGB: + val = new RGB(color); + break; + case COLOR_TYPE_RGBA: + val = new RGBA(color); + break; + case COLOR_TYPE_ARGB: + val = new ARGB(); + break; + } + return val; + } + + @Override + public String getFieldName() { + return fieldName; + } + + @Override + public Field getField() { + return field; + } + + @Override + public void actionPerformed(ActionEvent e) { + Color newColor = JColorChooser.showDialog(null, AppStrings.translate("dialog.selectcolor.title"), color); + if (newColor != null) { + color = newColor; + buttonChange.setBackground(color); + repaint(); + } + } + + @Override + public String getReadOnlyValue() { + int h = System.identityHashCode(this); + return "     " + getChangedValue().toString(); + } + +} diff --git a/src/com/jpexs/decompiler/flash/gui/locales/MainFrame.properties b/src/com/jpexs/decompiler/flash/gui/locales/MainFrame.properties index 595e606c1..9f73cb831 100644 --- a/src/com/jpexs/decompiler/flash/gui/locales/MainFrame.properties +++ b/src/com/jpexs/decompiler/flash/gui/locales/MainFrame.properties @@ -400,29 +400,11 @@ errors.info = There are INFORMATIONS in the log. Click to view. errors.warning = There are WARNINGS in the log. Click to view. decompilationError = Decompilation error -decompilationError.timeout = Timeout ({0}) was reached -decompilationError.timeout.description = Not decompiled due to timeout -decompilationError.obfuscated = Code may be obfuscated -decompilationError.errorType = Error type -decompilationError.error.description = Not decompiled due to error - -#example: 1 hour and 2 minutes -timeFormat.and = and -timeFormat.hour = hour -timeFormat.hours = hours -timeFormat.minute = minute -timeFormat.minutes = minutes -timeFormat.second = second -timeFormat.seconds = seconds disassemblingProgress.toString = toString disassemblingProgress.reading = Reading disassemblingProgress.deobfuscating = Deobfuscating -decompilation.skipped = Decompilation skipped -decompilation.unsupported = Unsupported by decompiler -decompilerMark = decompiler mark -fontNotFound = Font with id=%fontId% was not found. contextmenu.moveTag = Move tag to filter.swc = SWC component files (*.swc) @@ -454,7 +436,6 @@ generictag.array.insertend = Insert %item% at the end #after version 2.0.0 contextmenu.expandAll = Expand all -binaryData.truncateWarning = %count% bytes truncated. filter.sounds = Supported sound formats (*.wav, *.mp3) filter.sounds.wav = Wave file format (*.wav) diff --git a/src/com/jpexs/decompiler/flash/gui/locales/MainFrame_ca.properties b/src/com/jpexs/decompiler/flash/gui/locales/MainFrame_ca.properties index 971d4ef19..3d4987cdd 100644 --- a/src/com/jpexs/decompiler/flash/gui/locales/MainFrame_ca.properties +++ b/src/com/jpexs/decompiler/flash/gui/locales/MainFrame_ca.properties @@ -400,29 +400,11 @@ errors.info = Hi han INFORMACIONS al registre. Fes clic per veure-les. errors.warning = Hi han AVISOS al registre. Fes clic per veure'ls. decompilationError = Error de descompilaci\u00f3 -decompilationError.timeout = S'ha at\u00e8s el temps l\u00edmit ({0}) -decompilationError.timeout.description = No s'ha descompilat degut al l\u00edmit de temps -decompilationError.obfuscated = El codi pot estar ofuscat -decompilationError.errorType = Tipus d'error -decompilationError.error.description = No s'ha descompilat degut a l'error - -#example: 1 hour and 2 minutes -timeFormat.and = i -timeFormat.hour = hora -timeFormat.hours = hores -timeFormat.minute = minut -timeFormat.minutes = minuts -timeFormat.second = segon -timeFormat.seconds = segons disassemblingProgress.toString = toString disassemblingProgress.reading = S'est\u00e0 llegint disassemblingProgress.deobfuscating = S'est\u00e0 desofuscant -decompilation.skipped = S'ha om\u00e8s la descompilaci\u00f3 -decompilation.unsupported = No suportat pel descompilador -decompilerMark = marca del descompilar -fontNotFound = No s'ha trobat la tipografia amb id=%fontId%. contextmenu.moveTag = Despla\u00e7a l'etiqueta a filter.swc = Fitxers de component SWC (*.swc) @@ -454,7 +436,6 @@ generictag.array.insertend = Insereix %item% al final #after version 2.0.0 contextmenu.expandAll = Expandeix-ho tot -binaryData.truncateWarning = S'han truncat %count% bytes. filter.sounds = Formats de so suportats (*.wav, *.mp3) filter.sounds.wav = Fitxer de format Wave (*.wav) diff --git a/src/com/jpexs/decompiler/flash/gui/locales/MainFrame_cs.properties b/src/com/jpexs/decompiler/flash/gui/locales/MainFrame_cs.properties index 5cbd64e2e..47e382c35 100644 --- a/src/com/jpexs/decompiler/flash/gui/locales/MainFrame_cs.properties +++ b/src/com/jpexs/decompiler/flash/gui/locales/MainFrame_cs.properties @@ -401,29 +401,11 @@ errors.info = V logu jsou INFORMACE. Klikn\u011bte pro zobrazen\u00ed. errors.warning = V logu jsou VAROV\u00c1N\u00cd. Klikn\u011bte pro zobrazen\u00ed. decompilationError = Chyba dekompilace -decompilationError.timeout = \u010casov\u00fd limit ({0}) vypr\u0161el -decompilationError.timeout.description = Nedekompilov\u00e1no kv\u016fli \u010dasov\u00e9mu limitu -decompilationError.obfuscated = K\u00f3d m\u016f\u017ee b\u00fdt obfuskov\u00e1n -decompilationError.errorType = Typ chyby -decompilationError.error.description = Nedekompilov\u00e1no kv\u016fli chyb\u011b - -#example: 1 hour and 2 minutes -timeFormat.and = a -timeFormat.hour = hodina -timeFormat.hours = hodin -timeFormat.minute = minuta -timeFormat.minutes = minut -timeFormat.second = vte\u0159ina -timeFormat.seconds = vte\u0159in disassemblingProgress.toString = toString disassemblingProgress.reading = \u010cten\u00ed disassemblingProgress.deobfuscating = Deobfuskace -decompilation.skipped = Dekompilace p\u0159esko\u010dena -decompilation.unsupported = Nepodporov\u00e1no dekompil\u00e1torem -decompilerMark = zna\u010dka dekompil\u00e1toru -fontNotFound = P\u00edsmo s id=%fontId% nebylo nalezeno. contextmenu.moveTag = P\u0159esunout tag do filter.swc = SWC soubory komponent (*.swc) @@ -455,7 +437,6 @@ generictag.array.insertend = Vlo\u017eit %item% na konec #after version 2.0.0 contextmenu.expandAll = Rozbalit v\u0161e -binaryData.truncateWarning = %count% byt\u016f o\u0159\u00edznuto. filter.sounds = Podporovan\u00e9 zvukov\u00e9 form\u00e1ty (*.wav, *.mp3) filter.sounds.wav = Wave form\u00e1t (*.wav) @@ -508,4 +489,4 @@ header.framerate = Frekvence sn\u00edmk\u016f: header.framecount = Po\u010det sn\u00edmk\u016f: header.displayrect = Zobrazen\u00fd obd\u00e9ln\u00edk: header.displayrect.value.twips = %xmin%,%ymin% => %xmax%,%ymax% twip\u016f -header.displayrect.value.pixels = %xmin%,%ymin% => %xmax%,%ymax% pixel\u016f \ No newline at end of file +header.displayrect.value.pixels = %xmin%,%ymin% => %xmax%,%ymax% pixel\u016f diff --git a/src/com/jpexs/decompiler/flash/gui/locales/MainFrame_es.properties b/src/com/jpexs/decompiler/flash/gui/locales/MainFrame_es.properties index 7c22e4f1e..7d946649e 100644 --- a/src/com/jpexs/decompiler/flash/gui/locales/MainFrame_es.properties +++ b/src/com/jpexs/decompiler/flash/gui/locales/MainFrame_es.properties @@ -334,6 +334,7 @@ error.font.nocharacter = Fuente de origen seleccionado no contiene caracteres "% warning.initializers = Los campos est\u00e1ticos y constantes son a menudo inicializados en el inicializador.\nEditar el valor aqu\u00ed usualmente no es suficiente! #after version 1.7.0u1: + menu.tools.searchmemory = Buscar SWFs en memoria menu.file.reload = Recargar message.confirm.reload = Esta acci\u00f3n eliminar\u00e1 todos lo cambios no guardados y recargar\u00e1 el archivo SWF otra vez.\nDesea continuar? @@ -399,33 +400,11 @@ errors.info = Hay INFORMATIONS en el log. Clickear para ver. errors.warning = Hay WARNINGS en el log. Clickear para ver. decompilationError = Error de decompilaci\u00f3n -decompilationError.timeout = Tiempo de espera ({0}) alcanzado -decompilationError.timeout.description = No decompilado debido al tiempo de espera -decompilationError.obfuscated = El c\u00f3digo puede estar ofuscado -decompilationError.errorType = Tipo de error -decompilationError.error.description = No decompilado debido a un error - -#example: 1 hour and 2 minutes -timeFormat.and = y -timeFormat.hour = hora -timeFormat.hours = horas -timeFormat.minute = minuto -timeFormat.minutes = minutos -timeFormat.second = segundo -timeFormat.seconds = segundos disassemblingProgress.toString = toString disassemblingProgress.reading = Leyendo disassemblingProgress.deobfuscating = Desofuscando -decompilation.skipped = Decompilaci\u00f3n omitida -decompilation.unsupported = No soportado por el decompilador -decompilerMark = marca del decompilador -open.error = Error -open.error.fileNotFound = Archivo no encontrado -open.error.cannotOpen = No se puede abrir el archivo - -fontNotFound = La fuente con id=%fontId% no se encontr\u00f3. contextmenu.moveTag = Mover etiqueta a filter.swc = Archivo de componente SWC (*.swc) @@ -453,4 +432,4 @@ generictag.array.insertbeginning = Insertar %item% al comienzo generictag.array.insertbefore = Insertar %item% antes generictag.array.remove = Remover %item% generictag.array.insertafter = Insertar %item% despu\u00e9s -generictag.array.insertend = Insertar %item% al final \ No newline at end of file +generictag.array.insertend = Insertar %item% al final diff --git a/src/com/jpexs/decompiler/flash/gui/locales/MainFrame_fr.properties b/src/com/jpexs/decompiler/flash/gui/locales/MainFrame_fr.properties index db5defc6c..59424a5e5 100644 --- a/src/com/jpexs/decompiler/flash/gui/locales/MainFrame_fr.properties +++ b/src/com/jpexs/decompiler/flash/gui/locales/MainFrame_fr.properties @@ -400,29 +400,11 @@ errors.info = Il y a des INFORMATIONS inscrites dans le journal. Cliquez pour le errors.warning = Il y a des ALARMES inscrites dans le journal. Cliquez pour le consulter. decompilationError = Erreur de d\u00e9compilation -decompilationError.timeout = Le d\u00e9lais d'attente de ({0}) est expir\u00e9 -decompilationError.timeout.description = Non d\u00e9compil\u00e9 car le d\u00e9lais d'attente a \u00e9t\u00e9 atteint -decompilationError.obfuscated = Le code est probablement obsfusqu\u00e9 -decompilationError.errorType = Type d'erreur -decompilationError.error.description = Non d\u00e9compil\u00e9 car il y a des erreurs - -#example: 1 hour and 2 minutes -timeFormat.and = et -timeFormat.hour = heure -timeFormat.hours = heures -timeFormat.minute = minute -timeFormat.minutes = minutes -timeFormat.second = seconde -timeFormat.seconds = secondes disassemblingProgress.toString = total trait\u00e9 disassemblingProgress.reading = Lecture disassemblingProgress.deobfuscating = D\u00e9sobfuscation -decompilation.skipped = D\u00e9compilation abandonn\u00e9 -decompilation.unsupported = Non support\u00e9 par le d\u00e9compileur -decompilerMark = Marqueur du d\u00e9compileur -fontNotFound = La police de caract\u00e8res n\u00ba%fontId% est introuvable. contextmenu.moveTag = D\u00e9placer la balise vers filter.swc = Biblioth\u00e8ques SWC (*.swc) @@ -454,7 +436,6 @@ generictag.array.insertend = Ins\u00e9rer %item% \u00e0 la fin #after version 2.0.0 contextmenu.expandAll = ExpD\u00e9velopper tout -binaryData.truncateWarning = %count% octets tronqu\u00e9s. filter.sounds = Formats audios support\u00e9s (*.wav, *.mp3) filter.sounds.wav = Audio brut Wave (*.wav) @@ -490,4 +471,4 @@ menu.settings.dumpView = Dump view menu.view = Vue menu.file.view.resources = Ressources -menu.file.view.hex = Vue hexad\u00e9cimale \ No newline at end of file +menu.file.view.hex = Vue hexad\u00e9cimale diff --git a/src/com/jpexs/decompiler/flash/gui/locales/MainFrame_hu.properties b/src/com/jpexs/decompiler/flash/gui/locales/MainFrame_hu.properties index ba493aaa5..05da53b8c 100644 --- a/src/com/jpexs/decompiler/flash/gui/locales/MainFrame_hu.properties +++ b/src/com/jpexs/decompiler/flash/gui/locales/MainFrame_hu.properties @@ -400,29 +400,11 @@ errors.info = INFORM\u00c1CI\u00d3K vannak a napl\u00f3ban. Kattintson ide a meg errors.warning = FIGYELMEZTET\u00c9SEK vannak a napl\u00f3ban. Kattintson ide a megjelen\u00edt\u00e9shez. decompilationError = Visszaford\u00edt\u00e1si hiba -decompilationError.timeout = Id\u0151t\u00fall\u00e9p\u00e9s ({0}) -decompilationError.timeout.description = Id\u0151t\u00fall\u00e9p\u00e9s miatt nem lett visszaford\u00edtva -decompilationError.obfuscated = K\u00f3d tal\u00e1n obfuszk\u00e1lva van -decompilationError.errorType = Hiba t\u00edpus -decompilationError.error.description = Hiba miatt nem lett visszaford\u00edtva - -#example: 1 hour and 2 minutes -timeFormat.and = \u00e9s -timeFormat.hour = \u00f3ra -timeFormat.hours = \u00f3ra -timeFormat.minute = perc -timeFormat.minutes = perc -timeFormat.second = m\u00e1sodperc -timeFormat.seconds = m\u00e1sodperc disassemblingProgress.toString = Karakterl\u00e1ncc\u00e1 alak\u00edt\u00e1s disassemblingProgress.reading = Olvas\u00e1s disassemblingProgress.deobfuscating = Deobfuszk\u00e1l\u00e1s -decompilation.skipped = Visszaford\u00edt\u00e1s mell\u0151zve -decompilation.unsupported = Visszaford\u00edt\u00e1s nem t\u00e1mogatott -decompilerMark = visszaford\u00edt\u00e1si jel -fontNotFound = Bet\u0171t\u00edpus (id=%fontId%) nem tal\u00e1lhat\u00f3. contextmenu.moveTag = \u00c1thelyez\u00e9s ide filter.swc = SWC komponens f\u00e1jlok (*.swc) @@ -454,7 +436,6 @@ generictag.array.insertend = %item% besz\u00far\u00e1sa a v\u00e9g\u00e9re #after version 2.0.0 contextmenu.expandAll = Mindent kinyit -binaryData.truncateWarning = %count% byte lev\u00e1gva. filter.sounds = T\u00e1mogatott hang form\u00e1tumok (*.wav, *.mp3) filter.sounds.wav = Hanghull\u00e1m form\u00e1tum (*.wav) diff --git a/src/com/jpexs/decompiler/flash/gui/locales/MainFrame_nl.properties b/src/com/jpexs/decompiler/flash/gui/locales/MainFrame_nl.properties index cc813a70f..7e92083df 100644 --- a/src/com/jpexs/decompiler/flash/gui/locales/MainFrame_nl.properties +++ b/src/com/jpexs/decompiler/flash/gui/locales/MainFrame_nl.properties @@ -334,6 +334,7 @@ error.font.nocharacter = Geselecteerde bron lettertype geen "%char%" teken bevat warning.initializers = Statische velden en constanten worden vaak in de initialiseerders ge\u00efnitialiseerd.\nHier waarde bewerken is meestal niet genoeg! #after version 1.7.0u1: + menu.tools.searchmemory = Naar SWFs in het geheugen zoeken menu.file.reload = Herladen message.confirm.reload = Hiermee annuleert U alle niet-opgeslagen veranderingen en laadt het SWF-bestand opnieuw.\nWilt U doorgaan? @@ -350,6 +351,7 @@ ColorChooser.swatchesRecentText = Recent: ColorChooser.sampleText = Voorbeeldtekst Voorbeeldtekst #after version 1.7.1: + preview.play = Spelen preview.pause = Pauzeren preview.stop = Stoppen @@ -359,6 +361,7 @@ message.confirm.removemultiple = Weet U zeker dat U %count% items\n en alle obje menu.tools.searchcache = In de browser-cache zoeken #after version 1.7.2u2 + error.trait.exists = Karaktertrek met de naam "%name%" bestaat al. button.addtrait = Karaktertrek toevoegen button.font.embed = Inbedden... @@ -397,29 +400,11 @@ errors.info = Er zijn INFORMATIES in het logboek. Klik om te zien. errors.warning = Er zijn WAARSCHUWINGEN in het logboek. Klik om te zien. decompilationError = Decompilatie fout -decompilationError.timeout = Timeout ({0}) werd bereikt -decompilationError.timeout.description = Niet gedecompileerd vanwege timeout -decompilationError.obfuscated = Code kan worden geobfusceerd -decompilationError.errorType = Fout type -decompilationError.error.description = Niet gedecompileerd gevolg van een fout - -#example: 1 hour and 2 minutes -timeFormat.and = en -timeFormat.hour = uur -timeFormat.hours = uur -timeFormat.minute = minuut -timeFormat.minutes = minuten -timeFormat.second = seconde -timeFormat.seconds = seconden disassemblingProgress.toString = Tekstweergave disassemblingProgress.reading = Aan het lezen disassemblingProgress.deobfuscating = Aan het deobfusceren -decompilation.skipped = Decompilatie overgeslagen -decompilation.unsupported = Niet ondersteund door decompiler -decompilerMark = decompiler mark -fontNotFound = Lettertype met id=%fontId% is niet gevonden. contextmenu.moveTag = Verplaats tag naar filter.swc = SWC bibliotheken (*.swc) diff --git a/src/com/jpexs/decompiler/flash/gui/locales/MainFrame_ru.properties b/src/com/jpexs/decompiler/flash/gui/locales/MainFrame_ru.properties index 8c7f2ff43..1a3a3e351 100644 --- a/src/com/jpexs/decompiler/flash/gui/locales/MainFrame_ru.properties +++ b/src/com/jpexs/decompiler/flash/gui/locales/MainFrame_ru.properties @@ -400,29 +400,11 @@ errors.info = \u0412 \u043b\u043e\u0433\u0435 \u0435\u0441\u0442\u044c \u0432\u0 errors.warning = \u0412 \u043b\u043e\u0433\u0435 \u0435\u0441\u0442\u044c \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u044f! \u041a\u043b\u0438\u043a\u043d\u0438\u0442\u0435 \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430. decompilationError = \u041e\u0448\u0438\u0431\u043a\u0430 \u0434\u0435\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 -decompilationError.timeout = \u0422\u0430\u0439\u043c\u0430\u0443\u0442: ({0}) -decompilationError.timeout.description = \u0414\u0435\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044f \u043f\u0440\u0435\u0440\u0432\u0430\u043d\u0430 \u0438\u0437-\u0437\u0430 \u0442\u0430\u0439\u043c\u0430\u0443\u0442\u0430 -decompilationError.obfuscated = \u041a\u043e\u0434 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043e\u0431\u0444\u0443\u0441\u0446\u0438\u0440\u043e\u0432\u0430\u043d -decompilationError.errorType = \u0422\u0438\u043f \u043e\u0448\u0438\u0431\u043a\u0438 -decompilationError.error.description = \u0414\u0435\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044f \u043f\u0440\u0435\u0440\u0432\u0430\u043d\u0430 \u0438\u0437-\u0437\u0430 \u043e\u0448\u0438\u0431\u043a\u0438 - -#example: 1 hour and 2 minutes -timeFormat.and = \u0438 -timeFormat.hour = \u0447. -timeFormat.hours = \u0447. -timeFormat.minute = \u043c\u0438\u043d. -timeFormat.minutes = \u043c\u0438\u043d. -timeFormat.second = \u0441\u0435\u043a. -timeFormat.seconds = \u0441\u0435\u043a. disassemblingProgress.toString = \u0413\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u0441\u0442\u0440\u043e\u043a disassemblingProgress.reading = \u0427\u0442\u0435\u043d\u0438\u0435 disassemblingProgress.deobfuscating = \u0414\u0435\u043e\u0431\u0444\u0443\u0441\u043a\u0430\u0446\u0438\u044f -decompilation.skipped = \u0414\u0435\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044f \u043f\u0440\u043e\u043f\u0443\u0449\u0435\u043d\u0430 -decompilation.unsupported = \u041d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0434\u0435\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u043e\u043c -decompilerMark = decompiler mark -fontNotFound = \u0428\u0440\u0438\u0444\u0442 \u0441 id=%fontId% \u043d\u0435 \u0431\u044b\u043b \u043d\u0430\u0439\u0434\u0435\u043d. contextmenu.moveTag = \u041f\u0435\u0440\u0435\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u0442\u044d\u0433 filter.swc = SWC \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 (*.swc) @@ -454,7 +436,6 @@ generictag.array.insertend = \u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044c %i #after version 2.0.0 contextmenu.expandAll = \u0420\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0432\u0441\u0435 -binaryData.truncateWarning = \u0411\u0430\u0439\u0442 \u043d\u0435 \u0443\u043c\u0435\u0441\u0442\u0438\u043b\u043e\u0441\u044c: %count% filter.sounds = \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0435 \u0437\u0432\u0443\u043a\u043e\u0432\u044b\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u044b (*.wav,*.mp3) filter.sounds.wav = Wave \u0444\u043e\u0440\u043c\u0430\u0442 (*.wav) diff --git a/src/com/jpexs/decompiler/flash/gui/locales/MainFrame_sv.properties b/src/com/jpexs/decompiler/flash/gui/locales/MainFrame_sv.properties index ea883b85d..e9a163017 100644 --- a/src/com/jpexs/decompiler/flash/gui/locales/MainFrame_sv.properties +++ b/src/com/jpexs/decompiler/flash/gui/locales/MainFrame_sv.properties @@ -296,7 +296,7 @@ FileChooser.listViewButtonToolTip.textAndMnemonic = Lista FileChooser.lookInLabel.textAndMnemonic = Kolla i: FileChooser.newFolderActionLabel.textAndMnemonic = Ny mapp FileChooser.newFolderToolTip.textAndMnemonic = Skapa Ny Mapp -FileChooser.refreshActionLabel.textAndMnemonic = Refresh +FileChooser.refreshActionLabel.textAndMnemonic = Refresh FileChooser.saveInLabel.textAndMnemonic = Spara i: FileChooser.upFolderToolTip.textAndMnemonic = Upp en niv\u00e5 FileChooser.viewMenuButtonAccessibleName = Visa meny @@ -308,9 +308,9 @@ FileChooser.detailsViewActionLabelText = Detaljer FileChooser.refreshActionLabelText = Uppdatera FileChooser.sortMenuLabelText = Ordna ikoner efter FileChooser.viewMenuLabelText = Visa -FileChooser.fileSizeKiloBytes = {0} KB -FileChooser.fileSizeMegaBytes = {0} MB -FileChooser.fileSizeGigaBytes = {0} GB +FileChooser.fileSizeKiloBytes = {0} KB +FileChooser.fileSizeMegaBytes = {0} MB +FileChooser.fileSizeGigaBytes = {0} GB FileChooser.folderNameLabelText = Mappnamn: error.occured = Ett fel uppstod : %error% @@ -397,30 +397,13 @@ button.preview = F\u00f6rhandsgranska button.reset = \u00c5terst\u00e4ll errors.info = Det \u00e4r information i loggen. Klicka f\u00f6r att visa. errors.warning = Det \u00e4r varningar i loggen. Klicka f\u00f6r att visa.. -decompilationError = Dekompilering felmeddelande -decompilationError.timeout = Timeout ({0}) n\u00e5ddes -decompilationError.timeout.description = Dekompilerades inte p\u00e5grund av en timeout -decompilationError.obfuscated = Koden kan vara obfuskerad -decompilationError.errorType = Fel typ -decompilationError.error.description = Ej dekompilerad p\u00e5grund av fel -#example: 1 hour and 2 minutes -timeFormat.and = och -timeFormat.hour = timme -timeFormat.hours = timmar -timeFormat.minute = minut -timeFormat.minutes = minuter -timeFormat.second = sekund -timeFormat.seconds = sekunder +decompilationError = Dekompilering felmeddelande disassemblingProgress.toString = toString disassemblingProgress.reading = L\u00e4ser disassemblingProgress.deobfuscating = Deobfuskering -decompilation.skipped = Dekompilering skippades -decompilation.unsupported = st\u00f6ds inte utav dekompileraren -decompilerMark = markera dekompilerare -fontNotFound = Typsnitt med id=%fontId% hittades inte. contextmenu.moveTag = Flytta tag till filter.swc = SWC komponent filer (*.swc) diff --git a/src/com/jpexs/decompiler/flash/gui/locales/MainFrame_uk.properties b/src/com/jpexs/decompiler/flash/gui/locales/MainFrame_uk.properties index dea5ec4fc..c3d79b033 100644 --- a/src/com/jpexs/decompiler/flash/gui/locales/MainFrame_uk.properties +++ b/src/com/jpexs/decompiler/flash/gui/locales/MainFrame_uk.properties @@ -400,29 +400,11 @@ errors.info = \u0412 \u0436\u0443\u0440\u043d\u0430\u043b\u0456 \u0454 \u0432\u0 errors.warning = \u0412 \u0436\u0443\u0440\u043d\u0430\u043b\u0456 \u0454 \u043f\u043e\u043f\u0435\u0440\u0435\u0434\u0436\u0435\u043d\u043d\u044f. \u041d\u0430\u0442\u0438\u0441\u043d\u0456\u0442\u044c, \u0449\u043e\u0431 \u043f\u043e\u0434\u0438\u0432\u0438\u0442\u0438\u0441\u044f. decompilationError = \u041f\u043e\u043c\u0438\u043b\u043a\u0430 \u0434\u0435\u043a\u043e\u043c\u043f\u0456\u043b\u044f\u0446\u0456\u0457 -decompilationError.timeout = \u0422\u0430\u0439\u043c\u0430\u0443\u0442 ({0}) \u0431\u0443\u043b\u043e \u0434\u043e\u0441\u044f\u0433\u043d\u0443\u0442\u043e -decompilationError.timeout.description = \u0414\u0435\u043a\u043e\u043c\u043f\u0456\u043b\u044f\u0446\u0456\u044f \u043f\u0435\u0440\u0435\u0440\u0432\u0430\u043d\u0430 \u0447\u0435\u0440\u0435\u0437 \u0442\u0430\u0439\u043c\u0430\u0443\u0442 -decompilationError.obfuscated = \u041a\u043e\u0434 \u043c\u043e\u0436\u0435 \u0431\u0443\u0442\u0438 \u043e\u0431\u0444\u0443\u0441\u043a\u043e\u0432\u0430\u043d\u0438\u0439 -decompilationError.errorType = \u0422\u0438\u043f \u043f\u043e\u043c\u0438\u043b\u043a\u0438 -decompilationError.error.description = \u0414\u0435\u043a\u043e\u043c\u043f\u0456\u043b\u044f\u0446\u0456\u044f \u043f\u0435\u0440\u0435\u0440\u0432\u0430\u043d\u0430 \u0447\u0435\u0440\u0435\u0437 \u043f\u043e\u043c\u0438\u043b\u043a\u0443 - -#example: 1 hour and 2 minutes -timeFormat.and = \u0442\u0430 -timeFormat.hour = \u0433\u043e\u0434. -timeFormat.hours = \u0433\u043e\u0434. -timeFormat.minute = \u0445\u0432. -timeFormat.minutes = \u0445\u0432. -timeFormat.second = \u0441\u0435\u043a. -timeFormat.seconds = \u0441\u0435\u043a. disassemblingProgress.toString = \u0422\u0435\u043a\u0441\u0442\u043e\u0432\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044f disassemblingProgress.reading = \u0427\u0438\u0442\u0430\u043d\u043d\u044f disassemblingProgress.deobfuscating = \u0414\u0435\u043e\u0431\u0444\u0443\u0441\u043a\u0430\u0446\u0456\u044f -decompilation.skipped = \u0414\u0435\u043a\u043e\u043c\u043f\u0456\u043b\u044f\u0446\u0456\u044e \u043f\u0440\u043e\u043f\u0443\u0449\u0435\u043d\u043e -decompilation.unsupported = \u041d\u0435 \u043f\u0456\u0434\u0442\u0440\u0438\u043c\u0443\u0454\u0442\u044c\u0441\u044f \u0434\u0435\u043a\u043e\u043c\u043f\u0456\u043b\u044f\u0442\u043e\u0440\u043e\u043c -decompilerMark = decompiler mark -fontNotFound = \u0428\u0440\u0438\u0444\u0442 \u0437 id=%fontId% \u043d\u0435 \u0437\u043d\u0430\u0439\u0434\u0435\u043d\u043e. contextmenu.moveTag = \u041f\u0435\u0440\u0435\u043c\u0456\u0441\u0442\u0438\u0442\u0438 \u0442\u0435\u0433 filter.swc = SWC \u0431\u0456\u0431\u043b\u0456\u043e\u0442\u0435\u043a\u0438 (*.swc) diff --git a/src/com/jpexs/decompiler/flash/gui/locales/MainFrame_zh.properties b/src/com/jpexs/decompiler/flash/gui/locales/MainFrame_zh.properties index f461de393..c71eb14ec 100644 --- a/src/com/jpexs/decompiler/flash/gui/locales/MainFrame_zh.properties +++ b/src/com/jpexs/decompiler/flash/gui/locales/MainFrame_zh.properties @@ -91,7 +91,6 @@ message.confirm.autodeobfuscate = \u81ea\u52a8\u53cd\u6df7\u6dc6\u662f\u4e00\u79 message.parallel = \u591a\u7ebf\u7a0b message.trait.saved = \u5df2\u6210\u529f\u4fdd\u5b58Trait - message.constant.new.string = \u5728\u5e38\u91cf\u8868\u4e2d\u627e\u4e0d\u5230\u5b57\u7b26\u4e32 "%value%" \uff0c\u9700\u8981\u6dfb\u52a0\u5417\uff1f message.constant.new.string.title = \u6dfb\u52a0\u5b57\u7b26\u4e32 message.constant.new.integer = \u5728\u5e38\u91cf\u8868\u4e2d\u627e\u4e0d\u5230\u6574\u6570 "%value%" \uff0c\u9700\u8981\u6dfb\u52a0\u5417\uff1f @@ -119,7 +118,6 @@ work.buildingscripttree = \u5efa\u7acb\u811a\u672c\u6811 work.deobfuscating.complete = \u53cd\u6df7\u6dc6\u5b8c\u6210 - message.search.notfound = \u6ca1\u6709\u627e\u5230\u5b57\u7b26\u4e32 "%searchtext%" . message.search.notfound.title = \u6ca1\u6709\u627e\u5230 diff --git a/src/com/jpexs/decompiler/flash/gui/player/PlayerControls.java b/src/com/jpexs/decompiler/flash/gui/player/PlayerControls.java index 9a75252a0..478b85a9d 100644 --- a/src/com/jpexs/decompiler/flash/gui/player/PlayerControls.java +++ b/src/com/jpexs/decompiler/flash/gui/player/PlayerControls.java @@ -16,7 +16,7 @@ */ package com.jpexs.decompiler.flash.gui.player; -import com.jpexs.decompiler.flash.AppStrings; +import com.jpexs.decompiler.flash.gui.AppStrings; import com.jpexs.decompiler.flash.gui.View; import java.awt.BorderLayout; import java.awt.Dimension;