From f03fe103c8ba4b2b48f5cbc00b9dd2b2d0a1a7b0 Mon Sep 17 00:00:00 2001 From: Chris Cromer Date: Thu, 22 Nov 2018 20:02:30 -0300 Subject: [PATCH] finish up the informe --- doc/Informe.tex | 103 ++++++++++++--------- doc/graph.png | Bin 46334 -> 57854 bytes doc/pseudo/bitonicsort.txt | 169 +++++++++++++---------------------- doc/pseudo/bubblesort.txt | 28 +++--- doc/pseudo/countingsort.txt | 22 +++++ doc/pseudo/mergesort.txt | 43 +++++++++ doc/pseudo/quicksort.txt | 55 +++++------- doc/pseudo/selectionsort.txt | 44 ++++----- doc/resultados.txt | 41 --------- 9 files changed, 246 insertions(+), 259 deletions(-) create mode 100644 doc/pseudo/countingsort.txt create mode 100644 doc/pseudo/mergesort.txt delete mode 100644 doc/resultados.txt diff --git a/doc/Informe.tex b/doc/Informe.tex index 4420efb..2a56e85 100644 --- a/doc/Informe.tex +++ b/doc/Informe.tex @@ -67,10 +67,12 @@ Xavier Canales \pagenumbering{arabic} \section{Pseudo código} \subsection{Merge Sort} +\lstinputlisting{pseudo/mergesort.txt} \newpage \subsection{Quick Sort} \lstinputlisting{pseudo/quicksort.txt} + \newpage \subsection{Bubble Sort} \lstinputlisting{pseudo/bubblesort.txt} @@ -78,73 +80,82 @@ Xavier Canales \newpage \subsection{Bitonic Sort} \lstinputlisting{pseudo/bitonicsort.txt} -\newpage -\subsection{Ordenamiento por conteo} \newpage -\subsection{Ordenamiento por selección} +\subsection{Counting Sort} +\lstinputlisting{pseudo/countingsort.txt} + +\newpage +\subsection{Selection Sort} \lstinputlisting{pseudo/selectionsort.txt} + \newpage \section{Resultados} \subsection{Análisis temporal} \subsubsection{Merge Sort} -Caso Promedio: $ \Theta (n log n)) $ \\ -en.wikipedia.org/wiki/Merge\_sort\#Analysis +\underline{Caso Promedio:} $ \Theta(n log n)) $ \\ +El caso promedio de merge sort es lo mismo que su peor caso. \\ -Peor Caso: $ O(n log n) $ \\ +\underline{Peor Caso:} $ O(n log n) $ \\ +En el peor de los casos, el merge sort hace aproximadamente un 39\% menos de comparaciones que el quick sort en su caso promedio. En términos de movimientos, la complejidad del peor de los casos de merge sort es $ O(n log n) $ la misma complejidad que el mejor de Quick sort, y el mejor de la clasificación de merge sort toma aproximadamente la mitad de las iteraciones que en el peor de los casos. \\ - -Mejor Caso: $ \Omega (n log n)$ \\ +\underline{Mejor Caso:} $ \Omega(n log n)$ \\ +En el caso mejor de merge sort, el merge sort funciona mejor cuando los datos son secuencial. \\ \subsubsection{Quick Sort} -Caso Promedio: $ \Theta (n(log n)) $ \\ -El tiempo de ejecución que tendrá el algoritmo dependerá de como se realice la partición de el arreglo entrada, es decir, depende de la selección del pivote +\underline{Caso Promedio:} $ \Theta(n(log n)) $ \\ +El tiempo de ejecución que tendrá el algoritmo dependerá de como se realice la partición de el arreglo entrada, es decir, depende de la selección del pivote. \\ -Peor Caso: $ O(n^2) $ \\ -El peor de los casos para el quicksort resultará cuando la elección del pivote sea el valor más pequeño del arreglo o el más grande de este mismo. +\underline{Peor Caso:} $ O(n^2) $ \\ +El peor de los casos para el quick sort resultará cuando la elección del pivote sea el valor más pequeño del arreglo o el más grande de este mismo. \\ + +\underline{Mejor Caso:} $ \Omega(n log(n)) $ \\ +Para obtener el mejor caso posible será cuando el pivote se encuentre exactamente al medio del arreglo, porque lo dividirá en dos obteniendo n/2 elementos en ambas divisiones del arreglo. \\ -Mejor Caso: $ \Omega $(n log(n)) \\ -Para obtener el mejor caso posible será cuando el pivote se encuentre exactamente al medio del arreglo, porque lo dividirá en dos obteniendo n/2 elementos en ambas divisiones del arreglo \subsubsection{Bubble Sort} -Caso Promedio: $ \Theta (n^2)) $ \\ -El caso promedio compara la complejidad temporal con el peor caso, donde n es el numero de valores a ordenar, esto es producto de la forma en la cual Bubble transporta los valores dentro de su ordenamiento +\underline{Caso Promedio:} $ \Theta(n^2)) $ \\ +El caso promedio compara la complejidad temporal con el peor caso, donde n es el numero de valores a ordenar, esto es producto de la forma en la cual \textit{bubble} transporta los valores dentro de su ordenamiento. \\ -Peor Caso: $ O(n^2) $ \\ +\underline{Peor Caso:} $ O(n^2) $ \\ +En el peor caso el arreglo a ordenar va a estar ordenado en forma descendente previamente. \\ - -Mejor Caso: $ \Omega (n)$ \\ -El mejor caso para el Bubble sort será cuando el arreglo de entrada venga previamente ordenado de menor a mayor. +\underline{Mejor Caso:} $ \Omega(n)$ \\ +El mejor caso para el bubble sort será cuando el arreglo de entrada venga previamente ordenado de menor a mayor. \\ \subsubsection{Bitonic Sort} -Caso Promedio: $\Theta(log^2(n))$ \\ -El ordenamiento bitonico responde igual a todos los casos porque siempre antes de empezar a ordenarlos realiza las mismas comparaciones para dejarlos en la secuencia bitonica +\underline{Caso Promedio:} $\Theta(log^2(n))$ \\ +El ordenamiento bitonico responde igual a todos los casos porque siempre antes de empezar a ordenarlos realiza las mismas comparaciones para dejarlos en la secuencia bitonica. \\ -Peor Caso: $O(log^2(n))$ \\ +\underline{Peor Caso:} $ O(log^2(n)) $ \\ +Su caso peor es lo mismo que su caso promedio. \\ -Mejor Caso: $\Omega(log^2(n))$ \\ +\underline{Mejor Caso:} $ \Omega(log^2(n)) $ \\ +Su caso mejor es lo mismo que su caso promedio. \\ -\subsubsection{Ordenamiento por conteo} -Caso Promedio: $ \Theta (n + k)) $ \\ -La complejidad total es igual para todos los casos, porque el algoritmo usa sólo ciclos simples, sin recursividad o sub-funciones, va directamente al analisis +\subsubsection{Counting Sort} +\underline{Caso Promedio:} $ \Theta(\frac{n^2}{2}) $ \\ +La complejidad total es igual para todos los casos, porque el algoritmo usa sólo ciclos simples, sin recursividad o sub-funciones, va directamente al análisis. \\ -Peor Caso: $ O(n + k) $ \\ +\underline{Peor Caso:} $ O(\frac{n^2}{2}) $ \\ +Su caso pero es lo mismo que su caso promedio. \\ +\underline{Mejor Caso:} $ \Omega(\frac{n^2}{2}) $ \\ +Su caso mejor es lo mismo que su caso promedio. \\ -Mejor Caso: $ \Omega (n + k)$ \\ +\subsubsection{Selection Sort} +\underline{Caso Promedio:} $ \Theta(n^2) $ \\ +El ordenamiento por selección no es un algoritmo de ordenamiento adaptable, realiza el mismo numero de comparaciones de elementos en el mejor caso, el caso promedio y el peor de los casos, esto se debe a que no utiliza el orden existente de las entradas del arreglo para ordenar. \\ -\subsubsection{Ordenamiento por selección} -Caso Promedio: $\Theta(n^2)$ \\ -El ordenamiento por selección no es un algoritmo de ordenamiento adaptable, realiza el mismo numero de comparaciones de elementos en el mejor caso, el caso promedio y el peor de los casos, esto se debe a que no utiliza el orden existente de las entradas de el arreglo para ordenar. - -Peor Caso: $O(n^2)$ \\ - -Mejor Caso: $\Omega(n^2)$ +\underline{Peor Caso:} $ O(n^2) $ \\ +Su caso peor es lo mismo que su caso promedio. \\ +\underline{Mejor Caso:} $ \Omega(n^2) $ \\ +Su caso mejor es lo mismo que su caso promedio. \\ \newpage \subsection{Datos} -La siguiente tabla contiene los resultados de las pruebas de los 6 algoritmos medidos en segundos. Para las pruebas usábamos un computador que tiene un procesador AMD A12 con 4 núcleos de 2.7Ghz y 16GB de memoria RAM. +La siguiente tabla contiene los resultados de las pruebas de los 6 algoritmos medidos en segundos. Para las pruebas usábamos un computador que tiene 4 nucleos de 3.2GHz y 16GB de memoria RAM. \begin{center} \begin{tabular}{|c|c|c|c|c|c|c|} \hline @@ -156,11 +167,11 @@ La siguiente tabla contiene los resultados de las pruebas de los 6 algoritmos me \hline \rule[-1ex]{0pt}{3.5ex} 100.000 & 0.170[s] & 0.300[s] & 0.124[s] & 11.645[s] & 30.269[s] & 32.347[s] \\ \hline - \rule[-1ex]{0pt}{3.5ex} 1.000.000 & 0.173[s] & 0.304[s] & 1.405[s] & 1,262.000[s] & 3,026.900[s] & 3,234.700[s] \\ + \rule[-1ex]{0pt}{3.5ex} 1.000.000 & 0.173[s] & 0.304[s] & 1.405[s] & 3,144.000[s] & 6,717.674[s] & 7,248.000[s] \\ \hline - \rule[-1ex]{0pt}{3.5ex} 5.000.000 & 2.000[s] & 1.577[s] & 7.421[s] & 31,550.000[s] & 75,672.500[s] & 80,867.500[s] \\ + \rule[-1ex]{0pt}{3.5ex} 5.000.000 & 2.000[s] & 1.577[s] & 7.421[s] & 60,951.000[s] & 139,273.286[s] & 153,273.539[s] \\ \hline - \rule[-1ex]{0pt}{3.5ex} 10.000.000 & 2.400[s] & 3.236[s] & 18.365[s] & 126,200.000[s] & 302,690.000[s] & 323,470.000[s] \\ + \rule[-1ex]{0pt}{3.5ex} 10.000.000 & 2.400[s] & 3.236[s] & 18.365[s] & 243,804.000[s] & 557,093.1440[s] & 613,094.156[s] \\ \hline \end{tabular} \end{center} @@ -174,6 +185,18 @@ La siguiente tabla contiene los resultados de las pruebas de los 6 algoritmos me \newpage \section{Conclusiones} +Basados en los resultados obtenido podemos poner los algoritmos en orden de mas rápido a menos rápido en la siguiente forma: +\begin{itemize} + \setlength\itemsep{0.1em} + \item Quick Sort + \item Merge Sort + \item Bitonic Sort + \item Selection Sort + \item Counting Sort + \item Bubble Sort +\end{itemize} +Al final resulta que el mas rápido algoritmo de ordenamiento que probamos fue Quick Sort mientras que el mas lento fue el Bubble Sort. +Los resultados de tiempo de ejecución estaban de lo que esperábamos dado el complejidad de los algoritmos. \end{document} diff --git a/doc/graph.png b/doc/graph.png index 730f77d7f0a08b6179ccc00af6c7b6682a1f40d7..63e2cd9ce0f3c1a2fca68d3987b01994ca263bae 100644 GIT binary patch literal 57854 zcmagFby$>9_byCJ2uLd34T?09l0$d5baxLSAl)U6G)j+z)F9%}jdTfvgyhi8_u%_` zzjMwX=Q{8QTyyPb@Aa&`;$G`s6QiywkBd!?jf8}Rs{oSGL_$JdMM6St$HV|WA-PTz z1OA|SN-1b#0zY6(t7s%7S|kOTx7vPrd-?ugW9zerRZm;UE0d|nGK#Vc0ZihqYIJKh zb!zGg^HCh09Td&3aP6B-N(eVC()q zYsHGWm3Mw~)N^yxzss}(bYR6(G1loXzLf|3V$C%>m$1ebvnr0(D^q-W{O?0#Y+W(% z&&CT9Gg%E{*@4&WP~hX(R7-6z32bbxX8e}Vi$ABC5p{q3R{Q#6ZlU6BeDNhFuo{7y zTNqw0e{hwAS76--xSnvcqDBXk)dG^N zM&y`+cLiep%h`yTz~1?Os94E&RY$hl((jXcuG0^UcdHb(ipzb6*y78uB0Fft2Tyg%3&2eMZLn;yd571K&M(#_}nimGRpX$2X&$$3iP@R`U0L`?FYRD58i3#rxaKT)ugM zkS;iPhWUv=?oNW1L_LH6u z5BINHMgtWF{rQR&%mdkQQsW)a0BXj0ZlXo`+>ewez`qhR>B{nBxo?Cs`t?)*+g3t?mX<&XD)?)}m?UJu5f zJhpxweqNx8#bbE(MftX1BFZwO!o>@*dGL{E|M_lF5Jvm`Z^FbSPmwpMZo6uvh_4i` z8@8)>JFIw63pBW1@I*`M%Ii$pr#&6|AX8xsi|J|$m8AW? zu2=ZPDN*>!*e$Mrgb5#rgVb!5tifxYy882Yo>fHlHFlKutz=MjSMpyKX`|I7kuVdo3e+9cN4!^!E9f|B@ z|Kw5ivKhq{W-k52$q1!Az5L=>!ZCc`S19$XZOvw8-|9Pm`B1gy?|9brTJGzsZs#2) zt#|nYGU5Rd3-3tGU^I3cRjlIgZ0y%1qOftGqQzS`n&ySa(8Jw3PZ464d(XM{;;miD z9f4<}5vgDD=U?pv9NX^g9+SBM$4PYF__&DvS-hprGRV8EqgdQTw3K_CbqZD;u|uU8 zfcTCf%ZK;MDRQ|*ZmOpY_0pD?Qg``+pTe)4Y*X8@^wTBIf0KaWe)VH^5SD}K0ZBo_ zBmV!$5=!*=FDftDV~dGt^Eq4Sq@*98DnpvT@$A~zyen_G zZ-CRDzlkZYLreNOJg>w0@41bq6m8<+na_)M+~;nedUfD?Z7!t-nHu+AIMA3!)yaKx zyA}s*RV=2imBwzMmFq+FIS`?WH=?&wR}tf~dWgL!k@{wPhCkg2d;HcEs-nK4X`|op z!z?`=)JkyiXMB%$MKVtY4nu~D8g9O=|5SwfIij-Tt`q|~gjF$7=qhXIa{s*=_f3Z0 z{2yqAfmmlwX8ZjRG-NI##3ayVbf1hO)Kvw$;gm(>WGu<0r)`&Llk*xmoif|g2pcy6 zOd^YrXn2skDlqDbk)8_s`GAbVq%J1NVuOZ)Ol~A@sSFcva#;R(Ze3#6;Cv5tLX}tv z;Z!1r3pX%OxzjFT4OzN<8}cbsJXc5P5W_BR4+|_?H_yC*rx#ip-L1UIs7zvJ+2fq4 z7YSLC!{ONS`vQeGTOEVX)o#d#3Pav62mgv#Zj5MdW>!>^-xQywFvBrgi5g|5MS@ut zIkA|_gdA!|#ysBJ%G51m`r*@}7&&oqD+4dDCL+v;?LCKzZ^i!aPnKg-n$Y)=zCcNW;cWm0~9VhfG7)o?0+-3NU*|(RN_7S!CC0ZL$`mR(&B5kSv072x52mcfFy>y|%*%*|zRmp6kOJrJ_x+AWPxH_7}Xw zhXrS^+Y7A9{DJ9^&alIML1qi1v)OHjwpT3ci`U)zq5<6>M9<`^5ZbOIdrDVtf7_@E zot$Vp@!~nz+3OE6_;Rfs_rmS{FAnnNHKQNBgJ%AiG=2Zz-f&lw^$x5$Y-h@i-(HoV z(RZ7Mi%%m%i{#k;`?zAJ;h><5(`i7Zi0FH)sy=D>!n?Ve#)`4ys}VOh9aZJIoWFOt zB8A7+@XsqOvtI5CWv}XYuH-Rm9x(TWsHPXSAbo2~UOgJas|}2{&BXM864#}J!Qat> zPo;vA>Yalzz7XD=nFbDz8lN9&_P^iG$e>m=3gl?MqksP$d3n}3bW(ABq7R#WnF13{ zf8|@cy`@bo=u99*Kg4AZX;HOWTJ2T1dmC!R*5f0d;-nndqauO+93sL1=z-&*0-~iY^rm1S*6~`RCTX1JBUpW!)4PExGogR zR4G{?z(7<^rqo;U^*fpCH*JeN)avB|T*9nBMAzOww_e;+ahjI+oagmoqMssNJCRwN zpT7lN?z=aQkK0aTabA$At7?u$cTZE7YVN_^A0=F2vLrx3uOA@K=PvWEwCkG5v;Unj zJn@Hg^`ZOu{O*k!vi0(;T45mF7WMRxf~{pdKaq)~)f3K_?AN?3h1dQrS9goXoySNn z^C1NAzD&1Uc#~Ik(AQ6sotf4RPRoR|UWc`CpK{))(dhL5bwIqef%aU9-^r+Sw)lhU zC*shqj_L1QeS6=B)+)D%?x=>|<()NA)PL+mD!ieeUGXH45Z$sd{0JRp>$)ckxtty_O3Ac3P3b>8+OYP(APwFnEd zekP1SuxrR@^`7w6$~TIsQ7Ep|;uIv9ZJNJ*i}8;mDotaLypeenPnO2h!wfw?Zi zLC;d&tK@@Dgs;5&b>mWLVAC|n9SB`un0p2(zKbeJ%cv08_d)tPU0@Tkjiw|e^76# z^ChO6+|MR**enFxbHmpxV6liSmziLFy`BGJwq0L+;0<8kb@iNauUd^=8`e-`=ZIa; zz>p9dUdqfy`<@DuBNt+J>3UybG_ku=w44JK*;ros&(ol){E_1Is!Qx4NSj*Kj*15N zcP)ACtz;8=U9anhJ{SFW2ymvAOBxFN01QGb78TWv8hH!G$0AXkze=@Q#MZb za{@PV$W3Jc0=X-?NlEtVhvp&1!%2t%C=Cm-8+<)+tuRV zr~la|o(QFvia^~~CM61xTtr#Tg|L_tOBJ)GE+9hPwA#GSQQ0YcZ(deLgp=ueXKo7b>s)AKYG9!mPTx8?qQ_#2nV1+TIH5gWrA%~y5t>@p z8wZ_D8@t0u%12mV0BQH3h|TPK2T}29Qo6QlP>|Tgk|#b(z84`8iz=V9>f2BDwlF=r z!Imc~7lVC6k1K)-$9C@gN5{~@-vZ^&nwvgMP#$=@`9AXv|ILZ#%$m^I^HT8Y|L$t( zbrIgSOuYH|`4LiA{C7-oY~OGkAX&`tTcfnPC@H!xRaNa>hkJXBlz3ks?r&^o-C!BF z0oTNctVGenpb(rP(}I!4*G&p+tBNbRf>9=YCO=<2#*UNTCs#)Y!knu-@>)=-R(PU_ z&{m$OaxU^I=B8w^R@D3G9doP?QbA~@2%u(Tssgs-|HF|xGo!1hq@I1qW_6#pC;(w7rXc5de+ZC(jMpaKo>$bee!~9Ht8PHMj<0c>T@cWyfh>bs_L6%a zm9fvfb@|8(Zt0pmDm$-*r6pxqSy`V1Y7EUUbxqsszFA$1v4`XRTGW7o%T+)M7dC`i z@)1sp%+D~raO?$2rp&on<&G2;6#+SjEO6{5bZV2`TS#Dim)`WAN@wTyZN6R(2Bi3+ zN0Nj5{Xt*!a(=UYh!XdYU4IQ&gPQ4Hw#brp-J*BR-aZXi8@uvj$Er{0oxK4m&hwXO zgzv~P(cGH7X&iEg&D~|>q}qVz-{*OojTcuL)529bV&ypvAQ2`$^RPxT0|pZ>Lo>70 zPPxCvN~EK;wJ+~a3LmVRRBTv5aRFtRrV0vJCMG8IP7}pdOXl~$!%>|2^^zTz0j)9N z(tPB=-Na@sl~p$>8eQz~?GeNC>?SfU`u+YA!{kpB$)$>(0V451V#34I6-+eS1c|W; z;$VP5^h0C^Z~?cp+b%kbojQnKAn=BT^Y6dw7r&=ii zV!Y}+C1fegYrh-E!9DRcKybb4x`ntSR9a#}%A2%487UWSRcmeSZaj!s5o%)*eJOp% zqOfDiMuwc+bbzxhzD>;lf61Xpx=ocI*<;ZgPu630fBZ4MP+{dK-Sdh8p!|4U%wpm3 zF+Bjop9~ob?=36wUoGEHR?o@Q@`}H4k3*-tK7ht~vxR4sO9SKL;_O{r1;x8X9-nz) z06YLPx|lBJa0LRU$DlfUV3byLDG}I=F+QgB7jORyB0va^ZVU;c`h3+uSu$q9RWPrL ziVE8-vvStByfW|pY_9Vg5s{t0e|f0)g#$Tq3&!(I${8uy$Cs8k*H38`Eb0FUzmMRu z>`MerN#YKPB3X4?@!#?eF)=e61K#90IR!<6YQ3grO_6%E9iIbOGlTepQp_=90#?6a zxNe6uzQ2}eNk@nAFeCk%HchfclopZ=Im;O*I+o>nW4VH)Z`&~`kTr;YtZ|c&ki?Vo z4_=lsTc>_}C-3gwfGHwXl$_;5%BD)s==Azd5dNFkgl%3P$Utbenl+V`+~N}=L{&Rj zDuZaR*xFD|F3<_-Ew6>Ww@viz2-(J}X#ll|(zS;9pKed|vgosERHRq-8o2T&OhsCg zE8xZO$^S0`<{DHKQO61_+5HD}2X{eaz zOwB}V5hl2dkr|)PYMkm>Dyz5h7*z7Fudff%ze>x>e#laoY5WZ`xX2*hQE-bb#VUw+ zjcfp4XVC^{{xNeJpdf2rJ-Q~)=c4Hwv>--$1u$;Ocq z;6-H%xxaIH%87J)PhQdM%e!Tp`RdfV0#JrF3qMJNbr3|FzDr<^3yD1c{3n z)aBQ&U-cF}kzvop*@!wL8r-<|(XyHu3~1#O$Yu5Po-ev~bz*-W<9>+XfWG54nn<7) zTc|t|`e7RY@fBF+b`F1oyfXJXuhMIxSQd%wqq_&JR3S|{_csTi-)i^_d{@rjUwC9> zL=ML|uZCJh^?cMtt{nZzuzWsX*ZQ0`dnal8Zk}>{omEyiCn5Wa-I{>XZ@;74rtfjjNVV287%&Eg-1Snp*7s2dRwkpQfFj!3-b~qCVm~GxtG@{ElJfFM@7)=) zq-O2QV~Ml8{mRCoqPG!8Gcz+e0&fvWfHSZXE+jH)n<^2AC#M9sI64l!$Y=|y@r!FF zvwr@#P3bPeWMX_ceZgV&;?ZOLPH{G6<->4IWq*e!C?0-;<3Uf$URh5^cGJ_X$IH;u z@2NwQ9xd_!93WgVwmhH{S|-y~J_RLodSQol;H~{7Y^q0K(aCZFjhvhu(2B^TR#HCq z2|mL-`mtD*&7)^?%0aj9I2gG?Z(wSw3WUY>J&00o;R$aF=w~BV>=W5lMQ; zP}KIU*P@08;$sYS62$nU+TbhX{3bHYel3kYAU5Rjgh=Pb+F3mTr(Q_)!S*c1(mFgg z7F+!8R12tDOi9IX83}{n34&RIt_3WGh4__6XP+Eb?}5T{fE;xPf%`$KC? zc2+)#+PQJxmb+cWpCluPlxC{1uAiPTrqo1LGcplS6+h42d&A7>yNBn`Lwb?howvyE zW`6wwqN0wOBZky)I7uZ0&ib$-cAgpF>H zU34f&VWf)3!kz$oM+rXa?rDCjLCi!2B%v*RWXD~-m}%1?$mQ%h$PiKU`EyZG5nb64 z+sAgQGNblUbU?dy4JkWgzD~){ymOk7ho2X)tpG8|>VvWvbghXiXtKYG+>&fDv3WH( z&{BkQC#S-nF**^Af^mF&T+-UQ%$^q%XHD5de8#+q7ilC7lgbEW~e_HPa*G4q#9lKqwvmX#~c)uU}l~-bhwOs-cfytf0Xkh7I6dEs9lM=fP06jTkdnSCmvR zUiuOc(EWNhGdM6Y!j+A>hR?iP_|4M9pye=mhNm^vDsogvAtmcoPji*GE-^rPnj55d zs-J6o_K{w0C{!eK)KDqQul_|UEr#hnriQ1vKx$~LL+8X9g1l%iYZ!B!3;>r!C%vP_ z!V9G~KXiRm%Wqw`CjURN2mQ_E&Zs5tc0C+_J!9PvVBs$GR)13YWadWGZKF1WQ4%s6Vuh99NwSl_4-Aj3v%}bV_o-#|ZnV;jzlg>pXaK_M+|A+tF_@^r-uYT9r7_o23yB zJ@Yd|4(#OU;EFo4mmVW6;|$bO55YjBCuZqCy;J{3Wx|Z86OmPtq*9+nhNe#8ZI0;$ z$6X0RGmjU{2Y$hG6C0c`wxK}K6 zyo)P#AWK{dobJVnI!sGQ1qoTPNF>vh`yZiU02Dv z5t2T>>o(D{F6s>$YENtc)#TZwO|io<@$Bx0j_$|J{XfwfXt# z%uXS?4V#LD(tmsPgRkAjuIIu3s^avGf@*{^Is{$u+7sKO&G6v9wto@M6wVFSR?n?- zuc5lH-8Bon?Enulht3UpHI}70pU~2T$Z|B<3U4tOkCtB-VceQ_^S(ulw;lHy0);c0e&m^X@65pIr zmlj*Dg=m9=MosWddTxjC;1CWPy2g8kdbpSNtOlg7Z0WLJqo9$NUw|c%aPI}hyP@)KBV#-ClML8NQF2_J@aq{VpgoU9+VvpUerwKkYu{c_A2Y zJr9I!3W2)fZ{MQTS^LYW-h5Vx4Q4vOR0Kq^cbx)#dqP`6Xf~+Nx>5|-Tzqt$b=~ES zxvMijq&JNJR=4E+>7`FR?!+5NI7B68ro=0&)=MDYhd)6M%#-&_VcX9y4$uwa%XB3a zy3*7)s~{{QG*S2UoT6pF(MXAuy?hZ|Dq~1UN$V|@Zk%FvM?3iG^@PK(+@A}sV;4Yx zX_}KyiA0k}J5@)2HPJu29N&{h!Aitryno5g!J(47X2iF@=XnsY zO&;9PW2xNXf!|BB+abiJ1q z>|XJ>8Xfz;#1CK3!yOI%ltZA!tTyV1GvP;8Wy+w|hZ>YrM^U7neEvGeDJ3$ZQcLP5 z8{0AmI@h;jynL*nM7`-zRIxrmG9ZwxY=u8vOAE81OE(54BgPQL3&P97(9S?`AW_m{ z{O5yRh3D586y*}Dd^rJXvV$kjVq_|-s(76vf%5E3*p#}On=$aq%>jv{AsB~@1WL_l zMVJ2LEfAYFj?F(DP_K$QZ1H!tr|*n?3?-gOd*-gVIH`fJdj#|>3gNJB?41CxNX{2R zl2K%1bU&{@XxHhI9C9i2;8;z&$KWl~*BQDk-i#jB7u=lq=CFA;~C* z^#NJ2+v^t_+j=_W>8G*s7Qjv^>+p0z@|>atsTzgfpaL^xbL^yX)@LVA;&v1svuMLx z6ipd5wx>YraLcOw(W=Cqb0>19DRvxc%biPZM)h`BH*f`%8DJPBP&9I9Qatjjf1A4X zKsY&v6lJ;?v`Wlk#Gr)9v~LKVxD#Sc%^K$hjR0R$Z8k~(f~Y{X;p$xz(OqVIqK_*t zTSMRMX@ukT$uveb$N;0?h9zPWK)i)%L%Ix62iv}HD`pQSA*YrUtQ%Drn1^)xdaX0etvxVT^Y&YL|7Gy zIa<9Q8KnlUd}8Pwd*lk-aq&EK6w$;Pw>^k3T4ns&H|tfDwDXQ-s_<}*mhML?H|gZK zG)V^lCdr6*MiI{XO+{lx*hS{az%gZaCKGnQDnGumsG0EkWqW;6HizU8l?uEj$=G&c zFe-POgH+)xPG_H9*d<3S#kErafW~>uuXllJpliD&xf4thLI!}Hq77;Q-gA_S^a)z; z>pd%<4J@HxWPk`Q3%Q#0(_iavl#M4k>7MWNo+9A>|p#S(Z z76>foau?p2F~m1p0N3_t~|n(tnSlGW-Sp5ufjY2VvP&l5YG=0(Mpro1#JJ$ zPL8Io{>}9WX5&{~(s$3KRBygqa&*4FQ)X{{l=@kA0C<(1=GKxp4i+D)R)mw3&M!8F z7rmbN2IW8dd$G{Ua>Pbwwiiwm?RFl3vX+!_3W=W}{UX!ycvKVZq%5@1$%*d8Q;0`Y ziv6n5qb!ch9Qi;CPx`j|RtO~BSKWU_+YAtH*ZTky&O~6`2`j ze`}7v<2VE=2w)AhS!gK9cL?W9!l4ls?g52URyj~S0V1Fx%CM7R`NUEM!X_KpxJRBEpl00n)YRrS&bE0pP9b6Di^L@*p;20A+?ru^5qA(lSk^ zMMOA7gzJg~{*xcDMwR3RT|R4V>qAmA0^)$&G~&|u@CfAyv?xr%#r`jr=@gIl@3xCb zkSn2Q7SRG_Tj5+$v+hjruP!~7Fjm}R(9Ue0FOab&ea=jh_Q+Vd0v=7MX5KR_OFCqE zuPLfe#Z~}-XJQE7M|k)Df*WlEmzDSi^}S@b2<-rf3@2^ugYzPrMqPo!h8WNc=>qEF zd}3EV^N}NNE-+y-;r>o%@&}?bMK^UEWI!Dtr^O@oo8HXQpyk9xWwLp}edBFsxtw!V zS{QONJ)dT;^Z-znDarw0ST$A<5)^p6kzrW9*1YLR2t+qcdezS75MV&f&@Dq6&s2?Y+WOq+%IRHuF+eV7fq!3uquC9*}C^_yQ}_`n50=s&|@e zJ{j$i@*jIqs_$+jLV;*@GWYecHEULI0zsKwy12?6Jz4xZV*&0M5RS|AzC6#mc+Bnq zFuKW9peCPJDxfqQTj6r8=y(a_c)oI3d8waR9@h#gtN2&|ek219ZG76;CrEJja{u1c zA*l{XDD>d+l;3FYt8XmW8Hg~^+GJ-5ES6`51%dO(+|3T}zKsb(i_|OCPC0ND(rOfx zEAG2Hh?ud`MnQ)o{OOPP^)zR+SMAzZ$@B&gjN`4B@**wWUu_l;UgrnBA14}*oQOSu z!xu%4KggWkOyjDd9tVJ#XszE(RepUkHJTj0lJ)}_R8de03cC9gyaM55_NukKImeh4 zU`R`;O9!&Z;wKGTe9b&MBD<6ff2nd@b*r@6KEVybD=GTxW!oV_bG%O94xSjai4^m2 z;!>GBLT-fd=}Smz@5<^WRs)xFZJo+Ob7Y?@RH%>iU*$LM#a~OSt+{@kV{M@P`Accb z5s(ZOCp#+ClWBzrouVH*BS3 zRE1(ayRfZ2c%HqI0vlP*F@%tOQk!3Gp_#dF#t$g+Qb}9Fs>bK2qPZSeU@%ziVam5n zj-olXf7L>DSPL??+UYfeUf4&q8=)?r!z7>$Bn)T(L$=a}eI{$bUREH*<6sf)NXWL* zLBC}RYGC-d5qCt24R{O<;4vuaqgm3nwiUaMz~b6joS+(wA6BorG0I-G-Y@q5TC9TU zwn|TpD$)R1Z$B|OSA4(a5}OckgV$X5K>s8b_mj^?&WdB_4!ya;E<&vF?Jkeq!_)dt zPT0gMF#O4khX)iU4$;$b>Bc6eb4_OlhvLpoG5FX=;MBc8i&`_maD?B2cI*zW0Je3p z&T*VErm1+%S@}5iX1?PlVoPMja>thREzbFJ_vXeBzV(mKA*hZK_Bc@=%JWH(&Vlyf z!2{3}m$bLH?=AE-dbDwzP1veeN=kaA-2Qglj;%C%((MtYPpb{zMMw~V(Sf7YiP-Kp z_tC21Tbl^M2e%melgI=)C^izjFX{098t5w*Lm&?)e*ei1Z8O=DgN$`PSr)Ve^%2q} zlrP)=7}Of7kCi=9{f>qHu5TZPj~5V%GrF3gH`=*e8Pp@oU{;3zh&;7P{tK_Q z?#y`O*VG@9B`a2nHk8U+PhPbFC|vGGKo#-7q|eHjr?}NYwA!q*#}7==i5-vzhm49T z-%Rq=o5MH?kM?sV;6o2LkLm?9^3OclG~U3Uz2Ki{>JubSAkTMWk`W@LM6zd-odS8F zbTl&^Mm+bsZi|an?h1A93i%jRa3jE9p{;dt=5fEZmS+Ee5Lxp0V?4!-N09)|AdU=3 zblr&;u4SQC*hc6OR-z_L#!{K`BnRa!Cu_QS570>8cG>`iy@n4Z6cBFLla=J~b8=PAt;#_wCq_wkKhi!L8t?c9W&7 znMK9u+1}3?lU74%b&m)GI0WGB)*Tt0>MgEM-bSL*c4Nf&tzkZu^<#Lf=y|ZS@oK`7 z4umos?=M`d=bq84J_}7GkquGBh{D?6oa!8>d##DFSJ7an}99pbb z1!G0E7h%=mB)Zxm?=vK*yCe3G11Sc)fSV6`q1dhSMp+(O&Ju{Vj=xETWSsYP#L zbqJ@$d9z@f6Z+t!bkVfFj+fK&f{#58IEc;4vlF;iO-;?zrd2^=Mj3E9y1e2kF3*8H zoe*+xH2C3Yhu7<@jg;?Q%wx(~ehSzDQCoN91IzV$`n6yokUL7p_gD5?4E`tqL$0)F zl*khw)El}M7mtCy9E|r}LsqoHC?8?3Bvt4Si^?AyHRB!!mqhlvAThm;#%~c7&3x{? zjh5fwU(X^rhyL;Iuesh37K^b>w4ebT{Sr}>Q{sTRD)--n#xv8 z?0RU#`7AVb0o2xpFiNUJn|OV9g+~~nrr4fF4B1C}dV$7Zf3ejq&0ge*{&OWt^4Z`n z?KdhU{1E>}i`~d1>grEkT4rX2XZ&VUpl4K5py*RZSzS%aVyDyuepCD1pA){pW3CrD zqbW^h@HywM!NN`D60ut(+WkGC?+>&LBX{~|0dOWX0wR1vx{{JW&!Ir!gp}v~J>!65rt*X{*zeo(Y<$xEIc4-huVxSt=hgjg$FNI@KVEzYNgc zv-Qk(?<&r=$Sdk#_TLsJCpw|`0btZ>hj;`)Z9KWXQEnkqusfMZcg250I^Tn{mZ6_@ z@jDNxrNtDqHTEF2^>bHv&9(33^6joa*o8l7tY-7Quui!OB~T$KcIoRP0S$3?gzeMD z;JL<2MMC z+7QQGU1P(g_8Xqo$fg0uU{4HdG9Z}71K=X%6=U)0`|7(KVhM$`PJ3k$Iy^$k6mZ{A zuqm6W0uQgr?ZpnPwWa5gEsNLBoZh<8*?kuzBb=?zx!GiJ_bvePQ7D_uBah(460af1 zv2*!n?x(BPQk?zqW0arwxL(;1_Qy)1INTZ1%uJpJxANOG%rqe;>8~PUkZ7UBT01KlBr$|)I`=$ zhy$}dr~tRf;L_L0Z950bvMP%%KogOqf~-8fqoAW@usd2nOT`AZM zU6$`d{$Bp7h!Q~XpsR(5L18di`_gu@ zmlkOC^IVs&kLYB$SnI-npHn(OOBp%r77P@W%Fj$E_l}*~`t+oVi29$2$qL+wF|@Kn zQa3o6zxq$OUX7TxyZxW!`M5j=oIi!DJf457GYPST2X?$h#FdYzM@Gk*vR|c=xSzY9Ls|rBzU_2V z2;EoT%=vW5NBcH^by#RMzW7b{7|sFRE4NiXH$NF9`PJxbuI)rcG30pNQQ$H%>$SmQ z5sr%`0HQNPdo^n{7{3uvBS;vduBZ1gZH)ZsYL@2k#{#ho-**+0);+3!xaZ|#|CEHp z^5_GM{zAGgtvLZUMs{>HQLE=N zaoPpbpkw}sW*C`Im(>R2rM0~_=-!?( z*1X40H^#328BVg9D3Q{fcwT^m5Qwd6-paNCvUVTPeE^DH=Q|I9^dw8mtGVD++kj&J zyDLp6Br+e+g0&Li&J5hUvnA?3`M7_0UO@DuXII!~RW`C_kor+ELX@UkJi%mIOAHgVLVj7=HtYt?bW{_W(K`E=os z_-1mppt%kn9Wd9>-UW9B{=B-ZgY_Y;nH{P*f6J*&wXpk0!%4yREFP}ig!0atBqKe+;oY>JO4h_A zXL3I_NeQv@8A*Z^-u?)32ieBOte7fXR0>XD*`7@9@W;PchW~mpn7D>$y>~l4Sq(a3 z>vQI9QJavpU0M&54w0HI-%DQvm>L!NHcJeZx(h`qscVxkT-v@wuw-1drop#8-B`Ku zW`sf|offb3|Lm_@|uZG$&&THCO*F2K9^(sIPH}@*R^5 zqI!Ozg_1UR;ODDIBE|Me&8vQo2B@l{)5|v?vA*ZS@`9R_KG$AaQ&of5v;d0j%UOG?wqUVz5fLiN>$$qoUVRs;)QuhbHZ@lYKMlr~TwBZRG_ey7x4C zlp)vkQ`!K*@bU1}pqJfY(I*M4!muX8z)cebG$V*;VR%s+Tfcs?$qj%ga;1PTHx(`2 z+>>T@issr|Iy5w2gWTEuT~{c5sC)^!PPaW#-y=~}puK4QVY0N$o?kLiiTITfp&-Li zn^9!`&Xxlv3d}?QKPWseF=)bw1u)cZ&z|nGSKK%Y{gVoG{xK7Gwv8sQ%hLntv9MI% z@fdDf1N=zQ(%CrwaMvF9%l2aesa**a5mkBb|BiC=bG~YQ%rBZIt9kl3FJH31o5FK% z_8;;wJMr!Yptt1UPxduapbnL6W-x#AHzVLn$|_(&gB^&s;vIo_LoLHa4X92Oa*^f% zWbs2k6ocCM%_{m@9E}MmD!fWd3(Eoq+Ey0Bfu6OM5HhW;@ORv)&o&BUN&vj)$Ra>A z?U97g?A6rB&FI%ht~#V+RrCp_1UJ8EEymgY9FRE&uj-d(IXe|f46QvQ6#x_i@OP|Q zNv^;bt8g?~iAyamgqmELN(Gm5>UM|{7?n>oi(Qim-YZEDb}A(P(DB2eaONkB)vJ+P za}#nN^bhh38obD~o_H-Fv)lhuRS&pSCS@m}9t%T7I-W6PqW!aSDi?P2H=s@!u*%pN zU51tcT4HR7eU$3p3Iuk3$^IGS7WutHnvsO*IkOT5od306Wqki z$ha^#a0v{A0M`FI*;gc=b9Z)G&OnS^9yD^w$YJ3zy=}ytS|Wm#wUS+%4BVyS?vs|2 zM)@Zkr?bGQm#B*tKP)I5R~92RLXJVyS6SpsEM?<@0jnuZ^>4YsoVuYp8l&YFo=LBy zx^z++ws#B`oIui4PEEo|Z`4R&w5@qI(XYp9sx5+F-q%8rEAIGR(Ts07H#QxS{F_+# zu7ll2k>~Luix*nEs8>_h*BcM1OoWjINd%~_6tj%Wl)n)6qHM%R5vMYkv1N?L`fGzf ztpDl8b~(McSq}>Y19S4_TDg{J z^(xQ^rR^a|;iIOtRF<@nlXPhERPYy$qnP;y)#cSF9|;F&7;b5_FfcwF zU-7&Qkc-6+7%Y+Aq4TfN(+B`ort>C2lcO9%Mn-3YvlpB>8l3$cP2xpdI|~mfL*8_O zKU;vPn~b`3Y_*tFhJ37s4>*ihAL&we1reo3h!$NdnaF^`a}XEK7R6}bmEWb~orv*v zib(R~jiauxHdU&YCj_9j)FI0b+CZI+IIA6*Zgj5xWR-q{2n8ks%aaJxBUHbL0fhii zpwjd2Q(~gY6gu$vF6r6t+WGp!Y`oA#8-=@gfleiGBh#!VNv=I#a3RkY@%}pt5E1rP z0NRP#^yDSg(IGFFP+PYgyCxd`umpuBNL5V9-;|1xG?dBmE{IF_BSXFWw!5^){ z-}vC`!&B#!tFZrwm;Sl0Wo-&Ko%lHsHip5&O!}`=PuigF44@n?d$L3HnN3-ku@m6* zk^T<}oF^p=L%IIhw#3@8E=5H&u%3n$DCB*r|GXq=gyD?2G#lkoN$E>(;2vPYDx0orJujWcnIVY&HNW@PnG-Pd3@3bZV6Ml7qFn z0ZABr!*>O?-fj%fSI<;Tg^wNg)WuVhlM)$@#=3smHU_(igyaf-xFW*;J)Q&47CEQ_ z2mZYm^*z>ZBQKylJyZgGEOMDA3}8mjZajhQvB^hD>33SWgIpOaa+#hRA%h(eA=zH{ zyP|%92C2?pUUwDmlxuOc|I2l_0WX3PdU%=?ipfFTn_Kl$46m+0d z$`D19nHS3kv{R!K)qh9Kpg{H>Y_X)b-spQe+F>xK9C^H~l9jFlczo)2<$QYwst8j5qYQNP@Wa7cwQW#A3 zp#S>A@5~FKcVldM$2T0Tx$e#OQ;;zHFkkD+(*uCR_W7|*X;AX?30oM8ij}fR%;2~% ze0LQdIgbxnt#Uol=eULEj=9gcKhGB6aJ1VnLV8->=SwS7qCv1LONa&xuCn_bZ18Z< zIg8EWFLhOaxE92>l`;tB2wk-4>aMiTU$R`N=PXKbMdr?;UbQL(W}M_^^KUex?JvRG zyWY}asLM1&g8_LtyuP_(>6W$pb}Bv-{Vm_!0e(Gt(PyFYYs7$Q7%m~JOm~`0+uzL< zP=M*bW-Ty&)!%hl<;>ib1bJf&Q3zI3Hu_8kL7d z+}9A#5YS-i298pQ(AS$?m_*iF%#bn%9WYL4qqE#yX+APQzfW!DL{OV4q;;TqiE0i^ zLu8KS$Q6CqTmn#q%kahrbKf7JAy^4VY)qk-zj&k6Bv2Ppk|CNNKX)FtnOif zdzT8&@dlR3LMQQcvqbJ?7TzobzWlk!TDwqSo1+8H5Vh?Q(22KmE~cN^`TzL(%cwZM zpzRkX!9vggL4&)8;4Z;6!JPzm2?X~b!QCyuU_mChySux)GdP0`oaTSu&-1SJp0&>R zqO}I5J zx4fHR>Hjau5~f>8gU}J{0@z~d@^|W=5YEP@Vd#mJyX9g`ET^N)J7N@>Mm7Tuf(`ZH z-d`bV`Ce@fvppHj`sk0NF=E=i%13iysI|7{$LHw50i|VxP&}Q2y2OOQm*pf)5pQoR zb=N<9@wQhF7G=p%35-7(lbzdYGEzm2DRMDrQ+z*hF-nk7?4A5-IvH=YU*@r z4d_D}pe2NfH7?-bAueLB7Oi?xd$WqNVg4|P%sbL>4a$z6O|Yk|9Fb=?{b@DKMqZYF zRDF)D8w6gnTI??U6AO+8N|;SX#`1E}_DlVhV)@yM#*43FjDCSaTgGi(ih-9^DlyL4 z%PGDqmkQozTo|nlS!{yOZ#7xMKizHka_oYicjuk#IcyDPUmzp+m8pdn)Br3aE7Eig zmD9RR{MXCSfrN~rcAqzAkgrSQ(TpFwdYxQ`x794L}au1L-yg}YG;3f8a4ofWfB>Yhkc7$m235}dOmEv~YS$E9 zQQ#pXCu55k4RJw5eR8j{{PqTDV~inCmu;7qCU0n=Ukl_RqelixDHpExyLFzvSyXg} zgA-eOKaM((|3Mg8>QyfMfb6!S&y^lm&UuOq$hKlCvgij;`qlFVW95bj(9gQyTB7K%7JaKxYhuOqoqUzK1v;Rme8|Nhnk%^xyO=8Ob;t zxZUh26Y7Ej8hkw(j+|2S6byJ?M8S=LAOj5G6@_FHa zTM{<__TfhvfRm7*oSvCU<<2uKFub6zlqMJ`Zl?xN^(LNvai7F1<{L+w?Tl= zi3W;8Z1q6izki;n#`QPe(-5>wY#HUpNzG?V7|J7d=_HH4n6rcU8%DhU$yEJi7cd(%x42djy)AgQyGZ1*<4vwodXm1q&3?2LrnB|M z+Ed6<+>*aDye_qFMeGe6t??>zXTXfgO209uzJSY=cddx4kksTj z%_^VnNP}sk*sXM1Vt(ze4JF;7zHydZaC>qW{0H?6X88cvO2VKQj%~2PX@yQ93~UZb zs&g;Dq~e zaDz9gVg*5Vi5;iy>ObK1P#lDneE@pT9=ek*EYG>Ube8Mvm8_!esj=U24W#$h+P=ex zHPp?@*mte>7B{#lgtnLx3QOI>KqR(C6*Q;LQFYEN8Ox|CxL~g!BX1=(Vn>wki39v`2%l$ zUmY;CWvH+x)Pe%YQ3D6mG zmR4vCG%oN;7QkFht&N8LD2NRMvkf@sezj*FIxP25n%iQc*g^Y2sl*^dgefAq(Phha z7zuhvP*z&{|Mrf*)!VWhfU=K1Z~0Yt8$|aQ0nSg=*tH%d%_ah&IF+T~qZId4Wt@xY z5D)27Q6iTJ^urb-wtzsk%Z#0kW{v+NTa6rWdW`J@z!(4_0zE@5dEu#_CWVY-DRDKr_ z@f&BGmr|t{emepM&0epWUMh~0`>tCNbG7~4e5J4UK}fv0DpP%Gbf*z{?4zy5%U+`Z zLiA@E8q2k0R>q|9EhbaICIz|?w_g3|MFzln~*0X zq+2O}C^&QQdu254kn}TdzQ}$0mro>r$zMg1f$GMmESTWnf4*~Ai+jCYnj8lOp$ZBDk9 ziBZOETUG9$R$-0UQL(mN93stG#9FOS6bTc-t-3*+R%T zuy^C3?o5LsJLb^VO`NlX{tu^kFEvx2Q(J%hiXI{Ck4M&b_z<9XF8bwtPe()XqEFIY zqI!&a>E@c#KK}3n{gzv7AuLsmQ*wsUH{bPE;g4+8`D!VYR?%I~;)cLW`$k?&s^CfR z5LVkk0S@=K1FvAI?B|O#@C(;eKtdUc*28dKIjOA@DJp!CNQ}pE-FTa#Ri{7J(e9{A<4gcw?C?nrIrIzydd9>2wfaWWma*)k2feoqLk z;Q3b?yLpx0orc@QJfHshL>>%KTpdoyxMD!}%iB1W^^esLsxqDFY=Bjbn!F-6(Ldd? zo2`BMkHWeV0REzZgTaz&4FFMctExCoJZWAcuu6C8*hGOQTH(l>N4Cz%5BX2?;Maqm z4AVL4ry}XmFMrs7T`Y;Cya-Z?3d9?729QKb50zX4%lM)MM?&TnNzL1z8b5%kIb$z; zAHOjM$$&ub)h|E}01Hh*Qc8vPCqvZ4mwkPU#FGc65m^D? z*iSNOIHonIzyQ%lnWc{`8&wLdUt%PuDEl4!wp2$L58+gN2vA=Dy~!e@bz)1#e*7pL z=4z2`PkOoRG&V6ii`1URWqmJHL!UZH==8hAO8}s%{Eh>d7-X=7GRHYMw9LPHdc9Y* z*iP?L$l#4d!J+;5y%PcGaYqS4I+YKyDsZVI%MbU8O%|PsDixk(!{@iB*X?|D#uj5x3mYmE&!4cHlp8y23r-- za5B!)&3^SuDvm?_{tumE}+Y5R0sX*|1WdPhtYbacT(&#wG z4_81miRI%*&mXB)Nf*boc}Fdk<0R!?0c3MtG!&+ki7&s}6lf{?tDROgO|}Pv%2(Gm zy6R0wrT4S7K75H{85Cx0b&tXqYJG_+adD;3s~wd2q7ncNMy>l{k`I1V$DZ}pk<}z; z45_S)-DS~KcWy3;?cB`pmtLNwIoY~oG&t~@1L&-~6Qeb6SBq6|HAPBT&W*Lt!odg; zlI2U!;-$_Xm`3ThSCGhw%Q8e>nbXDtD!E4NCvbkvvTAWufJRfmHBz>>2MP6s0oYMM zAUBn)br?1vcDelJDiJ>kyl#B@DaN85Ve}q|9~H5F)O2uHtM##??>;g#dSoX& zeK{X-Iy^e6YE7atbuICdwcdUE69Gw@wIn@0RDv??kd!t*e}~!dBK63+X6tbRT)KG# z|2V(3G(O%A^k4#A^F=u8!PL@!a&kIm-i=m^FD6SXYM3CyhVREE^($MnuEjIVei`X@G z;1of0X?n2s$1ciB*Y&K72(u^Ml8gq*d^i-`KG zFzP4Odb+(;EHy?_nIyWPwwa#%4k0Uj>9tEc{?|O<=Nbbh1J~NOkNtmtvKzR0av`7A zuK4*DB22_{HpmlTB3lAgY!FI0Xb;H*rih;Kw-M~L=h);luj#Tm@vw?0bqVD&{8L0N z^Uut6Y8RbYgcl1@zOjE!mM279%s}sP;m_ol%1hv~?3|<*6hcQw&;5YYqPehf=xMh# ze0Dqkq?-r5k>0zUd05*hvG)#fzdi06(0rcxAI3niuq~iubCdGaW7pfqYmu}+4E+<8 z<)_2|kcHeLjNQ@Z&nC;>iOzsnc=`4gi)N)aidQRc64^C8<;g$8L`y(3hS_ILu6ck> zuN6cA?nWTnpqJ3e+~hG+W%MOyG2)(&38<#m3xo2DTOZE1JInk?xJU$sfDZo&Cxo*N zeLj3marigdZ(qDFXh)ob*MCm@R4gaf_nEuaR#jJ*Ny=F)DGvd~ zoPjL7?0<^N)52?$o7h>4lih?rDx)`7m&J!DL~Ur9VFE)D#RH(C~Mfgx>b2*Vua zdU(LLQvFnR7d%(}MNe=0e(~_SY?DhWW+9wS2nyV8KClrx@g$P6%xdPI)tm{>{Z@2C&%>{^_M0cRD zXumSNtN)eY2u#gf(SF6y$;2Z63MKvG{7Vpc`Cm%$TuWbfBZxoo{|bXOnv%`*LZFGH z?m5dKU3QB}e<_Ok*p7xKpTQA3(GTP}(5LqIlS3}f=x+X$H354g9sQdGlCG^^%Qect zLvbG-$54L*VyTbA)|U+}1x18#f+E5bEHux9gNE$#i^aYZNrEU1K(5WQg$TE)qA<{AQU=;$e(7`%nTM;Xpscou40cYFYrPEA>P-ikjem z1I0+N;AAukm>Vczi&JTdbC~twf*mV!v)!|_Em-qJr8uMXDcrHTk~VYLlCAv@GL;^J zw)bJpO>lI3vDLH6GTPpdnwJXWFy=~fv0Ni=pf8|gN~u0z2~)TISaZz`tcmA1a(e6Z zgo2;);yf-cn4@iD1r0oBw_HZW|80Icb22wGUr+)EkiU7uI1-hZ8-U$Ibom+Uy)Ig> zmXSQO>@j<9oJ8L5-l&RiJ=pKL*uRQ>J+Q@hz_V;RKDAkUcrZ>~Sy*VOQnllA-SrkG z`{ruqa=Ot{1-TX46WVL;yahIGaYrx+5v5-%A<%;_L@pAy7Z~{=74_kunh@o3aFM8X zl`|sC-3QKWg*(j$QNVrrd(*JEJ5Z^~BQoTn`fh}oLwkKAgW@03Y`}06m?sR3S1>)6 z^zyu{mveN*sMh?I^nED_FNUvPvkPeCFSJoLL}Exlz^J~+|VRNpn# zJAF&6(}Zzg$@!?;@_p=vndOGLWtr&8aKh^I+>J~}fzIO{OiPVI-OD=1g~mdAolHrZ zL0!&EUkcd2!$fP|uBG41?Oa`UZY*vyCVcGG)!#2HEPTx#QkzB~A}Pd^&T(+se)Sd` z&-$%3y_+}c(?2Ri{FNVMg&!I^#KMiL4h)~S!T3*P3)&7NZAtM8K{QM zvZ#gzUWna&;PZ`0n0|xMlHl4jhwG-V1^-tao4NjNEos?TpunjMs8;rn|KFT4 zV{wT+-kOvkr?Wt4)$@CA0DT;r zanx>qf2nfVoq4GfEbC>h+$)7&S&G&%^Um|G^q3Ic-O_w6T3mI!Gy4shWjI%~4hs*@ zI~~)ovB>_te(BM5&xy ztq$|8a=>3@atQrUxxT)^C{(%>wxYV3zFU3zOlqvP#gx;ONIkt;#jZm6S|zs90<|wP zgb^--K-&tz`NI6t?oKH^7WWR7Cw^xBX4UnAYs^vLxpr~V z+Lg86?3hebwY7xyG<)H0X6V@CXt&-F+&w4h?40lonq^;)7INd;GDGEGdk2ZL0)T}` zTmfpOU8Ucd6Qp3BfB8IYilZU-*ZUpnf7~a2NC()n!5O5^&P-Z+`i+4^ z|C#R&>D^(b9Cj@tZfeISk=xkrSQ_0tTY z7Lrc4^Ic|lx80_GbEp7NLFYUe^ai zOkSJhcajg;Xd!}8NtudvYdIvX2JWr24j$P!OF?}^X@bK-PZ~r+NogJ|Rb%IgDqAJL zqp1BWhLXgL7mz6i*t$iq zGsLY)0=Vv(92UKA86TH7rZBnZti+S!7EQ+O_?~T+JYJrYR~`@|RX#d=Q6r{yYl%sv zoO&0R<~`3B8X}>Yo6;kGqMSa|TIaQNS^L1HoIV+p_bGl|P?EW@dujh%Xh3ksceO2IrH*znhNTz=nN(4lOmyo#12@4e zaJR$XX|GpxKx=07g;p+M&w$FwK;D9PC|g>^&{TY8>#XF18KjluDFWM2wSNnijjK&W zd$j*yP0O=&5_tNYma>&JswmGwDuiRj8;4^~s)Qar$rh6FH-cZn4bBPODkm;5;G2{5 z8=b_sr3H0>Ib`}F;2A+8WKxb8e?(G@`V#>SUxQ)3z39`ky##1l`vK(XTbS$8y9z)t zf^7S>d9J+Ff7h_Y^?r_H`4%m-QPX0_+avRxg3L=Bz1^a#~`dGV%K!dnuJ6nN7ZDu~0AybBY?AqKNo4qXj)O=b39r z#)fF@)Gi@qelNbsn@G@?0&3l3>R1yd28uf@Y~ikh?u@0Zt=;E@S6`a?51?89hXrtF z$1xX?9y#WjAS#*Xy8VRbWt<5WuQEJAv{(!xeGKl+WU~Cr+7-WqXrKJf!aYxn$>Ne@ z!Skv67q%fzkv5C~JkkYZt9m&<&&4 zC2`-Pcqf1}(W%THW*QChOe_wkVbZQeEx4M0gJ%4s&r@N1HKz4^TbzLW3yrDz^h=P2 z^C7q3Xb6u%7Y8Ka9L8Go>WAOgm5t^p56AgP*I2G^v;&}N#&a%zRHcRhO^>y{r(1zF>vvCji`;8OOy@(sHd~#DmIiMYwX@M~?^QOq5 zim#q);q9NLeZoiMS@sB#dVC(i>R@8L^4t*ot83JWCNh(|>k^HY_EhAtjgzpOG4C3Z zU7^Or_$;AlbCFfWjd?@r$0s>2#q|dDnNp~;;DgIiq`C519PNd+@K5YKkEggMh5F#H zk&v5}9yPS{jfu4V<{T~#HbLpJqFzn$)Ywjv`I?WRb;EDAB^f{qTQ2sGv+kHq1B9>* z7=(cT7CbD}!1oJ!bF^x@TNbV516wn2u?;`7T73G#i`(*ON{(MPg>bca>sD2nbg7&@ zBwyl-q`iXe;S21daoFz?w}*t!^v&yV7xz~PB#iRDCg+c)+owETlh%-V{fNG;9IubS zP&gSS?T2kQK#4J|lu@4~0=r`B4JMB(b#q)U?z&G-e7~vjTf%49Ny2Og#a&F@9u@m_ zkoyM>tOs+|e4ja~)8{!_xJt~{ur(nkWOyr{^C@@(GYAaneBB&;*|#@$es213ITp#~ z^}L}QA^5Z$Se~;epVt29yE<_4z--bUi9B_b;Ng*}GUR71^+WMgRq*U^O%)@j=kGb< znH%Th6LT%;c7CJN!(Qa4Oq$YZ8bzHrn^)SXubOn_8F7jD^MtH<#eBnA6Ct9Xs|ZL9 z-vr_LDrl50&&M4+UNsZfo2@ZptX3T*L;NlE*H`3`IgX(Ra9(Goo0)Y9d)BX2J>9i0 zr>QkGl#M)v_W7M}I>tZjTXtU1t`Zq$kI63xD_$8?(i!7gICuDf10_Y@Fx1K%R=T2Yy^bEJ9` z?c?%~jJNcNTjN!JVyN;Juyk^Z4x}+`brA2fRH&3)&r&q4Ow_iTyj`vFs)6@YVUCw? ze58v&kn7p1LS!Q&u0yXnC=Pdgr28TIOfLM33=P(snCxr_0QWnsF7W)jk8p)9ly*&U z)*r=2L&p~O&h|BD!@+EA(nE9Fkz!}Td?Fqs(`7jx*Yb~hiMOxz1=sz$!LgNzZ*}D& zH+#0uzpSlDFZ@B`w;xBR8~OH;fXiQ=;+KNXn?Rmf2aY&A`Ga;QYwLNBtuG$CJUnR` zKac3|-=A)OB`z2Gwzk1ym|Xstu}Vc(?bT*`M|4WUlTg_9YX;7FZ$BOf{%%r6;k;XOYEIzVr=bpp7P_Ux=@A-;$Me&NUFgW?5gVgHg_*o8o zo`@};U=+exs`G|AZs9{{;FujRc8g;jB-@q5m3_#LFRC%o^-I$xW@#&o_eV&k=}-;w z&oNr_GZWD*SP+<7q~2W67oq$PqxIGJMT*0a{D($OrOvr8zz>@LYL&3h*E)itHGX}G z^boBkhlPSuTs^>ngZDairF8TCcgtHjM!RTQ!Rqx_qgj`N-qAjh1;PB>C!P$q%)Dz! z*4FJ~&sWr#Fc@*`K7S0MUt1BG&TPf_zxVrSpQH8yiCNbVQep9FMv2fgzZswx-pb2( z}|Rf8Exe8a3RYmGQGVNCgr;*?&d!_QH2kv`_M0oRUH z&cly__(+RITCNI5UG@dnmX`Pn;F4@Q?&h(iFsb|ZcLZ}YU1!JJl4`&)G5oxjnc+Hu zqUW?#0(B`xYze*Zj5Q(i;=*jX#~GqcBq8~2Um72UYa3hr22LBNL0uRAfU=SN=n{u$ zOq6{6uoqt2YaDqW&|Mb`u_IBmmHZI-`$dfS5c+~0QS@I9 z!0A$-2v_Do7p40ThKfGQ=9VMpGve(8C8w&NUQ?VnQALi6_ny293J6L+=i&Ahb|%4t z-9%@2Kvi`AQ`xWTN+TYw?MZ607z&xrYe-5kHGUWN^1K60L**{cs7>|dy9OV&UHoGt zs=K*($V&fx`>{kCmmSd%M+j@|f}b_~Piu$VjCkDsse26C zX=%=lk|+WtL~Hvp7X_2v6j)g{i4kz}jhZTWcClX(LPI@KChE~!F2Z*U@Y;Q@BNIG{ zCWZ_USy0RNsfSos8pzYBNEc)PsWH9h3q2HY5%lC=;JmnXRsO#D_1FL2=+jaI5Utxp zfL_TJ)I2aSD8vApmgS3q8#9PTSGG}eQl?O*Gna|(vORC;4R^KF!65N>@mr_jteJxm?RR62 z+inG2^+?Ei-F;P_U#4qnK6S+lWCqbKsukxXe^y)547opX6RFSNiN$PN8-*gQ8H9pm zwY>j{QNoa+^nd}M@`mpso2h;lqWKum=8%16b@OFa+47!(1wtqHZB?SHQIvg&(-ea+#8 zUM;>o%UWxq74nE=>p$bAaZi5%Y**{Gv~Ln3&g3G{03W9}O0jt$Ks~T`W+a4BW*rWQ-I)Bv{f=(TgwUcAGzkCGX->>f%^nnU^9QJI&rfopR%K*{WyHSd6^?dr`qe{;r zo%rkr+_h0EP1yS2$csRXpG)-aR|QGZ!ffT= zJP+fhS00s3YW}Pu8*(c6bh0@HvRkibO$7=AKtb4?s996o#X`>UmZcj}zi#qAg^5go zx`H#$E>36r-iA=??38rR;R2WalJoj|Y{1BKMcp)n)L!4KsgfEyg`@FC)+iYT zM2U@!bDg2roWDq=`z~{3N6Ze&nx$!F(W1PSFcmEiB?2@-dzea|mMu-*#<`otUuL7e zI5B79s*ZoXnsTm8466mzu+_;)m9Lvd>IF`WGDKvBp*8m9*ySqZV2-pshjAt}gY{oZ zumk7g=kv4AQ-pEZ(5Kv&wVXRmuTiP~M!B1M7r1Z{y^T`)AtB6sx_gF{i*|zD>3go+ zw^FJ_BVdwpQT&j~pN~sjYusL)r;Yndt_#AE-i=V+A~+A4)VaL>S^9)qG1=mCM7|sY2GV-9VV#r|nr3WBa(uSwd#l>0a3nWNVS^5$mqh7B`?=3$ zv~%&ahS~S&jHef|eUQEB(7YTk5n+engKTusxoX5JVG~V%q0I)h%-}-jZ48fF$m}j3 zN-mw_n$qio44cGq%8jeqpv5DucS55saTDV|_jhODw!xQ{`=1(Ki=^8~B zz^mH4xqNj-=1AA2B+|0ez+&jtHM%#JixVk$H;PLeMV4^J^`bcz@})un8}GBdRkl7O zkSA^{$xXBVC926VsTrIO$hh{VH?38QY!bBpUwEQvq7cUE~ zPE_pNo7}S+kLKvu8I`TwSyA_Qf(m_nk>J?gcg58iDjs?OClj!YQ;F8FCIJ?Jf~0#? zE>54?G)>yqMcQrKYG=JFPSbyf_n}&zg|iy4pc8=kBW-g8vhVy&D)^Zh4}APvPDF7IwvKNQ zzx@1({&4&r=CypCt^s6Y0k0nFykJL1_#aD+P`Z>wB1`RlS)iSo%uQl89R9`BF;Lb0 zrwqu1n)_8dM=va1xz;#ny7fk)Fnr;h}4#^Y=vYZi2yqifjVUH;R$l4PFaXaGcm6MB#0<#&?8S3 zlkWbdE8jdaUkkd<{@kN+cAvBN@hwJrcScFncG9oQxC=n%zRd%Hy3ZOW6$Ofm(KoMq z?QTd|fS{ThOWhG~gxZgd7doJU9W<(><{k_CFsHrMrinrO@m7UADkxa=6z83KYIUvNL&S@ zu`|{2PaXFARWRMOzb+dC44rdMxH>ml<8jG`G_9Tc^b3PL9=?K0atpQIOrmP9qBORc z@|)h%cgUNU;-big*J5cb;*$1`asF^}n*V2NI=y#~{?Gbpym;wjG-i2Qm^ohJrM|XP zr89!RzH{3Y?U$NE_fbKp_-eVu^K#`UxBCGS1y57FF)tnY zj#p0DKE8Y=+6XZOuEM~Twvc1J{V_dZ~1kh@CUaj3Lb#HaK!Mvg%c z+MxqBiE`+Gr|g7Uu)&khJbcam`)6_RJ(@)|bd$fWVf#>HW5(mpj>6}opX@pv+JDer za~iCnCqG~Pu#oeLQr~2X*xcLSuw;1zuw1aRpRY+nOmxa*EV?j0$E z>|`>}+P5wyk@moj;c%3#fHzrqU3n}Ea*8K`WzeuHmD=3L%J7spn~vI!v0tAO!xgPG zr-W8zZ~dBDUB6~vb68k@U~aj&WeV5D(5^RM9T61Hi7A$JkYH6{_7muJ-t6KjM^4*Y zk<9i^KjWIt0*hjoOeL?-Jc_vrFcZO7(lGGS&JCdd5+xN_M_gd9PnbRtope z24CTz;vGTnW0Rdx-+p$*6GW8(6Nylxer3|y98??uYmjEx@`85^6kId6D|=l3{ux}5Bx@pBV3-^xVL0` zh4#dLM9@pN98OHC(}j+zInjlBe;>5Jf+Nx_{O-b|HfyZudPoQ4x!R@oL(13fSs-{6#^j{Dito1s_DoK#6E-@ixg}=DYKG5oq|!8SBV(KK z5z7uW-(oqGRz0!%o8;S`*>;bd!yoT0MV5KSl>mL43uG(68&zMDGp#o%tr2aZ-|-**aP zF#Wq()UR9*EP3wFZ5mzot>OR0`WOg*7dT3!cJzlQljiy}2Rmh%=dj!f?QsO&WYn3V3CbecmkYqg3@iqkWiDt&*ij`6bb|yA5 z9D&ZGEh#H2J6-D#%hmd1)3)I$;Zpw=>DMk%D)l5SVhxr|q=RGsv^#mM&c4JOaQf(U z1)`gyBn^$BVvcWA?{zzs^kZ~66OntbnLu;9C>byd|Lt%SS@7nPr2&c}7sa`)Uzqaz z*9mE;716iSQNhVTrA3LfhZw zj=6&or4;dqb?9kQ&mYQmj!^ru#)PNJPHar+f;S(|-M!NbZyFPAv>o2_tli_u%lVU5 z@m)vP`Q7`a$T4!Y+KKASe;E`Pr93waSUN~G6$f>e_CzdUs=r}Bo&~<+whF0*EN~T} zf|Zo*eAOv~H;*hA#dh}U&Xb48)@Spvm<2N@T%WQ$SqXb9B-7??ba>+BBJFuMfV6fn zf||mX;+s13)BDYezR^#43hfc9IY84{C&>k<@|cH8r}gQ+0CpB@K-d|)*|fhG;yAH3 ztFlQpIBs3OH#&5?2g;g(-Vs?7o7*)c(%q>W^#0R$|CdYWE2spSs!(C z{8XSCVDu#M9y^fK_9V5|J=prp#J^xyMOhS5@afE%Y9il12dd<5Lc;%%-<3@EKg^N#rhM57Mr|e0p+r3;%PIB1nf&l7OTpVIV-zq8Mon1*bct-@~ z-)uP66X7XouPW}o@Zy;h!>6?Nio_`wS5sGy&CIkd&tV`peVtg16=NdbJb!X0hc1wQ z=c~-MoDqfFTubPicTVa?mz`<+9($Q*;c?e%HSPJmvKOM^iTh0=q|WK^cZ&Tu#^>{u zt78Nrw5%ynSukSC*Dd1KHPj!1f|d`ZDtNE4L$6b1^EZ4Ozwbhluvc%GQ!+4r9*vi1 z!jo1Dk(3|jksk7Jp`H?7x*I=X@3Q&R*cwcEg((_8wFj=PeDT^+hI~!&{~F1*eotf= zQ}qU}2J5$^v_S!OsM+vU???nSup()dGAx3%qg3xkx&(cm!0z^2@%yyye$|4f zY0Y|6Chjt8tB8>;Jx|2rRzvll@4g@A1#&6jK8-(=D80N38-I&kcpmi6gl(7c%dl8n zUoZ4!48`t|4m9*Rn~N)BwzLeO6k{8{0?bs~`PQtbl?#G#7EF!jen0(ix8flbo141q zh|XKjd;la$sKts2?(XrM#)%vjMFF!bxzsb3lv-0YBleB1cbAkK?LuL^rB2-XHPb^` zlf^cJGu?|2mcaq5JAS4iU_vz>VXKBwB)A$ye^G*U07r8^9D9X;cYZ_eb{8vaf%7b{ zkZ(7M9WCAUBO;S;w8ka+{tSV7=1U>z6`;3u6OIZ6wL%Kq&)ft@UN>K6x`5;LfPoN} zsIThWHV3l)8RJdjDVVu$ZA5YnlViOBjTB3r@aqZHXK7|X1+mPrG7ff$JdIf_z8U9i zmE5`jf7_o~`()K^4;|^B@N&QY`1k43=_)MRe}9j>8#r~b01t(@whZ}Cb7O0MM{wWP zcSym>34)eYBpW@16))}-r@BQGTad#N6=-ja1P3}M^;WJOBVQkl53Ly;EMu>VH2K5- zI3c9VMq2ZQ0)T}P1C^bjKli2!r!BPwQOP*8%Yzr%s))w73D*0#uQizDoAKWnNS?Hp zu35uyxFwt&-IDI&pk-?PzIIy3u+Gg@iCj^O5|YTz+d-5OMP2XTX#YG23qd#6S#yFO z7?__=Z-1Y*^O~qV!W;-V3c0(xZ~R^gz2~_^^V6MnosdKXU{rmZ%AG<88FA6?(TpnJ5tbG* z^1Yc6H^aqYHi4BMt~~?WCKB!Tf6VoET6pqc;@+_Qw%w>ic|!L-xoQ|hVk+uS@#R_I znx?4$YI{-d%j#|1<(|7vLO#m9`H6wzpc;?it$Xwk&_PZmMLqwchZ5xO8W%&$oa0He zQ!iTl6{kvg%8bosaz}#7Z%!W7qdqTOtU$J93{QtXYfH^BO>AiRL=F zXB$%_>+N1Ochbw&W)`#}Fi#Q@)3o1&0H)D*{=etwbhDvSfV6)?7fCZq)|SB|2x7s1Da$M$Wt+24N>YVe=PJ++?;V?}w5#LS$>QkQ}BwHL_rzR|| zQM;c|`R&s$d;7ysgC{(Xg%TEDq^HxzUGUIa_0=L%l068|Pbq`Pk{)hnXl*ksd6v7a zorlPF_?KVrWzWB37!P)9@Z#lr(b5KAt<|~!Lz7Ix2CjYtF4(m{Pi>s;qx-*V@PJ)g3f~1@LtTgCuTqMdC8E^{?8y7G(G@?`$?h=61i#7vlRq zSzoS#XI%yBGPyHeV}7Ws8}<6;>D>fBCjdZKUCvs-Xl!{s2+qQa9JY#hOI-6AmP#*@ zPM>tznVjB78V;$y(N0DP|JP@pi9Op^GT#WD6~LnkzWz13_2-zWH{+h#U9@PcbGV_c zpdEg^J&6VaKW@DK3dQjA$sK=0fn@qy%u)|ApazxW9z{Jb49+k@+8=MDek!{z|ZQ=j)PFwu_rF6fX@JYm|J7sLfa zkja+H?*Fg=feU2zCTpkK5l7ZuqmA$6yb!URvT2nHsl3{F2+(@n@>^uyUdtWX(OBAu zU!AV#W_*;<`vVH7K2ID>5auW<16yBe(fM-QBM;Soo3|WZigR;Uro^>4+e~d)__0Wn zz|(Hvvybg^6pZJV;;MGxc`WBeLcL0~wlZ^VV($9M%T`rYwFw5#fRjXB0nfKZ89Tly z5f?)1=pRS#68W7R>)U2`C`sEm4KDL?L|aAK?Zm*GAn;A)+C@C#=5{zp7Mp@pDEL>3 z_SO+TKuy`UDFNq@?f2Iw5ByBI@%@xalSaLY|DF8S6D4zgyJABmD6LO$&4OhmU9qGdY)a zHWE3Blu9W03sG&Ey;AKD$4Kx6r!ke~ckHZ<53JZqsKM2qN%T2r=7oI|kr}Qx=z>0- z#1YT8Di|^{|0lzjcVRN`Z;L+^YE2iavJd7n%Jm67E%>4w+o|PGNuO^1p8%sc` z14v+nZ@Uz=J8PVvqGce@d<=Cvwk(LQj%aNAfdAAeY30WUX+vIAeS4#8)v*|XV`gF& z8PlQsEzk1qIkAY*bHx5td&;FY&+L2J{vj*jntu96<{H4pwv6UfRwcr|b&0n%qd=r- zEIuC(K<4!vy}S~-=Sm|woUexDFITO5rI(khKFt<$A`M|b4IH;p4G3(C@yo?(Y#x0C z3O|`Q>1gevrVv#P)XZWkrXe!mJ596DfD7(OK;r)oGqQ+vcvLEr*)Kdg2(OgkgmlMe zHlfgpItuz4veEEyoVMq0$-HECJf2Es_t?#M_7b^Wm2qFU;W-AN6&`@!DELo!Qp>yX zz724-0#+x3LA?ZMg{cl_p>F|WgDWhz;r;(sH*GXf)`Lc;nA=?Pv!rWw5jXn_Lw^$? z`b9P!^8WEXCR5!!!U9T5!EaE`X2AkCe)$vtI~UacSw@?hA)47|6Fq22s6ZutN(Cr+ zmh=++2XB6Ffx55`@Amg`s~BilLx~jOqh0Ym))6&CU>|4FyBxA^p1TeNtrLgJX8H|tzry}rWZKtYJ1^^T^>iU<4s)p)2i+2LwPbLs>DeaoAmbB_rr!=xEM9#2#7l9bR z= zz5;=eKlN7uT6m zd~VqqV4y6tYr4HB`tzF5nG#JP-WeZo{ils0{#_BBQw}U8?27TRILC4oy}kUhWl2hh z&*urFGgDfR!N&N01+%$Dl#TJ6mv@jh z@eB=h-wmB__nlUib2>7eVd6!-&r`a!?|S=Zqj2z}61t^a zvGFna!vG}S z_MoP!5@rE23*hDr75Q8|0)ZOPkMTqT7doo0m!PzK)_%Q_W&b8r7XjNgOk>p88LyI( zYj^qP1J85e-M3$hBjKsM4}4Z;ZK1PTJ>?C_73=9oEKRkVzvkL}0-li$afFxp_a=D1 ziTL(`JZ|s#~x88K|7NPQP}55Tk?@ z#zrgx9nc(sMt~*I(Pz8N5Bbi@mnYKvO!9f}DY1bLg4%vE*D^G$OXfJ=IQ?}qomK|m zrwCueUvws`9HZbHgnDO+&1(3+W1L#xXC+qcheGTNt1&PJLYjrT1pWiM)=O>8{&dfo zl`cXM`Qj6+5$G7UC|}i41AR{suY0qt2e$UjIGv?DXLFCN|4hO+P<6~@Z|&gz1O+m3 zRi?TDpU2^dqgAqeXiaMP?t~qDb)|PPq`~QA` zn)&4gOUMtZO@*Yo^GIra5+>2Zo2lx8{tu$k!svLj6WR-$%T-a2b8-NRPHGi^nY@Fk zup-0&5!#?10QbT;xazo=QMBt+Ln6NtO;!)a6E$z;<-)8xt@hEi>~Tf3+hR1Y_Z}5y z5W6g@z3UJpKvooM79ha{Oa{cl*eMbbp=JFcdjGqzd|{Nd_IC9DfiYxOBPA4E0h#9j zT$*jOXJBQfY^z)1aX;QO<&zpo%}ibMn?z+AV2u6W@&gh=+L18D!%6&q#tB>ejZ#VK z8>~gliR1#m&c6?|!WxuL`1C?$7)ZH?E4$lriqWgPF$bEZ}kECHl0L(^z2sG|H8T_+pP30WdZ5?R)#k+FaWDZHl^Xq?Z7A(z=`5{k<$PC%JI2*_v z>))ysBG7!JxuQ+3^obn(qF16AET>N;F)GRof(;G@Z~4W!OJ}r&5z$M=WTy7K1!SY35wJFEu?rjw33f%PW-p

