From 4fcee5d449b24a01f072b2db7d702fa0ddd036c1 Mon Sep 17 00:00:00 2001 From: Ibrahim <93064150+IbrahimCSAE@users.noreply.github.com> Date: Wed, 22 May 2024 11:48:00 -0400 Subject: [PATCH] test(playwright): move readme, add video tutorial (#4156) --- .../docs/development/playwright-testing.md | 144 ++++++++++++++++++ .../ui/src/components/ListMenu/ListMenu.tsx | 2 +- tests/Length.spec.ts | 15 ++ .../lengthDisplayedCorrectly.png | Bin 0 -> 222753 bytes tests/utils/screenShotPaths.ts | 3 + 5 files changed, 163 insertions(+), 1 deletion(-) create mode 100644 platform/docs/docs/development/playwright-testing.md create mode 100644 tests/Length.spec.ts create mode 100644 tests/screenshots/chromium/Length.spec.ts/lengthDisplayedCorrectly.png diff --git a/platform/docs/docs/development/playwright-testing.md b/platform/docs/docs/development/playwright-testing.md new file mode 100644 index 000000000..8e0e9fc98 --- /dev/null +++ b/platform/docs/docs/development/playwright-testing.md @@ -0,0 +1,144 @@ +--- +sidebar_position: 11 +sidebar_label: Playwright Testing +--- + +# Writing PlayWright Tests + +Our Playwright tests are written using the Playwright test framework. We use these tests to test our OHIF Viewer and ensure that it is working as expected. + +In this guide, we will show you how to write Playwright tests for the OHIF Viewer. + +## Using a specific study and mode + +If you would like to use a specific study, you can use the `studyInstanceUID` property to reference the study you would like to visit. for example, if you would like to use the study with StudyInstanceUID `2.16.840.1.114362.1.11972228.22789312658.616067305.306.2` and the mode `Basic Viewer`, you can use the following code snippet: + +```ts +import { test } from '@playwright/test'; +import { visitStudy, checkForScreenshot, screenShotPaths } from './utils/index'; + +test.beforeEach(async ({ page }) => { + const studyInstanceUID = '2.16.840.1.114362.1.11972228.22789312658.616067305.306.2'; + const mode = 'Basic Viewer'; + await visitStudy(page, studyInstanceUID, mode); +}); + +test.describe('Some Test', async () => { + test('should do something.', async ({ page }) => { + // Your test code here... + }); +}); + +``` + +## Screenshots + +A good way to check your tests is working as expected is to capture screenshots at different stages of the test. You can use our `checkForScreenshot` function located in `tests/utils/checkForScreenshot.ts` to capture screenshots. You should also plan your screenshots in advance, screenshots need to be defined in the `tests/utils/screenshotPaths.ts` file. For example, if you would to capture a screenshot after a measurement is added, you can define a screenshot path like this: + +```ts +const screenShotPaths = { + your_test_name: { + measurementAdded: 'measurementAdded.png', + measurementRemoved: 'measurementRemoved.png', + }, +}; +``` + +It's okay if the screenshot doesn't exist yet, this will be dealt with in the next step. Once you have defined your screenshot path, you can use the `checkForScreenshot` function in your test to capture the screenshot. For example, if you would like to capture a screenshot of the page after a measurement is added, you can use the following code snippet: + +```ts +import { test } from '@playwright/test'; +import { + visitStudy, + checkForScreenshot, + screenshotPath, +} from './utils/index'; + +test.beforeEach(async ({ page }) => { + const studyInstanceUID = '2.16.840.1.114362.1.11972228.22789312658.616067305.306.2'; + const mode = 'Basic Viewer'; + await visitStudy(page, studyInstanceUID, mode); +}); + +test.describe('Some test', async () => { + test('should do something', async ({ page }) => { + // Your test code here to add a measurement + await checkForScreenshot( + page, + page, + screenshotPath.your_test_name.measurementAdded + ); + }); +}); +``` + +The test will automatically fail the first time you run it, it will however generate the screenshot for you, you will notice 3 new entries in the `tests/screenshots` folder, under `chromium/your-test.spec.js/measurementAdded.png`, `firefox/your-test.spec.js/measurementAdded.png` and `webkit/your-test.spec.js/measurementAdded.png` folders. You can now run the test again and it will use those screenshots to compare against the current state of the example. Please verify that the ground truth screenshots are correct before committing them or testing against them. + +## Simulating mouse drags + +If you would like to simulate a mouse drag, you can use the `simulateDrag` function located in `tests/utils/simulateDrag.ts`. You can use this function to simulate a mouse drag on an element. For example, if you would like to simulate a mouse drag on the `cornerstone-canvas` element, you can use the following code snippet: + +```ts +import { + visitStudy, + checkForScreenshot, + screenShotPaths, + simulateDrag, +} from './utils/index'; + +test.beforeEach(async ({ page }) => { + const studyInstanceUID = '2.16.840.1.114362.1.11972228.22789312658.616067305.306.2'; + const mode = 'Basic Viewer'; + await visitStudy(page, studyInstanceUID, mode); +}); + +test.describe('Some Test', async () => { + test('should do something..', async ({ + page, + }) => { + const locator = page.locator('.cornerstone-canvas'); + await simulateDrag(page, locator); + }); +}); +``` + +Our simulate drag utility can simulate a drag on any element, and avoid going out of bounds. It will calculuate the bounding box of the element and ensure that the drag stays within the bounds of the element. This should be good enough for most tools, and better than providing custom x, and y coordinates which can be error prone and make the code difficult to maintain. + +## Running the tests + +After you have wrote your tests, you can run them by using the following command: + +```bash +yarn test:e2e:ci +``` + +If you want to use headed mode, you can use the following command: + +```bash +yarn test:e2e:headed +``` + +You will see the test results in your terminal, if you want an indepth report, you can use the following command: + +```bash +yarn playwright show-report tests/playwright-report +``` + +## Serving the viewer manually for development + +By default, when you run the tests, it will call the `yarn start` command to serve the viewer first, then run the tests, if you would like to serve the viewer manually, you can use the same command. The viewer will be available at `http://localhost:3000`. This could speed up your development process since playwright will skip this step and use the existing server on port 3000. + +## Playwright VSCode Extension and Recording Tests + +If you are using VSCode, you can use the Playwright extension to help you write your tests. The extension provides a test runner and many great features such as picking a locator using your mouse, recording a new test, and more. You can install the extension by searching for `Playwright` in the extensions tab in VSCode or by visiting the [Playwright extension page](https://marketplace.visualstudio.com/items?itemName=ms-playwright.playwright). + +
SaNpZZ5OWe~p7DPD8l5w(k>5*TLM;L0Lliqtg}t39sSHuU%~Nf4?tF zp#&A6VklPyrJ$RZJ5NrAG17g4O#ecaI5wkxcrA^VX7YmN-N-6WS>vbiA6}!B?g3wr znE>)>2eCK`+{+V^(Xv7{Vwu>a{QpWQK5jZ4VG5J_#aQ2&LDNVh|9Gw5}q z@wrreF*IlOn_M|XO__9gHzCRbvFBBnttqJ Cl &VttAHSHw($Dr140!leySDqXF)gZvZfEDe+Qa1DtKf^b1M;-WE7Y+e zo=2 v0h10VV&@YrW85cIjzPY;OAt)R ;`(dQ9d$(G9pbCrrbT)WvND>?jO-RuI9+EGa}t>)mk#dF zc;3rkpr*vc`5aG-b|k+K?kp36Q@Jb~)9a^G*hlGT1Jx$*cW{E6$$Auq8`ByU(OY$F zxR&v;T~&0$LoZG_0(*8p#DCumpey>keL&nl^`f4+sNsXa)ab8;fu1 tUNrzc5aIJJvfpkz%H$nPz3RM}fsQJ*SLtO`2VU>$s7i+7g>> z?ItHs9?_~kt*n_gbp5ir()+hevNR3DV0&MUi~afU_hRBZl6l!JwH+f<;H}_*Vp_@5 z+$Y-j@0}r0m%q`CtL8^WCMP#}DdTnyhy`=_obAL#EH*B4+v6o0vm29}wuA2ui$T8O zh`wU8y`H<|?X~T0dP(Hy>2%#tF4iZ51h%o+nUz#l4)1M>Ne%#$jqL~W8Bv-xak@*c zOuV9ouIAhLZ!O;U=Dt*u@_IT7iu;ELMpk>z0n57L573O}M8C$jnWOrio=CjxSJYZO zV( qUDgBRsBa1u%S_sW}E=G~x!KsBr81S=3j}odHsfXuExmiUQhlrrNXf<0_H_ zqFz0<;z2949{sNPeP`+o_0iVp><2Gb^ikS5pQU;E^PPN?%Q_WpLN5cOm2BM9d$jOp z{!(U9q+FE|pq7d0G)M$$q3U=#mI>o+gGJ2nuwv|*6%a387e$l_8wr
}{el8_vABkOJg?B>tHxpw+OBtgIRx>AJpD(fe(EY*j4ja<$RDVKRelP`v3h5-MrDrK4-yNWflk-DtaWbk)6vbY)dhni{_ znGGwXdUCRF%f?cgy|)|ifuAn8(+5=OekefVSY}}njn>)KYoL&hcJcQp5rD})%Xf7% zHP+S;o5pXtS<@xP?{R+@ QW6i(`QBe)nGQ z79qHJrnmvhuG8!ttj%)}` Vx*8 zhY~>Xa71P0c%8P#w(i%|ThpP~xhgf4RSd2hhtY7a{4zQ15BD>;P*g?2J(+Jii{ixE zybKq$^Msy2uc4Ch^BC@4K=wGV*IMIp*>2w3YgdYnTdl^(&JV6Bz-YZ1on7}8{*J=T zn9f(ONFaGnlV^B7S3pl!wll( >|)*i)Q?R9~^+-LWu3`_vqv#`w6v z;ryoY(8Q|k0)s?eN#&oVJ(74SEG7;3=LavM@kCA>gu|~{|1&Wm#Lv>creCCKVkCNU zceez5b~bk}dk={%>+ZH0o28Iz*szaT7+WNASPDBs%_5f@Jv>$ty3ixb@h#NaR?Z;x ze&6c#^hQd?TWa6i*)6o}=KWDJ3VGr aNsRzchVE{L)U+hX(WpgHavMCk6wz+Xq{|Rj4$bvL^uO(WY5Nji%5l($s zQ~w8RvPM7fx1}9no1E~~@;`FGAI#Yt^H_VWwKU+N&do-selc}&k6 vY{2n1UNzeKbU97q0aLEoCBkZ7mu?J3&QZ&B^BCAwG@m^t!aTjHcO(wx}oz(o%~F zRI@1FUyu?ozkLRz>D+2vWuUzbd%H9CczIrR! t&G}l@rz;p cIY=bo5i zRx(xDM;WtRSOMaOD>{QSVvZfmVAa=0XSv0KRkQtz0z#u3+*_(G%Dzry;H=t~V_M~p zPXMyx)IjK0^1iBt*V2?$_S+3$cBI#Gb2w+99+YUaFRp64E82T)mA{t2JXOKRbb^2+ zrZ$<^X3#b8yLwmU&8*+}i!*E@R&P2$StY@|?QnO)>;A5%mM{^}Ki#ZLIlu$bwD|_Q zZ gq3%Ys7C0nWkz@osYai&{|&Jw`p6A z)M>Q2;`Mb_&y)!Ng9yw`$18E}a7K6SE>nX({^b`^=P6goTkBjN4oqdLGZCWx2Nxue zLtN&c8meLiM{UiQ6CI|L+^_ZOXb$={h)@n4dQW~lHuD33U3;7J-D8@Pjz+e}9K+W? z>jLL~uv;`BQ09``%Cw5h7($O`4s;kZ!>za9)*q$}DgvCo`?STp$yB8^7|w`Wmu`?J z4{z92RH7qYsp+r>AG2rimoURBsNZc~MSKWD8sfCJc5zR!Bp5tTY^PF(pViz*&-}xK zVgoB`E;q=jsBzB%;~WJ1U>dMb=>{2Klz+2< z11x8Rjkd _< zTR*|Lj;`v4I9>jR^EZL|NEoInl9_$fxVr;@NCuMggmN_+T!}rohl@wEtgm9#>O=-c z>C!YC>gt0#BPu&RHg0_C+{{ujN_4&*F5Ql2b q}Hbr(e}kMIt?aTf|}EGKM=Bi x^k|neG7&Cbt}SjL*x%jBQ}%nAO>~zw&*3^YDi%=)*V$&Y0U*q{^&ljRVR%oJ zt7^_rIjif=o^-Rci@(nXBQn@+mqL%z e|C)~4*wd5VuWmv ?|9)N zPb#-tr|q#vYXPNZ iO^4Z2Q0t2EJq3 z4DS{xL}BZTGq=xa3DmF2^@&lyI&?;z_%7?GNVDJmFW9q>Z-(bqR~^@vqMqz-rGeil z$f;~@jcxo5=Z^)$-X_q }s2*s`@9T*_N_zIL=XVuS7;P`c z=f3X-O_{S=?y{V;BaN0nfVJ8KShV$Rx;^Xo9V3SxNmQW1rL$!_pG8io-RixY<7TwF zTIqIJQ}I-J^p&kb4&EP3vwgB@WseZ67Oss~QFAk@-6sna)^(&`=>A6wQ0nA*uKCbD zmacQFiDrQ>a2W)3E0=0@v;_--THgSSJ5jS}jr|%u&!hcc#9;LX4;WF7o)U6v*Qj^z z4`{em*tvV51Dwqstqtz<0BYnLH9ajC(4jhexq&49Jr@o+0Uz=XMBhm6wZNv7?_lFc zM8Njx$kzBTd}e$z9YAApBR$ 9QpQQ6+Qw^^ zVTA>zG{48sS1iK$zRRvEtGW%ThD=;DP~$izD`(F%X_mcapV4x%DY8RCow`Lo^2Yul z8MN!u|JO^)G|xx5f%P+}AL8rym!C~AR-R@L3mmWym@+MRyN(~ e>qegQyz3eubEWH}@`%vr%7M#qgN zvU1EZy&F+!K)wDVnzJ--X=gp#E4W%6&u;1U0Rb4fF|(M7gp!-HdNvbePaW9EwF6)@ zbNr@>8!&XNYlr@vFz5YhW-;-1t{)%&Y0URyCX7zuAlDGrvpwom70IB%g-pClM}3$C zcfxOr(r9*7@!^S2!bHMdI*4M_-G+J6hdAuc(* A;np34nwtYPxAynDd` z{`Br2uB%Y$G6_^K&;-#Ogrwy{okqP~sRSBnJ}jaEbnbMCZwV6+y1c%TkM#)Im#_;o ze&-%Fp5p5|KDku|I`k*_gifrrNf-MjduJxilH#3&Y9p=Kn_c-J=IzO^}Qg{i-)?mCrs$Yb2TOv!!K z_esg@yoE&5yUxU5&VamZh1Wy34gAdM_8O%*>dg>%F#*qlPxn0fMZyaYgR0Uj^#4QH zTZcv2yzj$+#1hg1(jW@bA|aj9(%mT?(v7r;lypfhDI(o1(z$e}bjQ;C=Bdy3{qN=2 z !M5LLBbF~yIG|Z;dyWv7qLc?}?cDgpf_&jpRgX7?f zzS1Y1qO4cR+F`A&7u((lS(QgyEH`GZT$2X|W};b4WJ|qQ=SIJ7bP?LD+G0MzYsoVO z>K I@#oLm>2RxVYMBTel+`3cAGiz=&+y>WoPe@dF+w&~J)%*BITYYisb znN6M2(D@lt`TVo-D9M5kb@IA6C1g^V{@#a@9g{BDNivTw# 2I!lFxTJ$xUt%;a! zrRH1V$--^f%*_U+JL3ms@|gW2A^qx3^>r2VU;@ENT)GdgX6E?ZfAZ}3O;7Ez;)FnQ zJtS3gFItdE<<8J?GpU&tXfa%QaWtk$f-o)6_$(TJWA374YHUBv ry zo1?;&Yn%u?{U+;Xw;of5@5?Exwh_4!BE*mIHPs%COd*1A6~~Wb)HEBg$ q`|z$kBwL|Yz6JK(1_jsoqbmWoHV3&PFAjd zuG*5~cG*Yw%GIPU*nKM969@>h^%w|hj9l8R3BAT&v}cnxZL=*kWOmXftgRbWl{kf` z=U%{7-i}ym!u{O7WnXZ_<|t4fIBu5tR)h}y!SZ%D^;HO^K4wGsd5oDey4^YDbDh Gj|r$7{ZiNLf`93NEwyLiz1 z=cD17)l7<~kD(?A$t}uoHL!fBsYqpqYGZG!b0XDbffb{O4qhux=Z)jLX$tSzs#yQk z;B6(q)@n$PMQu((jtP~Qt?6~z6aGXF+{+#>*Lv*7E|V>W= Fy>Si^)pI}AWRHL95<5{|V}zD#zy%Q7`l1GFOhSd%#7mJDR18$0a#@dq z-X6*$ YuPk%=3>FY!E3gLTeiO{(-HL=GP(Q32M|b~58T1Ob zGbJv+I4$R2{U|x5sYMkcv3@+g#@!M?v1K+gP|vkp Y*LK404_n5-rdXs8>k){mlaF06%hg{_ zSnvD_V`6F2$kh-xt(TakJ2cu%z+u7jF^4s3u-f0lzLm%*zMDBpJX}v1POlgAgO6UP ze>wBz@9}NDD)4)HeG#htFn{iSk`n*efs1EymkEn;B1le6IJwE!W{Mu0=1~E;km7#r zxTFA^A(LkG_srHQ0j;y)m-k!Yse?rmj82Li|Jvx&EER@ 4O6iH{&nb!5~h) z&b~o$HJ$my4!%(m`Fv=C-gM!qI%=m*k!|zWsN<827YQ;U?~n*4mJINXLnmXCZJ-Fa z!sFsgFEv<4ff2*b0qOgvPtoyQhu _h}*^CW_HN z+1+_&OUY1{-)qN3Ht60dDR L+^rEtl+kDXDERLC?fyA1Sw=v&f6i&U_!$ zWOFm7u~1-Y0IQLfb(lepdhUOMb0_S*N%7)sLiO<+? yOC)7t3U7o~$p*HRrK!_`#cN;2ixVc$dUT}io2P5*fhJ_V0He64Z z7SAai`VRBL8^rfLF?id8VkDoI$)9Q06KiwOA1q!OD7qty;)2)u zaQim)nF}%YkTIWI-^Ej2!m!4)dsWVe8^Ud^#j0p@8m_X)H(xUpSrEyi(cBMjEhHCF zpuxu >cTv-vy7+d0^v}Hmse7Kbzbaf(ErAgI` 6Fnj*6=8aMQVQ=rnvv0ej4-8DQOGoFvYf?m&JbqVyzR&%jbWUd({-%93DmO)G z@r)h<6{}d;y^%eEDa_L#`xxAWdSYf~xUFJ;@VGuxvD13v)!8xH*yURh4{HM1u1RYtQLF2;iS`PvZ=JP*u&|9a{1w*>>SlMcPE@tJ6w4`~W zp6a|Y5xM_RBj99oUuPWBz0e+{6l02|(K=tod77*{Qk=KZMHDA`RdBKE{wqboIjy8+ z#_z9=)J%E4j{JHeupxYSh^hO7pUtL&THN!S(+0Pc;`xr^X7U6ZhS9&n#v8!wwJV93 z={^!Y_O2K_F06oVEzjLrSf%`Ex7LAgyx>V!BKUKhy$XelDhls!@Ar|yN*R=Y$UOxP z)QNGF8R@`aEeZI>D;K;OAWp#Ot?CVWLp}ul_4IY#a@*t!#VzNDL4xk+%Y|Dp(Wv8# zl5R@b2}3XY)?>7^=r@+CI@NnMCEfDH%$kgJn)(94_Ec)IzQf;-U$c@9tnCwP4Bwe< zuV%XAi-n#IK7B HAhd+D%s!u^oS|Qctq=!?irzy>gK+HPzF2aACE?8}y z$-*#EIKM3FF5# NsoqIdA zw`a{b&O3sVn6E#~eVI9=%FlRc@t>Q{4w0w5T2GguG-ODTZ@=iwG|ktpJesjmTo9Bg zi*>F~2fa#hoG96? HqOQCBoaJ*G-nEMyf@dz2ZD}jRuoOdtD;mK^co(~}g9^P zkcC2$`n5GD*!_Mpb^F5Zli4(Dgq_|gi-ztc@b^b>Y{ MN^g99WDAl{1NB?;{{pW`FH~oh!!VY>f z>*&7Ib7f7A%V5L>kNe;!W37?(x6m(~gY;~M?kA1#KT;)b`*!~4$NdfUWmGJ6+_3LY z-8Yatx0fjWuNvisw)yuvM8mAtulqxzDRevzo8I WH?`y>$#k_386`V8K$tWsk>nkNG0T{n9V0(s%yWCYGnt-S}w7q!|dVfEuBG!{nG1%`n)2Z-8 zC?(x{VYi6z>e$fzCl5AQGrgD8Ojg5%C-%+oGOnK>-O0XHyxP&&ydFm3v(~8|9P_-S z1U~NGe(_A8J84m05@J=wS7O6|Qi;{=_yLTA&7Y%s0ZR9afxdh5l;9Y@=GPD!H%%j@ zw-=`F8Hx}ven?H`Vm-HE1$u8 ~6p0FzA${!@6ke5vIhm% 1JrsY)sXnpwr~uY#|xHNT3alaSl!H82wcb|H1R_{&?Nx zL|O^{E#AB9=BQvj$`A~q354^%u%I>6a$UV3EZA_FSvxYlJkQ*`@Fa_WoNKQ8TXKi8 z|0ftl)A@?x!xj9gv%{TXyLGkftP%K5m-ad)tw>l6Gli%WMv&*wNG_DC;J3axZG75} z>Cc{{A{(```h_H>^>RV?7p*8Yp=-I9)9ClwMemhj;Qx*wR=V$5@$dE}8S|?J49QMW z8mqqbeDNao%Wo2ox%oeV#5&csYdr9RG__F@Q+E^~kikD9&l)kHve_yK(*zImdvITd zFVA}F>b4~Jti<@=jjW>oN~pMNC_AaOv=I9w-vLKSAr>yVnH#@ljx(Fg+tZG#;F+xJ zUcBm;+1*^}Z9ch6d`Np##^swo>Fd~gTpRv>u~Ota#Q|F8!+WK-Zl1?}VUAOaZgQ!q z2P3uap+V2D6gVF4-C%u&@WJMN@>s`K$qN2Qdll+W-=81&?uT7_y|bgg(L1Sx@0OSf zb$9y5I*Y{Sd&1v=)l9t4sJOA~9RB!H!S?OA4||GEpO{xV`0t&5HtF9ZV>G@A8umYx zQ@_h~|K@J=sx*kZ+T>11C|ZuKXFB_4;*td>1x-_1vuMiMc6MK>>sBdx## coTE)Au{GpKrhrNcQfX7Q^hqS?1 ztfPcxJzfAtt;lc=4N`Sv*0shl#ZdaEF?_`PCvC3(I{6(|Qgcu<#uc{sVA3p4t9LdT zd8K^~W{~~6|KgNf&AAbrwRt1Mk#p#wH0l`q;qi9bUy1Ov^33pVO|o9??4EcRoyH>i z;O>vArpwKNl%Ye6Ot4`KFO#s`!|J>ohac=mw@*~qwMh~T=Vf<&N^6PH9?n}7pKmjT zjJ=B9@T s_T`Gp}4pqUe)@afgeWi`1IaAHJO%=)R{HgI=Y#IB7Z;{gnRf z*QfOEg5HPg(FP3{^X1T=6h4Qy%t6Wpm$&C+*j4_DKpt|$6BF_@Yx}GzX?wq!jN%@@ zAl&@1|9RO%>FPvdA64TIh>HW`Tb+gu!G#$D$p2vonmnzV<*TVynNCa1`-a2VtB7Gz zgC^(RXVD9;_hS ?2t*&f@;rgE4jb||LO_u8q69-ZUZyYwiN-;_i z3SW<{ZtTJXH+j!*5f@T*DjKdg;E9>9^IgFI?bErzu^x|f1UsDbk{A+ZAFh=QT|B{d z^ur9dl`Qkj+sK8E=3&;)ufxwH4oa^N+9hb;LS$a3QW|d6^CW#CGZ;VVe~n35@8bQA ziH@ujZ%y9hY~vK5n4RIxTVvG^FJ7(Zv`%r&fOeeDmJO61QgBb&lUgUa=7@#(ORe@{ zxoB_`d>P0G#e5aI>W8-{{uW6)+>{EW;Y;xkAvm^Lt#eu{6zGDtHd=x&E_p>X8)L z1^3lc#3rbOMVPNQVzo~G5Z6kr^~Nm?2jM%{<|+DM-GAcbm7nwR567`6`_20CAEf zz#ey* SPws>_&YciaN-ETC(x~Vh2@sU|H#rs={pQ~ z8}*6SQu$|k3fM=z)m=JiHCx^n79fO3O6gs%2Ji#0k)sD&{LPxWDbM@ISzwDeJ2829 zX(5NXSMe0JV_$#qQ7umm-?P!nSSom1{t%gFjhDC`HR1DMpOX{UIQp~LqyyrW?H38M ztVKnK0<)F;3}H=aR5$nW7Xdl)p5jvML$?PC+v;LspE}9-XD9y*Dp9)J%->Kx4-U31 z!9MR2_93MYmVSL*;%$gf_9(LT(mIL44vvisR=fT~0HlZ85|au@!zC(o;mlS$1qOGA zqV5VWRKxHCfES?Mtp #67c!l?hy=Wa#SK9v z*UZ(uYD&7NHzaw7GSuS@&&L}!hV2N%v;K8m V3+F0-ZtwQ)|`zF4(VlNdejkYEbPLC3U@si zR#)czf0tU2`Y4_$GC)KAB{u%*E~NFa1=HO#O4JNVzvO6zL7``1tB&rf?XK5~34H^$ zE}vm+xrv90>7TcU{v$)5*$WkiqM6*!UD&WYvV?fUuC~VaUOO>hyYqOX`^}RI)-UkV zqMqXeb{3TiQ>=LQ&l`Js%?3ttXzotD8i*I3j 1(C@ z2V#&`l2w!y;j4x1v|9f*dV;3s;@0YCuKi8}t&`5Hfh~A=bHi+>lBJ>Z&`tIn+(OEW zC+ySB270P(!LPyfQ|YMKOuOZC7pW)|!nXfz(ru>e;$Ntuz@^X)o|AU2jsG3j=1Y`N zk$<}guCqY?Um!&mjd_jqzc>HI(-1*e;eAtN_62v D`(@0y^ 6?z_4V~3xcE5S zFV+^n9gK>$p?M+m(j6PgF+L^kaY{|oT~7KB*Y+4oKQ}!#A|N=}+KwV8Cv5A9rPXBY zewU&*UN)TV_H%NQ^=9>fJR^g?){vg)#e91(zXz>g5?fb1;(vUMvzLxQR)RusA+i%Z zDzD0Cw2R>b{oDIWHgfAQXA3=Ek5%o5yQ8JQ?hqs~9{cISh5kPd%qygX@JtGWAbL(m zCnG~YY&N?z8z78~d4+$S3=&BGvYTY=YBjgAShKl#f0M^z$pd|%P`Ovw@J;Rg6pn`f z-RiGbcR1$@Ujx4vKQCK)rWEdOJ+hW~v!}f$4ti@xb5x zRCP$F)}wtgbFt25^6lPTfg#5aa5;?a=~QV3R;AG73D^;3&v(yCv#{(`uWFxh-lki& zc=J2(Se4D#-(_(EcHn=yar1E8ccrOl;XuXiHlChjNCLje95Vk4$Ef{LqPh_859t*n zsU{pIt}~ocF0Z8Cle&PjZ5Qc-_q1;mQ`DMl2Ww8grXLD 7ez2QoFx22gVyfx2{ zPNS(v@o*ql>Ar7;gy_I+P37@NFhT5Mzm<|osE~)o%qX)%k*L&&r~0y!{tdapMqx`g zEVGr)R}#DRc1X9uZvEIJIHo*FPZ}b_9v%`cFr%~NSV(l>Y1h*J)u7fiNt#y3;`bA$ z>YX%q@Bn(g4+~E^!#Fj-_S4_*Qfz-F3n#;Kv>2OLM$w#QKSO9zP@0Q1e()X_eEQEg z4I^`j+VofpoXlFMmTugJ)*J}L{H}c#T{Y#?`48{ tCuo;sW8M_~Ufc;2&f{VIBaAxQ?Q{U~jCp~cU6a4X`FCYagl zaFmxvpW|?1xUAmC=i#$~<|4;o91rEz oeiQ+)d(vI=BP 4sZ#f4K(s4E#x>)JY z!GWEetH&r*joy4u+J*%@B871^dY&I$jPk;$QUqBNWbwodJj^DwlNQ;CFc*ET+!)BO zP8zF&V>C1C&jXKxgte<~+Y&8?v`37c+jlMFY5t-gmC8)`7(1?HC;zPl_@?u-RR~7m zyp+so+;b$_+ 9|pHouk)gc>ek{we)>%V*dttr@9!nc-wB{;a8?@ z-Eci3^!-fBPj7QoLdXr|HcqrSWg#>5ex1Le{W-D!hrUFkQgVk7L8df(_&K!y7+35% zaYHj|?`Fc?2A#&OAgOo;?VwIC_v^6#E|XZ#R`y1jfa~j9&(*~eOa4Run!F~uDcf;; zv3RHLqkv}N>l2IX?W;93HvQ_iU%j(y%&eIy{auEt%x!8=0$2EdEM@Wv7`wDqleyF5 z_dfEjyPnFZery+vTO@I|H*d3>HtQQO@~OQUoo2Vh+9 uL8yM>1NIPnacd5^|@5AXEfOgjH|bFquV>ci67 zHso9zlfCTO#T2^ekUH{e? G-vEz#o-MKGRMRYsWr@!iCG*daQEc26uT ejf;nFBDuy9u>n&HQQHZ%`&IEqr&pG^`f2 z)6b5c)UC)Pba&EP_D#og(3~J&fph~WSo5}mLVm%F1BKsqwkGMIX)mIccwL*dZb#WM zh{t|G4pOw0(P%X%6w{3) Xre&@ZSeYL-V{$Y)m*h0 z_S>FA|BK&q*+&ysQv+J3`~K(Ke-KTjN^iZ6-Kl&eAoa_$Pfgic9Ko!*XzO}6RQ@}m zf$10I5eP&_SGxXw;;eCM>8=qA+t9fPFLUOb)x$}*n`P%izOQZv{?`k3!eA`>-AfWG z!oJ;nv>)!}RFB%Z8S8ip7rtYq$$Nj!PY!nAaMrl!% ?yV`8veLSaBt!L zxdD2=+|v%7y0g0 kJ>>M>)}d@L_-uXl?AGSuljkw(mS4QPR4r4=S$_cR4%6H z#kFr|h{?OSu9-TBkDgdhWR9u%X&?5G9L;;F!m9aJ0^{ zhvR~BV#8#8wT}R>{44veZE7JO )DpLG%KVH4@3b^syVv>Y8;(~R4-Ikla5S;tm;sj{h1|M}lkjGzhs~Cj zhZ&VmNq*Mt1!2~1?F2mfUhO@@t@;ZfG+{{2xlQmd+(S!h22%YN7q4r6Cl2xaS*R%( zYN$P+t|)HqPvKhjukW+DcMzg6`;|A-?U;RUGJZI(KT>eJttd<#e1sDC{NesKIn8N~ zBINFRp6@W6ZOKD7Cq}XP?hkTj)%c{Vwyvr>^oRFW3)`ZWG$h4q?p=|Zb$5f|!}zJl zzX5q2YoidwQS=+Mih(R~3`(|fMZDm)K$oHhqQcIClu_;+8GE9>pAly7`h!^hX6yMx ziQ>{pw7+lnwZMkUjqu(3jRfMz3_dHuPP(jRqMytAWgt+OLI)S;XI%>^hf+VV(yX6g zN*VgCSWY|L%<~ZYo!!N!DB4{gPh3S0t~$N}R>Z3*G`=69 >(qeD2`# I;KcT$B-%eiX~ix;1vXjR!~j4CBQf%#`RM4R%Q{ zp9IHb4f}sOq~Ma@^>4IGsj1JvJvj{6_MfEruSs4puN|w~=@OAlOQd#oeRUG8%i9d% zOdeX&h~bBB&2HFU<|sd?=o}scVwTC^`yU+={iv#mKqYPL_j|DctU~n>9AcOH$?t?@ zHLdSE8aajYo!q^U!eoVAf0p=PGsaz4TXw;3Tg#uHg6WG~sMb2eBi!c~V9ozcH8L+o zo#4WMh!(ty_i5IDr4P{EAqYUJ|M~s@KN oTLH?XUNi8SFC`_IEot&E%sI5Zy!dG7D5IV0 z^@K8qH=GE ); !L`G2&2N{Wlg{53eo-x6GsRbO POvAw;0bFtsw^ViprS2KRN+4dOJ%F0SLUmi4mxVLxaA%N9cr^i|{!RNL&EgFRS zJgzq?3OlL)2}a25++24gS;2%gkKOFL F?OvT-}?D8 z6M;s6MyilvOcK_K7b$7ZF>|&J%N^Zn@xA%lo2OC~oDG4;8 ;jZ*l+oQL zV9TZp2T=r=b8sx9G#yE3Y_D0bnbX?uNRx7{BDJwhtXrb3k6 65{ONde9{!9bU{!?*>M OIkmqbr{g<*b#rw8~OaVUoGwT_%x{kx!pKef##U@crdl zhWldghEv#Muy#m`kDni^vYqD8!V9Jz@e!(Hy&i5AR;P%C2o7e57-h5tciQ0lO7J{; zdsTD$D~?((;;gE5V#L90vT{MlSd%a_0uJi+SW7kdeXq|V$#{fr_9_Wp$S3nU=W8(= zwE77Suz@?%;6l=UFJ_=n=-}XBqx+!-1L6MuJ~=i$6H`C1gOh$X- <@Z@N-QKH)|5V$uCIS;N;>WEAT3gr}Hl^(~L>NC1{iSMa#fCS2GUuN9a|o6gcb% zTkNPPnC`7vS#9qtwM#Xsbskp`{ITy?`KiUs4JwI7j#EGMySlpAJ67lsX2~Skp2teJ zEdd`VifE@WBY8oN9dsWSflx`qE@mWOQ(FtWdcnt!;2wAHwwxr5#=8LV{TT2WgwWOH z4+$uO3uwr^D|Eiq3pMde9)Q ?FYdE@OV;Kx{`k&m6=)&Fv2j z54-baIMoY~Mjp&o%av*fKir;{wOsE6qF{d4*zJjZ_WJc}D*xLLLG4*8MW|RL%WjRk zySwLJg6U2IlxTLH>|f^g6<);gWv~hh8$wlNpkq~4oEZwl(cQW_IwFFB9|^-Hvg9_L zc%^-zDo?{DM4l575_0nJ_@55)aHrXwtoLebYdb eEY2zQvNfPVjOJ74z!Bcx-+v8uK ul~^`=g6!3uU*m$1=gGPfgPN``S-8aV zP#_^OMo7DnQmF>WNQcwqo!c(?P^fZ7FXgbyZxA{pY4KtP+l|;$ K0R*|tVYs(fMoun5 zg7)#_$5|PlBO>HvW#{ePot>RINlQyhL9UPNUXz7>?OfTLE;ohczdQE0EiU=7dU^%k z0FoxShBmg){cy2d>r4Lzm>!USlKSnqbtNSw83>*DGC)dt5f{>FTxTwpjoT3_8quK( z!B?QeU)~bSVzV4lVgNZ10~51z<>%b~AE){(_B%g+H#avguLdOstiM8Z_r4n$Rw#f` z8%~`o?7vXj^g|ob#XohgwcjTsB-q!ch01iQ0jPtA5n@YYSFOWE`dB@i-D7zZ!9pTK zizI+O6KVFz!5dwKM@P=U4zW6cS&Ds9Dat!ZrtlQ)=9ZWIc<8%)Sf%TM0tDbpY@&9t zzfoeL2J$j5*#PIr=d6GgV+yw{rJE$7j813&+D%v7blV9G11g$d+b$;_0zI=R+dUei z%lU!(^3PeNQAow)Ye$YWi`DD&et *wDTyQ<{)c+K5V4hW zuXC?v$=q0JI=@!`^PLIF+~bOV)>97wfE05__hu^Td3dHaPXWdOA-rDCKv|h4t~WI` z^$mHH7IUa4a)1amh`py^oK_r@QDK1 K0^{pOzfSCB*2mmhjFJL?G>6Lx0ZplQ) zOu+LWQ@ih8#EDQ(S6RUnh403vr!Cn@LUE{s9G6AFYFv{pj2^*@n>(*&zh9s5{=R*W zSp`6Hzy>WsV~o-Ue{Y_Gh!t#{={l)>?9o(N=?riYFa#77lsI}tx5kCPOs(1`Y4ANk zL>EZPjs`~Q99XcKnWq>bV`F2eIF!tBz3B?T6y@pgjgUHh(5hFB`4QmY;LL-W%7TiD zuia}iw%n~tRM=rCNMNr*tSnS4djt#uemF>*alPXJ%OoapJ1jQc-`!|xY6j^A_jm$t zij}5r5uuH3+X$3)D4Sx6>+S37%Nezll0r-BPXLfuKqyu^Sd6AftyrVvQGkf9Zd$Kd zPHxm6N|>>H&{g~6_tADFReKT$Zj1qHj3HIV$^BUuZ2XpiccyvbNxqP+-vPydNv{v1 z{7nN+rqI51(AXvjZ3J0n`?2{lSZtmJCg$SYy(HpvjJHO=2okz9T_(U6qoyP=faSVi z5}>^7P&mmm`I^Ck-jS9s8;CGz$(gP6=}-JvTnM$97zCLthz=VW2_qzMcvJkvPK9~@ z7s+Q^P~glL7j7WOKhMgN)7RGzmoOPGR0gB~3Vn_X5y@gkJ`NmZ!4L0PVV~ HZdp4=V@2cznS^STurM>L6{!KYP2+J`1i_$xgM$R?uSk@V0wxl) z1BJc?CjxA4HtMlLRf=HSB%#MwK3Na#R0rS#W?byC!{RbBC@@06(A!q)pdg6?A04%H zc|#6nUx`32TPa!oMZF#+7HamXN>RLVGJxfEJ+e>^diri7c9D+=kuhk9@+fo?SAk^m zy8@tL5EaU%K-i~^g^cHd#7q kCSC__HfeNswii3{Tk+f15}OSR2hHB_-zMc} zXJ?a>8esnKz|pa-OKb_UbF;HKqg#c_xr|IqNi4d5jy-5&Kk1aBR^ol859$kKw~aB5 z8F+~wo<)0nu+S*F6c`#z5Fj?fSxDB 3)2SW+QUKKMZr~2KwgBI9 zqyXkOYs+0b#}d~|Ed~;XsEl=ryoQPj&?l&00$Bni+lle<>HUlO`FYSWkeGpo85)9& zj!pw&5*SWAtBYS~5(y;})&(%&b?S@>Dn%gv1c(5z_%cD(?WJkmJEfY>lNO CJY`*7uJv6J2=5pB-nYlyb8~YMpFdMK&D(N^iP3!8&7T+r z^!QAaHkOc(kR *~TF<}e=jZbLB-DNrYljM0P_7T!wo=Z>qcfGI2kZPn#Z8fkX zpgMxO@hhv#uPFa~oDJL8iTXz=7-~E43SSmdS&W?8>T2~;4V!8mkgQ3=b=o;gH0bb0 zk>%cyvrtIrqLQUxkO1UMh+$)G4GsViptSIwtvVq5#S)Yk{KibH6b-{N;F&c?3IJO4 zxDepbo$P+C!YnNBa!054-2mb`y}Ccme9-gWuXg@3aCNyB&0{~mb$SINrH8;b$=nZb z$N?!~O%ji^ly*ZY0Dx=PrQz#Wd`Rp&I(*b1M8Z@N>Yp>V07OvF6<#9p^YHVNiFG#{ zIH; iZn 7gC2}AYi)90IOOgM*;<)G5IQZU_B)_omlW}rlVxlx% z$A(i-yOFl`%&%|)&^gfSQjHS%7fj5|-;0WrK|Zf1pXAAzBDz(qqW~eOxtT&TLX8mx zK5+=Qsh(A0Kwiji5oE9?kqehV!Uw$Um7a(e5kSt}YabYj)U~zittW~B6B l0%T67@UFWE7ElMpKL;&e6(7$VoV5JHa;56QsJ!rR8)_~ zfsmRbi?GLKts9UW-)jas>Gsj93#$`QRiGWX@PX{qYxY@!cKjt&${0;Js0h>KYiV=# z>z{ZgX`*iL&CG!B=rR)}^`pGZbxdVUz$m^96vY^e?_LwVtrW{%KK1~&{OSQ%y;VHN z_qTg4d@Mu}daPk%-Q`+)K{!Hyt2%EEv9Pf@*w_SJngxhtsWA#tMoZAXBEh1KWxx;r zBtZ*_QGlu}dnCojumAZoIWfV-#U%p;n;wC_q|T`RhCCEs+wmoJH5Z^yiOhMefek^n zJAixd&(%&%O?8`;zf{eSkB>h)Tv}Q?2JjhtL|9G^EoHQ(zJ7-Mi~hbofXw20^Og<` zE6jQuTz9i#)B&yo$grpgSpCQwwaxs9)iE)X i9DIbR2JqUjkeCm#_&?qU zzYNu42JZMQwntr4zuID$a!awypcx>+0c}A33qMqQ!w-s!8Pf(e3=9mkv>;uzASV0z z3O0XT-U`H{fFN7j*Z^4xI%=7kmWGLmnZ&G}Ghy8x5N2eR)c-s|mLOb$8h2}<(Vc !(7L^aMo}#W`3EttLf(Q}x&5KkD@k=@$kPTyAlNUlz`hs;7k3M269#LDacv4_c zmq(ZeOhQ-VWVx=1f{`KIJ r@H&l=n+x9nliiUqWip1z={2wgy(G~w|s3=+~IO-D- eW&l06G z7j{d~BCh%XV#b(ITwOh3U)#Uo1PspLd0im&BDMX~dAU$yk^A-u@NPge-&dv>Cr?gJ z{`vE#p@A=3NlRB3q#+D!I BDQTHxq`tbiEa z=b{FTv5*vHBbORO2jpEk{02%6LQh#be3SBI)~AmNknL;dHk?p`L~G{;*}t?KZSC!W z3N_fc@csLj;mxVZ$uX@*$xl~~J%HW;l$L-HpM5ueLOB};2Sum~$nr&MVmuHU-~;*j zFJ8Z{1fgNYk!0*!sRmP?StU~mh?7NXq*$mZNQe?2z~@4N#}FH~N`3XXpdgSaHSp~h zV{WvQhLvXwWhkPfj)ZZ&RqqE$Ap@Zlg)LB3^gZ*cM)iRAVXsH>%ylft05#;U!@~co z^q&rPtcY-WrSKVLHEucczR}-1drP`A@WX4Obp44gdS#Mmj>wh+5O9DO8yjcql!m(6 zG)y1|GMM*#4S6K0Zb51-XUDmPKvJM|k73IL(L#Bt@Ei?739*d=I-dl~_;;jX7J7P+ z8%8#)x1I+k0{Zm*5n-exVDf5=`Yk@5z%PLQX>Ps&1VeIcDGQ5&1^ck;0a+-%i!B{~ zz(srWmo5{H67>SuV=5u?Vmr|Q6TsS4u|Nbyu9t-d3W>`zKkf$eb$)&xqXYCiKp)yd z?5(YLwzfVZzZc3}nx1|Gz<<3SHtKsDn-U z$A$@gq{4=y{HU4QMX_U!l^%n^R^(Sgfy9LOOfpz38z5D!Y+_^pErH1sMWFDZs Z71eO^uJkAmn^9NiCXnO4&;A%8EE%o)<1+exz=mBe3XTY=-=!WK#d?U*YXOh~z zzRkUzkrBwiM 5Y>n2}Z%xLU@txLq+_2L%dRIdZ*YHL@57vVQu% z>b?as=RWSYpQ6TM%$&aR1sz{Aj^|1xS^4!Ub=$#_D|@cyTco_Ck-vA(?Pn^?0p foxCAAM8d>_PcHZUM>($K5@ z-&%l?ACA73JFYS^GH=KM!NWbn#;yeN6jTLh2BeWMfB`-UEhNq3oiiy1$OJ7&R46m^ z+c)eFLm)!GgR1D1CgP5bjv~Sd-wU=0gk@v<1KqyRAFRluVMQ1UWc3-O^mEaGyhpSQ ze?zJ&LNLC91{Cm%g9SNNtgQ?CR)|;qbO6@E ~ za~H)4HUe&FJ}xu+JQint7KgWGn+7g!Zg^txq=Q?%n@L!tZJVcQ))#(v7mcw>BrW)n z68DFhROB96pI5|D)uZHw2aoIL`&;y?cBkG2$KY*dzBUsxuN7QyySW(_Sh8D-rTVbf zMf@iru?c>*G-HAGD|dA2z&{z67B`%=*<8czgE3=*_4mcoi8Kd#{P1Vn180qgXMFlg zzDKW`nlFFvRz_eN*58O;QWa`?Zil=s^SvoAKr&cTUPJ?85?KG$l#h}rdMp;nK+1vf z>c@C_-t(-P?6f_u&z32A+
q{zB(UTFV;h0Ft{To2z0(7r-ZiQt_{wPt95+|N3)KobI`SZ{rT#oMR-kxpi z63*3c+<2hxqv*erlk4y8?Hw8dbj{k%?))JXxPOBZt~F*XIO+h|Now%@>n+`$f)IAs zEjM Z7{8nZfo9=NcR1WP-SPAf(lx|wlM)E?o{HN$kal!($8 z&3ZgTk)}X=%$djGbh5hPe4H#;^lOMet1%l(5_es~`MUH`y85(SwnkU3a-^vL&>0h@ z*Jk9`fV-94K%osuIWGZHsQ)sRc9GbJ2i>wS^_KWyG1Bbg{(FVpLLR!=8ts~1>hTmF z@uxq&xt-s+Z^jeW+qp$5`|k(A4LEoCl=6 Vq@EPb33BH z(Cv?If=B!1N_mhEd2n(UI_-%cws;0-C|h%N4rNF$VW()N#Aa%am*F%~_$|)lf5%d5 zg#_MiWM7a@`zoywtD!X(zjk$>Swb-ur&`(`+Ee#IyufeYEAVuqpjMLAt+k)9uBM(S z#6uGy !V-0)y%ixo1AEC+_@<>U2R$}I(-P5a+(^J#(WC>cJ z&5T)B$F$jUk^-2jqmv2{g#>NZWZPI?5*~Mj<{2UjT2cLSN)RMC;WNz^=|RZSq5EGc zzPPH&}%AZE@sO`cLrE{0SuiUsbFb-9*e8WNYUE9lU$0E6dD2Vh>Vkk0$XGh?#y|| znbR`o)Z#*2PVZI7{r>RL8~_)c?7$PME?jFrEZQLz&S4nuac{fh++qObFnsyU`6D`w zu12Z$?Y-2|@J0}(VdMSE&E|qfWB+^l;AwuoHV$*=P0V4iqJh{x)6~Z9Sun|KW_Z)} zY89_LtIt_cP>mr+){?d=>+JdNZ=65P5ZxdCm-n&6>5Y34Z^`@(%8xfeDc**vskYFt zE1;XN<{9PL9>YdwsPx7OO68%0jU`x-ChWf2#WOh2GtB>W$kwn?sP(%V6y}xjqiRpS zMMMO$E$lY_jb#o(Q~$h6pJh^b58#}hZES(NptL^h?cfgO1vT92ye(5cfrHA@8al z8U<*q({f~p`)G2sMHAL(gQyX!9?b@+Ve%!4s^LhCpNvU%^dJ3PWJazSV=#xR04^$H z^Csv9Eszf6SCdyG13>y`e%BKn5@RI>`GrFtCo|#z^nZ|XJTx mRaMp(T7g( z;tR ahkgG-+ghWhDWIIS5eFbU-d#Zfc`N1<9M+yLl0qF&q;q&p4J&=S+(l7Z8@Z*`I3a z41_y-dw>wC7ASzCGl+zY3IV$P?DB4I+}{ =N+^IxKsP5SIa~} z>508&j@lwSL3WsHVXSC_lxpKOA?JR^^Bq6KxU;Lcl6!$u01AL>!jUrVIcv+7bk8td zHq&iVb}iTS+8XS$RNySgd^7+Ob@N%RH#*JT?=J%5LVB#4N$;<(PRm3h@WpIP?IMIP zlUoF1MAy1OP%QRCr+M((t`=0+<&s>BJ=-CP^6)@1V59jJV;@?(>!;;)_%^9_l83z4 zy+q^ti(o818|K>#S?DY&>1n?#I*m`ZNVc-LB@ZwxLo(~@fC4lxl3(}`VYlR0uH{?S z%`t5<1VKeAVDLEWQX9(lW`&PFEe)ywA_8hg$E#h|)v3jV#ZIC=V(W~^pDJ4WHSl8C zv2td2&p}~8hnWb_>Q{91K}gJujDb+!b|Wm* zAiz?A02h!F8~fq@Y7=P2S8<9$c;OPypFjVZ7`*_NZ}q-pVsdU=kV|6yD})>_HUn|A z36KM!OkvlZ@tI1COi ~rg z#Oq*b`SH>*#sUbTL?<90vqz5rDmFXI=XZMvdf@Knb}(NLv#$l^%Z`qYlM^7)ASlCZ zCcj^u!4yI5<^K_N9^hQIZ`_ZpY?3`ABpI365+XBulWbYpd+#kHdxVfp_Rb1fA=x}u z_TIdw{_lIdj-w7w{XBlTulu^r^ZWgL&l~QStFzS%R^7(aaV=|Dpik6b9(0=1-;E6i zK8mlb$XPQIIe6w=P;3?`|8;CIYc2 ZQD6 ^# zII#rU zwY9Q=APcIjjmD|_ zH4q+meOkZ0pMsYD;NYOBu#lM$Lp=tJ6_&&z5OR$xRa8}tjf{%*TAB+Bf0%MYlRInE zfd%$nky ixEG`zIk4~VAgZx5B9{6$& z1P5F+X=!OvGBU7qnAHF=g5| L2aQNgvZUU#(8R z#c$5rxNUBxbFg({o|b^S=ujWoC>rx}@w&KdoP9S)@|{yG?nC^rg->_cG)Kl JR ztH``G< Q(UW+HnQjQf@?9}0uH2w_&? zoxf&qW*?HUGvlLEjm6&*YO-0mNoKuI>MJmcA0VZZA-VYe@sCzyGBtDNKr V ze^&WkEBV3nQyES8`2@5(Y>Y<`v$w-3Qmp!o7PX6-c?6@=P1I1qMMh8T *Yfh# z@81Xf=%Uu6>HSoQq0k9lEx 8>$xBA(?^kHBID za_AKuIKKd6f&NOyZRuSki3Tn)T>t391`vWmLqnzF=- _ z+e#)(Im_D1x|e*^;Xq`LmloBLd>8`-90kAQ7iFg0H}@*;Gbt;QNU(ARbrir_mj-Vm z7Zh-o+A(uv7pM-N623Mz&g*>ZgX^cj_ 2o$r`d=rkhNvo9L^D!Mn-zKZX#JJuwfk z1y6R6ZZk(-$Oz18MUGeXc)CvC)K}+Ra4tsw%BuKBL*qeB?0lo9ES>cV$*cqQt;KsT zBhC8voJPjAmdAHDbSQeLD9g1NOoaADbTzEc9k-l>?fVc=z7^}#yx-z$7O`0`=D`-Q zkQv)o;Zo7MDdX^umhDqJA``Tm*D$OVm@R$niS6t`)6z1xhWETPV8HE!LJ9)_$b5eN zLEqFI@iLJm(c{N%Cdofuzt$c0epB|%l$ *r^UOx-8VpvIKVFqIw>dZv0vtSv++>ZTy z*OToufY*NiR@c)TT(GgTvx6sHh>Hijd W+$%$N{k;z;qSxl=ygL zbaE?PI*li#a_Rk@(;-`7EAAOco(yTA!`ecd$yIm||;Y{N6@_4kp4N zC${hQox9<#!!v{r#9;TpOP#%)se)0`1QN4D7?1J&-SZ@M_e&$C-()+U4%f2sg05dm ze{KJMq*fq}a+srq5>Do^v%zXa^nhF{F>)a|X!Yx3qM6fEvEAg5?iSaL4F6~=3?Yg@ z53L%8`ym*mEqsI_f2QEEArWJ4`_gW&AA~+F8YkCE1ea8f-;|i+J6nf@`I)bhbfQ}> zA-nPkLOdd&ZOxDV`SFo4dz#2(31+4GPp$KFf9>l70|UX*>uJpWNv1_7lEBI}F49zX z@Ra5`N&g$T%dr{I#5Hv>%!T~O5uc3cvwhCZ1sx1*V(cIQJ5uxD+#r#{pjTwatjCZR z1p4L64e$iiTEExr0X2i- MCLu51sH-Q%#Q}<7Zf^cn^-0EH>6b6W z9LC|wOyFVI@}=33EHHxQZjhwU#u(QNtt22j2sr0Y3DA8i0>-?lc}Wtud_St~KBu7q zHW0oaT5f`L?w<4X>Vb~}crma?g3?O39$+^K3h#;}oUPjAO}cYMYOFD@09Am4Q<+Hx zMBF(j1dg|~6cniAr3ESFL92mA20j7sX%mc_F__1Ha=}F!0hPihncjC5)z#HGIXTVE zo&ei{Hc7|>doqBj`sHtsG3=CchP_KMn!tR*4?*(%vas?-N~-(r(`BqUp 3rs%#DCoSWoP zx4QS}y5;-#1ATp?=G6d9mXt|jNQ&`3IWiVy8v1BVT0s`p35FQ#Zp(Hqusd}k)?*W@ z;G-cy)B4g9RDB5vlwg%L%wREB!sur|ge29A)pFnXpd%wpkBvP_>;qBG5~vDzHM+Fl z $I&ZCm+W2l;|`t6ZQ>diETN$d3t(6siUM6_oe_T7rm|< zPUW&BTz?Xv)DjX1bB1488=07xsHi;nd?9^n 2Xi=f4vUW&I|;w4dPH a)OQk|eMB%Jrsv_Q$<0N^G+-NRyIi&5 z1*YidZDobVvnlrIQMd~D3?Il9<|7P ({FnhtP-fz>*%yD@Anf|l(y=WBjPwH za~l@Es7*CQ1>-X&heB0n7PAZJP2@2}ts9V2owWQh;kwGN{zl%74v80|PmNDc=~z0T z%^F%+E+T9>p}BN(0%dI|-ne0JrbXy%`GP7cr^6rj4Y$3* Q-6|RLP_Si{T)=5*Jx(N*3K8@ zCXtOnk`CXkZoEEXQD}49vw64;{@3TJv;RTDa~9qdglq6$;A0+SOw94^^Qrqs!$zO- zjN@Ce2CB8wRXuyWv `(u_4<2Y!;&`1JYo-)s;_$7fX4B=@R#}B z(g*3AqLIE<{;fLZ6r;b*hMvyvi_U_N1J%{W=B9Rw=ao2-&adHNQ7rRahpcoZPSSu& zm0;Qc?gGhyrM=9W1)Ewh!2S_6xG#VT0lljO0GcLU9MLlH`GFDx0KnJn$khW({A4Z* z*wDa}I`YvEp^tX4EJj=uCXE17PF)4I$qt7hQ%;3aj0A1pq^a<5Ofa==c)8#I0el^R zux6KomE>enQ}e-eLFgWwrfs_yJHx;~1(Q>?=)Hx-=*AJ8!q8RF!8BZ0c~DxyxS|Js zH1^{l+wuWThI+{Kl>;+A^d1fPA0PuieTwzM7tTH9*}&W=gNGuyZ$uZ1rnVxxmr(pf znF;?1$7si!p%0$;w#@@x3;r`24RkS^z6Kx?K_U26n? L|Bel4zI#;EkV;uT?3a?!hZV)dFR3$l+!Uw|d1I z^hUQ#mq6P*<`sNND+!8qs>FrZ>79=)z8|d}d+ye5vtiSaq~}$L@l$&kl)?2ZQ2sML zEraHxagWd7<-~S26X`d ;TP}7F%vcG&7!|NoG6m81(JY^4C%jB)4$;`~A9vK?K zm^pl-qH_^@fgeLc5)*TAwWK}AKu>lR{d$R^>&!2o=}BTwj~=(J=W63>s=4~+6;VrY z&{p%`fzqaP=|BUfSmpS>VIR+w8QoVVLN~K5JB|%RdTvL5-fP(mo(}0Z%;ceD>P;V9 z(aH;6#Wn{BBQ`Sru~ZdjY1s|(zrXjE-eS5(V65~M6_;Xdf@>hW*cH$8>CM;Ggrbvt z;=r@*Z{IW4f@PA}_9|{Y>+(+z)A-Y{yKT`7^1f-+zw3S=py^9fm7N~+>e;{@KN4T% z;B0WkM%Fpo%RzZ!BL)X~(vr|UmX4Kl`RL63{{8!y9ok-3M et7o|It5u78G)l; zN){6(Gthkl7U|LZDA97J{^ r z8VT`qQn7SZ=u0yIyucq}2jvViZnFss@7VDE6g<%mG^m(lZci2E2l>6+Y!oQ{!#=%h zI}oXW!mS#W(`s;h&yx5$f0TFw%v7j-BRbzg1W2_AG9DR&PJoen9Tn+`H&%8pK~zLp zCSnG517kn}DK_fU==Op=Zic5c$dBhy-OWQ#>f+L%oXX$P}}0%Navqz3*N^wf~!> zU}B@n2T_Cg@hDK8gmB1(J3(56t&bw)<+RmFn;$AhfbYacz{B^ L$?pH! ztA3~@lsA+n#~_$+`8zk(CC#w?yB^ZDvf2`B;GK-?ziK)MSuNIF$r%j`SJZ~wDO*=H z*Ge}(@Ny_Ird{W};xRf0ua7QtM>@C-7Nh*6yk(P4F(erYUeMr{bUt4Bv2i3F`;xYr z`b&LD2foasT&tP}1|g!v&7?m8s1Lq(tR6rKuAmJZX~@f=B=ndBiASRNB2yx(?F+lP ziMp;pN6Y2=5u5BAV))*9>zz(EGGrrfbB{QyfbAYf6?wPMnbMGA{wNTTs5q1YOW_>A zCovM>i`yC)&?NS$6pf7)sliWia5W37y&L0G%y+@vzu>otD!^Yd5}0}ti+xLzGqJH@ z!w=CnCbrcW>Q5P185$abeJr;3zowJf24JBa8zLM5V^2s- 2e5(_gM*La^DPd$`W*PS&Sc^oUk%83!F@UAbt&a?*BmJNlQmqMV)Vlm-h5C5Tz#C z^rM-(0ok9if?Zf#5m&J3{nWRM?FO8T3wXnDk+Z~tvWFSJDem3_NE@OOQQeY~l8Ffk zp`8!AZOOZ#aCH`7k&0yor;cPC<#eh^mzD8R_ROXue`qHBc4{t^5mcAlHDg9jvGUiv z`j086&1Dt6QUO%55bLNf5kBbWAn!Kl^LzU{oQ$svUthCnC_2VIz#&+})!j%We*JoF zJC<%;{t71$d;(qU%Yu?Fy>R67MjpM{EytGQa`{+-NvoRMPdvA08|3*{Hz^S )?;jPW2QR7eN6qkefe*+T7748=+3@oN>03r+>_t}VfqRw$BzJ_AyGH*X3jlit zf%s|0>)cpsG`aly{gdnVkOxdKGROri0YLs$7uiu`V`D&jz-E2P9J<)r+6uz+uV2bF zQ?OlI)qs9d$*jean5FxWh*Va&EMRKucwqrpI=jQQVSogo?Mqe=Vv>P2V#Uc3dOY2ZwboZf<^M3{~ftPr$7Qiw3fEMkM^C1SJv` zPaQ5vgFN?azPdy%B@e9l+(qqCm+LxB|6=0Zh46~1OPzlJF*>L{2~+Z5%NVB&F18$( zE+ztYXLj-%o%By!v%k$btzDN?SZ91bu^HU123C?U?~$Jo=xmRUIYz~eei_Fv{~j+m zY)Jb)u;@OyA0?v6Gj)>v2>oo7+?SDfNle|gq1pPavC7(p$n5N>!N%Wn<$vxV=la|b z+QT_@&)560DY+OYY3Jcr=rcG;;oSNA5J{vTXQ|0AVu@HJ3*w+aZ{p*xWEeb^z)oNc zg@!--ZM7zZ0YKSoJou?q{ua5Sw50xTA@~no%TM&4+swCeO=y3(Jl&JXX|pA7F9PhD znGhmF=A5JejIX*75Z&_y4En1oly}7w8=={)RhR{Y*620*a`CHYKyg-peLKd9W&g3u zf@W-_>hH)%Y+)g=DCX4((vNypOgD bZx1A8ROix(^|E(`x_LKIb^iUI=$ zY!p8@LE?JD!^72?6WZEDWk>V!^UKA21o5Ij0G;W2WG=3#VDl*S;dtzT@sq?pV$CiS ztkJgJ-CZ~gxMVw=xySE$d_>z0MD=+#WjcrC_VA;hc*^567CS!B1ntIcjxjJX{ml zOxo3H*4TMEkX_4FU-|sXqTN3v5!K877bR;bc0NZ vznOy4KBGd2$V%*J;A$Io0$ zrf8mQ#xDP-ro*@q|BAw=iG4i=504}HCgt+MdHS*Z48K?|mA4#D(dA_$f0~7Y-Tt0M zUpJD++WH}5<`0yoH;(GHS;Q50Lv5bX#-dM~0hpSo=XsVVo1&he1C={6k+%1KRzX1l z1YP@ IkqsC0gLPmP;drz$%N z^+5-lb8X-9B5%o D+a+`8>|I&s@%gBfb$bUdvxF~Bt^%*>;F!7-Y zOK$M=VT;cDsOS SMp}Jme5o @{=ABnkBs7m+bcxLM>zRTB@06b+d$wa%KvS@ z*Onrf(TEw3w-V4_^$uEcy5J9Th8lWrIo Je2}QCk8a9(Yh-ZB; zHePvZ?SjGQFH(g|t6enqQjtI$P}%dVYsUs1c($O4NlcA@8PMdq5T9Cp78*d)Yex?K zud<5A%!aPhq){TUwsUrUPjQ4VZRqgp4u0}8(9_EaUmZSpqI$U|DNIUAipUDeP-ym- zLQR%L*s|-5`VvH_6$+G Gni{PqF ZW~_KfBi?eQUk*I;R0{uCYa$u)%3*M#u=~IgUms4^RP)PWLeuAZrZt-7 zSw2c11Rxm;`|S4uU)z=Fhc0V&spk#`+qq$GWuo6758o~L@Brs?o*pS#S0l?v;97kK zfq($cy9H$?@hhI5W?#=Qg-|A-iZkqoulh8bZ<0$;;-}wF)tGRA81xC^4M*h5(W+{T z3F%m*vGUSV*0^2>D(EygQt;a715`yB1!q#RYKT!mVKVGW@t}qJl!Z7ATXL%a!e5la zeS4I1De5PYch7)rmg&Va>%0UG!^%JkoI#~tR~srtsyZJAxS%0y$6&qO4H5 gZjLmemL*l#_AhpB0Y^? z8q{f*K px2jtr@I>>x;ej*Psa!+&nSHe{i9@yEx<2M`SiRdtN1KP7&; zy|Dqu2q;)Nf2b3VTqzpJe#fj2JC`%H3Ky(Q5Njb5H8F-lU{oRoU*^v{7)u=zyb {y-az=|Ys}mZd{B{+O4G+B=f(FK{W_yozL!dl$c% >Rh71Kfh3TfoL%g$3Gm`YPPmkj-w-=J*soy6!(@uIw>m zbpop|uJ=E1%fuCdW?+y@t=+8XgF_-q;dhHy3!N0y>nGbYOG`^ob>oLXo4Zzjy;(U3 z??RuAmyIoxF_cbf-ToGSS5 ix8z^q&y`06HI)TUBprb)}=%Y(t2$w5y@@s%qua`N&f4X(m4 zhmHk(4MI08{l=cF_Ko(hAZzw$P)p$xGpnYRe+}Ne+C{YYME%l6+!{E^Pk>J178TCD zPI)hJ+%ZbZN1OP2TtQmO-|wbO7t2>cZE&7@**de|{Mfu1Gb9XK7SpR6*tQvpQ1h7g zuqx%Ltb&!2{(o1>$eoEr+*fAjcrV)-rF`m#0)zy=O 3eRf`6H_#t}r$HKlqG^-iym+ti>PboM+pF^ rrfvM_qy_~J`Y$gVnfpwQh3x)&Rjxh_(axV~{4n&R zW(ue}a1n4VQBhFFOLVlD;@MtV)=WiF@S{lZadO(vx~yVhW48}rH{6yGE|iG$A7#>4 z*-^r0^^vsOm?PG0f0q>~lk`IP -duMIvYHMEY1i)NTZd@HkWjUy$Y$TWCh>h(w{$BZ-` zJa$~eH3#BqsFxu!yu=Hz`75UHH(;LswuJ&>@F0^=pLO0$Svx%MVa*g)P$gq%EM1n9 zWP%Yy@ E9Q1i&fIlNYgCI2!W|6^3_Lw4^UFa= z+d7t^ADx?{3hM-)6?T$GQZG907lyMxhi_!00UNxQw)Q&>08k+M7hF}rjEabmF__N? zTPVOHpaGaF<@;*))A_vsK4{Ylvc=}r=9QC3q9SSWg@w^41~N7cGo5d3J3}A9wU6tC zZOU0dh>fkRwiYe)^=mvTo}UbOIvImdRld%}-@daLI&1cOskc3IgHK2`RlTQ0x75kj z7KkI5B_WEt%fS44pWmDKBz$vG=Op}yG}ln`#yKm!%yimQ`sVTN1r8w+^Ck(b+xSqU zbL4YUB5XMI18YOgN_}q2akZP_=3tz4Bl-9Z)xtsR(n-sC#p`jaIZ*T9ue{t>TQ)SY zyecLwOY8s39^fA&6j=QALDJLhX3(xr>T>-@OM@t|W|ym4>n`I~Q+5k5sx}_yrlW|Z zZmoZ2^`tTMBMf@ZXto&_Zy2m!dolec=5vl)#^l9;WVlnqrQptAt>>53QJy2thM!w@ zuqIk)xp^~HnFfWLSIep9qVBFy=}aClNoIJi5S_TUtaj;G*IQ1xl$L822b~BU?as{Q zOx0|=9>KTkX{)%PbUEC+@RF`+SvYt4I`b`e#&YZ8$grhu2ciBdbwaQ4>QaZrCxc&T z@2b=zXN)ta@Al|S#Mn2$U+ScOq@5@@D~Fa}i lc+Fi&fP6$1gF% zu@O_qqTYF-Q!#58eijWgD=z6vybUvQG##&S0@;7}d ^jV@jF-0Xf z_u7m>z!+Jt>Ra|jXeceksi2vj2Ysyo!(|jA4lh2zarYm!0Evk)Sdp%-=ZP(sxu7lP zzNs(4@Ew|)YXJ?Ff4g?64V9|#zu4FG^z HG=TT8uXZC AT+lr^VoXS? z-xgNyIFmhLS5y6}u2`%ZQy4I!GmS9Q4ic6EBj8#(6N*Ofsx`AbAp{H6j%G20XjA1@ zhlUhj(1*G@HJ@}x$?re7NLk8EZL64jsm5>jG=7;^>$9P;*3e0fnX3?V!ciR|!JYv3 z5b!dbq!i@jAB{-*2`%fO^om0aLw~Pgs^66nKB>l?f;Fbf#@~7)AJ=*({hhfvIzP2U zU&n!GWq8+hI>~(cj&F>>=rsS;gPk7Cwr98HaaR~!D`v;##FkU$gWmhQMueWF2WO91 zQCGzGa^_CaH|$s99_x&KYg|c{HOV*|+&SYHXW_s+@R_= qE(QqMNZP&*O}f`2ze7vAc#(NCM5qHwIiOzK=cH4U1E%jWI}iV4>Qr zhRGr)r|~u6`|eQk)BIw-_oFq!H;)ATW)^ra7AGL>HR_n|u@=JMbyD@@x|>LN;tLNU zy*#)AuS?x7T7Unzxol6=Dke<-pl@kZG$}pEnkihjiq*XCu_Lrm-H@1Ptp3xXO{)a0 zd+EkyBatL<((~G) y-x;{ArfZ?}3!-#gTMT1`e`ozh2|r+* zT@hrUmWuT0fJe5jOn`h?I%D-Z_Tzx@du}r0KzL`=xZc{9m6ISFz)K+a(Y*u^XaBor z(1i^cgV(0Y^nmX!__W2U80jWD6ASEteta2&8}* DS_L@I3t+-Q6 z6ZT!3REw(58nNU+7G*=Z1S={YDLcB;nZLVQh@jB&lww-XZAw^!@aqJB90)iaoVI zo`3OrBlOTep!|j!AfJ>q{m$LwY}3$ve2RXIc2uh?hK3H?jky^#GoF#TlZ7ekhVw3* z%a$AGzLdF>^yZiax0d4w6VEe?Km%=oo8Ft+r7OMD{3tz#r-JSiDYMSIdkn6`7aUOn z=l!%%P {a2U>ly k^9Qq+ zU2^#c1vM=gL?RPj`-T?Z(ton`M>X$R*LLJLAC yzHZz-75tL z>tYzEc;*}OjiK|X+nk^<`@Mp*G^(4PI&1eU+LP-qx GR8(lnpJCo*`F`MDISIQWt~fg`8nEaZ35MnBSqiP}nZ7+c zCmoBBVH;iN477t3FL<*6#X>&`T@Kg-tj(v37A18nd2mB)eVal-K^bC$mZ26HL5LXN zjtIFmrMj2Y^gJADrhsWM5{402pJZH{W?_~VIBDTXw2>HNwZdn;@ XKYBV(VzpR z3aMen${xE|r{SA!X;f4cl#z9iSl>B05D@0!F{zn?75{O!t*vcg!9aGDPU@jyWj5oP zJ0-d9gu_U7)@wsu(ljafZ#N_eky1uEHR$L}fRqCV0El(aIgO0q|M?8A#NRNRE?C3t zDz2Vkoo^Tkz{dts0}3~EE@FPx% o zrg(Ru(n9m1F-SZ9ZlJLXlTTf--s>H4yw?@Ghy2|2kTLv(?e*x$qqNB{YsbVSu7L~d z659O3l?x8NSfaFhE%GM+WV1x{n;N83qrfq9tgh^q+SQA9mOq~|P}Od1D=`0H>#yhd z#*&_dcmX2?C#tNyu3zsopDmSVA+XJE+KmulPTTYed!AG5xY*vb%aJ=fZdm->lWgyl zNiayNWT`LvI6yJyG_R7V{htjV&91pLaFL-1Evc+*m &YjjAnOKtPHn=X%XWhPqQOU@~<478zz0rxL zp!D&j6Hu1|b-nPc{}uGQ2$_9Of7<+yF?JYrzVf8VPG`+n!B~;S*38W4qh0kM)!7*5 z>0Lwu_pI7*x_&&uy>~f5JQzl!i;MqEzauD|`VrLUhT{$tl@%b8jb_0F23J?o$K&3k z>z_Yc5a2DT=%Wyd<1s ZNAr4 zFkTwgE8G*JxFBNilB*IR=XMj9s}kf+TFS}EbuH~>Wzo2AkC{6Fj0V*diLt<-VGFp* z`uu HI*XeUvBHfOWjFci~sQCgwDE(9i1CbTBfJ<~Erd zHGLr#Xh2zik^a8n=hZ1p-Q(i-avoHY7dkv3Drt~7#|I(hD&ywsfI*Eqvs%+llip26 zhGr5kd!rRr2OGvxT&-4}Is_m5iqs;goR52y qqRQ#|MR`V4qNcs)XSpO{ z>Oo9L-x;p_tPx3S6t`^`m)4Eun|A{UHlnyTH {9FX*etMI@Yt&%um=dx z9VV$*D93+3UnT$iP+nHHoH+%!d+8?7sNhZjlp2P9+VFw_;`4kJyyTy=u1zd``!G!k zEbIRM{^{w|e~@fpA#}{OF1B}G{e3}C=;{r29n5RgECzk*^i-t(okrx#hsk+n$uRR_ z0n@r#le~MuB+#JsKU;ikDk0|3x4h((l$4R30LHPT3_wu<3B)~T(uhFjKCsyYMR;z9 zi9$#4#PS`4Vc&(cO-AOyarAEl1x(;f&V%VC;JZFwFy-VE5(3o|nsFhzl!3r1m~9ra z{PIcy7&T2!#wP)W3#H`Uu+@cxguoZnND&(SSz9L=MXr0qfGpL})k6AVWi92EQ|ngM zr2l);TUC AKq5$^-%X5u#sq$6K>ajEyPXHp}Hb{we{4AYVDzcy&A_ zeDG-y>_r%4$$?qvb#wg>sfPXTNBk3Tv6 ~ZrDiekW8~OS7DR(= zYqK_#1>mi8?&9re5ws3AKp@b$!{?v?h2;rfoaIfTvsSOK7k!9F7WmN;1agKTqE_>2 zN&)9G-O~Fs-^;e==k;r*KpOR>_P&`g=fWI+QPMr4sjdBs6TAXgIB&~?*|tF6#|{E4 zC(rEG1^&Hk2MT{x)py%e#!#4$*Yo3z%7aEyDSbw;!utdUfoeCe=HuW{Vv29gD5v)j z%AiJL6np5$7vN)9z4RgIJ;KH`?-Mz4bzFbYkNEk+?tNG?^=AJ&ZMvSX*Kk825gPU& z?25WVOKF+-sTt{~E;62frdp6N2co dbM2l-#q k)LTE+4hB<06CulVvTreq3{XZ6f z>So_>2Pqp*kC!0We=pyv<^p7ji+=u_mC+q%Cz|-?OY4%I0;E%qXbj{)gXX=c8aSG& zvo9Cjgy*LbR|yH_WjHY7)Y<(T3|4uc^9Ska2;5{%S#Q|$>78GsxW1d^7xFw{D0NwN zYO%k_s|2CL_57eI?^fPz+((#VJK=Ao=|5;3U4N&M@U=5I3s8Q#!52^Rf( 4 F zUvk@xDt(7`PV8F@gx5|62L`eT(B<@l7ogK3rlOkQ#QHRnoCl&=RCkV 6RA`~y3#%l{>oTOqQp~@-SvG_THm>g5W zcl``cF7V{7c6nxnGqb7?*T$k>V2lsF=Q@qL8t3(l(xH*IPZ!zxg;BUi-W9#Kbj#Xu zu;*xW8M|PgeG#w|i^@xb;dj*f;#G58+TyLB&7NjWwVd+QT*5@Fy5(PgN4d$4X8Yz2 zSON{?$X!cTU7GiL2g~GEEoM&xiT1O%R5vDs8+VB2F0P@X^zfo{|MRnwB#=a#tBb9F zF{D7x po(Srft6we*VYocC(H!1rEA{Oj z-EvGhk}$VQH%NNF+JaJJ&A$V<+zNx-yxl?vJdJR4`F!N2wm`FF9veIVKrrL_J7|cz z8(DKglUt5z*3Y*B$o>AU!H1#`UJ^JWb44*eiBV5qjqoS@L+!81#`)|8*#owvt(Q&_ zE%;b@84;x~noVhU9vv{@k>#`-f2E+e=2)>a(g4d1+H)ATI%Ac-iYz+sLg_zr3(p~< zqhg1YS+Kn;tA;^+iUfmv8_WqtI23$`(;o(XG7bcA9AdtfIqy3*6f=fG-5=CZSO`;Q zH?-!?0a7J}Q<9vVoQmq^FkjfCo5E@HPqhWa2Yji&6c(D1N=E_0Ftr7aKXgUF94*;G zM>mF<03;M_hnyy+WuVt{zPTMpj%xsW8TgHg<*?qe4nYCF1rLm?H9PH}^yCAymqd;p zz=jRQW}`0a4?9>_Y{X!jf0B7C{9=^T5