(>?a)(p_%Q->A|iunN|oKYa4myU~z!wO6fZBVZFpj-b`3*6;*tHdPhtJM`( z8Jf4m9y0~!__Y4$Aw+dLOKL~4Ri!!k`Oa@tQZ7&gRY^xNO2 zKET35h`0lu1{!D$t^ayuPO!7`>Bb>}%_Aby*hvMHZ;C)q z$pk*-BbSLbU>1E<4<7o3YN2tb0rwyy^XJ#i6((nHzmguN1c;uZ9Y<$pQn`#@M+9ix zuBjGnxmQqW+A4OzG-Ic^_Um_p*Z9hd-7;6~kEL;rPc8kNcM`nH?>embZtl^GNir`l zprq7F>xLtr>QhtokhE@Q(I$u%(D%*j7?0Fe=#V`PSe1gC%2_0JYpt9%# zvG~EI(jbsX?CUMNw3=CH;G^5&-~&Ogf6AVvQ09hd$Vi^fzU;guwE3nohVZ z_j4YiJWpL50PH{&0P*_fcaMfx<1Z8J$KJU03F;rS{06{*%9e{h(0KA!;!@xdfx!Es z4$LI34@bigifoJ6{ex0T2UL$T-miosfYAfIkv;$%&*oklKDf3!ERe-+^>pj48AJVA z3uLQFU8jM&AF*u>^9XC~)g$b{pC7J821%){I-E--rlG^m^--$HcT2Gg1k_BWG#GFq#yUAAlldrr9I5dU|B$3U&==R8T| zr=<-AG-+Ut^G<}|Y>C*#I65u{36lZ$b}|b%I+Y8*CtU-B(sIMAW-A?dVi%}W2@}0h zZ<~DEnpZ5t*#WzV0uZ{Mh4R-jIzWhp*x7tWYC5gtQYsv+?0~TUQ9=x1^pkdRM#Y*l zwp+OMr4P^)X_=tpqNAn4W%xG)9f@XJ5UG^W=f%k1vI ze0PwqP~a+`5a+W!{NV-iqHF@rAUCZ;Vl_=vc$D}J~90Vq@fiY{Q+X^T^|tR?|Me2$f~N(aNnrSNZb zm-iD=3D1k2_$FuHUo+0xv&4RW$?zZwRi^Z&3P+23P#0@uZzt~deu0NZVp+vZV6l@( z?IjOXh^-nLttJt%yq6}|;k4ySF z4eV+-_c0V<6G7uGdwOTBf7+ZQH|%y`(%xD+xOJnOiuiTl-x1F=Ki{7@0I{fFg(T)K zi;e=|xggbe*j!gf7Bvq;yXv_vCXne&@BXNfyA8?4rEadKbDX=}tka#84nYev5`Z#8|&QEY%pZz(p-p=#! z{{BHZ!+C;mm}u_?!adTR?s4}yZ$M78cCCf#zLZ+)C^c0*6;hA~3RkoMIcaes@JfDD z_fu$IG%)H`YW9%4oSYJbdq2_pBk(N>-9q?VtLp>HIg#>B+6jHs8X|IZwqyvL78z;= zxh`LB?I`UQyc@F3aGd6D(`I+ja8gpdFRyA+R8`mFuJSN#!fog}DAdFMEf*caE%+pT z=y0&lKWJ!2;-GC5KT>eq7^>zxVu$CsMd#QSJSWR9bXHlD#xcUi!f*oGNaTfeYbNOE zhY8cCvZmkH-vm(jzwUOzwtT3%1{EWvGN zLm}JVEdWfpLq=@gR|l`F3dtsuF22GsmhiA^Q0icQ^@9-Hoj}BJI3f7OYb^LxrBBM6B^eAKr6uQOfd(4)FN3|Z3e#I^687o@?vu`&`e|d z_p!EN4+EjJEBN5ulN+V#S*6i_l->4I?5kRtCWxBWFL8PWIhVIi;C_7{Q_7AjG&B?u zH=_baTjHE%kUI3W22c&;yU|&%8^njqZ3D@gBp#=d`~@*+-nPbzPaPVVyg;&}99ao0 z$$kl5aRL+yDa-9gr*q9eeAj%gjU8>b4bLRDGW>OdrieNS2XSo!pWcKE6^IUG>K za6W8iO;TwqPVgdmLBwYh8KSP*i5y;^Epbc-(ta6Gy+nvvb}#x!K`*?VWIF`&J`Zq3-{6A%v3@ONNFi|sRkErvC=4uyr#YN`)lPFj!5p{Z7Z$uWR&afmL{c{* zz@}`+Oml~-xP3%@+VEs)d)m)Eu5{Fhdi2)mG%^|AKkLh*zd>7=f>&ceetHwODZG$S&*Jh`KWPk#Bq-foDydq%(YE*Cnx(MBj$A> zXM3^X%|d;rr>7gw64N1cP4r_8x6!o$_m|LN)K3HTabGHzDl0poE zvu&~$r(ZN3GkBH#AQl& z2V&3cU6~t^BIrO0aVSn(d!COyI(`myNgKHtDczHa4aPlXa=QcoI*L)iGABX@ za-;dJZD$Y2fmw&Ylpvq?BZ__ET9GD!p{CmXQEAKi+CMKgmZNdD6GzG`0KZ0WnDzjH z#%{eA)vq+Eh-8}O^nE4}az73S`}FawY|(!sGk(@X;zl)(sLDct&W3LlRY89;EM4zF ziqN6~5N3F#o?{Z)3M@q6BHRo7i4xh5vD>zADvnkXy8;Q4d*^>6sVguhwTgzA|1KYc zuj7=KRdeEXFLl$e4t5jhPJ_X)(_sXe&OR&*Ol3J8`w;+S=4OmbOY^M3RNwQ6nNxcf}ovj551eY zGBQ~Oa!seO_s5qOmX4?-XbjSdqamo%(mMXR4&NK{Ep!!o7F?TeqEA*&hRE2@ccKBi z(29Yb$JfI9dO1TrS5!eVT>taBE-B9Y+5W56zf|=UCH~%w(7bGI>_0RiF9PQNuxk^< z4GNU&WvhExPQ|fy+r0USiR`j?ox|x~^$T&i$2cO~YuNKnT>Ndt0nV|-mxzTHg5F_B zxN#&5<{g|)({{-6dW6n*-Oe#HgwKJ*_Y5YTgI?vxGSoSn;pMx=$v-fUn1HQ2S4yyh zA6lIrTYl+;3-B_C^XQ@V-L_?5D`r2HC^_eQz^XJ;YJmSYAa|=sDtqRLkDh-Z}c zpbkhp0MgDHBB1}nCkM`&1!--cnQugOb$Lrka^2)kRWagp+OHqgxUC313U7=|!m512 zP<2YH(+%RW`+iP&F%Fhq#s}h3h{I+i;r3Ibcc&&&txi1rUC3^)8Z)zrWhb;{ao^Lg zea=m18AAiiA)QN=INcm1sGOvdLWwjbnVE(G#VPVJMx-uMigEeY8Jg#@#*J6CAF4;j z0FdA#sTm^y->HmW1{6uL#Il!xGGlM2*`nc&!xA1iVUSNIY6bi=sl6nL2QQ@K75m1D zmbb>Kzj(pB#R3)4MG-mV%YhNH$!d~hGsC&*57X9Q)C?#BK;uLxjJN+(v>&7Fv3Z9e z1+Yl)^Mqxe!WGRy-@~x<0>s6M=|^d+T9h8JL;_O*iJenXfVBJPW3evB#*u%GNmnM^ z#!)eelOsk%Bm_(Bc6Zb~D#rTYmS#5E&nyTatpkTkspQ{E14)PR)(%PG{c0rB&9T#- z1tW`<7fZnfnX*?eNZ}gsplnhY5zk>bva@@Mo8F!Qv4GT5!Emd;*%4?`tYv(vT~u4< zPs?=8m}d*m(ni-`=IX38M3ql{XohoMpItIrm(Fg%09wBc&kmN1z%kbf1!3@dEYSSD zq81~~__La};k>G(fDF^8k4$#k!i8g%cusk`DS9Hsa^Kn8xtE%D4G%>465Ne%n#X8e z58`FPEkEm;X;Ta$31cVr z%^-7OBycXZ>84Dh@oHZU0lz8I=&2L9Ukzm|0)=YqD%PcDGu%_A8u5XgmCX1Tw6?z* zY~D6E%VU$fLOZsd=d}R^z+n$RABWRtUKt&0HD*r_ss^g^89u$Ndao!*@xPc#c27=I z*ahode3JOc(_e;QNz0O+ZyY34WAz7A+1+9NNbT+J%HP3P7+tu2()Vk8L`{7;(ozSt zVch`_a>8xa3{{$Vr+1+Q5RN2Ob>NCSSuvSE#(be2nfBBzMvX!H7RUOr)6ZM3+L)8Qq#CRSqg7oY)ATI9ya_T1#uc^;g-k3Te%xat-1PsH@S z?k2LcSw$G-Y7--ljKO*6dDu^Ab_jYXo`$(B4QzR+b7qvx#q@8C0V2V2D)t!Hh>D40 zquZYWFxuY>m+8tOzxumR%}E|{!NJ>gsOBV9V5t>L*Al7`89=wY0Q)2Faw0rjp) z0rfX9&Odezkyw3;!GLbaS^9}BW`z}PzJpA?V?p^R!xHKuk(>14rjU`5Dstv#j!+LLXDn)MF1B?GQod7er9wh)vzJgL-e6WdqB0~hN}LZ(!n zw10+8VE>B?P<+n@kh|7uXJRTHoUD{IV_TN4JIJbHflLv-K8dvJOjCseMGW=Z`Tu~{ z6ix@|Kw}>~rg)afefMZr)&*)e1Se-yu*tG&L5X}$mHJFT%Az;H`R}p>Yzr83*4m@J zOA~UePtvvhG|ppfVNe^I=am7)K+J0441D{A%AbPtU88%6uI1e!e}7tW!)7WfG~=58 znR;z@El&aLg%f$wVD|P&P2<_sh*dnrZY9fap-kda;8B=WAEQIG%w_pm5C1x2&A#>CU;(uw4%%MV#JtJP61_Fzr20g}dBO@C@oaiGKcXSPiEL*}I0NIk;FEj&!z|=Pt`E1!o6g zx3$J*^AdGk_qij{{;*K8(c%Ptl>Z6tpQ|1MZ)yN4d;6unvkR>_K$2x~?U9{}MuCp( zEgurv(lbU^8+sxmt*efE>}5!<{v=NNQ3n9si$V@V$40iEjf9a8)gC8`hRo79Lj)3(XNh zEf$_93yL26v-<~fpDdX`V*)+*TgTgkSZyvk>K2{`QrdPOlRwC^3Y(b~fAr|a1dF+c zC0~v|+!jB*Hzq))clD_`;FI0R)yXZ+j*x!R9_EK1cUh*J`LUf!BI?nuag=rNaffHN zxn#H~GU(o_7+KUq`g#j_j(OdJHJr}twud89#Jj>+6!FmF0q<)TTW92>4)bx5T@Ig2 zq1{iF{dq&~TW*Daicy6cUuoG=g!3Rw1o)ceshZvBR3%0Ll>RIIOwYaZ%|}-q$h_4- zQZz*l^-qeAR}TY)IuKOg5q>z4y?=`6XzlfK@4Q%%{{<3B;^q7&NCXZb61Od3ZBj#6 z!Jcy*7eD4%TfcRdfNJoU7VfnT;B{*W1^lyW5N+lz7R~MO#97SYlF^F=6-ma^CX%01KR3BKwmdS*r0M}h z#-vfS77*`2oF^r{8w+h)?XCbt^`Yj4?`26PtIO^Cl1p#mOtxbD2Sa3YP1dx2tHXF5 zpY_)B74$=w0lb^0HNlZ@v^+y3voN&0Cq?Y$=k4`pPdwC)qRHdKlB|h?NGc(tJ2x;LdV_5v*i6+r$3GQ9 zs9X(bo7B!Wn3c9uKLC2P0#s!@9W405du3o8WbW-TZH=x!a#EN6BOXT({C7NV0!MQx z?FT4?YD+Jb$V3e-!~?j687xokKyz(zJ^v`H?e_oj<}>mdgh4fKxVU`Gg(Y4y2OXEt zO!4){X0GQs=)#;*&p>e!SWz;sa4Tat1H#>B3*KlhG>?=qYbwhDhjXNdnQGSeInE3(jU(X0W#`B2rYk&kOfuDNvb$g`J>74VgO zVW#;rd3^`~3)!HUreL)6s{o)vpu&3ERp)4KE|QT`J!a@-_Np0S`5_FNZlD*|j-PsKb&2~aGVa=1B_c}Wf>ltL0UB#97;EvdO#4(*6MLwsj3X1_ z2X7F1zHM8*0`2!6j%$r4RA%@dKmvEx%Yx^ezm3;CWZB?taklQ}1E+Dl{o&Kh$%}u5 z{2q9Xg$DR6f&l)5v1eH4g*rCEe)X%I%yGU`FP)7tkCzq(33-#qmll%`rK z0%xB0@%wU~2p_@S->aj)9Qoe~B4Ii&P_@13k%P#9~U3C zSf9_Mb*dfKravIW2e0&GS=VU!wM_$Bg9Rd5ln1~%)B$vg1UwpE}_$W(>{8>0&8 zUk~y{+}?w0xq7{1qbFu(cZW-k`6wPeNvr-(%|TnApmu4s?eEfUL%^}VjW0K0$FwcbRjCeO6cNH$bfE{xQBjmfLJXvx^QWzj0;;f zbgjGKDVq8e=ut_#MT6hU+z|Ig+;ca`zTrE*2vi~nDOaB8{WVUU89I29JAyQ!a9r%7XjG z#cy<9ucKY(XSAs z0N|_-I1M&Fzxhv^R1M|hr@)ao3^{^g8HSXDKmP2Es+sM@YhW}@BU6xN`zu}%TU3Uu zaly&nMF5jExzTGecZRf4T`=yI6<;l8n z>oz@&4l=&*KKz40-OlDWI5OH z3VdOB&hH5rPLstn*%ss%1j@k`_+&JB*4(XMA+`)??YeTJ#J64#n9jrO(wIECD%vji zP1jUiF9i*aJTC9>4r<*1oR3om0oM|6F1WJtO5dNFj9pvx&Z}CQGfqxqC|b?7RpV{* zk7UZfhua-}0FL&PW6;w~B+J3uD?%cDVB5a^KD>(U{5fHv*9+%p^V|J9>i1sA;08x0 zTU@Eib|=HeaIF{x_8K<43htN&Wv^Q9QA*XG^ti;vu)>ln3$^TdNczLk<{(7jKfD$@ zT{Ga+OfShQA1qidF3DXG>#@VKVuelP<%e?@JJm--9o8Y!2g77 z00)x@j*I2yO37i5YMce#u$<7GNAGW{2|`cgg|oa8{z%>>UC6T1LTU0Bjvi+Y zvBHY7(j${e9WBmOz`vZ?QWc(C!%!xdPBZJz1~nVg08Qg?@}Sc z0IEO14N43e>Al?hvn2prnDlMe;b zO)oGiX@Kk#FY-1PFNZmA35S<>{cOFu{KD&0iL#PYTXTu^+`00Lz`Mh#@_#Q9e@bLBM(DAVad|F*1940mkQlGZE+xN6d$7e_xDhHH{epV#lpJ6){X zalGx0$!`zhG;w(nSYiK&Xr>^FTyhR z(OCv^yg44qNoiy_*v*Q=gjRsLWh+IE>`5zE0uL57 zec*N*#7)*5pUozS#ps(`M)rk%gsP2Bh9pPMmt3zV1wOBP_F)|Ox@K@k-0HM~2m=3% zTQ(PM$}o(bV8|Bm#l|Sa<+VfYdAtlvA-9sd3jQwvl+8j6t$?v+Z}&>7IkUe;JvRT+ zKQJ)0zIHm2@4g+cHC{3HvHrzk0$e?pi8r*>O-T3pcwe~s3eBfR;m|a_n;WI<4_z$Q z;4hUo`D84ntI5Z8r$xJmj-8k{cT}*=;+FG)YVrx)N2j-sU`erwPZ`FSx4xPFr9=`C|Y!kE24B3%VjC%BkVJ0$qn#%FpO;>-TDEjJ2|1a!$PX_~9a5s_ys#uWiVbYh{DFmrh+a;fzA5 zMSWkDlq}bp*{dgF@k>+H-i9P4MTIb8%fU7)))#~CpZ_X9w}WU)z?8?p$B{dT2(eW` z{1+NKD|G4Ue>7Rbah&y|lwwK&MgjCyj=dOGoCC8?TWU5X1+_1}+b8o^z*-U7#u<-EgAD?y(vZ@h? zjJgeZLzjgTrcol$?9|snN>-BXS9~l7Kuxn$2Ce6w=cR-jZU^bA&5mZf8_WU%5%u-; zgI_oi#9Qc2Kh98;ws1={u!@XCbmx6d&OS~|XVgfIg3k(eOkH?n#so%;;Bdls*c3PVCBRwh)TuEtaV;L2XcMd2jTbe<{5ur*4kC9VlHgJgHy{ildi= zq$in2yxF-eW|>M>m8yaMc+~rl32tUw8=Zk&f?DtH^44#8OvcGKoaqmItPi5GGfl*AKH7CXPTPeLB<*LeM^q~s(W3qAKc~D12yNKf);a6GtLcnDe*3`r_Bim5iLNXKmd!oLlNBZX(meFVTx5!c zK8KJ+I=o8fH=ufTh96HY-9!azzey;ZYBRyvkZRWZ+_jx*_g>E8(+BKLFJu2)DlVJf z@?TyRf;p3?KC_>jWLc87FG@{7d5FWS39P zWnWVI5UW6KnxvjZbx%#Y9>T}3$4*^rMwo;}*m&d$0(YIwBK$aCBuB*eNEZmKiAtAt z#iJ8~k!C)IRv@aCT*j~Ujr>$-Wut9Xq@)Y`p!hv2{EUf@8T|C7LlE~3%I8m>`ulXg z4+%4B1Dzm|T$EWLaNtuUW8!Z!qFNOIN#j*v}c-L)@Hm^{buS!-s{=q%6 z`ZM8gel?u0Si?75GVAW}_5An2{u)@oS%fRxls2+g9W^mVVut;kOBB)m@h|>~vo+Fj zAdy=8c;**a%ReuWK6S2}=K=vcxUZy0t1alcdo1(L1d`2e*}y6g*$YAW%uA)3w=Rse zrN)iKn(KgHHm=n)Dk!30Nj8RksTu4><=CG+tJ^D_F&7v#lDlJSmPg4Mqf>|j2;Z%1~m zZ>%~JjZRy@zu&~TepxzG0SB|u=|B_g_mEI#{L1M&7#V=wpusS5Hd8BO9kU9#gj`aR z)6wzek1<(4{m*pQTb(N_uP__W8F+;Vlh&+jLHvv?w*V~85u7YsUp6Ci1bg{W=}p<7+Ejhh`b4Y zOAX1xYML8%mG(FMFcs0zz|C;a_LucOHG5t;Q`uU;9)OJgvP!2D5s(~Ai!t^>pHUlU zE7DhN^2R9OJtf*|us2|LdeqVTlK4hFe)e|oudT0fGCy7>z+zsdLaj5-Mku=iwKFrg^ z_MlE?q{G3Svh!=F$-IHt0W64n%UJ|Uqa9;abG(n#pnl@ux~Ul*^k(2;>0PMFAZcbq z;hVUUOz;1&DG))plSercYU$W<*5mr>trapn;vE{ypV@bQ-imf=v61drL-Lbe2U458 zT_W^JlRR_6U{C+R5^T7}k|s`q{QD(4oZ#wjlak~u61{t`R$HCa$L{);%Z$`FbWiWQ zPbCWIcjM_Cd-Wn}9&388*1aXb3SWscck$*%Kq+(c5o8rs|;}Lci)zeRh5O z^EH$YIuf%Eb^wF*^DjINsO{k4p087NlISg7)-ww z==gx~KKFr6?d*9YBO`Om%jp$cs%2u}KmE`y7LS7=rI~=3^U4LuI8_TwtvUxRg+9z~ z4%qfgJNUMsn*ZpvEuKQixxdVZ7EviljlwEt7R3w6nSEov)Kd`{SZGf6y+fjVzWGA2 z7B;9m;t~i9wK-Mpau7=$zC6KXjC0^hQ@6lCIUE9R-g{^o!IC90*Ct11YQ ztK8a%@SJ_&@37*IB)XCkGZ)w5MeEdBnsD*w+n8jkq2b-Y>0KiD7kq!0mmY`1x2MF) zlkWT)S?fRD&xH7b9;MHp6)-liSM}Sy%t32e%ErQGo0mW5XuEzYg;Px!U_2=n03^$} z#23ov=YDNRrwMm7jpd5IyRkp2tiC`OseP8*e)QiZb0r4hjD1iXR1^+eyKP2b0wg@NrhtdZ)QnhrWCK-D}PasKKM3|%H7 zOHHyZsNr&rg~L&O%0&I`6Uyu39QsYm%w|IjR-+xdd;WokzOu`oGC01xT1@#br})Tf zMSSY5e`#$`0;Bn*wj3lC2NPH*qfg3++u3SU zLIf8z3{wAzod$`&;luKi=e_Vyas&z#D)FgpH+uK^&N1`=s3)3S?iX&fr=;{|QCGeQf<`+lS3Gt(e-oy~cdzrm>*h)h zWtaIJU~=L2Jax2Y4W>9E{xHwGdRs=SpslvtspVJ?ySb5#z9R!h_Ln6zdYz?Sf0z={ zZmFDVf{lE(?BTyngDfY`8C}%-9)FQxqDS_kCiW`tcF(80Es^i;5jNuqt{FsR0F$$} z$1l0mZtO;isSC?X zt|?dRp6vK(-W^qIC3PNFQuV}qo_mQV)o}glR$Y1etbcHUeyi>9%N+^@gKL`=0~=V( zrBaBMe(#R)UbV#+0#|$!QOfIt3QT$i&R^EB_i6mbPwq{c7;|NvKOAA*$u-EK=5}kd zxX3F+(q~1f3nV^cXhZ8>LT#d)^Se%7x6PTOU#pZkg3_0X@~GgNIIzX-sfXxt-~|)@ zrVj6RnpF$g`Hc$8?)NQ}_utj0&Yzu7>m6C? zOr^=o91XRpQgz&ruRz=Z2dk z%EH(#c*$xhR|7H%*1PiAm99~4vOZOZQt?NZS~375J8<3?M>g>9!#rber>C!Ds2=vc zynIHdwcL=MGS6A0@RaXN`0Bvsz_11lVqgzJ#?Tg}oY`KH3a|LQb4scZ&Nv6fQS^fDm0{4Mm?vybVEsL z&%YEQ%IxyCyS#rP)V@iIrCp**nrD`dxdgc3d~TUI5~eJ6t({uw+(HK?^;T==m`!mA z@Er7?MG1YVWIq<6^lhdqfs4^B(UiW7Eyn)YBkuvWT%QNEklD8^Gn|2J$WQ%OM&M!? z7<#~<6Dm}~D;A`;_nUY8X}y1hBM-|bpnr&FFey1upcFrk)Y(!}isw`w1WT?5<#rC8 zt}dB%^bz%t!7`o@cHC2zzKk};s$I^FggpagDv2e-8QCQx{`v^7`N0b*$ChISqVP9c zC;S%|AlaF>Wecc?C|sY!$j&?^;-lVDglee&Nu}N@g_0ftl{^`JBa6LVG|e2uy?z|d z&^pUfIU|v~Nkh?pmebx;jjx7bpVCm}a2-6uQngGxK_lSPH`MrLhn z>O`%T-iTB81ykjOy(>|-*Rkk>!RJ4XfI282mj{2|dN(N`=Un(oKm674{_yLtdsID~ z5uI7@-sHKrDO_vbpdDnz>P4J<+FE>|g*Xvz*4bv-2h%ax*z@C4NMBB=$G|DYG?*g! zyHlW&AL-=yR@LFN>DeEffs;d-t@o5XOqTo^S^U!KvCEDMBlr~JA|VZBgaR6Mjh?HH zCkP5=t=#hWr4>?(U@(**A6=_4l}t&P?IYj(6X%Fqkmnx_mIp+_>B+JWiU_LVz zy0qOaeIV*zX;QSba)*qRDd?OAItu45YFl1LeqUuk4OS`0QiQ(F#*9qta9_dU_2!-2dXlRg~hM~aC|3c_4C6(k|6YJUd zL{73(%%Zh|fC$WRa@)P$lU2i3^oEq~gCjUSTxGKd&VnWfVdCq{LbOh+k}K{>Lj34~ z1I6dF)LL0I#>5dUEUZs!y#-?SzK9Lr;y?;uwUN1h{^4i!-U@=92d<$lcc>|0A~drg zk&5|EwuN<%bo_+DgqFytXOVw5vc%$T6R{@ijTvaW8JDzWGJU&kK&FY2HhE%ia$dRf zIewhIeU#4nAe0{JvXZG+Nb&Z#q{O~kNtDRs@%4C}b@6&OwW`46v%2vL&ndxqKG&1%a!gH4yP{IxeEBv%wposv4Y;iBc2}cMFkKU( zRCN^U#(KjuGN1jJNRs!A#bnj4=2yu6i099;K;xrj80%lVyuf*+p}uN^vt$mUZj>{^ z{Y52{l|mf+T5#qZ!Lxr%QC+QdF7*t&2&Vm>8??ETYWIYXOyUjtlBLAFvZ*iCzB*r@w`dFh7rHWoOy_E=MG zEvxHOcK!HlUo|&ZKa$J>5$=Et;uwXdnJL;<@&JGO$h#N3l7=Ys75A3v!g2Xo^6)nx zfS91{Y`?OoB*bXsWB`LgD+*Ny>@Y>Zk5lFxs)RLPR00`o4+3l|4yQ@4?9!>)3qWv< z2y1hDt-rbu_{GM$T9v>T{o9QIG&ih*6CF55#L4VJVie|q}+dL~4`M3=1 zr_!07C`%=VM94aEGP~v<>(EH#{y?&%8j}06JRV0YVCCG^v|!ehXIeft zJDd0(XCn$Y;K=Z=<6+hA753B>Y=ote3=ztihJ^mTG%po>Bb0Dl&dz8l1z8r>$n(xR zJ`N5;l&ngnDT?gvc4V4O^yLR^L~?6o+RCb6G2|hy2iFPo|Jr0*a)L|a(sK{cJ~?~1 zL4!@OjHvk9zyFd2s3=DYeiAOXWar}>g-9c2X{qwVACSe4slsb7P%r0UsO(BurF)O4 zhlFwHuJS1OtM5~F%7Xpn?l=cPHIUpRDu(qA3heFD=FojOIz-8?6^T#bS4Ya#>c{=< z30B>xFgbJ%&eyDh#FXthHR5ln57IcyM-hhW4^aiCVjgx0C-W z0%my9!ZZjfXB`q6Kcy>~1%hV&f|m1W0xog(E@EUxX~{`zLx(Dn>j5=^0|&@uOrGTpIiYtb<{3bnHlz<0036{Sy53YCY15!567amS3Dc zCYfBiC>CH3eFlsv8N3#5ZGxRJ%4}qQ+^`SZeW500m#!aHCpv|>i^ZX-V1J_@t%p^f z=5DW>OoIaprewYg2#!%ob%W3^bogHNd(KZ5Uu*wV$#phtyq!zKyXM{^Vr}Shz7}@< z&2JskD^~2@+|->O8|16j*+Bq;07jyM*+Hv$bsk5Oi-UeatYciT{)iOTs#J8_PP##- z`zAf2YV{2Z{12KgZ~1~{JN{3!cyf(>O>fCmfF+vTtp}Y#II~}sTsqnF7W!7sbLwK) zYTQ5OGB!3(_^M4QE1_3dO`#C3Dss&TIw*KQ$}oS5_LC&6Kq=#LMC77zko z8a{Too+?eo3k4b7|d6c$4dQrRN$iA>v2rz$)f@n6rxTe92V z(DArKda|K@e$+&I)MQ}(T#yt{4$pYomD#+)ZQ7bxlA0+Fv#Z?bzUh(KlU`bH(1&l+ z8)H#exw{Ofyy``4ZS#iny4B?Yi71>>&@}(RGGuG4-?|0bcW7!Re~vyD2v5}Ei~4bF znneW{7!)KPnu_56=L-;4e%Phck;@kqGzTT`4j$N>%AuWjn0>@-HIBbH&oytm?94<| zRC1F3XfzGOeF>Gr$bO}+9wQzI81BMtZD~p%dp)`2(${;qIEj3JjTm~a`H|j#+s%ht zoQ<;BxyuO}Ftl=e{Nd18urUwz#g)!p@TR1SUs~Znz-2L-xHj%srDG+D5ceU1zQQnD zQ)Mg<(mtW0NGm)|za4Dhfub)tm_=Rl1K{QQ=P@E4SwwHVIM3w9Vu>jv27_&8^F_6d zL^XFL6YDU43-^%BLS$34|Mkh_X!vc}%M32Bgr3S_h4RY(Zi_ZnD!HY$z}Y)?V$Ozd zu0mR2Nc;OzI-&;Es1_YAqC%zaflh};T-s7gM3yxcvfe(qk%+Qg17ol9{B>b_4;2cJ zmlsZ2VUoQ8#-fF>v#F{6YbH=+$lm@nfR;7Uw$ECI`2k(0v?WM(-ONqh;*`5c|4Xl0?5HNasXvjzxl{u?n0F}zhs9_`J{`-SeEe1ApBNr% zmu{n|COx!|#NFfcXS3$c$d7IwY`q2(Hve0^O8At|?~`0r1+nlj{d4+AIc~Li-Zw*j z`&v(Q`}@O zV3)~RmjQpVM?E-FR*a%vqA4Hbc+}hV2lP2#F?~44pqMyU4{XC3wTjBEMT|bf6WrvA z1P+Z{Trg2;7=5x|8kgI_IOk{W@IftCV6G3mlw2*)>l83WN(QoHr$$$|R5L0iL z+eSO*x3xzQvhZO3pj*wS?_S=*vO>QW8?I#t8b5RD$2Bk2kgJR^baIhDY$=Lj-X9+n zFNyCNIn_K&3W`|o??b2AF}U3^0HYW&C|C$WsAz%ZoTM7pj!ec;(^wk@;*J9e_XmnkDdDe5?(_`@8RXlv;i}$Su91c$a`SoEFS{tc zNICGzIcqW@1o@ikon-PvsT=F)Z2=-8dY)xcGIj2j1 zka?ud^vn=WP?Fy+Mm8=y}6$BB$!jkF8;aR*!ec7IGy zkly-3wTK=68>54iO7L@ei5;H0b*hH`0Pf}!$?or8&fn>J-OI@X>Yu4eL zrtnx4u?E(w#*3SAZIdjbfqX-Rqq<@6tUYk{cviO|G}Et?mqGir@8?%*QXf7w)Q(YP zU}#VN>Bvby{^N`U%)@W|vew!sPY=wuZ^0|^NsZ76b2 ziGK+=i3}PC`37xf+qV;TP5`vnvn%}l+}2NPS9@vqF$ZdEpdFDkX1+w-aT?*8%Nz7y@r;tsW%ofzp9U^q_9z zAkkmWDNhXlX;Z4&Eh0TLt`wCVtm5HjzW2}T?@h3*g_wddbGN&09YV`)U6>L9Da&Jj zxtmFen!jp9z^~;3t4~(_2kFF^ECSF_R#q+-+17`&L4TzzweAVNEG?~Fcq;+#IMAYv zPHSGIDfECffz|>iDfhQsSwE#n1G3rG7d7cVSAVge!lxY8v)y&Q`B;<+*v*zGSEr z7txgi7EWdvZD8nhPWk2VglpWmBANVO>L<7&BR@g{N`3K$0`GHHg4O%7!9)ZNhpz5X ze*`gZ4xd~cu&*;3G(T?bVZSKx0Cl1T&EWAtR&}ppIcRrw*{C1HI!s?Y^WVR2V2(vQ zZyw3if=mwMvfC9|`}pcoG3onBT7!(VW*bPxoT=P9u6akR2~vw9WKI#&BHCqNvdARd zn$4m^Y+7~3i$;!4j5hB348i*A=hpi(?e2a^d|^`ccv@ayl*9QZX3802yRoTaWMnZT zQ&^-IXv3$U9fb~<+wo;~wpDXPgJ2G+*n|7RbQM0?%wSE!Z4}4^ke1DP$9jLVWa2OE zIYbp*)BA5FuiuZ4;};{hv?E?Nn0GOB>vQ_7??oh-idJ{6eU(pf3VU(pmnT2sN|NFD z#d&>cM5u+D*Kh~*9!MRgpA@S)=Q$%vVL~W&Bd51^r4BQGi<2DNNjZzZWjixi_HCZmDilsgU-t1wIdc0++9MLZ*a3E>VngA)=tX3 za&Gkj<;!}BDLU@uG5+SF5!^l&=yJUSYp`3njo{GVH8Toso2>hG9Pn`@b(D;20;zS? z9#UlelTXp!f81nb`WTI4cPKt93IViTbGL`lqv9}V_!SjkmqW%R_;%mSJDx}F_^QQU zEgs`1GX^fI;I%OH>x#)O&UpgA4l1?XfZ_NCsV%7wckbG$HKE~_W0b4&7Lg#JXmSP1 z%9ld2(J6BRf|qrSyWj7}Bc#Z*98&uE-m5g*1@?xJl$(O#=Cq;*|cElkjrTsDD5i51iI^q<5#&PS3UEy)kO?W(|n?#pB6P`**W`p zV1}$_pb}S(0GiO53a?C75&hsJUk<)VaJ^!Fw5DR3A#?rlypCMuQon6x{pp=q+0a4M zpB&~eMp)!%ug^ddFF60B$=;xC@{4F7MtoeJ!TnTZ-nEgF${gn!Y13>g8K5@EN7FwR zg%U;vvgh#=sw`+C8ug&W25BrZ(L#`zG~ghv3ot#Vyb-h9t`aLGE!HaW73WFsN>ZF8 zifmb6Di!&`2yqdI2V_^qm_0mZN5@u8YP_vR!zUyy5Zv8GYJovBcsiKGr{cTrC@#q; z>@&+&cx^m^-Qb=Yve{*T^Vg`vS9mS%_wheHwS|cm&PB=w;c-+UVsqROpz7KpYtG9D zqe{6M$WCD#Wk|9_Kfq%#(}g%s*K-xwZ_w!Zv9Ar~5|A|#Y0_*TL+&;p5YhZS|M7>Z z#4{9+Et+b#C$E4;^6m_nf8HR-&@Pbre0npI)tPHZe8nZ1HR7n#eY)bf0mpZ%w`083xkD_HQW@T#+ow%NxdZ;b&P8HR#41ExOr)|pj{*ru zVGy{GElIlE)xpS+(Hd+DEEx@83JBQ2Tnb@&^bqwZwc24%+?W?hdKDH^;HsnMO^2KQ z!tH2ea_DSzw>BgBIR;9oi}s`-GRTp%`Mak8OW!N)gWcj8r6MD*%hG?I85)+>A~Tlb zila&;k#^sWCkSB_?0B`sxLYx$a=Bf%k<2i`$LeMt9<9#aJs~@#^YI^U)j4s25T05|?;G zwk>k0FBDO=IT{jw^7{R^z<(@h7oS)Vf{|xIxY)-$Y z#XBo4x8#OtTN$@Fq9{16_~=?$0q}o2LNOr!+WpnD;cp{bM_;#&n1a^~vR3?wFFD%f z6S3m49EK16>hnbZZ7qp!nx8q26Y}oG>AqmiamXzE_>ts1kloeQ+vD^j+w2)0<{5ZX zUWD!y!xkw8wwh^Ydz%i#IirNZz%?AsNiQW`CsNHHk>fxhcWmCIBO3Peov3JaqAM`M zU#ksiGY7i4<%h!E-+AV;lAJ^t zQW_C>|FNlMEq?_pWrdGeu{{4h=Lh-4cvU*?r7%{E`Rua=+>kBf&R$?EGVqS|3klJP znf>>Ynus!@RGV~e69r*Hx)DbEJkJqz*7equ|5DdFU4TGle?2Sj%6~%U@l%?>@v{z5 z#Nz&5c4TTrS;6Ae!JkaW&HD+-9N`(#`92W>T7~!G{fGW)e%$eTsZ%Dh#doA>P~2f@ ziy)*X0F_6>qSuapt^*AnD2YsrhL<*+q|7O~K^DJzl4E_QxUHMl2O@~s_;P*USfzhX zum~h{NULEm58p0pzNMfWOGv|)bMs~A3|u-t^nG4lkc-%qBMPIvKOoM356LTBIK)s$ zpe<&ZK>7acVM?M!VC&+D+fVDoN8EjnpQ~Gb;V2Er>04dhzjdH~Do^Ivk$Bat`zs?W z=Nz8R;Lfc`d_R4OHY`ayEBeFBvVXH!^&o92049rR=Wjmk5&!w})XB!RJhQ^h>OOVT z4P~=$M{UwbG?Bg4ZGl;ga7_W5N+qGg*n5l0=sDN$%=O4+WRm2}tx)K9$xag>XA*yY zR7^Ri<`2Z(;sHRI^!)sM;8nRNFWX+pV=Lmzp3o)xnR@6wXTCIP1noWuG0Qn`MY3>E z=U>RLpg@%wI{Q*pFUriHdO~PCrecVgVc)zNWp$Xu>nNB;KtM_FI4VcHFxN%;r?D4( zZ$E4Usbr;UV{fbx=%fi=&=CGB?^gf(mj^hSQ{1t55_RxgfutkCeF<>=ZYVEx!8)K* zL3^s^+F;)$f3e2iI{09d9D_<_KVgs1Y?6th*9ha!TI0TS(QbemAlqH-Hh_`nYFCyl z2c4##{-O|>h5R#Sz5)G1E`p%)L_LTkR`$O z^h-VFk`il=QK15h1pz5-{m$#d?mHX17*itntO2FeYL?lDbnPrFYL6}>EbuK=8?!=9 zx)@ZoJ|+!t#hduO8E^HcO+9r$mV2&&P`FXeO5Ke0!eJ^DZq}j}Ug;!mQl3{=cbKKW zqL(lrWfDPa>$0#(O{Zr%4R2;9;;Cv-*{4_; zk0uUC+kvQel8VXT+H$06bt(yiqa8YlWzUiNeK=xf(gfqc8siPB$s|lB!(H&>7Vwk4 z2)42qIcW+hf; zL#I~h>vAcu+~Ro}L{Gdxp@+5p%$bT@_mfu?BOLP(n~e$$nutfnSejWv;AyR1Wsy| zK96f_0Gsf28>!6FoXxze!P^EEX~SDje7CMLe%3P&3?-?n91sw&^n|U>M~Ee3acFW6 z)ZJIOL2FgAUOJ(3*=0P-C+suZZ#ic^ND8B84Yo_eAmVi#9bGe&)c5GUWWKzGfVqoy z1F<8K2ohcz_^jTQPUFf%m_cRSRcqhYlm0Wb@czovOVbv& zjlJ+XamvrnUS#-b02PJvsj9Pm%BZTR9v2&Llsd6!eWU{ko20ya?vnpB4Z690Ydm9ml6R4I;B<(QF0oPS?B-h5MeYu5waF+!9FL ze22HI!Sctb*XW-;IMk&r3vy*Zh}x$20O#!M>+2$PCl7UusCX>b()_%$ zzw6)!VJxsUmkHm@l=-mnel*ksn)Bo{uOS|NlJF!)PkpPqw;`Fuq1Rw-9QZs$WE@(B z5-1$+W$^(03wh}vDnSA1 zoNr=dUF(B>>pasPWeCgQtCM0DTgq~eY%#8HTyolU)2}41L}SQ8`5sbttPiS$`{d(4 zo2~WrEB2Zg8LglVc-DUCC|9#E*wR{tJc1&O1DUz-Rpl6bU3sI6Hv6%0^WD>@Vou?` zX^Eir>61(dveK%XbS2teZWJ9op<6;#amb3#maCFYOQZl69 z2yD3ILMB==2J|f{(}`~g2nek-RTN)X=6<#p*D0#RKa3?RFk3SqM`dbyrz8H;HWkF7 zT{<~Mk|Q?o+$+m_L`Dg-C&sfjqFb|<3!n-@def}vKGxMS%vc5oUCom7?mc#^_pYf_ z9r#Kb18nS(Q4GUL*z&mFs4yMSUs5Ueq{ehC-CGI^mD2?m^;{;5t$Uc~Vs8Tvi-F6m zgXZkgrZ{3eB4jaz*-~p$Yq|{oJ4QNrR2M^ej4SP)Nu-x>q&UE1F`fN}RL{El`h_-i zMw?RpJ!_orcbCX~0GQM*X1Ho=USD5t^Y4#geo)L$91bJzPVe-oNJ1;xUIzqAbJ9U<=kJ=BNUhD*P!*nC3`785sJn^#h8f(*Oj~2$7kqs6 zz$ns+De{4a_BaiKDbgyvtP_|Gb+?#!_y7C<_lEEyb~Ed-gpeNr@Y7V)Qz=(Mg#8bj Cy!;3N literal 46334 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 0 y k < n) hacer +funcion potencia_de_dos(n) + si n = 0 entonces + retornar 0 + fin si + mientras n distinto 1 hacer + si n es modulo de 2 entonces + retornar 0 + fin si + fin mientras + retornar 1 +fin funcion +funcion mejor_potencia_de_2_menos_a_n(n) + k = 1 + mientras k > 0 y k < n hacer busca el numero potencia de dos mas proximo hacia abajo en n - - fin mientras - - retorna k + fin mientras + retorna k fin funcion -funcion comparar(inicio i, inicio j, inicio dir, inicio arreglo) - - temp = array[i]; - array[i] = array[j]; - array[j] = temp; - +funcion comparar(i, j, dir, array) + temp = array[i] + array[i] = array[j] + array[j] = temp fin funcion -funcion unionbitonica(inicio low, inicio n, inicio dir, inicio arreglo) - - inicio i - inicio k - - si(n > 1) entonces - - k = n/2 - - para i = low hasta i < low + k con paso i = i+1 - - comparar(, i + k, di, arreglo) - fin para - - unionbitonica(low, k, dir, arreglo) - unionbitonica(low + k, k, dir, arreglo) - - fin si - +funcion unionbitonica(low, n, dir, array) + si n > 1 entonces + k = n / 2 + para i = low hasta i < low + k con paso i = i + 1 + comparar(i + k, di, array) + fin para + unionbitonica(low, k, dir, array) + unionbitonica(low + k, k, dir, array) + fin si fin funcion -funcion unionbitonico2(inicio low, inicio n, inicio dir, inicio arreglo) - - inicio i - inicio k - - si(n > 1) entonces - - k = mejor_potencia_de_2_menos_a_n - - para i = low hasta i < low + n - k con paso i = i + 1 hacer - - comparar(i, i + k, dir, arreglo) - - fin para - - ordenamientobitonico2(low, k, dir, arreglo) - ordenamientobitonico2(low + k, n - k, dir, arreglo) +funcion unionbitonico2(low, n, dir, array) + si n > 1 entonces + k = mejor_potencia_de_2_menos_a_n + para i = low hasta i < low + n - k con paso i = i + 1 hacer + comparar(i, i + k, dir, array) + fin para + ordenamientobitonico2(low, k, dir, array) + ordenamientobitonico2(low + k, n - k, dir, array) fin funcion -funcion recorrerbitonico(int low, int n, int dir, int arreglo) - - inicio k - si(n > 1) entonces - - k = n / 2 - recorrerbitonico(low, k, 1, arreglo) - recorrerbitonico(low + k, k, 0, arreglo) - unionbitonica(low, n, dir, array) - - fin si +funcion recorrerbitonico(low, n, dir, array) + si n > 1 entonces + k = n / 2 + recorrerbitonico(low, k, 1, array) + recorrerbitonico(low + k, k, 0, array) + unionbitonica(low, n, dir, array) + fin si fin funcion -funcion recorrerbitonico2(int low, int n, int dir, int arreglo) - - inicio k - - si(n > 1) entonces - k = n / 2 - recorrerbitonico2(low, k, !di, arreglo) - recorrerbitonico2(low + k, n - k, dir, arreglo) - unionbitonico2(low, n, dir, arreglo) - fin si +funcion recorrerbitonico2(low, n, dir, array) + si n > 1 entonces + k = n / 2 + recorrerbitonico2(low, k, !di, array) + recorrerbitonico2(low + k, n - k, dir, array) + unionbitonico2(low, n, dir, array) + fin si fin funcion -funcion orden(int arreglo, int n, int dir) - - si(potencia_de_dos(n)) entonces - - recorrerbitonico(0,n,dir,arreglo) - - fin si - - sino - recorrerbitonico2(0, n, dir, arreglo) - fin sino +funcion orden(array, n, dir) + si potencia_de_dos(n) entonces + recorrerbitonico(0, n, dir, array) + fin si + sino + recorrerbitonico2(0, n, dir, array) + fin sino fin funcion - -funcion ordenamientobitonico(inicio arreglo, inicio n) - - orden(arreglo, n, 1) -fin funcion \ No newline at end of file diff --git a/doc/pseudo/bubblesort.txt b/doc/pseudo/bubblesort.txt index 915635c..10169d2 100644 --- a/doc/pseudo/bubblesort.txt +++ b/doc/pseudo/bubblesort.txt @@ -1,13 +1,19 @@ entrada: array: arreglo de elementos enteros; n: tamaño del arreglo -salida: arreglo array ordenado ascendentemente. +salida: arreglo array ordenado ascendentemente -cuentaDeElementos := n -repetir - haCambiado := falso - disminuir cuentaDeElementos - repetir con indice desde 1 a cuentaDeElementos - if (array en indice) > (array en (indice + 1)) - intercambiar (array en indice) con (array en (indice + 1)) - haCambiado := falso -hasta haCambiado = verdad -retorna array +funcion bubblesort(array, n) + flag = 1 + mientras que flag es verdad + flag = false + para i = 1 mientras que i < j con pasa i = i + 1 hacer + si array[i] < array[i - 1] entonces + temp = array[i] + array[i] = array[i - 1] + array[i - 1] = temp + flag = verdad + fin si + fin para + j = j - 1; + fin mientras + retorna array +fin funcion diff --git a/doc/pseudo/countingsort.txt b/doc/pseudo/countingsort.txt new file mode 100644 index 0000000..ef3e8bb --- /dev/null +++ b/doc/pseudo/countingsort.txt @@ -0,0 +1,22 @@ +entrada: array: arreglo de elementos enteros; n: tamaño del arreglo +salida: arreglo array ordenado ascendentemente + +funcion countingsort(array, n) + para i = 0 mientras que i < n con paso i = i + 1 hacer + count[i] = 0 + fin para + para i = 0 mientras que i < n - 1 con paso i = i + 1 hacer + para j = i + 1 mientras que j < n con paso j = j + 1 hacer + si array[i] < array[j] entonces + count[j] = count[j] + 1 + sino + count[i] = count[i] + 1 + fin si + fin para + fin para + + para i = 0 mientras que i < n con paso i = i + 1 hacer + newarray[count[i]] = array[i] + } + retorna newarray +fin funcion diff --git a/doc/pseudo/mergesort.txt b/doc/pseudo/mergesort.txt new file mode 100644 index 0000000..bd9b2b9 --- /dev/null +++ b/doc/pseudo/mergesort.txt @@ -0,0 +1,43 @@ +entrada: array: arreglo de n datos; n: tamaño del arreglo +salida: arreglo ordenado + +funcion mergesort(array, n) + correr_mergesort(array, 0, n - 1); + retorna array +fin funcion + +funcion correr_mergesort(array, izquerda, derecha) + si izquerda != derecha entonces + medio = (izquerda + derecha) / 2 + correr_mergesort(array, izquerda, medio) + correr_mergesort(array, medio + 1, derecha) + unir(array, izquerda, medio + 1, derecha) + fin si +fin funcion + +funcion unir(array, previo_izquerda, previo_medio, derecha) + i = 0 + izquerda = previo_izquerda + medio = previo_medio - 1 + far_derecha = derecha - izquerda + 1 + + mientras que previo_izquerda <= medio y previo_medio <= derecha hacer + si array[previo_izquerda] < array[previo_medio] entonces + temp[i++] = array[previo_izquerda++] + sino + temp[i++] = array[previo_medio++] + fin si + fin mientras + + mientras que previo_izquerda <= medio hacer + temp[i++] = array[previo_izquerda++] + fin mientras + + mientras que previo_medio <= derecha hacer + temp[i++] = array[previo_medio++] + fin mientras + + para i = 0 mientras que i < far_derecha con paso i = i + 1 hacer + array[izquerda + i] = temp[i] + fin para +fin funcion diff --git a/doc/pseudo/quicksort.txt b/doc/pseudo/quicksort.txt index 38a4e27..d999775 100644 --- a/doc/pseudo/quicksort.txt +++ b/doc/pseudo/quicksort.txt @@ -1,40 +1,33 @@ -entrada: array: arreglo de n datos: n: tamaño del arreglo +entrada: array: arreglo de n datos; n: tamaño del array salida: arreglo ordenado -funcion quick_sort{ - - si(n < 2) entonces{ - retorna - } +funcion quick_sort(array, n) + si n < 2 entonces + retorna + fin si - inicio i - inicio j - inicio temp - inicio pivote + pivote = array[n / 2] - pivote = arreglo[n / 2] + para i = 0 y j = n - 1 con paso i = i + 1 y j = j - 1 hacer + mientras que array[i] < pivote hacer + i = i + 1 + fin mientras - para i = 0 y j = n-1 con paso i = i + 1 y j = j - 1 hacer - mientras(arreglo[i] < pivote) hacer - i = i + 1 - fin mientras + mientras que array[j] > pivote hacer + j = j - 1 + fin mientras - mientras(arreglo[j] > pivote) hacer - j = j - 1 - fin mientras + si i >= j entonces + break + fin si - si(i >= j) entonces - break - fin si + temp = array[i] + array[i] = array[j] + array[j] = temp + fin para - temp = arreglo[i] - arreglo[i] = arreglo[j] - arreglo[j] = temp - fin para - - quick_sort(arreglo, i) - quick_sort(arreglo + i, n - i) - - retorna el arreglo ordenado + quick_sort(array, i) + quick_sort(array + i, n - i) -fin funcion \ No newline at end of file + retorna array +fin funcion diff --git a/doc/pseudo/selectionsort.txt b/doc/pseudo/selectionsort.txt index 22b79d3..06e930e 100644 --- a/doc/pseudo/selectionsort.txt +++ b/doc/pseudo/selectionsort.txt @@ -1,31 +1,17 @@ -entrada: array: arreglo de n datos: n: tamaño del arreglo +entrada: array: arreglo de n datos; n: tamaño del arreglo salida: arreglo ordenado -funcion selection_sort - - inicio i - inicio j - inicio temp - inicio min_idx - - para i = 0 hasta i < n - 1 con paso i = i + 1 hacer - - min_idx = i - - para j = i + 1 hasta j < n con paso j = j + 1 hacer - - si (arreglo[j] < arreglo[min_idx] hacer) hacer - - min_idx = j - - fin si - - fin para - - temp = arreglo[min_idx] - arreglo[min_idx] = arreglo[i] - arreglo[i] = temp - - fin para - -fin funcion \ No newline at end of file +funcion selection_sort(array, n) + para i = 0 hasta i < n - 1 con paso i = i + 1 hacer + min_idx = i + para j = i + 1 hasta j < n con paso j = j + 1 hacer + si array[j] < array[min_idx] entonces + min_idx = j + fin si + fin para + temp = array[min_idx] + array[min_idx] = array[i] + array[i] = temp + fin para + retorna array +fin funcion diff --git a/doc/resultados.txt b/doc/resultados.txt deleted file mode 100644 index a48ccdd..0000000 --- a/doc/resultados.txt +++ /dev/null @@ -1,41 +0,0 @@ -Quick sort - 10.000 - 0.1 segundos - 100.000 - 0.17 segundos - 1.000.000 - 0.173 segundos - 5.000.000 - 2.0 segundos - 10.000.000 - 2.4 segundos - -Merge sort - 10.000 - 0.28 segundos - 100.000 - 0.30 segundos - 1.000.000 - 0.304 segundos - 5.000.000 - 1.577 segundos - 10.000.000 - 3.236 segundos - -Bitonic sort - 10.000 - 0.09 segundos - 100.000 - 0.124 segundos - 1.000.000 - 1.405 segundos - 5.000.000 - 7.421 segundos - 10.000.000 - 18.365 segundos - -Selection sort - 10.000 - 0.143 segundos - 100.000 - 11.645 segundos - 1.000.000 - 21 minutos y 2.0 segundos 1262 segundos - 5.000.000 - 8 horas, 45 minutos y 50 segundos teo 31550 segundos - 10.000.000 - 1 day, 11 horas, 3 minutos y 20 segundos teo 126200 segundos - -Count sort - 10.000 - 0.258 segundos - 100.000 - 30.269 segundos - 1.000.000 - 50 minutos y 26.9 segundos teo 3026.9 segundos - 5.000.000 - 21 horas, 1 minuto y 12.5 segundos teo 75672.5 segundos - 10.000.000 - 3 dias, 12 horas, 4 minutos y 50 segundos teo 302690 segundos - -Bubble sort - 10.000 - 0.326 segundos - 100.000 - 32.347 segundos - 1.000.000 - 53 minutos y 54.7 segundos teo 3234.7 segundos - 5.000.000 - 22 horas, 27 minutos y 47.5 segundos teo 80867.5 segundos - 10.000.000 - 3 dias, 17 horas, 51 minutos y 10 segundos teo 323470 segundos