From c5865ef8894b7d1e57bd99cb4fb7c3c7135543ee Mon Sep 17 00:00:00 2001 From: Thuan Bui Date: Thu, 5 Oct 2017 10:05:14 +0700 Subject: [PATCH] Init --- .editorconfig | 25 + .gitignore | 3 + CHANGELOG.md | 33 + README.md | 177 + archive-portfolio.php | 95 + assets/images/favicon.png | Bin 0 -> 2702 bytes assets/images/hero.jpg | Bin 0 -> 238062 bytes assets/images/layout.gif | Bin 0 -> 580 bytes assets/images/logo.svg | 31 + assets/images/transparency-grid.png | Bin 0 -> 1544 bytes assets/scripts/business-pro.js | 79 + assets/scripts/customize.js | 267 + assets/scripts/isotope-init.js | 43 + assets/scripts/isotope.pkgd.js | 3523 +++++++ assets/scripts/menus.js | 419 + assets/scripts/min/business-pro.min.js | 1 + assets/scripts/min/customize.min.js | 1 + assets/scripts/min/isotope-init.min.js | 1 + assets/scripts/min/isotope.pkgd.min.js | 1 + assets/scripts/min/menus.min.js | 1 + assets/styles/_common.scss | 158 + assets/styles/_content.scss | 257 + assets/styles/_defaults.scss | 354 + assets/styles/_footer.scss | 271 + assets/styles/_header.scss | 190 + assets/styles/_home.scss | 469 + assets/styles/_inner.scss | 278 + assets/styles/_layout.scss | 188 + assets/styles/_menus.scss | 337 + assets/styles/_plugins.scss | 158 + assets/styles/_print.scss | 120 + assets/styles/_reset.scss | 578 ++ assets/styles/_sidebars.scss | 74 + assets/styles/_utilities.scss | 143 + assets/styles/min/customize.min.css | 1 + assets/styles/min/style.min.css | 2 + assets/styles/min/style.min.css.map | 1 + assets/styles/min/woocommerce.min.css | 1 + assets/styles/style.scss | 90 + assets/styles/woocommerce.scss | 964 ++ front-page.php | 116 + functions.php | 335 + gulpfile.js | 382 + includes/customize.php | 297 + includes/defaults.php | 211 + includes/helpers.php | 585 ++ includes/plugins.php | 3892 +++++++ languages/business-pro.pot | 482 + package-lock.json | 7659 ++++++++++++++ package.json | 51 + sample.xml | 12481 +++++++++++++++++++++++ screenshot.png | Bin 0 -> 297222 bytes style.css | 3386 ++++++ templates/page-builder.php | 60 + templates/page-landing.php | 77 + templates/page-masonry.php | 103 + templates/page-service.php | 62 + widgets.wie | 1 + 58 files changed, 39514 insertions(+) create mode 100644 .editorconfig create mode 100644 .gitignore create mode 100644 CHANGELOG.md create mode 100644 README.md create mode 100644 archive-portfolio.php create mode 100644 assets/images/favicon.png create mode 100644 assets/images/hero.jpg create mode 100644 assets/images/layout.gif create mode 100644 assets/images/logo.svg create mode 100644 assets/images/transparency-grid.png create mode 100644 assets/scripts/business-pro.js create mode 100644 assets/scripts/customize.js create mode 100644 assets/scripts/isotope-init.js create mode 100644 assets/scripts/isotope.pkgd.js create mode 100644 assets/scripts/menus.js create mode 100644 assets/scripts/min/business-pro.min.js create mode 100644 assets/scripts/min/customize.min.js create mode 100644 assets/scripts/min/isotope-init.min.js create mode 100644 assets/scripts/min/isotope.pkgd.min.js create mode 100644 assets/scripts/min/menus.min.js create mode 100644 assets/styles/_common.scss create mode 100644 assets/styles/_content.scss create mode 100644 assets/styles/_defaults.scss create mode 100644 assets/styles/_footer.scss create mode 100644 assets/styles/_header.scss create mode 100644 assets/styles/_home.scss create mode 100644 assets/styles/_inner.scss create mode 100644 assets/styles/_layout.scss create mode 100644 assets/styles/_menus.scss create mode 100644 assets/styles/_plugins.scss create mode 100644 assets/styles/_print.scss create mode 100644 assets/styles/_reset.scss create mode 100644 assets/styles/_sidebars.scss create mode 100644 assets/styles/_utilities.scss create mode 100644 assets/styles/min/customize.min.css create mode 100644 assets/styles/min/style.min.css create mode 100644 assets/styles/min/style.min.css.map create mode 100644 assets/styles/min/woocommerce.min.css create mode 100644 assets/styles/style.scss create mode 100644 assets/styles/woocommerce.scss create mode 100644 front-page.php create mode 100644 functions.php create mode 100644 gulpfile.js create mode 100644 includes/customize.php create mode 100644 includes/defaults.php create mode 100644 includes/helpers.php create mode 100644 includes/plugins.php create mode 100644 languages/business-pro.pot create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 sample.xml create mode 100644 screenshot.png create mode 100644 style.css create mode 100644 templates/page-builder.php create mode 100644 templates/page-landing.php create mode 100644 templates/page-masonry.php create mode 100644 templates/page-service.php create mode 100644 widgets.wie diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..626ddc8 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,25 @@ +# This file is for unifying the coding style for different editors and IDEs +# editorconfig.org + +# WordPress Coding Standards +# http://make.wordpress.org/core/handbook/coding-standards/ + +root = true + +[*] +charset = utf-8 +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true +indent_style = tab +indent_size = 4 + +[{.*rc,*.json,*.yml}] +indent_style = space +indent_size = 2 + +[*.txt] +end_of_line = crlf + +[*.md] +trim_trailing_whitespace = false diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3b651c1 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +# Ignore node_modules. +node_modules/ +.idea/ diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..9496059 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,33 @@ +# Business Pro Theme Changelog + +## [1.0.0] - 2017-09-18 +* Packaged for release +* Refactored hero section +* Added icon widget + +## [0.2.0] - 2017-09-07 +* Update coding standards +* Update and restructure helper functions +* Update and simplify hero functions +* Update coding standards +* Fix front page video toggle being added to other widget areas +* Fix front page avoid hijacking Genesis flow +* Fix some CSS bugs found by users + +## [0.1.2] - 2017-02-28 +* Fix pagination on masonry pages +* Fix masonry template condition check +* Fix smooth scrolling on product pages +* Fix WooCommerce if shop set to display categories +* Fix escaped HTML tag output in category subtitles + +## [0.1.1] - 2017-08-26 +* Fix sub pixel line in Before Footer +* Fix recommended logo size +* Fix front-page-2 paragraph margin +* Fix show/hide widget toggle +* Fix simple social icons error +* Fix WooCommerce check + +## [0.1.0] - 2017-08-16 +* Initial release diff --git a/README.md b/README.md new file mode 100644 index 0000000..bb8fa96 --- /dev/null +++ b/README.md @@ -0,0 +1,177 @@ +# Business Pro Theme + +A robust and flexible WordPress theme for businesses of any kind. Demo - [https://demo.seothemes.com/business-pro](https://demo.seothemes.com/business-pro) + + +## Features + +- Custom Colors + + Business Pro provides custom color settings with transparency/opacity options giving you even more control over your theme's colors + +- Hero Image or Video + + Upload your own video or a YouTube URL for the background. Each page can also have it's own hero image by simply setting a featured image + +- Widget Columns + + Create your own front page layouts with easy to use widget column classes + +- Beyond Optimized + + Extensive schema microdata implementation to ensure search engines understand your content and business + +- Lightbox Gallery + + Show of your work with the built in responsive lightbox gallery shortcode + +- WooCommerce + + Fully integrated with the world's most popular WordPress eCommerce plugin WooCommerce + +- Masonry Grid + + Business Pro includes a masonry portfolio and blog that looks great and works at all screen sizes + +- Testimonials + + Display your best customer reviews with the easy to use, search engine optimized Genesis Testimonial plugin + +- Google Fonts + + This theme uses minimal, super fast loading and great looking Google Fonts for the fastest performance + +- Fully Responsive + + Needless to say that this theme looks great and works at any screen size on any device + +- Fixed Header + + Enable a fixed header easily by adding one line of code to your theme + +- Templates & Layouts + + Custom page templates and layouts provide plenty of options for displaying your content + + +## Recommendations + +* PHP > 7.0 +* WordPress > 4.8.1 +* Genesis Framework > 2.4 +* Node.js > 6.9 +* Gulp.js > 3.9 + + +## Installation + +1. Upload and install Genesis +2. Upload, install and activate Business Pro +3. Install and activate recommended plugins +4. *Important* Delete unwanted existing posts, pages, comments & widgets +5. Import sample.xml from Tools > Import +6. Import widgets.wie from Tools > Widget Importer & Exporter + + +## Customization + +1. Go to Appearance > Customize > Site Identity to upload a logo +2. Go to Appearamce > Customize > Header Media to upload hero image or video +3. Go to Appearance > Customize > Menus to create menus +4. Go to Appearance > Customize > Static Front Page and configure to your liking +5. Go to Appearance > Customize > Site Layout and configure to your liking +6. Go to Genesis > Theme Settings to enable Breadcrumbs on pages + + +## Widget Areas + +* Header right +* Primary sidebar +* Before footer +* Front page +* Footer + + +## Structure + +```shell +theme/ +├── assets/ +│ ├── images/ +│ ├── scripts/ +│ └── styles/ +├── includes/ +│ ├── customize.php +│ ├── defaults.php +│ ├── helpers.php +│ ├── hero.php +│ └── plugins.php +├── languages/ +│ └── business-pro.pot +├── templates/ +│ ├── page-builder.php +│ ├── page-landing.php +│ ├── page-masonry.php +│ └── page-service.php +├── .editorconfig +├── .gitignore +├── archive-portfolio.php +├── CHANGELOG.md +├── front-page.php +├── functions.php +├── gulpfile.js +├── package.json +├── README.md +├── sample.xml +├── screenshot.png +├── style.css +└── widgets.wie +``` + + +## Development + +Business Pro uses [Gulp](http://gulpjs.com/) as a build tool and [npm](https://www.npmjs.com/) to manage front-end packages. + +### Install dependencies + +From the command line on your host machine, navigate to the theme directory then run `npm install`: + +```shell +# @ themes/your-theme-name/ +$ npm install +``` + +You now have all the necessary dependencies to run the build process. + +### Build commands + +* `gulp styles` — Compile, autoprefix and minify Sass files. +* `gulp scripts` — Minify javascript files. +* `gulp images` — Compress and optimize images. +* `gulp watch` — Compile assets when file changes are made, start BrowserSync +* `gulp` — Default task - runs all of the above tasks. + + +#### Additional commands + +* `gulp i18n` — Scan the theme and create `languages.pot` POT file. +* `gulp zip` — Package theme into zip file for distribution, ignoring `node_modules`. + + +### Using BrowserSync + +To use BrowserSync you need to update the proxy URL in `gulpfile.js` to reflect your local development hostname. If you are using a self-signed SSL certificate on your localhost, keep the BrowserSync settings the same, just change the URL. If not using an SSL, remove the default settings and use the commented-out settings from line 313 - 315. + +If your local development URL is `my-site.dev`, update the file to read: + +```javascript +... + proxy: 'my-site.dev', +... +``` + + +## Support + +Please visit https://seothemes.com/support/ for theme support. diff --git a/archive-portfolio.php b/archive-portfolio.php new file mode 100644 index 0000000..75827c5 --- /dev/null +++ b/archive-portfolio.php @@ -0,0 +1,95 @@ + + +
+ +
+
+ + + name ); ?> + +
+
+ + + +
+ + +
+ +D3^N8ZLt-%GPK--4<30u@Tc<>#9i>DY zrFMx;(OlMABVkl7q1sZ^A-5EYah7xb*!!G+&U)7RzW4jy_gnAnx1M#{gY2xNuuTDh zKq$Eoa1?m9TYuzb;jz3aYYKsoMR<^CPR>k{X9(aP1$u@7L>B1E0o|j3wY4?RP{1Ps zaAkuuy2vF3B%T1tF#tIRBu4{ou^=r#L}Y`m$)HCB=pG5KuC9561EeHaSS6%Eu=pLSsQ%fdXnQ=n)DShYP=dUtRe6{YVt(9S)My zAg5fhQ##-l2RY@4NpT=07`_2Q3cQ58{6z4MTg>{K;Rq=~ARz|hlxS4@rvJ%a&K=2LvOm=XxUbwkh|tJ3%$vCz`;ijFrw^3>DIbuaTTzX)P=SS13L zwL|UV_awUL)6C-h!g3@3?VGoA10&OpbfJ5Y$es;~dq3=AiV%?k=gjrgJR;V!fIX7p zAUH>=AK=0Uy?ll6rV9(g=R!0;zkB*S%sNKA;pf#A9klOX4Gv3n@wnE+B4ASq6a z@!_vqCP6OAkZTg894a70fmR_RG7GW@6#A!hv7agrRa{f-psdbjX;BN_hgIk)Pk+RIqrdcJR{5UUps{`>{|eQXmq6|JMJt>cJ(H zmiE-X#Kj~e%=Ena@`^q4YDHKr{Z5otORGhH8UBydQ&G_~Ff&s-Gb1(ryJ}Tf^%jBH z803Ppr*VcZl(1<N5GsE%B&-Q%-3(@I@=q~M&j9C8Cj4vDeH#=DQa#aA{r-I{D( z?9aY8-D~|U(rf)!u%CC=>jhFE%FD7zU7FW6x-#DE+_#TRJ&jSqeMI&+a^mQt$Y;F0HJqALY(MFM&FtLOYkAILdG#0iS0C-y*49oBsFaJ& zTlmp?svNSgc#RZf+OVyyrt_&URFPcWYZiX}m9ko=|qT%id>QZOOL#z!iAwZ*Ab9V;d<9F^?2fi~?8}B|gnW!;h&2RYm^LPZ}9SpD?7I-h}CKrh&KNh%#J1q>a5-qlN@%-{9;@b~k3n%rG>;*;cE zE;pj*>zH3K=YWOvLP6AJPWp zsNING#At&@$hFg=eK+Lg?a?YMldz}dM~TE_ZaqH%zh%}|a_L_&?E8|)Y_S=3yBM9hAJk}09PFsg9bEqOAbh36ns_@LbneKLn zCyt!+Xw(%o%)aGcRz(f;G?RjR7tYEoQe^B2qe2roV%Wmt@k=cT`^Kf8%%zQL@q^W0~j3psV&+`!=Fn2(9U=!lW@ zeYz|4y(_nS(>CRV{TgN&nK%!0hDg?`ZOKxrjlT37Zsu%T*w6?0rA?(m)@`k@ucr(&6X0NFnEH~0r9OM7l zr~kuUg^?)*L{R>_hK-M9Ts3yGsn5MmOgt!Og?!qDYvilRJBZ#EQ|O7QgoLL4s4DJ)+ydW_D^u}Q4n;1NJ202Q3a@7~)l4=%!VJ+KnCJSPH!iTY z97Qmitc_&n7E-EYm66iUnocvr5rzb-Xk@T_NU|A)U6t@hE9)lTaF@C!+h%w*o7I)0 zj=LN{nict49jidz@O(BnXpUc@vKwW^#R4|6eW$=WTWk6}Cd_s)wf+5L=cNQAOl<2A zrxCw^7Z==VQ9gxMItllteMzmi5F4alTBEz|FuwT8B=F7VxV{;P6{hOdJ<;rkEO?-1 zN!HN0#gkpfx4)*pKQrXbkhF5|P`XF$vpy^<=p1^zKX|2?xe%ORreb}Nk~e5+n&PUM uvUS7w2JO<8vFl>7GMi+LE)GBVZS6&?Zgi>LbP@bhMYuSTakm{9yng{70ApJK literal 0 HcmV?d00001 diff --git a/assets/images/hero.jpg b/assets/images/hero.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3edde31a7546c58698b81e36d409ecfbab543f9f GIT binary patch literal 238062 zcmZ5{2|SeR+y6adOk)}vYh$T1!`P)6F`A?^jU^){yJTsy6ha|7w45Ov%MfOgY$to! zLQ!ZLVzOi>gjQ>)Q&gu;=bZnobAG?~egBuwr=I72p5c34_qE^G{5}5n3xKz_WLW|P z0ssX30e??|IDp@{aU*Uc9*4tk-Xytcv$7l>FQ@#&=5_jE>t-cLo40ONQ`b~i+q!-G zjvd>#GyX3jq&IDnmX(&5k&%~^hCfPj3JP*c8cIqkN=h0OwXKlUD7yNZnwt8$Mn)8h zkr9LO}FZ_u}R65yoiM;uFTX z$pmf+UT77cn2G0?vK_2#uE_@43HILJ?4lR>c{?vH(p`>PU4GW7-8x<}dSEG<*2q*wSL^3cooPFxiHU2C!+Myk5CR7v|p@7h; z>)6}ci5=z1sHzGBFk6h$CTKgyJT~g3le5JmK0H7Fd-v{~bhkP~W|;Wn-@I;L!vOFG z1Jc_`I7G6(?~XQ#atPbD>oGwDq{;2st&@%*HA2Z3tH4Ud@s)!(07%5jF)0`9(XEn1 z0tJDubxxQBpjbDrP|}zu<8P}W1V}Yi3aXWh#A^r<8bD`ihMbuebnEE!Q%0s$hKCw? z*~Ox8XKSi?9v5GzO~LaK7F+{Bjn%2+rJfxf8{2$9oitG^t{|NI=||^Le*lchVu)0( zh}uX=^S7+!rw;Rjd+WG3RV#0X)}&t$r>LYgE|*Uj2N0aP90`Lm_vheHVjMb7M~U4d zMC;saWL8Jx0SQO~AXLqk1UNiK&3vAC1S8b+2I6vhUv}8H+`=T1VpH|UI7lmh84l>2 zs~38+ZmBB_7)b!Cbj2ss@z?i1zMg*pZaV_RzRNG~9d-ghEQk@L?1QHA(#QAdsU31L znCNYsC3k}s7tN8 zK$uik#MPz-Vi&UxO@`&NfDE6|N+G-&4kEWULX^nFIIRw=L<~BcbRmQ>jw1{ckTsRZ zQ$JCFytAaEOD_f_j@V5NBhrW%JVoBv5Tr{I5u{rbIX|LZzh$7#?FUqR5W+I~c;)#r zbv!8FxNs{${)rnlq@LI&-+HYpi)9{rDdMrb`wTX@ss8Qp9Utt(n;rdwEj^xZT>M%E zfMlmlP*9LES~R% zG|6HRI*KAqaQDDabmiVO#v{1G5+LLI#E5|;Y5sboCk=$N5l zMZ8^kr5>xgeh{kC&k!vQU+Svv@_FB?BQJTOSKs`kR{EqJ6sO4_IC5Z>F37jG7k zF4^z-IeBgRs2C6nBTRC}MIsuFI+lsAW;L~?LJm$DxAC&()d*W+uY%a4uVQ@`;eiKy_(iG^JGF2rdG=!}5n&gOQ6LR&h7N%NN z#S>8$v>}50t(i9|x#nue6EV7x4(uQn)fIbnR-=43MR243h_m=pH4nwjepgBAhKY@g z%$}iol^pJdqe5Vp(f3|Z&Q?m;ASfa-`3a}{t~+o+3lEDN}bSNgs6}tLLy!| z3{eY>Yh92?N*xzq<^4H;FUtXd%fY|yT06nP^dvjprcH7=s(SKKvqcO;GQikcHtcT> z7gzD<&3%{5ay5xTmNei{yGR~Y*0uGVL$AHu^#nH`TE|tVlLzG_ShZG3M-GMNwe#hU z=NHK&J2#&U7(Bo0lPK-hhgAoT2@S*=x#^#dU;Fb27d#B~32vmO-qzIAm<&;Ae(7Rd zwrCw9noeB;crw$UiT_2>N|^)wy$~uX;Mzc>(8#$6rxE}t9@i$C=KwEzn%^^&=le*m z6J)YkwJb_RGl@#|284>w1UeTmm496AoceWvfjF9HM~lS-JW8q2JaP+Nre{o{s0rQhwj=HsRw#5C%7OJLCrQQ0>$UmAK;-79ks){JXC;|R&xhcE7(@b~dSOAD3-Wl!k*yz09UBB%+%*sfy*Fp;%UEyI(cOG5%1mgL?fZj5D%More)?IB#Sm>2WB<3Xwtg6m)66UxJ^|s(`Owpz_0&iS7c1%4 zc?KU;yKM#J!b|l&d-2m%WztpeOcI!r$^b9#X#A^f4Ow_S-OM~&JdGL`oQ=JI?vSB% z?}sD5N;+E_JkZY%yWsB|&}gpHd|S_O@%}z);CLn0o@!&8xXl|N5% z$FZC2=7}7i-?rv9;({+oiXm+qXEilwR4yv&WX&C&w}KP*yQtlhT!5#>fs_gCJYd;{IJ`@K%&aMAMV6t(w~tTH+tD{6-|c`fGi_|}xOB2$ zqE1v2V~EY`*pW?Sr6~MvSus-O&)2LF`W*bWp>*YfkIx3*sgik3BJ|A&E`Dwdd)3)* z_OhGCRMjmgS`G%e4qB^oUDk0Dcn9lkTqLsj=!d|%4qL&|VS?6^d1Ec-ko2cVijQUi z#V=z_h29Igk3y0P3-2(WT&*fw{&E7Qq98uxi7@rlSj_-1^G8XHCUnKE1*hX5<)Fy3 z#~UQlyGqTN6{-5xe`sIjkxY)_MQd1U;>yr6vV;iI&a!bbls9H+=&zv38*_O#U++wOvq1B zpeXw(8Y$xtz-_k(F0g4fItcbD91nD1n_;6qOkA~1R5LKjVoo&#G&*;sCf{+>C|1W# zHZp)jhIfpni>G|yn`w>2BNaU!n9NMOz~*4X#i)9z6(ySqnfUPffdKLgOLEO6p@>;R zbn>;5F@G&%Y5SWwiQXt_s*uWiwE8z-O`&PRV^)b>G}`!hD;Mm$f_)QLYOD+E!`=xF z4oVtn!xP9?SrIFWXp3AaVoW+ukdUKV(vCl+JwC!^)2CNrlsipdr84Gr6yS8d6Z87fZEqeo zv}Vvz+v0_x7hO_gZ=JEHRCp~wOSn}K!q;x?t$i5#$Bu=1s*<#UcU(cVzUxT6^&g{$ zVzK0M8b%4h#Q=;<5K5=mHj}qJt)VqnYHGxAL{P;Bj~A7z_SpPBz(*jJRSOmU3%G)r zioQ&-J?3!&mdHRM_+fHr`nbhnT@!*o|JTJkF!$6P2980TNx;GFJ-kPL%st)x)ZChdf@7_J@z>dwW2JYpI(h%V|R4($=tN4hH>+W>j!pMkoANZ(JOdrGYnq`kVZtB^?Ixs-A0T`}?r9rM0 z>7tXK{iCwT*Y}4gx|eP$#a)r6Nm-!=N>ry6o4!VC9qH{oXD}j7z;I|pj?VQ%n&em2 z3^6=JZ?;#$%1)3i?lSGG>5!Iy$f{KLYzn>*%w(!IENEBQ)VJ}7>6X$e7QWqDj?eu* zsMB?Bc7UVvlCA;rLEclLYa%f-?C_{hn3!h&z0E)QD08;p6*Z{5_3px(huEc*E%p3c zms}>vGeWztfSs+D69@7|1-Hk<6-af`h^{t@$^bP9=@5dCD<`6WNK#6T0g5#hb(Ygh zOT*cMfjxe-*-2x(vbQ`|HyL0gYR zSC>`?X7p-VV~?Izn}oQ1$`NgY=9i}Y`(}bsCv(P8(Y|daR+T;yJAK}ymJxkP+gyx^ z2H!ppo=%`PA_fsKu@Zq+uK2+to)K-MXVgodti>_IeEsveNaso2sK4ARkH6`(_d#F? zR*7*qGg)tMf8KGI#u0KWSB%AljR*tP$t_R3dj^}Z9-TU;>k?sah(nefvsqD73Td)p zAXQm+@D)#F;v@USl9huy-sDzpJDSgto=-8ztEuN$62-q_D}pBscve>0RgH`p=~zSd z7u2ED0N^LGYYulQy#oug} zF31(EcuTOj0Eu7j?Uo*ei4_KsB<zBS(8mCUFH~1E(!%G{i7r zGMGmY5+q{S1Xm|N?QX|#y}ax)ARa7Hs1yy24^eA62oKSuYx=sK~4-uqRx;! z=U1?4 zAJb-kzBSLYtkD8{8bPN3-0$fm;-xAe=NQRq9%2v;!u5K!)v+HBP9NP?r?QNf$&H*K z)joP*y5ST-B-~Z399(w+sx-m{GX~K%buptgX|QR7gAJ1OcprfQ${_*Bptr1UY7z7dGpU;hyH2 zX*QH`mAYP-{P_eI1eP_rBx{2J0Lc4ik9eq*YTLl#OBpU8FoE4sBYT5K^0>iWM3`Fv zK!iu`Z})-WWWwl7I^ZIT^wfV9$Gd(abLDAu6oAJ7lm_6U z>t;u*lXS{`xmExj*T%vCf!-+6Eqt^rQ2Ssjke|!XlEIA0l}Dsoo5_%c2m|f7c=-*+ z8W<(UsGE=O#{iDrct!F##WM8n*ZwS;(3@cxlc)@HZ;ngo-JYiMRI83$DgGRD3qYI~E%rH4h0UUBHwHQ6+iVNPozld||nNPF6q)l7N z5ESq3JAD_v@#{$+*ye-%9b^?gj-;unt0%}md2>JDl>j1R;{VQEy$kC)GR+nbAQqNRMaMK0aZ&e2z$>Zrw7tfFPm-msvB*Xd6>9 z#+0k-=caR8F$llk^6xLfuFvUVWsYz?OT*SO@hSYU#;^>}EZbVybRt7ct5x~t0nZPZ zR70JrZ0Tf`DLbKR!c$aCEiAExcr9zjMt#lZB?PJ7Ep)oh)5&1vh*ODdA`&l2OOT+G z3r`XW7$jxGp&`o+CGxq)iq9Q<)MfS zgF5L3*p}iBP<3X>k^rfMPXgRH_%fqd16=FJtm&f?2HE~Av`fxp%N=q0nG7u1d(K82 z&+Qz(i|0rV9egl+J=_R+Wh#O>Rf!WBAqiYnUofuCqyLc!TcPS9l{{a zIK?d3d81qu{Q|XU$#?3uVVt2N1bG*N+!}|5`Qvwx1ZI;pQ?T6VP#eq@B9J!9ak_aW zP|^n89D%YdG<7aIE{55Kge7}1iECzLH(ewNIy~ir8?hvr#DhvRnW`v$paP48@*Oyc z*+6I%5@NT-M|5}H%I2%ifCQ%x+aepW^w77>k9QAprCi*I1O%E2jZ_J*fr=rsm#RFL zWYsb3(yrbh1IwO9R@0h~r;)HB`Qqm3capW74MhM}7Lep$#E~{=8%6NLB8@bJu%(LI za;nnjBoXNLS1^!?mOFxhg$2zjK$DPI?34q5Ofs8cbwOi^p&_j?E60ud;C{Ab#D0SY z@nkqmopae#7kihecj-7}6Rq-b!?+lO%aK&QF1j4dNA7HDi3n)zBY;^Gvf(&ZO&M^& zkTuob-dRMdKVr%Otm~{A z-#csV@20)ZI|V)yT00ggneKBTlLVJQn4D8(6c#F#`cETbM78fRXq&-`67fubfYQ5+QgtU;cc=_CT&Ws# z^7BC(Bxr@k3aH}^wX(49fgl3VPv`DdSrbar z$3>t+p$n=fF7Mg>7P17&JvU5eeyokBzPLRhM5eOTCr+RL)8fMEnWAE+y>q{9xoA$K zfvxEfG9-iKf)j z2q5la#7>Zii)sn7vtIUC6UqvfIYOlrUzmh$M0<%+$dwmD$W^%~^mm{2+q}5untMUE zm_(;Ny?skMnTtML@W~WEJ`SQ8-$4U$73rGhp+S0|Ltu{t4OrBXZYA&FH~v1u^Euyy z#9QEeR5AVtt^{Q0nx2dQEoV21YWAzA1T9wM5FQ6)f(V&mCD}-2?CQi-psF`_rg4;% zsl@6OFX*vLZ0l^JjSKO>&dBS^&L)I;XUWRLJ_1tHL>ZvXePHH9>bvOmr9s9P7Z&`Y zJfoNA_r`E6mz$Q;FG(}jaG&sX@{XDN^4w=2HI=&odfo3tN{}D3&Prm3@dafwup>?p zGv&-4VcI98GGO-@h1tTk;vji?N+@-lYmc>apAAbU)Q5qUa*%;u=UBZ{HIsEa_O!gt zP4{!XqiHLTS$&jv!?7Eldles_MB45gHbIjz(BnBa{=rluH-FHvzZSYW3E6s)5RpNE zr=#*`dzx>v3Mq=(w5E&wJ`nS*hueSMXA|3KP22f^*yX#0z4QdC|AnL|m#%XWX{3r|;QIWjI&@J_TCCmZ=*|3Mev~ zCS)9vrH?-S$gvXy>Ys(+y?3vs7UXiSyF8+KLM1Y(mQX2_sC0vgF9V*@I05>UTF2v zQk73gAF;GSNgNz;Oo`Db}u^$wsDRU?!X=78@tp z)1Ph$v9U?D7nG~z_d_}7XQDwTEY(3gf0Mg&bs;gh+d*e;JM~c9pGTWNL=By@UUlQtDfz|bF1m4$nlVfX5l*FwIDfn3z;J&=i9{^|6UrfS zGOeMCfLKAg{EIXCX28Co?aDQ`wCc@|2|Mpxmt>7G(~>UWDTrF=m?aXCl#S^I^moa1 z^ZK})Z6rB*C(iPEgWOJ0wS&iB(di_J7{UFHIPqog_^<{NggEm1`yUBodH0TXe~9Wh z&1R6SL;Bj|39Y30FYjCjYkj$5L;s3d>t&p7NnFIVPo%N0(<~7HG1I>5kCiYb>OL_V z6p$L8j&Z6S=ORE11)$`cz`osjLlRfbr;ZCej^|A|CA1m38*1a@6kr$rf*l{m?qp88 zWrH?}PFKa%XzD?tG~GNDxxC-to=BPLTxq=Yo&tl+okhPr^Ttk!b|x9Xf2^K6i}58htjo0qG2Tf)aB+dYM0GJ?7E7=d;AtHwIb_|ohE_Tp34X@ zfe+|1+{@zG$oT>aI^9@qn1Qq90$N(5*ILP|-&QLZVD`D;d!&ZIFfVvIYzIN9FGR|Pn&8N{ zwnYvKoab$wDNmeMrDX zq>^z=6>r$>f>|l4V6!Jt)dnDV3~(X8Hw+)^!sbwdE+`X_NW&wO1KEH^?F)Jh_uu~4 z8y4ly0YidHmDFe_!jpX#)*yIiBaoC3c{8{+4)(c(m{c-MkYNa_xQi&1u5q+Y zf^7-f00yD*Has2B*$gnNCCLTI1dn^B;dq(!aW;E*;_u2vclyWPmTO+#wm?T|YL|TK zk0|u8JND(d>yVf-_@Nj=StqpwN{y65xTZGUV;tTh2)4D}s(fghuy%v;1vWs20gxCv zh(iVATP>JP2St1i44?RPDn3k6gUcbu;E-yFM88NPzSCKG%9;JCmBvLflL&6axp`Zz zh6qSGCc;!Z^{0h5i|LtyWkeHexcA|!)DI4ylqxfOXP(#nZhY$eX7d)1jAxlr4z?oMDC#AYcU!3nDz10W>fu)HZ;y)MvqRj>Gk~ z@>Y`&T^AWNBwo?R;xiOR#?vLQdNVL8s;no)e()TM5**7^I%`Z55?TTBB!|>UNj+FN zoEJxT3-=e~c3qB{Q*XNdhvYy9L>F1RLHnY!>yp4u?Z^II1*sPZ|J_<-npWE#6Y-#V zO>JA~NFX5+5fl!IyDm7qg-r?vi6EN6RZv0#j?Tkz{?Wcbf|fAlbUYlLWM%KbkvJ%X z84(_`0`Mq-R^#ARdp*uLCb2at`&8Nb)C+EbLkS7P45qHB6IH4kO8Cug3-70n8)Lm5 zp8M%rZc8NvyQunw;ktsPEw8;G<6JY9hbZ*x5Qh^GIWiH^Xme78Lcge!LOy zF|0lWRLW)t1T%6j;y>(JiiV>D|FvMbP?0MFz5CYb zI=joqY)WQUk1dU5DK$BFfq9?m>5Dl-jn6!8J$iil&m9CDSmUh2fyLC$*Gk3OtZoNE zZe8vA0;)Ap#!A5DtX~uDgDD6k$5lI4&T^cn_Tuc*#yKw3G7YjsVP+7l#l#3Q_dPFq z4Uok4@5xH1VPpuXBQzXR-wI9fIU>!yXp&;H(jctvdGzj+Vx04zS(tF%hL6lNGrT~DU4%yI?PY%NsD`U*Dp7`j@{sAa-^6J6MbDq zwwG6fhwfeuAFf4kxBl1OmEt301+&`LY{#(gNHtooq7v4$eyG%e%;L;8ZcLqj3=YEiDBJqDlHZFoow-O969 zR(+oTi;IhgcfaG!N5?3=9N1LRS@dUexc+9)cS=&=lo^AHm2IS_)+KEwjG3>bUhXg^lu^?v zOEIYAONsHz2p(+W%JA;4?aHiQl{Bop8}h*Iaq{t=&^^Dr@%y#&_p`G(w69)|kk~_V z4rcX}RXzQw)62hKxY7J%YSm|Ptl&_TqE_XuMgP3X$nXyz>t5D>Q}FlNe|s?-2>)xB zg&EAM8@Ba=yppN$@AzSmV%2iiIRO&P`cJS5*B)<2`AEo5`p1$3QADWzGk^%^Q4m}M z?F=Wkpt)g$w49UHm=6odD}nPEF=BWCu6Q~x49$QHk8kVXUrV0a{8R7w+m{hHwsm~n zRCy|DlkBA)c0X(Kg-hvGo*jKMxGCy=OUnV%1K+{FUNkcqee~$E`9}5N>h8XCd&)09 zd|)YY{9?w+*Q0zd#Nx!lAJ5$Tq5~G}lO?PtgM0c?|9txG zw&s(_(^JN~zw9y^-llTaqc1)qPP1roxv}Nz?zg^|cMoqOJzayD?SIYIuCoxkamG3< zjGw2u?z54G?i7S{Y%_xj8{#v_ay zc9?hhl^fp42|wpA{~s%`>miJJl);cqxAx^iwBUwOR_9)&CrM%m3XpRW0#3}{$8Z^i zw3Z5vk@D(+Q=J+>I)#BC)p5n}tx0q(*Mg;TdfXALCMAA!HY0*Z%1Jpb*Jh)i!@y)R zglG$k#%b=LY`8|e!;lvWsux>Wo0C-vq^D|jBQY->135QCxJ<0OEM&>9a3Vs+)Aj70H1LJ0p9OhoL z1Mpoyl`<#-rk=mGwS-mF9wE`qM_L{MoSs zp9WAipC&%Z6$0#6_nc)AP;dlAJSvjI~P7+Cn`gbs5n(6ikZx+8maDL;Y0C z-8~QdI=N$)Uj6Ym@YFf`>o216a@P~1U!D#R70cyb;@78zwcPlba!x;A(6(aq`ni+* z)Y%;qi!dBHg+~N?Yk#S^!4@L8|08ujjD=;F?l$OtU`7cENfBsjtPfSeaEfCAI-y9h{x2brfPIp@+ zt^4Zo%&O+km3#npgg1Q0{J`daW5#vkBic;?+fBEi~_8h&-x7>4B+s9+#Sq8IBi#bZG|}*tT7ZC>c<|eg%tu>$a&n|+2`U$ zk>Mc~Y|LXE+WA(QGWkhb*1qQaW>wz|4cbUx-jIhv6|v7KvYHmED5R_>uM^Im_pKamFT|h zpFuXzhnoNg^p42Qly$K>xSC2YPsK^-_(6G)iJ2(@JVNKFiMw}y+DbU@C;3x7dRbQU zm;T!9dTXY`X!fW3^J5je-z7crxV5zMwa?Xb8#0;IG_i}K@TplTsP$rLzO{?>E;Xf> zq8Ag#?oNrJH=^B}B~@?aOfF>0=4I~~`WL&-0`G`NiS`6->R&~N{+lbI4K)U#vHprQ z#BCSG;U+0D7{AC3g`w9M2NI}~F*+aI&g5y`pSbGHri6RT1;!t`kqozq3(%A!60An8 zk*d0V{j-zWQw!Rc3e*nVnj`P)4n6niTI%i-@@eJehr^$QeHkfHG8D+#?rr$OUe#Eym=_-OtL{=)r&4A9fH;@U za5;}79{D$UmPi|hc{+(l5G9Ofst9)OJjL!2Y_a|6Pp{!z>2>6{{Z#%2o71iYOg#OV z_bhO`OfoXE4{G?~>&<`tyuI{FW^Fy3a{IFNe9yg~{n0|H$TPcStSaZ~*LaF1WXc-% zADq}`HG&4+ZD*IYf@tnv=s>uB0l!25Gn+C#IsqY1M3}348oda&tCK7ebF|SApHCz|xC`gDY-6|z1TmMnQVfzo2 zPgfo6Kja-aF|mJB$|LhzOACK^oi^H>WFeNH<=E@Gb|!kctNV@LMw!7PYT5k*1@+Gz z7Z^TZ-hSIBvh%82v?VS-Q|Uj7j&L>iA!MF@HlnJ_TKCfH^j#ldWy#g4Gca=X8fPtNtX9bJG&_M_Qu7i{(ZR}v%TAt zP4=|p_FKQVAZq%)nN!*|ea@k$Ysq{5#bkGj%+gm0XVGixXV0qi9%hqu<8(X9d7$`knB4d2Cu>MVWMD#Ofbj0%#Uow45^;p>*(& z1_gyvlw)xVePC{ufw6YXR)@ul1cj-@DC!XB=q#fxnG!rjI03x>LhL)!j?X5qZ$4bz z6aVtYXSv^{4h+7Y-Fg3M|Bg4mru5_-qD7kiY>aY#mCRuG=sxoN)2l33>($3Pzv9%G zL&w)lcQvW7rbj>F2*Mk3?<-#I`ey7iYIs5X!+%*oIAf{EUXD(ZP5Qsc|FK*+B9n{O z-*b>zu~d_2Qa!!+r}zti1cYNXRtQ%K%SiaLn4F~uZVB2dIV>**24QHiG2-53VKw(; zNX~rYYKY5+3$t(MvnB(|DO%}`S*1%`z|@TIt3OkExc=Str*V+L~ljg9ZVFlCfp`* zoJfFuYM3%e;?!JHK;jUAd(ysQB13KCmcTorCyS}|X_uT{B{emQTDcPXKkQj_597Vr zFM7W6TdOn-wa2Hbz2CdlcmH|sXV=HG$BI>tyB;u84|;8`9`rG!K$7rN{-G%6mqyVc z?NMiSYlc^X&3KxcmhP+b)AWk_;XhdSPMfd-AxD#)au7h>rdb74VzxngKyY{)s%tE+V5Y#kQMZJl2Hg!K$r8txtars_B%(0H*D`)FI zp3_)7GV3Vz?421xZ}d6)JTGy0^;-1NkR{*O&kZ;IClbrgs}|AdtR};Q!hf0IeE%P* zwl8mXFjr5lpzBqfroyvl^OlicO~v5DtPtI5^WG{OQ5-7~1j`_p7A-V$0?=9z^5Q@I@Fp#!g_VS*02ZGAO zZ)`F~D|MX;s_7hdNHt%+9&vhM=N-R*8v|dF1bRL;>e=(MY>C|`2iabNjsv~@`_)dn zYHs}>y8t!u@(QAvnVqf2A;9mnuIdn<-c-op?dlP;gK3W}dA8-~6f2 z>_4{}@o+=kGEQczRzUf7%Xa(KfUhj&<|g`P+yBN3@l(?H_F2*e*MHE%iUeRdkPXWk z8qT9C?1n~OXnnROy^S_K{O0Y0fdzPcBaTfV!mr#Jq?eGmKum431{a{p^5!Hm%we$8 zx@E8Ih~{CJYUw*_rxJkSuRr9Ut-4!rQuqC*KRoQMR?i+dJRKJn zrQ-F=xMg!i@{Xuy+hi6#YE_!PugF=dMi&fPeiO|09Q%3X#Qo-`vxBRDp8iP@^~9(w zFZV5W&x!5()lRr>-@5oeu8NV3uoVkovuXda7N{#|Kq`#=MOWOzX6kL)*?7G3ld8P9 zl?UY$gX3>%*C+9~0A``qQXE*0A*GmNrr4#hnKKb?bgChYfZ`GqYkJ)QCykp|stpc% zx}^8&7LJx52~di#wF3A>2QyjBlj^EO_2Afu4xQDuYvq@FLo0@-Z!4UWbiHhNWMfD( z?Qq4nk1rowuN+hyZy(C81w=dawm=aF}2?!RZN@*$i-XR#35 zZUY$DAgL3fvcRUH5`TuUDy~=hOV?D-+M&zLE14!qL8DAXBX8Jp5CE`za1FZ%Nd+|J<2Uzp${J zTpN5TUz}rXLN+FG6J4eCdBvV`j$l5t$!L0_c*|IQbNHZb_yeOS{>ooJ*WGzQ_G;H7r=)4S6!(=9g_Ki1LUmyyw- zcmL8O!1FK>?Zn#o6dQe5DoK+R#HDC)D*ugsw!`7LYC%rEe?3&ZHI!DF?6~xB*fnBbJ(D{+5aErV7^U} zsSybofU56WFnd5Xm7W|JpKS0ZI{EG=ag!B+&*|#P$!wJ45y+nQ9qrZKThA-@816Uz z`tuPEMV6H+`Qh8Vaen46-h#$K@oo1nJ{W}o*Aj2wV7Aku^msWwb{yX{{jct2h?%hpx%B-gL!OQ^o*k};bVc*wUF!4}D!|hsujq}k8 zRQbrsr9B1@r&c~U)%9GdI`?A)*>IXr&>R{(a_KP5bcb<7*!y?s8%m)?tcMkB3L#d} zax%m&?do?HQ9?8*Dx=86@`ICiOG#;juGHT>ncO&fd17tn=cwg=uRo`icg)V7GkD>h zM2u$uJ@>6Aj4to-pcb13x-NY>pJN86BoLQ-R)2d{BvYfkFy_pDeWH5JI97$TI+y?C zRbOd&(dtoVSU-E4TmJ6(W=cwbO2p)i;Tu~fQa{R9<<_n(>5`>uS7zv*p*aRR6v&!zNblIcIa^zyG;{`Bm6 zEdj(t_0fWy9CxjDwJBJCaO9mkajVuoU$Nd|l0N9B8#$R4pOfKf>%3ZPS2I|lv(Gr> zZT#?b!g%kzWA@5L&Fb?v=(AsC)m+Xh2424&@aE$#*HL=vqiR35>lICwdEb^TFFHng zoc$~E(DeJ_tv_AMwGG+wV0$s{;~6QQfp2p`;$B%F!g>uFP_k-DlGsrq{MEA-8ci#?KwE2yKyavuvL78(ExdyEeFJ zdi2i2En!!iZE{0eE$u4kO^xB-=65BQ`YuGDQHshjTv|M(RWR;anUU7Bar>Zcu5r}6 zZ4b5`N(<3@uNzmAckeJf=5`LbK72mMzjEuIpAGW=274ohDG1YDyjDFuxW6-;Pv#<&&Gp`4-X&MuDYJNAf)?G2^^AZ?i?Qx zL)aHIcXexRfd_(xzT+SP?!1B!CFDq0G-4_0l!z~9YhOEks8CgC>-t!;D9mD;-pe;A zcyoINMQiP@$nzgOBq;1DzJ7LxZx2&hLpK*tJn#>SvQHzYauyo0U0kyy+MIo^yMK z&A%Pk`DRsj@d#HTI;3cB+9c#-^dLviu-}<*>RoK*+*eb|@x_^$g-o#_F6r2PMvUvP zoA%q`#2uVm^1L6>*^UBD`afC#Yh}dxmHy^}oBe%C^!NQ5rA2*dEwpCc*IUj-PHge~ zP1bksrM<&0yeF)OzqAzV)X(-fSQG9v5hL#>9nofbhh}Wj?Jd|jtk|9vw6ec=G4hG; zhjTZMJdnp%TJ(iABnH^iixla3Hc|9ZOQ|z@5BFBAM7|qc2pIM&%{%XyZ@(Ck@ag34 z#%I%c&y6gcwMGvy-hSMg^<>xel*PB*?k>Ak-g z|HspN$FtqNf50)?qN=oL%+gX@ZH-;Cc7t#mF>24+Dn_+6YPa@QQbIx$wPF;ls2Q=h znz7Yhb>GjY-{12*=a1x-SN^)rIiK^n&UL*4p(W8$&)m^$(nBWHguv(8GbTvg_njYo!m~IiLjeM>H|p|BIb00>~O{0X_lyxBIAp z`Sl*bHGw%~3AQiDVW1CHR12$BWTWhO#MIG=@m-L9mp(s5Bk4Fm#{d2PeOknV=9lYY zdNDa9GiwVMq7IX<_reBFoV$Htb2*xEAr$2iL1xDCxxdZk8l&x?&FGA@rl?a0YG`YF z9gb2V;g<(Zu$d0`)Cj?Q+5uMo1~8hLx=D8O^Ua)Cu%UPY&4(J;9of%=XXliVjZjus zY|EKsWp4G6-@zZa8~^p2sEx{Qn0W0xP*}H%tRucN*g&_rJC`~QW>_1}(gfN^GNQ3p>^N#`Z?)j$49r-;!Rrzr6I1?ek5!UY44* z(!8@;qCNw)*Tr>=90USJSXQ(#O~4_+uj&I^l^-M})QrKO6a~gTuvz=FiKe)$@A36Tp9mg50ZN=kGih|Evg4X6mB6rVnyNn4c^7YYQm zgFx}Nw9kNorz)d|Ej83HCUezc#TF5$Il17~cib}oO_qK%U@7ai{*3Isc^}vKE4}R1 zup2KF1`%;Qc>3i7sW6&FN_Kp4%Q#JqeJR~spkvCnx{*d~!%IIU3k)t$#Fw7hOqxEf z?{KQZI%e3CJ=-Ps@xxIiQ*BrN?u~7KBQF~DV~!jLjFeH z9EL8;F&u@sZ#b@Oe7J!G-9i5XUF!#SIvF(+sYos@MxdF-(en_6#ux42d@zr6 zxR3^h(i}5aJo55IX=D9|K@7>dO&K8pt435r7|X#j$%#;aBff6kteKCL@V8^4aYJ(I zj3+;J92?Vko(OYU_`W{Xe%Q1{pn6AXv-OhHJGHeFR7#dB?1)Xc=h! zr`N7X4@#Gf0Es#QL_JD7+xCD)XIY_l7$Fkp->?Ca- zSuX1qJ4n9eY-v5qwtz zW_WCN(zH;y56;g)SBVH*FY1-XH;$QlfNPwvapj2x3oWyP&0eck+=WUAZi|h*n(0k~ zzSu*>eBfdu`&iN6n4XOFDj=%_vb}j)0qV<-2WFp zh{*s-$d~)IqGRAFGvzP?yy+91fT|i7&1^f!l~#pEA^ag>X*0yRpvKF{L#QiNvLV!Z z_hhmjgweU+=BC3yLS&)sD@HiB3h@z?Msn`=Q+WrV4iuAcII4qC)H0Zy$rX)?&e>WG zSe@7)=4zzY6UjLw93s+<6Py>)GdqO%d^qKZjS`0 zVjj8Ki2xlDh$IQg;d|1SSnH+jkAj&WuA#qHZo)&b3FjMn3750hyzHAoNGW>iKGc>8 zRqDhh7SyHZj8RtBxTFbpLWJU1v$MDAHy16@QX_OFBUq{K_HWEz3 z!%nx;?>}xHHWz7C02Up<43WdE#8jy0L1F;nA2h57+{q+}Z9||3lSpd)t}iO>^gnJ< zf7~}aI=7mWKjz2N`T2AY_GmQkjLmLxQ_#yeCq$B`VSBo}a`NZ&VCQwj9b#3_#cf?6 zA&$S7eYnyP(0n^R{;QA!vha5PmdoyDkKSC)qamiXD)sFb+-5gO2%+OPoPxED;QTJ( zagfZ<{W_Pei<>179QxpRj^*gG#;Q$v28Hcn*;(D|UOMo{^c6B0&Ie{)$hi+WcWb!) zGrn5~LG+1+9*r;4lqX#VTlG)545+FY8h+ZEa3m>}Y+u+4GnKm&-fjiyKJKl*&=sB< z?&%xh0$?QkW3R-4XY&6aEPh@thOhbZPD8TDeR!F;7SA(Z8&{V*$G@x5*WxS8*s*>m zs@;na1_`E{O!;>RHZ4F9t%jeF`E(My9tUSqhW7&>1$En^4X>rwf1D+!Z6$49d; z^{Q^9EV(p3p-KGvLSPnYtVN(l!{oa-s)5ZjxQqaMj>TaLmNWa2GC=e(LI}=y7&Bax z*5_1lh&!5kdmwsauTXZi^}e>e%+dZqofvRo<98nYUu=Kl`#Wf->gEBQ9r+tua@)VZ z)#3}&k$eShmzVeGcJ83^d%CPX8`f>@I{ZV$;~W`r2ZQKJ=78rkIY>^L*A^h${~=@e zD2P&065Yb(PMKH-4^)rEDCJ&kC3|eQwUaTJ$gl8VekUV|8(?3@k+H(OwP^=@Vfier zyR0%tbpdue6%#cx+{@o|zMws@X2>f=EM!!QA>I(pKcpRnCB+pqdu$k(5cN%<`T?C+ zX|^QeTt%rdP{Ds7-O_%ApD+nd!sr`oe!f~6HWY5~-oRIX>q6bJo?e`avH`$vA^u;9 z;csBTAV)pQ=TiRwh;mRDMF79)Nrw)Vq2j`mDhHj^@7A973PiJjaxyKb(vNRUFO9e0W>2XtEgs0&f z+-h{BVHt7T(`rZo&A4?!4tgu872<7I8s|#T5FMDul;;zhik;>$G`>$2gMZH{)}Oy7 z3qKw@f+vK=_Ix?EB~Rk}Y72z){|zp|p72jV#A0dh$9Kp+>5+Yk3;iQ)doV*vmS_v~ zN8|<=D74*>qm4X9yf&ew1Z|*IqS*ZL1+SG@cLq0%a4&mDR&%{bQd72is=x^Nm5YA5s0`jj+itOK9AB zUj{a&XxlP?I%w92wM!Lw7ca$~fSYEfB$|F|3LE?JglaxdmF@f(n^9`y_N=|PP07jCFN%GCW>JnkA zynm|?-R61c?f2pBo#!4>hIAEm&V;GD&dQSsbJh|sFU6$1^QDXcAks?l<=+7(Aq@rr z%rmrS2-abUgZSvG&{gHoE^u$db0ME^X6NVw&F(L4V%4)9Z+KBhY8x z7QavnrfIRL1i+nt2P0JA?^i^U!1mt;%r$?wEhw4-q`}@lwNIoCwP=vruC6RV6-oCU zp4W71T)i|akB9)FOF<9|<6ex2|D3$%M>8#3JlViO-gNi1AY^l9^zNRanh{K z_pmugVv?1~%&mM&k)>Dt!`nfvkFC9=M${XuY0!S167`Nx&PO$w1ij}b_ht%$-=F?S zL1Z};^G|6h>+OE)f93gaq#QgU&tisUM}@VD`L9~k-yo^F1oR_74A3%}Zb%neN?&nvcCB`J% z?~V#rI2_BVCk$>Yv_l%)wMJY_-0i8=2q@0kDrV-dbj;z7$$#2xFen>OV7O4m$Q=$> zdQXW(NvoufB!a~zVB(49B_n(AoNYJ7lj4t+wH)HQULJDJo(1+@dq-r$+YU?PV&P*E zOvI9izgG$X148+?PsRmeW)0PRpe-+4ZX40(@F*Qf_^ODvSg^ zrg{9}iP*%$}_Vx7Zpvpsymb3MaXvLd- zs~k-2i2+cHbpN06ZN5D{(7E8{T6K9FUe@`Lf_(wcdGJd z(K>6KF6?cW)e8?ojNY~aDSlyHtz@#Nt2{yROS=&28R*TIzX3D3>fnJz23?CQ%sw#Z zgY@?Nbkz(pxN0qga)Ci)h50FHq~mN}w#xvmP>Fr@55MwD&iV~*DWGZfp*%uOVW;@# z!6E*##C}nCT!x&q+#TKWyIjuw3vtA%-=ftA#0?J~+Kic|uM3=dUQ?bEW)57RFazKb&D`SJ#R0(y)!Doq z@9%FjCr{ci(kIzJx9&u0|Kus_NLBPsa4*i>kX~yLu=(TzeTXL7RjNAL!ES-r5}Lh;S8*(~9I%D!6( zVbQ<#d!d`=Ip#8mFcIN`*NV({kConPKfo2ifCbj_0h{iaJT=yLZF6Yee~!G)uUWy? zDkPAWW!}KcJlBn$%Y+k)DDim-DfX^c=?_EryTyt z&j7*VIW2~xOrV@GPR%vxr_)gG(t{_q#U2AOdZf&ED{`EXVWM~?5nIWbh-)TWDiPE` z=kEV%1i*7VP*}*oC-6W;yC+#TVd3Ss4?rV;K!AgHzq@7@8aQoXq{DP`y#`ul$3kw~ z$&kD1Q_*Y*cCd*VqfB$RHKf&)(+}$q%Ek38=U)gK(w!^<_5SvC-KYtY_u<9-YLt@l z$Kazlk9DizYczI@H8%r3pC6|)Gn9(H{K&cQintZB~W4H}L$*F)qs(c(!KpO7M9u~ET3D{;?Da|FUX z&DNgp#qwI`-?DuhH5)v5P44BCzYIBV4>TAeNGQN)wJi; zCd-zdz4jlbuaP9W*E1u2PUAlUh_1tm4Ps7kGe3Rm}mny5 zEwN(DFAA)!pZ3aK_&cWu2QN5`3#5-&xm8K~#BuJ9aBJ!f#Zr-q-gTo8n<0h1qg~ zMHx)VJ8LF>g*CTdWWoAA2aFU>4lHB@wuRMo77gyn7MyP%O`XsFNkueIyRJFSm9o1X zY328uxun(akcKd8VU{j=u0ShDpIYP5#nl6;5e*o`tWZQODxU>?1xkUv`VR!Q+>&)n zeqEcH%WI~roV|WJHL|t5Z1O|dLyU%hgug2eMq2nEGYLq;K=e|exa!sK0?)2%{_<>^ z6H?f_JHK&V@GLa^>O+zq9c&CPRxBVIs8rzx6^+i?con=cv!&P%6Vi+3DK1Cdf6VY! zX}Mg6A%U9-Yz#})2IF8#*A*t zIngn%fwQ?+p_CpbKdwBQ;-9dx(>E~#|9Gmbfrtur)rbCEwf|<_TAQXw0o4c>!VBGV z=OlQ}5`OksS-*Tdx+gulwY)SAx+)VhailTQ(GJ)Hfmq3Sq8QWcjow0^C1~PT*}onJ zEI6$4ms#LvaYp4@_z<{lk?IOJQobmG#k2G;75SEu?td?b?c?t@V+uAxR zysVo7JkE&jLgBCS^g1#gHWKTn5`IV=SZE{At>&k0NuMb`Azl+jYh~eiVtzg@Z|aqP zcK%4we4Q|~=>~a)0+TZSw8W7%!bV`7jm8=}09k|rISZ{4w!f{oRt;lxpPD$54kR(% z`Np)gP`ZS0SwB+r$g6;%%MbIDF6B6^S}d||PlIUkdZ4V_pLj>dX|_DklGO; zd-GdNFE2zt0DW>?y~SY>}V_R$ga2ur=aCG8moUGXsc{VGglKZq$Ls_Sf~+N zXz0j}z5iHR0N|PfBw|W2yGN@)XH6X7A=*=wfIp8k8~pptn$vKIh*EqtDi{UD;ufjQ zOxlx<)qMMejyJ5?;pp(s8qHGihsa2t4?I-*ATEy&fbffsmvJ6RUVQ|mlH?oMk7h>ue!exFzI+-%i{Z_4+n>q3rWiiq+s?>M zQ{>o-`=WRzVFuwxZw(sEA+R-5(yWIotKR3kJyWK8NI&0B3Q$Yw?FK?!-e&!7l~Pi& zT&!~jiP&axR^S{`Xj7b|?O!%j=TQ6dW(i7}liJWsH+Jn{^VBMV)uCeN*rkJg+#acD zvDa!x@?OXJL|w@zhXliQ$^Zd|M4tpBLlMrk90dT(YZUj4&3EsL2C5@{MqsN#^^d&P z%Mabq5s#+p4*PK(FF7(PC{p)4o#73yf&wkfIHQh{i=O;1)aGxS9Sm9l6lK#&1Plh` zGFStS<$b;j|Bk~l0n;E9Cjhs;KIL;kaQ(?uXuO%idX3+2A@IBW8yN=Nr{tbfNZa(tAt6{W({J$D+~4r`VoE=YMtvP@e1@ zj0#q6+Y{thbIBHQ~Ek8XD2w*Y1 zshePzS~pKm3nsjH5O<_0A*4oUmN8Ixi{A6g3tP~wPvDXNk!V0rdLC+>O%{0^2Tis6 zwx>`DfP`u^qv~voEF&iEyF->zh&g3QfQ8HBi{W7$ z+Uy>z(+LtM&7CgS#V=K0%fop{%8&1Qm%HC)dgOvrR49PUJb*A31GLX09&z)ub3?1D zkp+PW{|;UgZkk2#7$fuWb`__=kB}$9&v~x8%d>I?4kzXFnx9O|EW~jbYKc8dctB}K z`$r)R&9$ACPH*bf(>btlDSl9Z*w`R8gg0;eIyYZmzq*^K8K15bB_x^8dH@Z$Lm0y7 z*Tb3K)rVDi8kbY(sgw8Zb8C1Qs=uzU&aa=*-n2e%QKL#sdRjWZs_5tJXaNa3VRUG zOe(!#?F0u$>#VLKQ!KC5Lz+dZF*2P#J1e*4V~_2={>Wtatz0&-;7Uc-TA#1}JDovt z5ucuD=sYhLCy;!DicBiA(l~celHHFDN4wU1`m4K+91tuUxKf0>`DUVu4& z_YHoWPfl zr3umrvhMiI%YI%n!5Fy=(s_7&_{H0(fQ5zR$91FH0F``#O0|)CrpS3L^&PSt`yU9x zD>)i6IVPlq?;9D(O-2mXmBYV6?XSF4j^Ae#q1m^tn-n@&pGI36a>Onu=6Y$t_4*t?vCnzvr zB6ATgzL3Kx6v<6xW@Qw(nc>8mqLyiZleYMy{kr+UdD;m|vp}Hyl4vfccMEJ)}$lsn8j3U9kZBW`#j? zyk%5NZdyZ4)_I7Wz9Si(s*&w@PEo48qz1jd1Lljpu^toa!1BTp9SF21K zEfL4ig1F*K_WRO>&aEV;Z%&&}(nVm)kuq+zX32yqmf3aus{@z43u=A<*tfOTDVE@R zkhc)j*#{3Wqxt~_j!oZ&4MnPn<(9X+(+%L-${!|@fg#(^z~Z~=RZ$3^PIlZS2ljU6 z@_Mad#X2`P6;rFWS~f*E^7aGVC+?Iyl0!Bxt(><5TKZ`hga_ib2YtY#&g*DZ5nLM( zrVQHCS8Y^f!b_`)-;~-}2?_?EOB~5H&GzURU)=XdeUi5`ecn=FIuNF?HRRvP*lXUD zQY~S`|LeCRoXK@zXd?9e^1;6*3#D7t&=g7B9LEm3GM9}aCu(dTQn%n0dOB~8J|nVu z6vr)Mz0;Bm)^It8P?{yf!MW^{BQ=dN^CY=K=J{2B=i)MK)!hNo)Lv85Q9xzS&w`Mq zFWn85UhmK1w|hnwW^3|hajoO=LZ%O-N21fM9@^v|UMkvT=fhxDFH%&7B5nv=6gmKh z@Y6fHP6m*HANK5X1($cO(}uhqnELIBQM4+%2uEe_Ps-%mm`OaiOJD!e-|xk#2c%_k z!s;nyi9Fu}H6$lhXAaTI+2NspV%V-h9**6TSCdtI`P5(k=xx0qm)b{%d8M#fdSYlbnpOT<8DT%KBHD?_Xf~%ywKU2b@htbw80@6rUhV(v zBkh!ir}P~=_X&HDF$?>fxnDl*{(0azG)r}50uQq{ecPWUYIleG|yzef=M1I3Ld zjLaHo>zh>Y))0K{Pq=6GHsS*r=r*!su@kfD5t{UZD@D}{5ROx2@$ST75?++>Lu3(Y z^VzqW>`Pg^Ik)(PN?OgVxUGOBnw}b7zI6!SQsA+v{;Sy{y)yP=xX?zZq`lR^Q>2kph~)>9ykl_u?HNv+pv3XgSZX!6@~smO{p z5PMr}QmKQ)|Iw119JMQ~U3j5FaUcG~vXFUB5JHz2s?1@15yF|H9ZNxdTwyhPtW{gI zzpp9XMfEI=#61$P;Fc#;+Nl1KrN#^+{E$d;{}Sx->U{r{PXaC>t%~biwup-hbRjzD z99vs5thXAbtw<~cZ@ejoIVxb`<0tnYqDI*Lbby^%W>l|}A0Ioh>6)7e`F;3`9U~`? zYlS!9&XwHrl`>1_9lJ;hqt0`u|Ar(p1UfduKa^gO^ciX&KPWh8ZO(gXqA6nu;UB|Z zN@)M$M8N6~{17+Yk&5&Q)#tO#t*7#$N%MI|?>ad3TLqp6w<%*{)B>iC+zGj@W&DlY z8MtLI)GX_;Apimo4YmiDmHoK>=mYIbfOs&r^rx6_{>Q`r%}(_?2$&rWS)`IsUCSA2 z0-3s0sHUtn`VT0=DG3RHCbu{Aef>05Ce!$4vYbsqc!NRq;%+gtsF9_!ER7};?KG3jm=;wAMJ(`{FG=Y6` zaJIUz7F5}s{o3jB^dIUH<}a#ZeLwdxl^O9aI^uB&&q3s5Uyj>`rOv8^^T24_W3Ald^m)VE?v+;cj?}KdQgHOke7&yU zxEBAtZ`EsRD5;?JEi~~JgxF;~g6^#jxX7H;%(L2s4K4oK3X)UgNQF6f_mfU=Il}&= z)w5mLblB_S{g%o|$n1Zhvg5N^>sv;<7n{CjakHmK9_D`QF%~frruu4%Ipi#8q^X5V zQaYiBxH+NeCPdrzT4pb-e_(9mSB;!twDa&V^xb!-O}|z~So+@j@yRog0py^O)V28g zSadC2TT?79L51uysQoDXU#YV~VdkI%l0i(JdXiW7s}vBJZ8N_aa_;EV9~#D)dgFfg z##F9Z+3=4gbW~8#G4B8|-WuO%l8A4l(&mLU)ybEkarn2mjcUJ7cyah;!XIavv&)aYm5S(L6o%YaHH?uM&bNkl=aJl}L-28ZK5Je)PGz2%j z(LnU~Fj?zL=983e!4|$oHo!h2IoTCj=4Z-XoCkjHPkM}ODe@&OYr_hwj(S`89$c?- z9wKNoZvWcbTJ&jf3h^qM5&EhFKHPiKc$sz}IOpVyO$h#a9LGQK{P28sru9@JsRClw z?P(#twP|&*w*N}^5+}yK6Gi|8^%&3}koU3m5=@?hhC$aw3Byd*e0|sQ z|47pTa|CQ6V2(gx3I{c_OoLm?og?c_EiWGizTaG*oc*kG$1+S|KD3o~DrkoD8kcIC zX`}`K_X`Rr>oH-aBEn6-=l?T}9QMWynCS;B_Sn?dx0zY1yAv#6{CEMffa!;?DYBa9 z2^}xeuow4&>yjQP_f=I+kA-GYJ~X(mxcnPp{w?$rG5;p_x`lg^mo+uQt8GUzS`REv z{J9b06%`B3j9vDfb1pwFcpO8e5%#$5`*{r~;giPz?A7u9lY+R*wIhT4xcIwMr4R^Q z=q&Umnjlo~nUR;hH8z~+Pa-fG=JkD>KNQ@wUBPeF&ZS}|Yx+MN%*KUi{^S>JsLKMS z3F)-t{Rg7D_|lc5^Bxd4ivZAz48#j}R9CQf?U3IV4eys&>u^FqH7y9Sq`zi7A`g){ zX;QEeDITlQPaNz?*}RAqX7&2VW4L8U80J$IBMexotqNUzj4ON3t?B!GZCqUK+xLxu z?9CWu9>vN!-^)7&EniXyl*K9fZBavO`|j%@1o7{_4I?4h(y*7wF{t4w845S1k@(o9 z-XI8{~LnK3xZ-@vF7%9lXtS%CF zgPUZ0ixksHc-)+vJ#4m3bayppo~d^`1Oj46^of)t9fmtM2>YAqgOC8Oo9YXg+WjIb z{Z*kD^J&v@o$drb`tYQ=@;#VhGY)r%4;jl^9bfz%I=@!`%%Ma;|C`qAJz1o*si*kj zIK5Q^VXaBLM$PL#kdJV>`g=8*z~%mT{&-8jBVi|t<#+61CFwp5M~l31@x1y1n*0W) zZV%1K^R1h;J`z0hU+b^)2&iQTUOIrtBl$_^$pY4=PrY(w7W%tpH_ZZ$_nUB6_e_C2 zvj0m%x}sA2(1wHL^1-|jQtQ*HwemXymn+?7{5da`ybW|8UUt;PJg3mgKJ1iG8$D%i zB`0Usgc<_xl?G%MCJPVe>%Z1IAIe&?nF51O@78li+_vRa=PjB` zJbhIVMDTK|$Lkp9RUBXH{0_Lr-q9VGD7_ZSKJ59CmYglw#;AJV4BpTj)^&FVlZcE-tBFY;a){{teSj zk2Ngmtn7)HNe#S=KNyODk%|S`C!@ii{Sh_hc81Clr(yst#USH1@m5Ngo;~v-3hg%@ z;_WAO@mK?YsK}WnesVd1Uxp#oR2l89_?{tm+yEP3+{ZP8#+($Y~ z+qj+pSNn^sp$<>~ka{s}GF z0et@xOoH7ta2FSS^z8Eviq|T;u*E-h$jWMCNGM8S(Agc&BB2Yy z19qqm0yby+gA>hObW^SvBO62m{CitC=t>7T{gBSG`GYevM_2Nd0PI0i9L;FAd{7Hb zx#uG8&@h7dx9$*%d?bf75yDE_^S=DDAR)CzI@h}pX1*HOJc6y1ieZ^1Sg`~1TTF** z=VROE{N44Ki&~w&UCiL}KfXkLx2+QSuNz4^>x5heM~R@*%H=tweCc1rse1N*Owd?ln)$V=8 z`C-yF4>^CHTrt02@x#t07kzr+WA1{wpAG1xl{S`u@%$=W9?xt+x-$r!KeBl@<(NL3 z92co35q#<+z>0MDppD{t!>fN^$U1czKt?}Du%(qK zyASo`Qw2DpOX&Qy-Ght+YBB_cQ29D1cN&t5=QH{oYDWYiznj$|Q@b0kL+4F_n@Pq+ zVeIqzCx*j_n}7yGBoYiw&Bw2)wltLqe?x9xPJiA+@=7_Q`i`5$usFde?>&Twa1={$ z>k}I%&qp}ORn{*&5N|1(|VV|9Xp%*dFlKQ&(wM#spFr`CC5yVmDE|m- z1$yR+-sKlc$BVR65IEX7{MO-A{suDDLPxqoJxLilPJ6sj%7AX1C@hg^*)&@yCdiXE z(Q%_MO5}OD?mq84Fs~}Co$ZwOsuCZ9v>3=L6E76aE9ab*Xr5>KSI0f_$lgEqGTk1E zw7T%Iv%Ro(F#k z4q1HBH0d!nG^g;&Uzb;2%974m>G3#%&7`!QQa#eHP{!j`ZKuEOfcyn#-{(&Sr$-_-BB%7I5BCsi9X2pBaduQZ#X6X) zdpa*rN}RVV)-}2`HO79~&bk)Y%mt}^Vv_b`*IBMAA#DF7kX*}88sMH*bbOp##oCRg z)A3%FbBuLF(vLLu z`~-e;v0%8Qux@B!r&mX5r{#>({zR5MO-@E>*Wc5>KfJlTcl<_53ZLrNek4t$ZV$3e zr58_0bAQhj`G5p@068DUqbnz2T1s_W9)*0KkRJaFiE2~yTa<{QY3}jDJx#%qu#>eu zJ=~l=!qXP?zO1YhS58Pucf#1^D#eahjog#jC`G$t8S=AEFW|#WEWdrj?rYrwGmOoI z%cT_+%KS4GHa>S#&Qntyht*Vb!Uj2O_aEr;Dq%2K(pu<6EaRQ#I=&a*qu=v+;$NCY zV>4<^t>Ld)#%hkOo*3+DGz5@C8?0XBBm;%(L&lfPh()`hQ}s``iTo1<2`3(@9f7f)>)TnttAPpJ z$wzWred`NZtj*AR076Nb&>ZOh(A2`M)*>!Sv0zaQ z1V#)!vqhSEC{*27bpEu?rPA&~jmJ6jG7EqJ7=K5^q|B`ZfIi1a0h>BLVjD|;^gNN#U9B}#di4)6{|KiKmAv-ilkSXz_P zXAO=~~WpvxP0UrAm*HO;M0V?%Ib`;0 zPP5$evg=FHv}9tS>wxD>M{g1|hempM)uCn_0iQm9P_83BHQt66NoR!McbpuHr|nox z78T_JbEFsS^{MXYh`){Ufg1R|Ko&+eXsMO>*ZRmKxCw_J(j1-bF)pfc-gZZpkX*^7 z?{gF8kI<11nbS}#M^70(YAFX~L5N5D-C#cOW}Dx2^@J@_r-(x_J%FIXmm&$x96rdR zAyl_+$tHIW_-K}=sH6gduzpFJ(A9H~i;IIkQ@#Ep75t-fJ{2uqsWkpl>F%6B&zMNG z1qN9+?Q09VJ@cN7+VOkOYOv=$!sw>TTQ2fzjuOwY4|o8)GxaAh2v}U-j*RI8Ck+O5 zbWo6uE`$CZiEh+*>vN{(mh#v{!9M;9qgtgf#R0U1XzSZ&uA0*AUrN8+^?*6{4NPfS zep52cM1>Z8dj!@n90}NFsZczmZQ5>5Z65A^lT+4)Phh%}-pav+ zeitcYnf}YLh}Gx~II+oGo)4g43YK-}X0Be5ipv30Nl33b%7g37`n9v`T}kJ-_tZ~C zrCBSQm2We8riUe~^)HWn^N=8wq89~P8P|ql`C~OSxSoM|9^pY3r@qg|Q!`&roMAz_ zmQ*msVTO0LQ^Kwh6sIa6^6!I7`z^aO{vkpgk9fqnG~uFRanF3&R3;;AL4aX4Ir~lN z^?z#3u`tJ;0t7<5IltktV0GVXUG?`91!5RY%x=ajYMxcFB4W`xDHDo@5DcP=U{Wv< zNwQC5YNFb0D|-(qdjgirMu;$$CHNxyyx_+AYg7j#d&?Dq`hXMc?bOC)6NGlW}U0A$dK??z7W>D^C(I z7OA1B4Ga;*M~WxUfygPcW8VE(+O2(E`IU@|jEgD26&jJEo(mTLL>55-zV*h28M|O) z-t?!yz?u*^+h~W~ST*Tnnt&opiqRM>%Vu*?=`eaW&p0QNaoYed$AN#pqYuHU!G!FBLi0)&O8k~w)rs|qrW*Nv0z`2=uHooxn z0IAz+aOjNg)L-oT@h3vL!6(f!Nsz6SObl~B8PW9{=2pkO}dkmf0KfjYe zZMk#lgZlAX&8!*IPo&+S5dSXgUa$);7c=4JINDp@xziOQT zMa`9Qx%{y^(WL{#faJBr;+K%>wvl-F2EO9b2PK!8@?Gk`w`mb>9clmcF45gWl`r= zf5}5dM(JMUpYTJVxCg}`Wj;JK1&7(7+d&}UxDafbk!Bza7Q`=tH5)Ah-D+8yAN@!n zW8MV*W#Ckn$AwnqkQiejl5%ws zhzDDgS$w{!3@i>kh23t13T5y=XY)Gwq))qF04HUTs<}Uv8dPN_<;C?}eG2+pWyS0s z$3!a}!lf^T?W7S;=ZWvZ%Wj%i6JbIAywOafsK97$xn;+?cA-k0KG7Pp?GZOV$9geJ zN|XEyetE}7_;wbm9+=`^U_C&{h2aA!1yj@PuG`8fH^VJ5MHS)*|b- zP=ZNq`Cp2eoMYx1;Fn< z8s{hZda$twF+7MV>Jf7RlfNLN5fB3a^D-TOjVn{Md&cx0L@l;la-=P(e@;*RXzgnL zs2!wAF8#yyL-Y(eKNzIcP>Jky7I^!z{78Veu**AVZtsz=!nk7@yUWfoM zBxnBIA09=_=UmUB@3_SUBYsjD))8sC1)>F0aRDZkE54tR#zV^xk&B1=ffXO-!u;`l zd4dEzPa@or4V*p*Syc>izj&*%I5{(k>kkMlV3x?k7*yvKE4 z*L`2ZaSZ>iX4Hn$K7y)!fkrX4vb4EuWhXf}QcA9R|IZLz%H7KBp|N#t#*s3v%OZG# ziUYP811h6M3S*AMQoFfqm*gk}*JXAFoA*opf8}Q%YxALcTzZUElac{~BS{}FpjH60 z_0UZE%H&y!mg|HLzAvwk*QJsQT2Bo)ee3;cao@JO+5+G{2f+EguRj+|Hdi*=pu-|` zHV_C@5r40*4I^~J#1k1M;?{e=Bz58*=eUl!rVH$!5H56c`Q}Gk9pg6YdM5L7S8ClO zuQ8qoGm})q&PfHPs*3o$XLBC}r;4d{P1;+22Jls6Rj+St1Z-Zq`I#=YX?E`5A~juv zbo)Pm)xBumtA|+#XH;19!gDimYa*UpDLZ$oCc3D%dG%SJVt`r5_g^#`q~J1L&U35D z9Bm6_k5>Pj?W`8&T=mklO_4P$=8}|CDLlz5NsZQ^fd0qq+KseSfSP3zMwg7UiuMT& zvok2}_9QF(vO1}IK2}|Nbaq2?k^n-Np<}LT?&p9GQ{72#m>1w7(h+5!Ga}AWq|pR` zc$basdGthY-ixJ}Sc8e+YnCoM{Z47##nR(EGfy_0Dp{m;*6U8xMlzpBdTxMY@nRFU;3CoRTG|`N9{P=6vqh;a ztT7j9?%9e4DEf4L(sh5ze-j{nB_a^0T8+f_GMFE=9xdkRX<$}p{0O-=x ziZEUY|Kbr|s1baLJD-2_a-%0*#i^VxoeYKvO!ZeE+*PKHxI64Nbj!8)-tAILms`*h z4_`G~89nr(FrkptQeoUHw&t=HkeByCMm~VsduQ`|PzbMScJ6Aet6tO0+TzFw^kTBH zsj zW?_xHNE0CG*}f1&h*0P(dFBXC?m*9Fx?Ooi$*Ia|bC`A&MGXqG)gKZxs9-9}EGwj@ zw(1#UbAcweobl6=I#rwIg;zWEVT_wP-?@r1Np;Piqx|UJ^4`mB9>TfV0`ueZag~*A z=37h>d;Sv#^CkhEMoe)on-(wM`Md~TP@<#Dty^3>3Q?%enInqj-__c(J2>#EI^u+# zAaLvT{EedalP7OGTwa>J3r)@BKRg}0)if9~Rkg>$+?t>eI`-~s%B8i?*cE9QHJ$CC z+JWnW5NGGhLSLOw#eaZ_cyG(>@NWCGZq59nqOP!7Zq~upXacGI=4XyUfr;B*&1*9QxSBfcRN@$Xj9SP4?3IdrI-|M@fwZfVBkxnVPpAhe0|CRT)$mpn4x6 zkfk>rdFE`ktrhfmK0DxqF`1>x5VdGl9#Zwt%h`Ow%&lrTYMVS1BkKYKr1*au-{uwI zBzAfsl0UuXSpqA6X0D3n!bDbk!oAjapFQsIyI3gczF%AC z9qiqEK5tB)GPjjrT1-vD)#m2kc;nerJfos#_H76G0I|lwQTG+kwRoo`ewQB$^+Wzb z-!;7)zu!|BC|*;1yqwRUe$eU8-g%DRbTpqkTc~$Jjm`AVp6~5u?Rf3-2}ZBK_Xaho zRlM{mP^C9h^tw*W?;ix@8K|GET$fT6Shy5F964goD9?E_qtMj7j6Vym5x6K?8xGx0 zUyL*zZvtEySgk8((ywY0ia1`?5=KV4HGj<;tIqR%T_J`(HBOh!D5`iOyF*ktSZnHu z%{KnwScj=Rt+`@t?t-sfz1c9Rc-?ze?xJV4oY+Co**y=}P21Jk$^MwUi#E#jFYSK& zJ=xw}-#s(Delg+N*xDjfokxqV8=p(c>W;IYy}MAGTR`6Zp^U<=ug<#mQ65{PyhjRi z)e5H+^aPq0kDzCB$Z4nN_6KKwmghZKXMxrl>wnzy`)VS)*Z%P3OAz;)2ja}05_uf6 z;#jI9bp@hw%n{-ZGx$r zML)Ve^5J)6>6TZM$L}o?gdAvHtgd*ay9f0*#pVVyCC@%QAL^4} zY7Y&-$BsKAPvOKF6HQ{l(LX@&qr%z1)_^*G+}YqI4^Ey&-&puV?Y;=dWom2zIPQyWKSR1`z`I9P`rb*5+4CO zm$lS+o|z=R-(L1yK zbg8;@{r%-LzHMHu1$+!uKcGkXUW>U7)qah}EDEOB0R+0fa)Z0zy#{qZ0cq7c=HZM{zR>Qzbkkre(o<~WPy1!WUsZTeB$2nNHO3cs2LyOP?-UR(8}FRTgKioShZnnKEkAG3Eb-?;9mr*^Sz)eOwL5 zv%F{-!{}e!MAWW-+*hbv@$uF^&7IXy*A33}$i&bo;jHZtda3x2J4aX9$C{>I@M#qrjlqPDXDr{EJ+W9HdiLU`xFDD{&0C}iu=3a z%sLMr7oQDFtZW=h9YWAc{0OoFRITzv=0`qdPd7Pwk%%YZAWcv?8KyllvYWMnhm6y& zROQ#q0*BSDt#HlO$&U*r+iB>TuttJL{+P8K<@2QNL z%)mcDRZjj#(7j9CxnGu-tJABt)<-speczam42T1-Z?8*{o*d4P<|)PpA8)o&F!2fviKi|3|3daWIW(vZ2`*&jZw zL+-E4EB#8kN4I%#h7UT?>ZW!%o;bsM=26sDb{!2>#J$Gm{FMrIuo*(>sVVbY35#EB zn=I~qZpXLny@JQ_4CsC!02_FwcwvyFbi4MxEsXsMRJ`soWQ2qFQOlBOzzl4j(LE9K zZ*|t*D^s|es*gJHy?nmeH)i)!pV6~SH7B@0?B-7L3)H@D`TT^3DOr0)MpTVb6rYoq zpkdceDw^-Bl)Ty6=R9#BZfTqy@#)va^Z4I$fr`zg4>%5P+ds8iTWPs2**I2~(6{2z z7?>3xf7$oedXrax|7TNUyUwuf_9>!*WVNZNMrY0KN86YEZ!GT9NRe#iBtBKp#>6Pc z7*y$*?(f?X(@IK3sZ~$wN3&zQWhiK`ZUmNlwom|?kzWC-s`g*!3hF~=?TU%z=!w~N zoymt`kx*P*UEZC`^F8))E5LQX66MN52;A)9Vgo3>S!R0r6Id%XT3_Qldlzs1XVqCr zdeszkO&%s|^L5g@qs-oGm8WGtogb2vk`u}exI3HA6qTLq8xMox<&dObw-x#o*B&nF zmL=$z|DJ93QDB+fFd+an-De*SNz5_go$ z?G1_DqdesZ$^yq9p~Rt|x>xUU=X0GbFMIiRcU|-8Jkv%vrYPkax<^GF15V?*G-T8+ zX{jfpIHCiEdRXq|BqH3)4xaH;b+V?Mb)U71(tm_<+TJh4*mQ1 z8L#dm(3tl(nmD=8S_YcDO_Eu*S1DjjUuQuEy&b-AC+}W~*A3Cy{DLnn8f*pY=5;0I zGdD~$c`us`8x-@l?P%ZS(p1@@KlZ@tA9i!=Oj+srp7O2!(_n1v%>3l2Pi+}%`p5ky zV)i85FiE*b2lGCU2gmw6WY7FjT|Q)L-wH8t)5X}oH1*?uHn`^`G3oaGZ{P6G>Xr7m zCgjZynODobRMq9s9R?{Hr^0re{HXVXM$01#$yeAb?iHiyLq>^+k)5O76qDOD0~eZi z>QpWbUt#(ca^8FdyqN`9^I%2WOqPjxp{lvnS$HlYF=1hclx}R~!s13asGpMqszfq) z^F(~(yR9o3I2m{7T;)`*sxnqIYn{aGtCdqem~c_`{xkN$GTFNom)CbUV=k1;mD&|) zw3^8btJYbZYQ%Rqa6d}VP0C&9Gx_D##IW}}ovitNh=v`>A@0a;QNh4W)=bd)!mO;% zPs>wJLMw&&V@~>w>GzX<-6l(n@LUUWze5U6ur!ZpXo{MRlrS1Ycd5f5xmp+k00=Uq zvg2JUD;@&#p9`%yJW+@ren+jGXVTwz^(p*vNqRuS=|{R3LwScWNDuHY?aBYWXSmiN zVwj8=&~khfPWjU@1kNE1Qo_qx-ab@*7=#J32SzS#0`jL!*Jtx}> zdRD$aPC|F7#y7jcVafRIo6#-jo%KL&N)a!wO5^rU-;lpCM`a;xv}(W8L^G?lJ|61c z8(sURu+<(fXA+_msd$YkbnnfcHG2IA%Tn0qU;MG5Yxcvftrami2o%smtgv9oUs1s% zxOoX7EWY7@Ipl(Zd5V$OPfKU+_Y*RFBuiBBZNI{Q#aNsp)m-&i)@vKy_ccW^)X$Na z2*%4M&)v?1tBBw@$QVV)shhxTe5jk2VRPZu5oLv~F~fKw8RfyE4f2UteVE6M7<@Uw*<*R)6pO@nFwgU+DBBpDVU2%IrAs zkZ_Fdct8OhQb{y@{?q1@FpPL^b;ExU>frx_&;c9gytB`V#{ngKAjZNfGr5232{i{a zlSJc^9tPj|6l<%aj-f^?+d3v@NN|Y~UIi>z2A#8A@LpyYtrm@De5FF?l~U6Cipr`B zZMD1Lg$*M^t1!c%BgtqtP1$TKxSd|$7S43gEuPw(kz0XWhDmCM<)Xz-VKVDg^Xf#0 zb-Mp{Ir#oNTYfjhCAF(W+OBHg@+Z6a3DJ-uSb_@#^ z?7yGKr-&~5&W{Ih*!;5Az^6RrD_?Uy5z8vPjLrOnBA9-?SV$o-LTD$IlyVO&vKi4D zJSC55K~Z`C!z#JA{r3Ti4a_oT*^>8CaRhWSrL-;lDib-uSYA@h5Y{9K0MuZvo=n@T zMPbP$&|Ib5ygI(aGfi#jZnHfzua;~lUf#n$l@sP4di#lKCtP64L_X^%U2YnJdQLIV zlAeE9R2OkYN8y_7qxts?5E|DyR{R7dmv z9<>FS{lExTQ_eFN^3LVR>>uc8R*K`l@l4Gx>_hvs?^dAI=j$IoO)ZqFihhiW9-Er@ zoqkK|LM}EqCB?b=frtw;;=xLQ(aOY+`MY4;$VinTyq65FZzSR>%`qwhaN&Pe+q5Dl z*fwkO=c4qdmqgEs*_wOz3i;iQS64s332EGTDDSOX+lg;2%`Z!G5uZ>@PyO0i`SOl@ z`-ME2`t_Fr2Z7SRoos^gbW;cZy?1{&?`glWeTTcOUipi#*(JM!P6aO(HdeHRel9B8yB;wAlM z^hhZ;NDksM^8UlTI^99jvF+9Bvll$(5r8jA9Qi-9@4vWE9cSb3G2rf7mZ@C&FRn<3 z>&A~v6=c^Zvp@6UVF3DRG_PJ9DjsIoHb(sV-mfcr(-4;7BhlHQMouKk})%b zm4KMrhHDl91f;&EDDGbhiO5K$0S_z5EEJGDt!h*lk8fJM;$FJ@;c`G#_m}M>LHvZB zbKjf5jS7|r1EfJ1-A&4k$Y8&|^gOV>@7ne5!+gUTpWVaXc?$mkqr)^|x1V!2jf`Jv z9nOWOE|LQJKkc1gy6C^Dj3fL@?tedQ@cY-u3(=>)l&$tER%`Of$O}sgtZ&qoUswI< z|1A<9^!_tNoI)ZneDG+swXnKA*T8t%Z15C)_K}3-Y;I@5wSsRJH@=#<+>~92w9j?sat*#y z9b>(?n=>)JeT$lzP1&r?{~5RIDbwq(Jrs1!Cf<>}{Qo2r1Xn07fBxnaXY=P=!PiBN z{a_d$eQ1~8a5M?6j`&|l|M_+{kg4S^^5oW${M-KwSvV;oSHVQWeBZKtTW@D4Eey#_ zV*}3P0~QsA_ZQxH6f^cVnmboh0HjJ0-zg0$93Wg(W+oSnv$aJ$6qZZY9SMTx;i^34 z1;+#s*b}GSQ$O|)kc?p^(^8jX9?t!;=**AVcKf{9(AFpg%a)Hj`zIzf&=&CZPKUPZ3*Wh(Y->%QvXH6E&oml53%m| z4$xj1cTDX6DySDf56e;XM;rln18X@iU;cHR!S4yb*Z~uY{;`w)8!gChg z2M^x=I{iRD4u)$wGlh;rs32aKTjq>BB*0zF7Pvluup%t2NB4#134rs=8HRs}uz^At ziA}ly5e4pwKx0iyV=mY4Y5sXXZascUllkzew*t$;?ZgE4F~>+b+T^gxms44(!$;0$ zvH=3Ahod!RpPwJJo$hpyN`8A(6aMLC01G!IpXlkn=Ffj<&gFca{>WTj!Gj6^zwrF~ zm8L$DC*#4r5ihUz2R8aQehbSBtZ!x;&-fhG2mH?cliVIfc5(|5wR-#WPyY^@=NlSo zqH%1Drsi~3lvp-niw!Ms6+;n4-u)Wa+uP-GF0WFmbLS>NYKrRPj^B^OP+nN%?TIt6 z64APfB4f^NakkGdvi)WmS=+Zbv}fO9w$^sO<-*^Wx5mZ>R%ZHEjueM8(r;)6OzNcF za?w*8P7i;x@L_XxPew+ua#xnMGxAi#ImQP^r-`QN!@(N_S;mivZ2!aCj|u);sEt$@ zxi>=86b&q^G_J8mkRm!RCMQ+1h!M<`asWFRcKDs;Ua^`2A=c-(j9^A_WI{_}+?u>fa)n z?1v}~AF^JXS@!nNp>T=_Ii0rQFFfluMUuHGBevtzM5FTh!=?1XtXY2A=F*Q}k1nbP z@7xx?SAOUfdL*x;MA5_Hc9fv}4`BZIlw#*~5|jx3|3z`QQ^?9fH}IQR&qj{Hjdm__ zin%h21W6)oFLCA|WEL7~sfmR1-Pb~>U{9ale+m=9;;h_y439JqM_w6dUX@B^*}s0+Fo`x16j_&q!cWzxbl{y8D=Xe%gLV-nDB) zkLn2v!xy9bGMRr)Uiaf4bgr}?WV&fbRm1Z8#{g1tKbVVEwWKC@kaRRG^~m7I=qC@p zI-Y3ZdyCtLH2L;wk8aptmEm39|69nupZR(jd+;}{-TYNx8AF;dMOgaIj0~;c{1f?3 znjnkx5;DXu281Q$ZwHo(x38~#(T8juE+|w6N}r*--tkc!h8oF)LSSvRY^~WIAX%KR zmGAo!V5+G&m19b16vfrdrIxoa;k_!g24t2gFE0Gfbq{*`(MQ%izASI=hf_6jKlEX> z?(JtU(n-a|s>z%tt-v(0Q2R6Oi^5N>f0GVQ`w6jZuC$jbg`8$ZW~)=MG_PesTm1YJ zjVn=MXdIP|_ZU&wCyn1Rvx}?@$i)yslrKEMU);DAKr^2?cCG>^e z0+e{GU3rI>?*m;mMdKh}Z~K^xpk>cu%hz&2P~o`PqD2XkqK}^2T3v9(EbkXx^N%k6Z9dA6e%&FO4jEbq4?A zjb50ypTCP@+MVDX-<_8OAM;1p-h4D1-@kYv)HW|LzkH%^_b>iTh(H4yQW;Rl-Qi?Z zMdAqmgA9O^A2zL9Iax?1?dBr~bTQXy!e2A_Zl_G(+qSPKzuspm3xw{cbtr)!9zS!+ zb9HYu_KL(=Q+|T{kDb$1O|MMFz8gvx05zUv^(r1W-DT&W_h4)eGC)2)>@gKIhPEbo zNqP+t=f$Wwu&K{%qw@WG@Nk0r?T7;yCfI%Wu*ZH-%r?Dte{#lw{xNZJiqrW0st*UD zCbwc!1unLSJ!`9#Z!Ak!`-B!k1+x^mH6`#reSAVf%&SeaNOl|6rD!@BubDy%#*G1h zu35FIzm8Tv+}2nR2g%cn%T`4d&TmY`<|OFzlsx~b#a8AvqhTtyGu|pMe5Jy#1W^C- zz{ETq%9dM$!)DE>++vE#K&!(9c@?(mR#?<4Xr|@D*gH*T+w*eF^8W!=nfkfqBbR7x z-18z$0Y=o3g|3)iGqLO7@rqx2KHcScx8T$t3Z1_$dx$#BPMvU_i%%KBkot;6$=2Pz zW_D0TS-)#qt2%pHsbF(62EA+%*nSY~rl#=w!$=r3=fiaO+1|%dsjvOu6y<4>;^rN? zDygV;%oo2L%*|fVXIZ@29y}hH&XC4>^3m~-6l2&CC1eJouP|0 zoQkhoupq{Fhz)Q(L<8LWs|YSC3>A~DwNAda|FN4#2?4$s;0TX`7X^Fz7^qyV=F0Kx zWZ*?*J#luk%^SDk``cI3@&%q$e6M|TFgiU~ZQHDkne!e^p*Tt=ed9UqC_7lv9mg4& z>u&gZH|5W7>A&};;RSqatHO8PGc!vbwYP`v(_sh*!XVRBg}9~{h`XC^Zzcxs`=(!o z*T6J8tA&gu;u1pXS4-cus$6fJs$rF2DJ@TY^Kti*&UT$=_|E7P`FQSoMqk*0$PX-1 zKSEsJ1SazghaUJAo>4$mbG-lu4Vb2>$f3H8L?JawQiJ4vJO>&)Jsij2&?smH-PM<$ zpF~mk{KBX6WKlpN1fS6%b^A=x^2SFq8BO`Q)bAb5nit;X%>D9tHUF}BwRuGH8kOH1 zA>>(}@Hv;WI>AAqr_xHlEcNa!ycp3aWh&f)j@_--a(eP}893lM=~l{k&>6?3xN4ut zX!V-V1(QJR>TDv#b9LX1we`Jq{iFg4AD^R_;#ukm?v+$<#R;ljqj~W5kz7-MFMYFG z>Dx~~4s>?0WHep?y54A?x!nZyE;go5=Inshu*ngFwd!JK6op51U6>ILw1!|vWd`6# zu}M0{2Ng=w$V@s0(la$a(fgOqFsfIuYY=bSrbk}GzsG+(^c<=*u75*nB^4cn(4SMv z&A04dl#^4uT6X^{Z?)8o#L~4U|98w+2D4cfAFOikqdnVy6z%WD7^dZ4UH0;J=w0=! z?V&*95Ft^5>ziU9hm6<>oa;xSw~+X@84UtA8wKWOVD3HPlT<$|1lGM9j))hFI1FWH zt*^;k9h0DwmS<6Mny=Fl$!+uPl*)sQB>)3hTgf?!nVuHKHs2^lzs5xPyuua!;nCDC!a@=3Xsn5hrXIxijOT=y&5 zx1f}n=6k8qK)iOX??CLs8$Q#UMUnGUOLeZaEH>LeLp4MHUT{|${od45xV3d?nG@jW zDZk)Y0;MQ%?Q^~)ozo#?b(^-C*WBB`nU@o&<6I>rDPr%{to^(YUQ?+U`{n3l(zaz- z63o#q`fB>FD!!e?YWqlE?aT{-@t=9OMx0Xn0r-=Yy33xz|0IjMZG!PN)LAM-F{tZ; z5Lp)@&K8;wNteBEY^4of`F$M_re=*?fTC|K9NG1sk)Gh%YLMe?V9EY1qNy0f?7ClM~UFzXud8T3-aR*a>nP>A#NR{dU($}gMv z;lgIBxUg8T+&AcTv|th*j>RDaqYq@q@nWXq#gE5xnd`55Z;lRkuEjJ&Ft+rNN6Xn6Vr32dzZ%mMv2%eF+p?bh#Ze%0(!ElI(THKvSrQCIhxB2x$r8DE*)^QKvWoF{YJ;fA^+-+#`S z=Xfox{CM#i=;%Z(d?IdA(60W}dbc0?H2O5oqrI%?g%Ahmx~Jddg-TJ$P>EwhD`To@ zuPW;}@o`lW05nf!6g5r1Jk?6*CD7xNgf<-RkaTn!WFYm~ z5TWkyi^6^3vh`nbt|^XB*}$u40+g^2JfnHsN{>iu=?-O-o`#ztGrI{_20qQ+he8Cj zL7$b{vt^PBJk2em9P$(Yy)UCp>RSP)OfQC>IYhYZa8V+AE!3Gj*CHn;V88Bqa8m<; z{&5~t)Lz>&j@C|kF$LC2t7u7~lPUYYpI30oh?k8b`kFj2o5V4eGd+??IvSK6f%J$6 zfXRwlEhk{p;$i_^3cQo1J=NC6h^2-4B5dR_zccQ|Qp1r!KwRP1g%eXOl2WEmai1LC z+o&H6%nK*Eq>8IPMs*!OjNyTCorp^TM;HFUpup)P&PR5k#%nV2cVZw_0Javpj{*LcSGanGT9Tu5;g}!;|$bsn!SaTOK4Nd&l#KyFw);t=cMRc*C+&muio}a z&hDnGms|gH1d{H|yag2o30)p=$L$1RJjz(Odtp&LQ(A_;jyX1}0|v>sdXM(+l%(|z z#eTY`*A>gkEm%Yp6Fdnp)fPp6`h0lAQd2nFv&)j4d$9JqzT@4}3K4az725w=*L-RE zZh6A!T3KaL`oyZuD=i#C99-Z0okx>;G{rsaacAEgKRCV-@VBZvk-&Lj&=A7<%=zwX z>znt1t)P^xMq&BS#c7y-nOvy~dK}Wxof1k4cMiWqxuK3K&L{U#P@pz+ZDxB8$Z7lH zGxW1=9WimN*iA!qC-K?lx)p)J=s&v?%n?*g3lK;I7SY>M!mC~6rX8mq?t~+XQV7V>tRCthla`amB z&V~oxHkxH9IhnT`8nbo7CY-D9K)OH~ApQE)Fx4UvK0QbV{BrK3*`4~tSzAT`toOWK ztIzGs_#~yQB5~mq6lNdByHK2r$07wx>IW!HVK-xO;bhs#jxp@~oLoJOy?lA0Oy=MB z-CX>fnywf#7!|=xkK%ww-@qn1GM2Q)YCCDB8#VJ?Vo&I$+~c9Akl_Qe(|H+_e^^f@ z77(`A@@TYQ4GJ9Egkv#e2c3(=pF;W1Ru5TkZ3lnruUz}9q}I(r(0+4il*jW~Yk#ME zV!47a^eJ+Y|B}3acBPkti~0|bx(3@&tC>rRHChc*(NaLCcOj=tMp85maUa2o+|>FRjAphR94n~g4Ztx}*mgv<`6 z&ZY6HHH3?!9c(uiY`Z@l$d+&W@UAZReEE4^JWd^VO4K6V%pgjB?*swVhoKw;TFK)w-`R;gt zN-?q_9IqpQQ)^L$+DACy>I>C09W4YJMahm!u{NiW(KI!GrB=0X3eC6yvLd5|TuE-t z2`-|Cfi$|r{-LA&PKRldhs;-XW%!ztGxI_ZPoKsip#j72O5ldfg-xLdJ&iaFdi48k ziRGWUia#uW$tt>;e=)o!e1j4ojri5SuJKnx7SLS#ArbU?v`;>|S;Esp#@eWVU&Thw zwP{e?Q7?`^jvq2^@>v%~EL_JxEv~j{(*esU4x0>gYua!iNgsy3IW81M60dns9Bdp| z?Zu)^u4O<$O@UQcae7k9J0s_ofndVx8{kBMqwyFDWxFbEx!Ng(ObqIfq;BNFnQD^SOuRL2j z0s-)iXDx3)Dbn=Z3-fF`Dc?oPY8oWh*R+T8!yl`;5-F;$&|33Y zx~ZrTsB?XeD1iStIW{i>rSD!I_#GAo=Wsf7xJqI;IxY9yj1(5iJGAI1%`85{x<`1#E<5Lr)5SRs-EbZ6x@t}G zw@g=wDxWaVVCmqXKze!Q>pIdxweN{2k3*j(;yJuTloUawlyY^!DFo1DrZ6%;JD+F_ zq-zCtMzuDpaE>HQIQGHplV5jWxGw|+1qCOQV|i+m*_}Or6kjEpUXk2!}oDR@Y4$ekxescQrN(mZKbF|wM~or^|lX}R4zfafDU z6lx+vNza)XUo}xbB6I;;xJAO-1PZq)EDD~4MnOOj5+_rA7lMrfsjmO7?Uwf~I~bZB zt-(gYqpz*9ottK6mjU?d9V*zt2@5@xKpsB2?0o=hkSS{z&PU2SFn-a@Aw8ItJC_3u zkQ#udd0p%N;yaV`jg$no+7SO`K+ za?J{>ANTLNwu13JcuK|5xFQOU!Ut!E)BgC)NWKE$94d604Elz-$;qix+607&%fS^u zTU}0w`+bksqI0U}S6j;*)5(pWie&-r&*}$XDy{Is6ES4aa}^Mz(4@qsLI`0glS|$# zeobnfE`TG%c>6o6T)Hm%wyeN*fMafHZ*4S|9DP=CK;xQ_{D$23p{SHdR)y|;lPC-i z+aCd-tih2x1)T^*V`3O=(cO?i!K=0|h@ra+F1{|6>M=Zu_PWDpUc^IgkEr9f9yE&`Om7>xLy9c$Jc5mfS3Myl&$HE!9^s^1D_1mn$m zEWe9nG&Wl}_`^>Q3bV4Dl_PwxD!h?W`J~62GNDh7k*o*!E0~(6S4=E72IxxM#9=}H z)9TJMfb1YMcx{LM&uMdpU!m8s9{6cu)NxR+`r;SC=SK8g3vO)nc70`B6oXmriW&Mq zXS~v{LVdFY+AEwpmAbY{Kuz5JBaT6-mn7$e!JBkU67;_TV{n6eRY)L1iCBpi7TCi3 zaW1GlqcK=@90!HknI0MOE`S@s8rcqNOW;y6(WWRWByW^HQRNahucq(f+8?!bkrS3q zmG||FO2P!phtrj4a?ah;b*dJoi|x3U42>rn*L)9!YGOW3CZa(|f?+JTSmq6~4Mn48 zao7K_3g^~Oc(fnk+dfp@#{hJoLRr}!vgzS3X)o&;X@ij@?fzOG(hf&4RV)6L)B9I4 z8ZF;sLgO956-HJa6i6}9XhrMmD=VYe2-FY?Bj|5y7GWjc>^2c;Bs3Z+E zjz{fs9iF@kK?aZvuiHLBMX9>QRO=GD0J`QCMGc#n`83_~yY;M;pqBIezTT6JD0IMI z_fnG0Uf9S%7T&X^_1FHl+qR<;E{6-TU3*p#N`Aw<$%UL?o|F8JwY<88TD%c%o1Qm*Zq0jAY~hN)3!q6+4Yj}e8?E2z|VlF>wYOSdH-eB8b|i*}P}zNN8s? zYOI0fwEJ}0PgpH$rPx?n`o)1EYJWZERf3uuwFVZ0>ZrLzv=I1tc)nYlWNW)`{`;rG z58-#lF6-5ovZ5?P)e~;J``@xxY0HUJvR=MpF{%If2_W&J_$%Ag_|DgjGOjg7(`9>p zw%+&U0Du)*I-mg)26jj|0pO4T_YihHT;=3QKr!5ljAjTA#~yFyAdCwB3gA#`k|bVf zHC_&^IwD4bu-w}%b9d%)`&gTds6z~9j^w*ExF@GrT72?c{=g4^Z*L~Fn&?XK&KXER zacX4q+j%MFxC}a`wDDqUmdM9(KP-cYyp>*DTXpkHN4_7IuHMtMxzrY;6RAiu>2XfU zdpOt-I^AAjs`x@117o6mY`8H>=jC?6JT$(W08Z|EkI|#Vp+!HGRN<8d%q0PDO`!~h zqlSh=Bs+oz1sfa8$O%1uuvg*!2R9HztBghu2W-4XK^$f-qYHUc*vP)#?rC3qEvi(; z`^VKjuU`x0l=6LI>H91+Ld%i->UP!PoD_y%Z{OLekH$R7CTBrAIuYxtF#reGn=517T z|Kraq`*_%%5XNIJ3JVhIZvg5AaAt@o17$`iiZ{ccW2i&|#0CHX2MADYr3SNJt|e?( zWo2!4(W}WWwjgE67&G;3EK>f;u#Sax;_B4(T zN_&LkKeCqz1x;yK20Ys@00n@IPsc31hD=Ync&y7XX& ztgc&e7Elt3fWWwNm=}~933`zC9ltQ6w=I&wZ{+wZIbK%JfqBIIeE~of2f*jhln8ZX z0sM<5+>M3<4LsU95NTnM1Vx-qE*Qk6XwB1218Q}>>s~ivkzwk`FM+Anc~Bl5{cmo1 zliR=IQ3VJG0aBSJ)sP-~(0JHKnQ)ept*YV%IC1&-#fWTNObp0#4Lq41*Z~`apNv-! zPwReen;oQoq7ZrAz$N)gS}8Ja7Pk46SOIJYEbN&h+<8YQ)BP*}h&Icray^?E-6wcZ z0o4S`!7Dj;y(vX~j-StTL_zHE`HYE^xeIv~78?};dYtzKAG&gMzcG|*ilId5b0#HQ za|)Qag_j=_a0Hyk6#%U{cVNJ?O_xF*s+91wLA3z<2vH}o)tRy=pi+UVw> znzMTI-^VG_gtV%hzV#J!+8@m@)T)=0NvV@dugpH%+jVa$=hQ4Rx=BDLOGv0UW1oXl z$0TBqdMB{h68zE{cXpXY=3V_Pz5)$L3Sypv+YaN{lX5c+O)NlHVjE(Qf&AMjTO$+? znkVzqqSS>TpT;xnE2;o+iHc3t$4f|!6j})g03_eCAl=;kE?|@bFf9`R#S01m{lf#% z_zoNy`}lJKHof|^Hp?67A(RL`df5W@LY%(Pb4mijfD%v;Vd7X61Hjf_IC3~W3#dwq z3XlfZ6fKV0fA5Vos}wMVF(8d%RZ361<%8poL*hH&=urYy0)Eo}O9!Cv7!@RdOj1su zY>Q`Zkeg-!?8^IsIAg9lN*p)^K+Zf4ist}zqPzD9q(ltF;Os|q%;EKDLf(%p0sxeB zNfnf|Rb(p1JxY{&4}S$W+VnhpX8|Xz6)$4g=alGRzH6)3=As722>=>Soz-xJrBRHfRny zc}xKejI&qYgrb%nJAvz>glPO@N*;8r5llVq>DnOJ#RHoF=u_68Yibk#q~7_0qC54u z(?|*{)Ck?(Oz&i~D~>?5P($BELqd5@lLwq)!y)1&_oq3vHd?)551H`d0;r<|+`OHEn>dYP$pKUWimwa7qpHT$2=u@SyH@ok z0=Z8KubAs_waN7>RmT*>G-*|O?RO{F0NntWcLAz^E=oBpv*HRLA>{e(_nCt2#S#VEqLh0!#ui8}HvU@sY(8S=rw(d9vv z^8g$`7@WdUM1g7AqMH|fdT&?XmPZ5qnX}tl&~-yxIwr879Qcp4L!!; z3FjOs3@UQ))mcOD0dp4sHzL4wjtK|BV?K6GCkF5VRG&0Zju=!aIM1Z+ta3NtEyv>t zrbnop;+qR!0XWNs)6~eFyu3hw72FFzMHFz5?*eq?fa6hMb#R}Bt?NP7H?Mb9UYVWq z8s!rY9g@$59DRW^%zyzQFdS%t_rW2r(~v z-;d^1kKL#rcrm3ov$;4J;OW4WF?-HJ1Y*`OqKme-OZO!p7*JIW8S@C9 z6y$}Lz;QN1DLoz|aLF?Hxb|3?ThQ*|%n*^wvNKBj{&kJ9v;Wpb6`k+>4iF3==9mk2 zudJmYDV39%3y>1)@|7LX zAfhw<%q z_ikdr4b2oyq#i(#qMGJ*{Wid59!dZu1yw*vk?FVDvX?7cCVzOS?LF5k)co|dTib9h zH&(MlRJ83a+|pC-ClLU*kdJF^e9-;~5>T?;!2k+DggQ^MRM}HvbakIFH^)@5Wq^;L zgTQ9s_!(O%-L*zI#!8=Ou^$JC!(P@XPGKK5o9NzN(>vwa zM?3W-k;+2*n}KpSnQ*OX$rn9q~6ukR{3I?l&d$J&_@U-}6|OC2LHkL3l4 z4M;vcz$r?|T!jG^R4D}e1ngzMzt`&(f1DRERb1i}#@W)^XMyn|Dw(%?W_P&FlDZ!~ zaobXB9tgBABsK^2A*Hg%&JRyv!DT^?3OGZ=VlT-&5cFHCiyL%M^nX0t^jPc7W!uYv zZ7IN$M3fqxKPkU7CM@KCtFz5(d1&sP^Ii7UKp(Y0KhLg5E3-MhZviT-SnN6jCqSHc zkPgeKDJyzip9ZtTa_;YAqGjH82OcpXF8J?eE!L~!heK!w>A2dwrxdm3wN{-=lZ<>8 z!q;a8GvKSv4_9J=x*$l+#;MXpdG(rb*##a^I4-$K7lz28lN@ry+{^BOBrg(?X?!L+Z9T>XdUy<8eD$cC(b3y zf77VZM&bu^su~xc;x5U1Mpv$_>vJpa;_GvWT3;IW8XaVWZw{MqwfS<%9<(mg2Xy>* z{E@tHFW%VQTj6M(s*a!<4&D)}t(P<4??B|qt(G&SLRRgkd~cU@wt@s=?$CCNcBFc7~^TKQmYsD_=lCvKwS zh%Z*=TawNGb~{N&p)p{0A!GRLyVAu%;_=It6yvm9I1}}d1&C)1RC^5iR~*hxoHdkh z-8Ac7bWN)klgi!Odr~~sXqJ^KHYGOrz~aS?5g5;_#+VeF?Q^qN!d@&_$dfuySg~jz z*`HWUFAJT6065V=n366n5HMfu(TtVZ%WY_x5PbSh=Et7xOEn+W%v{mf_qAh#!`Bx_ zBIxBk*2nxa7tLLI2Fz0HWmd20OmFZc2a}3rh6yTqfB}I^HcQnkP#MA*4STGQsywyOrnctbHLPXCC0qrw<($JCF@c-2kv=(g6}X@B-HqN;0ZZBw7g9UQP%qgsCgtNEfFfaj1+ z36?$(8LE1CBXi1$N6*36C{pg>og6XQMMXcq^)K8B(B#a(D2`-y*E6rxdoZmb_D*aS zet!pRo#~#SxG<@OJgd2mW5Dqu!!bRj%67?kw%DjeO~jqEq+6MptwhD(Z+3&7dlIp; z)p>3TQtRVR>cg_u9hM3?_0<+~OJ#HfVo~=4vtj&G(wBu|bY0jpG@VfcU9y-FUsUF( zdS;sT+lTgc+ZD+0wqdDJF8dn}35s}$jqU8!+z`1OfA@*Wv+Bcs50e#k1cw&5&ZxHk zIYY}?=>e>pZL*n?Vj3ql6OO_!-V@;%F-?!|HeF=>< z%D#`CdS#tZ*^2c3uJ`->{ht5x{5?;Z$J}$zJ?EZ#?pf}=$LN;)>T@?Y2WBn{;^541 zy}jD2l%{UKo|dQn+ZhP+tvAWV;x&UNlX`idxN==Qs1wDY7=v09mo}X^*)atao5KxC zQ&Y7{1i3&D%kRG9z2`yxbMEZkVe+d630f# z(p*v#55pN~KBf>g)vl=Xr!=L#_x0SE)WADPzxx?`c+?C^lT;jbF>?Xcs_i#);d_)nPEU=^&`WElYa!ABIbzae_5x`z!Ina3 z(Bt}~sh0Um{?%O7WM=b5BBxhLx93pCw)@}#4^BQqPE=5^_R-6lZhAJ#$RgAC&2nGO z0nddJ@xxikehs~7&#r~hluuHubv<;a{YTpxWAmMQ#LEUG24z;ZTLo`=%qqyaj&hcm zrrTtR?yU>r=d22htoc*Rrow%#s}uYWR*U<}O~20cWP8uY313#tUE=mvcR=biNm6rQ z=s1cE`zO+WU%Qa`>Rdx|+QQzQ2VASKMepi0P)6;Fqv=!ps!Gf8_~g~WSl;#bavpOe z2Zc|@78#!YZ4jiEZ*Mr( z`LQ09<*YJoS_e@Ko}GWTaT&A4k4>WW)cp7wx27+v4%+iuq(yn+(|5(nQ+fI>Nzs-2 zJb3h9FJQBxz9#OkuONF+)7gic418*CMyapU;Gq5z?Yf@vz&PP$?QL)R%oltG5_vBK z_BOnf&~{a7lA$6~ar)c_BcKyMPq5)Z*F+u4K9dBSG~HL$8_vyNpPw`(@&(->7BxJe zLx~yGo9M<0qmVBti`f`D{{A9;J+r#>S))6jkmh7C273mVAd zPNB;$aRHJzgG(H6n6jRl=gXu;z3EhHe$C+MC4FgN;r%Z#9kubYoP})f$|EVyM|NaB zy>-_z@|w2shejZhJHelo;G z4GpT5N_d72kXO&ma&7B$8WvcK&MX|e`p&DXrP-o#ghkrIVy84WWJ(fBIt|Kt-T-;z zO_H2W!Sj|%h6NEPuS3)#qGy(*KGaByIou>mu2+heyYq?TxfjU}uj)8aylD;@>~~#8 zHQZg&56zqg{i4lwzD$;n*WQT`&x?2C(h{^AcPi_JaJiNc6wi{}yUJuEO(o;Ww40Y& zmBOFeSWQ{1e=@IPuTi#JBik#LGBGONI9)uHAKN%@zo6()NMtieSyT;klQfu!l}btS zO&#sera3qXnckM)d+#}DOD?z3kIO}qr%|?Kk9SF4-n)-vO*zxccbfSJt*0~0`6w9) zLj?t59euBFDeUe#soRUq$MTltYw<~0n}3~nyiV+ZK?87GM3Zk4H{Hmq;&#V^6R@FAp>d3(KjmC1sQKa(b%KVitzp>P5O#qp$&^Xl)sc)5^Kmu9m5 z4nA_KPwg@`>@LblYgWLleW*}d%Mlcv;?nDqbXCP1JUz9)1+uf@{hBdH) z=sQHst%-pPsmRn`VifkwFi4TH3qc7)qusGDt|{y_@I-)!D?GY}?Z>up>T0icOXR0Z zI0=jzh_Aq|I@{7gh=mU(C3p zg%w4_dV%8NZA_>b48-jZzr+!znS$0*lN`A1X=sz*U$&Z?5)47rp`uqkFRkv91%`Og zYipk_5$_Aess=5BoF#;l1+KeKCCeS-yf>aDRq1o%GH5sPBnf*zrAy#zNJg^o^j?a4 zua*x5$v3~+;~WvRwg&!g5`%=e1CVe&vsn@KuHlq{D5e3EjOxTycM}ldgP@`Yd4ICq zM`83Nkr3V>AIwktHlG0E5+@`sszS;r=e&VF!!uz#bMsvdbi=0cEC7h+*RGkzu1QMy z)2PXOLKr1WS~ccE#uWG_=7ckC)a*9CypvkAaQOp>yMCM^=+h#^@vOiMIfO002AZpo}8V39Y$_;Q*-y}c>V>M-5t9NPCs z^u~OwfLFCjc%zKEnohsQM|O*pp*njrk7%!TOFpsmJT+Pz@+edn$L*M#5*>5HRsk;V+i~aS9wtRK z>itfFfoVR7g&>0&4LkiESnlK*P?`2eiGQ<0Y`p9Kl9r)n<*cO~Ba-s!4OO_~)+N~v zRfY4mbp7F_nOwuBxj?`Z=`J~ynR_L-nINf6U2CNJo2&0|?Z5xwLAK6DbG0MF3~e5> zCwkmBKGUss$$uB~^3%ePq12h|rhFs>hjWb!b7LK@8(LD=&z7m%Z>_LY?@x-(l}fQJ z*pXcZV8WLlpBglNXw0)3ui8*Qti~!QYj0eeUms6^s4W<*6z(>yU^7<&CA_9;R;e4ee3pYSP6*o6Z)6D()pZ!oa*1m59^4|P%Xs>1%h zTS=K!*$h|Z20&EEVCaJ93^hhCH-=yBjz}a20p4+mx;YOhn*Ky{U6&7!qVg`;B^91d zZCtetQZe1Nq*G6) z=6aJ5QiR4400^*vYy^WkHCqq{BsfL##<)$Fsjx9-Qc*2QS?I;HO{$FOG*k*cM_EM# z4%P`g=wz`VFz_ynu@0eH*OuH^*J3iR9V)e4qEX(EDd4_7s-CD`V^YIH4x^`1Wd?b& zGylId8FZ2-`!7v)k|>6jm4s>uI^YANuo5-oHExM_kOhfAkf3sHB!E9t!-e2W7y^70 zq(wO4VRY0GgPZ18FMC@EK*NZ#LCzttAz~^Whc=};ZHUQvmxg8hB3AZ4=Y51<^c^e)~ zo-tIfyrDdAit_4KrK5SnmB5IuP*44SOL%+FhaPw-%HyTfe~iZva=Oi zNbV~rl)YqWf>2?B3G+6ZFo5RuDM=;>1mGDG%G1lQB6*zW0fm!s0<1VGMxTP~>y7Cv zTtYGE1Pok+x0=7i0Yl&#Nv;mdW{Yj3hU-AWLQU&E=uyv}0=on|J|R>7?56qm-`8#X z!y<~H>Ijww!O%BOOMnbjK!ZAgZ5&oakoqLvv=i+n|5=6WQxVLPX0x%=M>v*C1Tuhb zYbJK6m_~z+F*-1{Vldr+@`k)VY&RXKVFnp+;w8y1KZivUs>v95u25{r&ICOM#$gOG z;bcJo1OsuHv|f2n@~MAiYL3q?2urK(Lsb zeG)xsJm}pQ2JRY(~Fi@M%eHP{V3fk7Q(3IQc zbz~RiBXeQSNt%7u!65uC0yh;9uc0?Pq{2Yy$ATxga8#Wu;{v4=Vs>u-kVa_ zbAiUa!km{)7~i+qSPnxx@d#mI=LL7jG@%k{42i<5ERFNT>(U7@n6elH9mLIVpr>VL zy@7eZ&ji6zFj)BbI53y;KQ;9i0keRiNO|58fn*e*#tK_Q4E-?G#ti;?B{#7UFbuS< z7?fA93Ww(hSuzkf;a$~`4ox0H17Z+kg%~AaP8z7Zdic(i6hvbkJj@Wr4^cxf=OA56 zgHj~W$B$x^qqs&`pc*9CTpvp1|25V? z2v8Nqh!No+oSZj+>EuEucd_$S!VtsMp}GPDw{qD&l!1Cew9fxD1i?Q#7{t>N32-)1 zXG6uD9PD0H4C+cS(kfg3u#o2(pgg&r5yJ&~#8AVAk|QrMKw^{FcnF?npd+GO?#UUK z&xCe6L&vo{0etBbwnp=rLtGpf2m_w{1_62zg9nr9@j(8=sPuf9bzdn+OlBoLIoQ`X zuPc0hHHxmOr6um1tmg?U?5aeD5y9CfycpsV;AGK3;IIPf5DbPH^+g3dda*b#n-o=e z>lwbrBC0TiF+)`Y|E+0tb+s@1{{zg3gjj_*2rw;MnmkeJ97H_(y;y}uFZXv2mj9s) z&Ckp`nD1GL<1*9=3=elE?vE091h8G0dqP}@SRlL9 zqrQ3n7jE&EkALa4TsMmg8dpU`nB4zEiK&GiA%RB*-f-5i#~{|t2nd7J7&H2R`4vZ?j=C>G?UfsB}sS;x54UXfc08sD~PX|ZjVIZ_ESlVFj*P5yiTAXpxw#$7jBeq1}L#pimL=u1^f*>SG0!eRb&jcR#g+V%;Y0KTm z!dcRVr5C_Z71O*(6=`P&%VihLn!Tveo%quP$eu&&1gT5?U0W!4oFHI;PzT!pJV^H= z`)JAzMKS%C|I)}h?(W{lth+0+3-V2Sh~A&;CUHgo7pa?(gdFZ1hGilG15v3$;CNJ6 zjiOqs@>1_)q2hh*J(q7*_}qR@#*!V~*{ z3m((R5BT9H^V5HlQ&POh?3s<8q!A-jV8HeXq$)xOjMj^+8Z~C}1qyDfq*4Q*qOlP| zh_c_jyF5GB-cF1-WGQ@0iS;U5k~vrLL{IDY0m)Miymico0k;NBtzVeVhC>9FY$3ib zh^8DR$~FUGa?ks%JJ2tvp%NAfLL%v+l&rji zz=h|RANV$%Y4(f<#7mqu3Jh=GNHUj5-+nD){j#CcbP|;VC-Be^06I(UdG~19$0JQOQ;O{Gwp2ksulbrRc|&KJ;zz^{-yirF7>)Oor@vMx zTDSoDLap7DLH-OGAKwbKA?dnwugMg|YWt#+O<;hV*f5-61Nl1*RU+~0AUBBS1Lly)(f9O>ns4X|MZMySlGDkm4 zexdwjLusbIA#w7wFMHD2*)kECm4&*H?0Ea(JMkRZkUG-vpd@i-C<_Xs2sVX3!H6}y zAE=Q>LWLG-WxwCa82K%^VV&kYKWyR?%Trd!FSpGaEoFa@?rG;_g<)J zUjDg3bczyJI2kr>WGlR(qt=3TSgWqU%Cp-jYT3IUV=@uK>1Ss@dMBxQAFzjN%^eKq^TI$fGt1Yu+*&WCt+IxLS z{`co0p_`Pfvib#i45DhXe0OQ3w?{N>(Z#f0*1gH0z%zO`#WdGx?A&=-9d4OG7m6`j zS2;#sjD_`O1mhHqveGqsO9c5Ku}-2-a;Mv_bY{EO2KyyaB|+@{<}SrZ{>h72H}hTa z+#X0Ep~SDLrImWP84R77|UlO6qaCZF1e$Wo3;*ErB%mL4Vn4 zX?1q&u*7w-RrH8Mnje{o4N*jQ3BqaBNE(dZNmMsi?i$Ud_)jVd!!kWh>v-G}nfBnF z%Bq_)1HLzA^yX$#h65#R>hR2-PLes76)_rU-Rq=M(%6t|NNXcHz*-=>LU>tWF^7{oy<{({Xot=80`NJ zm;GX-TbxLdKitz%ok)(!An{~AjUA=Py-V5i-61c`{lf3y$5|W#eTi5JJn`DwzSV(= z36&^O&21!_8%Z4-9O6tt78E~jB0j3glHiiHuOnKU6_gi>&+4Vrkn6lNS?#0L-IW&r+9mO>GF`K);vtWG%DIytg+!bTvbS< zhWJ^TI5C*qWZq<^?ViS!+mkNmv?^BN-IhVrCpG!`B z+D|lyPWkK#PQRDN zZND!@`ZqFUOqS*Lt^bK7m%EFXZO%KSy{z-IFqiXcQIjRHH(Zl(KW$c3>Qjf1-5vdH z`gLvivS12X)YOYzs-I>z*tQf!T9V?M7oC+h?}4R%^_qx!^5wkr`|rDcRUcVo^aRE0 zd?s^I-3DvRLl^4hD9^=g0{-mj-mu1D$&vB0yK}2OEk;I|SY9wp(~`tX{4@=Wf*K|n z=!my+Nx9~C2FqaS8e^) zy=?IDQn`F~UG_)wGTw{+QfZ=Ntzgp<8+@LxMxemKkWtUX57lU#S_(@~;$1J#K(8*d zmLztkd`iOeW243@?i9U}zv=1oxk7UZKw^u5tntf9E`D&UrRZgLqH%q zlwBd2D_3jUOU;GFUNns|W*O!`xcg9PlB@l-KzKr?*-9M| zTcyh-z1nA#FpC-1%#DpfCCSZ~d?oyQCwCx-xL`2^ZX%2x@8!UJJg2 z-7X%AZ~mz8NXU(q(S?89?tw;WNlkh~@{pFt3xOe7JkeAyCdFW5b-;EEGkksUGcY)M zB`ZY}(bnSY$fjx*nkLGP56y2FxcWns#eXvtG+Pq{HUck&Pgqb(9b7+J){7!Wihf_VD(e`-Mw_Zf*yzp8 zHv-TJrqIVsPP^CM+rnj<&q#joU;du05}_1h0O6{cqr_N zE<;rBJ}9b`?IBqa8&NG<4**)v(UT)?F*b5lj~Mw((zFEY!pL|hn3D<{@sbVphmD-hE5DVlASl}(;)6{ ztaa}czvjN$631H&)YzbF6HAn*WW9s;j`!Ew4L8d^KD;L`8|A7}=WN2H^wGua?(Q-= zy;f&f+wY_^IvtkK7vf)wR`Y|C0{q;b;N%9Mn$1uI%kB5<1?`$gKaDzwM4P^teSw!j z75E)yx_W5o5kE}OXP{3lVa=AXW3i3q98x^p@h~Vm9!ga05v;R~HN7gAfG6%#_)#Cj z?bdl4(?(u|B^8uK3wq2A)c1S;(^R7`r(iBI6n>}vW!)pT5nnWpjbii?T$WPFwUh46zvJjhVK$Us#-SGX{R3&^> zU)8`#)*QRiG$z{+rD7_Std$!I=?M$*<*7C@maRM};w{Cq!#hUL)_Y=_$D=$`yt+!u zyq1O5LtbmAdzd?|YlP@c-*tJ{y{YX@xw|Dlz)_>@IX)ML0dcA#{^B&Y#Je?4P8v?* zu^eK`8wH%G(q_H|$5|%B#{DH>H=&~Xd8{t0a$fzPpBRB3XXW%68jzEYF#N37UPsQ}V!W+u1M)xl83$t}^-&ovCV1oXbE z`85hp0A!}sZPg*|#_ITj8!H5GY;-*bf=)l}LV!r7{YELPr^{&WU;rxZJ#V7dGSfy8 zfThZqc#>4sjB$1*?*%WML-MkM+fxS~924D8KZ=P|Nd_PZbISKKnj zCrSVyv`V~v{vE)X{=17oqQZhN@%aT`;B4|xvcbvEb8Vv7+Jv;C@m{BmHZzlqxdAk) z%q0Vx4FFHg^58!=jebjBO<=I_+glYWIVal%P|7(X!SPK3%xT=vNMBQABcj}Y&<`cY z&Gjhy!3i9VPm%(DhrH|cCf!OoDe;(F0DI+>3ix6n2yn>W1g36|vNe}#$E#U(*U0q` zHZ};GOkh>>K?|D(1@}n{nq9Atith$Fq-1dwW+g>KnF0{Rp|!>WQGa0Lo8@wv=UCNDa1GM!uy^;hl|1(k~B**Clc~E`Q3M*GVCXT%rpG4Am>)!=!K3sTf2e)P_oB6eI?BvFt%4 zBk6((DcOSjf%r?dO|voP4#d-j0N7xu$EkP1B*mwOkNN~UH-QhCK0AS^MDQnXtOD(0 zT5`&FUZ!N(r9Om(FPID9HI>6Tex|7xyZRcP*gGMSfgeFCAqfzaUCj_Gh%I4asnSEe znoRfV#+PLKR!x>PnlF3lvzw&$W^>~7lg;fHQsuiI%!{!nVuz4h}MR0IomB8?H&HAFdaRU;*Q0(6!gl zg@TkEc|v42J)fI7V0G9B*2a_PY7_OWmkWGiF6jwt#07Zo1e=R0Avqpo=O9Iq5WGml z)|7>X!MGO1h{~M20nj|bKgW6BH~rJjd|BwkQ~&?gnS(~5CPLe zaL~Via{2PfoAwXh@Ka=0OaAeSGkp1lbgIe}9dqs*I)NIg!u8d3HUb6{n%wcniP}~R?(u2xa$K|VgijcZ5*I!Hnq?R?=cWkCtJ1N zp=?NDO?k#DF5e~rKajx_qjo1Pszw&6pV zYH1lZe%i9@MHvNr9U_9&{{@3XRMe~pHWqdoxkS-x=D}F3|IvEOzhPsE0+Z?fE@R*WcJX>~abNxR*&4F^R{_A-wkbcd62@Ff$MT zy5(|A8~yv%o2b28dP;K_&9~@Xg1hiHzso0Xx$Ga^%u!^H-lq*{W)!bE?@O=tA)J}U zuJPu=D4sG#7P+HK+J4$o_s)j2?GJ{sZAmfr+oOz4ZtNZ^TparIFZ4hE7XRnh-`DqY z=lp*>=Ju~eaZ_fH}&epdthO=Ww9zN90_D&_&s{SY@;wsGX zlyM=8AUW#wv0}`vfbD>Wsp-Ym%0`dlqXV&7+wJy@z?bt!vYcU7WhOE1|3c>?Hi}9M z*eclz^+-&CK}Omca=3??-~49VK@p`oqT_3-Z!7KVB_vU7;BP#dKF07)&({F7sYq!YEHav5vnf?ZfV`UCG1Rghg zZ_c`x8vL-m-g#<@&&`^i6ijz{5X>=lGUW3$bH`{LHW*q!6LH0cVF?c~r_0FucH zogg_sAOm&30mJ&duWjz1y;*aF2x}m1KQqUzpMdLSw!F-K^xR^;=wkRC2@LDX+Ho!I zN-u55Ur%as%To8B_v`r=WJuq-6E!X;$tx{JZ&$g_H;bZ*zcV5*B)Q%7vBHYd!qUPD zGH&w$7RL>vZ(9kw9(?XGPIMlg;x5&npWVZQHxV#A3C zN3J;R^}w^6Qy0tsCL(Gr#J6Yt!==PF4;T|Z+%oT!AyrjQ4O+P0(qF|+#xW`?Tb#Lm znAJA87~WIQ&oc1q3WXF$J2k+3bCdL~%C&Q_U*MJh_^+5ZOL7Cp!Z#Nu{ig%1%F=H| z|5cXxh2OjAfBE()Md?!v$dHX&xA(z%bOg1nna?+CHJ@c|=Gr0~AOb5hmb-`KC`tRB4jOHV%#M9cV zu3u8!Ot-)7pXEu2IR;0e9qFDi4Lz(Ve-Ea-X>a(@&8D5&@uUBRj;=zEzyjvxd#AIP z=J;Oo$F-J!t2J)b+ICNK&UUVRMEd5--{9KSne?r|E%4Mds>=Gf&qsgBzba)X?c6_S z1fpaAg|IK4S$cFGg|j4D%7)cG?sogh+B$FRXmk5>WtFk4-_&)N?dmN4{Y}!AD7h)@ zL2*c0XIcyLqMi@6q7~>p1hx zpH@PFug{yC-MGv(lj&v~tGIcN)w)z?}cAB&pC*<53+ivEJJymOg=o9KP}|Ga(9mh) z^Nt;Fg>?Ps>nl9_UtB&|~!8v_kX2 zH{%BD`DQllBX7iOPsf_p$~HU^zZV&1QAzSkKu5NL`ZsMQ*FxWlW&h=h?Hz!BRgb>B zBQcr7F;}?u)Xo1pD5~)Ik4%+RKl7xg?YAm-t4f*2_D4SZjErdk3qw}^V#J1bv}NN{ z1L1T2?$4t-E9_Ye3d_XnWL9%@plJ(miL#ybZo!}Hj6~yHv&BiRjld7nesgDTuioyw z1D@g${F7|2LLc@ zlR$gykz49N9Jvkl`Rw~EWOh1KP6N4_ox2P;c>iJ9m9nw5U52m=RbZR&qdfd$2+=2?fuPg4g!9|}X^YW`)gPo#l+3~8QCSRl*UBsm0S5`Y|x+{R`NC)P19S1bJs32Hj#oqPCE=*)9`y>9zMULXv3Vt@wC z=9IF}?!pkT96Z{d3kf`6@gc=kPaBP;nFlqro}HECA^o16s`sXK=mxgQyZ2wCLTdTn zJ)TYT=UTQwSANK%K@lTe-`NrgzfnNP&Me^*qo|?~8J~#G_bSM&ERqc&7YaJhp#On- zC;V=ukF1|r%OV(S_gtHG&v;m4{Khf~J#_H)yUi3&-?1toa4hEPgM~meNU_MgM;f@+qP59M%3rGJ%O3E6acIRe{bcLjzq=> z2c%eS=W?T@*Y=BK zK|}b=KM5DLa4G?T6%Wg@VQ~Do@K~|AkcX%^z1`2i4@tzo1w5oG{WtDC#hr#83sIqV zd1VU^h`)4~{CAqqT>sH`D&>UeMXTSiY`L&C4j~7`O#CGNt z^K3x#fw-CU0jYDB^)mra8NLG6GT4SHb}8irb-!>w9ZYZ0kRCpJ8}$a3-1^EVh{I)2 zUW~N;xFK-<1rX9VH=S>}>@W0y4Zfke?_a3MmhrfI$;I>1Ku2eQVHByQvC_|(9!Qs#*&~~ zI{2$d`7@T^wWs2A7l(hNuuWCb6DC>-lh|%X)|Be9KSD<-E|D7@9v=lCw*X5H$R-iG z{{|u#)DiIvELSi=%9QfDiu|rG(V{7ON!by|V7eA+NaK8Y?!w=}<0EfTXD)AhWkn#| zlarLkb$e9*LeZey-)m3jCjHh@4K3%w-OHEsc%px;v{UP>2uu67=6E0$CLj0uOlMS+ z|Aj0)w*4&5v>CSfe2#u%yPNK|^w(YW?WoABtiC^sgCd;NsK+t*gIT%ym4oW#BXsT( zK0VAg@GJjp{BI6jb90khso!j@7tWor3~8rYYcrx=jQ(4|Chul>{DCyuPD{{8)5g?2 z^fbI@<#NB3`j^{TF}w9Qajt?&HXbvt%oJSwr~b<9&R?liy#F%P#57G-uqT}lh%O+W zGFkL6JEXf7(#e5SGjNx`cMJH>T5=AT$Vt>pC@I`P6wDjk~|MiRcwHVuyqf zzxUtzu3)D9-EaN;VB^-H6*6Sc#?e%SCG&(|A*3yy#A5ocKc1FR)V1U1{74rEB}Q9F zcp09HoQ@lB@4nW1eKT!w*58pMpdY%;Q(qZ&@%FAjWI)8#T$0=^qn(O z5&oR`xWh4+$t~&+Q;0UzxH~udC=N|-bk#gDU-zsulx})&S2Fm8*~y}N&#@gIdhHz^ z2ev*0o{1NM8A8wxBQY76w8awx0Qf-*e-=+U+H~aBu^_?uvuwF_WkL|JrGPFcLB|%% ze|3?AvwvP*={}%#G!P70_#=6!OjWH(u61yo522Fm=uXah<;-fo=|mrRTu-mi>C*dK z;vbbCt$okT|JrmW@cw9-?+oCTxJTm(w+bB~MQ+_j6&b@Xi)q-oFQG2=v^5<_|Nj3`{hXIKJ?D84Gu8d%M;-N!jx|+(jRf0_1l0cK1TR4|hbqZNIrg z^u6BB_>j(+Zjs!(t z!1e`r=RqK*bh`~QME}BV-LGl+^Zp`b;a^}UGmDm7(Ya;*d*NWJ;qkY>BMz>!Cwq`{ z*YE(@UWcV0^~;`4-q?vb?#MKUrZI zj9)K0Wp8NhYI+>BPp9Z@%#~>Jt?YHnX00t5!IyUR@^=(=GMoX}-u~ZLYx?+LFxtl- zIYv*GE)f@N*4_qG7}z?&e}y_!KAVfJE?e|K@ojL36M&uke(J&*o9=rBO)*N;EJ|OM zuKsD5ZJ5YWQQEC${u}-u$g&D+<1fG@uIN#a@B?|-4Jk+m}& z8E1?$u4PaR`?4mr6fk#;@1@7tTHcX3U$#HtClSt!eDY}I=`@uvscInn;8bwlcf~wW zOP%qkA~QCVg&z((4?>G`M8o_jCocMA`Af0cmj9)7%3DoG-kGhd?-G|kBJwGvyOBQQ z1`pr^t^Z-#&HaVX=l#4m54)@@gMfKfSJ5$Td%gR+Lv^!x;&_#6$S1<&Z_wd(MSe_R zS8E?>8>oowxp#rU-#-za`Fd5?E>ccIwLhrXP@mQ=Ha9gXZN1DGvM<9btGcNB`4TFRWBh3sM`v&4yHIrs zDP;O>JoxeMa_2AHU5kZ}4TmcK{0sRs&u{G?1+;8Gs(r^_Wq<9PUgawiCq07c+4D=N zRjMOkg)37V&~cY%-<-O+aM0R4^}X|AyS@tEuL~S8Wzlk^{uk1!3@pI^@i`G4AOJ00 zNBj0hpt52+@Y($rUADSSRaPh$N~sPU3@><;R$O4acQ^ZsI5OLSTg%jH>@}%0NAkz@ zFSnjnSJ{6&qK`b!;u`6|jNZFYrE@{%OZuW!1#jLT zncq~N#!eNc2rZSsdW}m6Ee9rvv^_?x_zF1NJtDe-2*mH1;dyr&Wf?Lps%qXTJdqtED<*L~Jvr43oK?Lgn8qD^FB_!m0$JL|^9@%#5H zirB%Dcqdp(Q&%yt)E#~cgu<1$=#U|8!A5`6EdLzTSl0Kg_iTRKUTi&?_I)4l!JlYW zS3A8J&_`$591qcxz71@-wTB@B6s#Nqk2Yr=)=a15af5Zt!8yW$w#7HUv@XrM20FEOlJo%4!iVCuvxQ9XI73#aTj_xB6G5S>A7mdCA+ zXPXc#DRt=h!&y-UR!)ZG%SAdZbd=olG#9gN#-i5u9;$Wy#piQ{{fL!sitKXAezG{G zDRpOx4|>}j?04*9aF1WEEz>HLxnCHC z2&?%1{>kvijQ9w_c4J@zAlX`fCT`Exg-Uogx-1+3Veg8%Vdqp;HMMc^EZ7;+rbU;K zuZ<>klW+Wd*eq$h{L|>_;qCp+*0cQFqICr=`7;#J9PYiGmn3IcRloJA3zB92BEho7 z3RVmh3toBg<2xL@UK|hN^FgQi`YM7C#Hz>ng;OOLpRzr_S$#nB9?^3+(zpaF}X1 z9TLuCd+TZN)9vo59K@>+)BF*4^E+y(dI%TcMqdLw0rAgtfjQI`vZk1NoM{3~-7bfK zfuglLEJ~kw9{%c|qY#a+@^k1;HF&gb+ckWCvN-bgLhs^TnQCc;9$v=)W1$PYXM(4d zLC$_%-GEK-Z!kObT~(qFNz}#A{=9;(l#WtL4it;}{A5V3{EU`<6z0+v*U4GN}xOnF=LHTM(x2EF#u@k-inug9QP4A6$CpF6x$xjQ+ zlb74mLbqMG;4Adi{STU5UI%~v_JpOuav~XdxZ3}_{n<;UUv7gSbn6D7J!>6pluN?= zp2-=M0O_}!y?e6%@2l0!T&zE6>56_Gn;5>(w``~9ZGQkA_giHvh8hQl6}$_a&tb5N z=BQ-rs0&R~q}so5r;)t-sM_D>n+=VWFS+1Pgv~GZ^T`&xR`QRtG=IVwncVN)H!3Z7 z@8m|wMeklNHrEQ-U33Wy*?O8RzYo>~OTdA(WaL%Nc%jJT&jII5=<+?T=2XY4C|}}} zFUl&4&*Bz}54$$fLN?T3vw)x$Wt+*UYq z`O~jg5Qi^F$F#rqo=CjCy=%-jAmUW#h%1i?W;^}&WkB|e*0Yv+{#A*2ch_(nk%x%t3Z4qnD%Bf z{KNYNkGtx#+Xw!ng>C2jdr=YoE?mg60MToY(yBrXBxz!BgAt1Ap&xgAf|ljK-v0Vq z;zcSI7DD`}=Vvum1+<^BNj&=MEBUjoh(E@lG1#@OQeo;`o) z|0SAN%3CAEpX#bY9hNS!j^7v6VAocm-XA0|AQkc*=w_iyNTY6I?aPS3Zh4^+mMdijEZ3C7->T(1 zsq*>qn`}wf#O;5&87_$kXRm!_`P~YB@$5p+k9QgwWkv1#L+PPF*MF0z9Q$;KOFgol zR3(ata2A&&++luzFB>@@VBJCpz*q224l7CO{_wI+y}$B|$w@*_@n|};{a5muu=-HY z=K?M@+%XvZ~ssGGpsLi*6Ioe~hxFz+oBe5za!&AX}U8 zsN_aRkm-XztDNqJ}A-kMQ1h&+c)MzdJ*Qt992(o>u{yun#gT9=?urlvDKRk-%E zXQq29+#oE*S5YdY!u%0!aBi!ymT%AVt-HDZ1(=AeIk4OBhJP*m?Y50`sF^tv>#bJ( z*7IsewFZs2vvfY83S^16s*cDL*A;2UfrTBQEqzKXV93+%lf4_h&pn1eMqN z4a$DJ(faA#LdE^JBQIS{OS>L~wDD+i1YxfY2hbn6*?|OFAZ@TqkLHJ(jSth)w=VNu z3);P2r2G5Lc#s%++9i~R5u>#0>xc}ldXSkw)hXRG6JYSyg#Y&~7k+Zf3?CieK=A#H zkYiBUIy?XrP$3w(*?Tb6<{<>B=IVzT{M4Wn7*Pq)=LjMKvGh}(%19Nfu zSU7WiYx@&No4emn3>cYE3>Pz!`6sc_Ev!b%QSV78ixf*4eVsB+}^nD z4a!49eUq*V4#Aw0pw{>`b3D1AiDIt2M|sP5)%TW-h_&QsM9lAAbX0-dzfi>M@;}U% zyS68Ui1NuA@T(7pusf~wf5UxFncWIcWcjwyTOwQ*pjmZ+?PF83^bOi>Wy-ty#D$g4 z6U!;^?~p?!sj#r(#BnbfxO43)f!5ozlRB>gwpoJ8^QBZ2NDvoH)`gvtXAY?E|m+XdevxzYLrLNKiG* zZUXDP;9uxj>-;8Adw;>Fck^2ZAUL_`7WgH!TJ%b@Npi26HIACg&JCTpGUV`osCo}@ zs{c29{Mah8cN}}miYOc-L?qdJk2$Kg;oyVtpDX5J=mc5%gW(ziUWB!IGjv2cS`CgUSZJ1A< zqikV3~xp7qP79H7(!{15MgPX zZ+Z4jv$>J#1Q*v4RK_#Rme`e!1|27di*k<0bJ8PQjWWNHpuGyl%i~fCvT|vEGx|5f z5Z^=l}d<;lABA+_7SQkc1>C5up`)}@5nVI=Nck+G3FOAiA&hnC3N%>7g+tjI%VO%?xf_W;Y+Y=&3oV}c4xhBK(rka(p#3gBgx|Sze*_G zcTPRGomzLzg7!Q)O!qtoQvU|995INL+Imc(%A*Jbn?Qeo_cl2v?N)_%A0B{v%F9kz zp5KeXMQl?uu-GXWB z)gwQ6A#p&aUScp=Swq|diPw3(H6^3*lYHG5RfzgMwY(vdIFSqZ6YdV|g^^g_)~6S7 z=82VD@6|TVLVh3A=hXI=C?T(H;Pogc)=U5GBxRd;Y1V z`Td()+u*NiCglY;=+f~KxacM(e$}#KacG5dfdOF^{+8xno6znihsiW zallv>jLB^5$*`#@F&Edsz+SXslyBA9NC#bOV1HKtzJ!pLuKF?KeWcMZ_^J+VNRIRN z6Z%HGHUh#0q`P_V?EF%Q8(shTLkfl;u z(rD$35^~_2T|;DJM7hJvq4gJb@1_D*Om{wY7G2gTF%vZ+Lc+Be9)ot`tSA4kKQ%w< z`gFEc}J4p9Rdr^D4xdn&y*0sy!zm8P{MYRW0BLU5~{UqQ6L~36&3(ZQ{3tpyW zzNetT#*%+e?q$;<*8WvVx$Dh`)^k#mI+h+L6h0$55~RsDS#tB<@F{Z4Gw^qFU~|eL zlI~TX!h?ah$r=N=(-Q_Bzdg{i3v}%MtHvhAwCcl5QtDf_+1f!%%osp30Vgkg{TY(* z!eeTs)HX^LE-lWM`a#^um+TJz^07bBS#>#Bm|Cuj1iW7zAxRT41fY%13#~Q(Gx;-C z^68+%>7A(czn(~^PBynFir*tS&oglp%GC;4I7$^hfM8Lshd_0)BlSvjj^~$reZRrx zhNy|+?W$e8w>sL=_7(hsFiJhZa_W*B=})NR`N|1>ip+cSDvJQ>$1St4=sOBnBYU;J zX0;1@ipn3!&1-l_J>Q<-R0=N2+^0_&KDqH>hFin94hqbc63g!J3xY@jMoI|B*+oO$71_49kw)gx|=f*1a7cma~eamu-BI^|^_Zl51*YH}K3Dr)E=rnZAbRo%mL z7S9B-9C}9LmezdB(3?^2Y*zipBOl(LnpV6Mj30E%g9KgCV(nGwmY802T?J1z z{EuU3-vM+{G|3AN<%t)Q6C!xj%Nc6xNAKnJk~W^>f>aQ?*YLpB!UJ1oNgDH3rRbNT znCUCZ+qsw|Dp2neIGFhz(@`(ErJRbr<<&PC&j%7Uo-XT-{G?;si6+ge+$*Ox((T_3cK4ZxpznfLzv<-5c~3qP}SqSK$$4+L`6M;|)hUqjMSLztB&8lt!jTQr#j(113) zRo@=7J}za`si2gINKT65?OQuU{&;~x>F@YwQt56RU=IeJu(7vf%KCe#N0PM#c?b;I z63h&!#mE3#XKATNbLh1+;WDx~+grc&Nk)9==C2wiBS|ND^VnhxPPONz{){f=VWvn0 zSpo*~Wof?VmS2~HnA}TwrTHok5jB#rGX@nI) zz_0pg$;P|BCeGg&$F1UZFhh)b;mh1VIxnK&-A#aiUu^>&;Uqto*AMJQ6TcS0(HxaA zG4lCo8mOV42Hu4f{J9RFKF^+&7h#Iiv2% zQb|PQPyXD6E<4_JFN->|Nd7jX`q^Fd;_(SD(v`yP%t3(MQ*wUt-7l!OH;;BM9dFt2 zukf1UkBW4t$qI?2?Wv-h?tUW0hf6avHN6tZql5+TKoD#eKW+ImH@d@dYF0nVHjXX@ zeVz1*Hx%>k5M}@1zZSsxw>jZrQwBxdC4KH-(}A~GA%lVzUaIuJi-bT`PyZNB-xJtp zJn&>3b~jflTnb(Vm!o??6~zUc@%v=H#?=`kB|bDxYw+l9!IcsklHTBulM)k{jy} z_GC5Q$dE1Or*aeNhRmiwk?}%MghT6tFpeg}wjjwKy3$aKr47pqxB|S)>VZYL$wzt~ zhNql5a&2ko2ZK?onK2{ZZJq4i^x<`1MSCAh4S1@yAKRUoUW73Q9>UbmQxnHanWTy1 zFTY`E=$0`1V`ExXVZ)B->FRO3iF;Mc$8)LR z9a_E(10{Bv3`##UiTkzZ%(SLc#6m=*1@I#t;!ie&*VkxwsQ6?)0)-+Eq@~itV?(b+e(z_Yk5s^EMPUtm9R$7`LCyF~h@E8N85GyRTC1NlZi&pS&b z7`bEUCnD%LDIv~golI=R4dc(wG#wj}-)v}oRaK9SW z%p9kbZ4m@~!76aYAQJ^0&z4U}9mF_U_fOsz5`ZkaZ7fo_FXmg6JiAwRWcwUV#E)%q zUoH^NS1x9#C8hX36BEdbNK6Aa9x7gG=c6_{d4aYq68j%VT-ZmQyyoo_4%V;%$3I2CQ?fA+JIn5J;=;B*xSr& zv)s5L%G6bV0;D$IIt6GMGj{~}oRHIWp67q)XggsR4Bh=@-^)&s`7Kcp^dKX~vCz+9 zv9bgZTOYI-bBFa>#lA?yj?}6>o~fOdNRc4jB!51zICy4?rsOs0y@mu0=9WnNd8>_p zf&(w2fAF-TUFFNc=<={KHK8-xw|nH>cP8P*<%Uk5R9HKX2Qxa)j-c7Vi^hRXOqTkY z0=($Er(Je%?yo1`3WIOTo-jtPG_}rhmnvsFVF=zlIFqVz%2(8R|d;P;-4(Md61t5!q! z3@CT)CuWzz8_HSZsjKRISq)xdJN%0Hc=C4UWiSu%|1-+3Tb%Gkjw0w@o$ttCGYF-{ z4L+755Gv|cj1U(aQ8xE>`>c&o9DouCAes_#C0kiQ_kfBrm%i!)mkgetVq&m2W}e!3 ztV|5qK4T1HAZ?qCW9Jb6Ty^r~01Ccc>O;FPhXd87)D$e1LGcQ-V>?Bd9hWk_X$3I1 z`&HuC;UHE7lcS4Ii05P68K!uciZ<0-)S^P;u}FMa1IpD@zNP98Hd z*QD`{(}rjklopeJ@cUbq0~TzoK)U78nXnW!3@3u>5Vj~dEN5P7>H!*f6%mkwPiGw| z6$!U)Ec)=zBIwuKpqurWi}(zjLJmPG$rGsa)hRG4^hGuV5@5@Dkmu(cFj+`M`2>B7 zH4b0UEE1usHlTlAnJJ5!tiFl@9pxEz2;^^b&-=0yy4M!)ITu82LqY!3$f?WvO8h3yL8L2EBT z-~XOnsN-F0sp2Mc+v2bcA|o>&imN47w`9Xc*QE}_3BZr<$?J*#-$oQ(Lp%X~36L}V z8y9~o2k*@OL$)f$sjW<4cW9K40;To^wVa53sSmsR?pM&V36ZQ_d^alhLZ1G8;wIim zxpC=>+;Q&P6V-Txf+1qsd9NoMZg3_O04!b*^+F#BB%u`(&IB0l1(w2l&jV57@H?L| zRuhPQexk+k&95-=k$!$88z$*=Q3*IY2jk-yru)`Pb*pQkp zye|DtChu0IpVnRHpEV2wwmzu|X;5h3mek7S9s~6Vida6dJr4Uv7_6gkNz;cNuFrry zbq%4?zl=%t!`Lv&m`Q;N^+p z{%8}v1STT{1LSU3s_=alQ1YXG{w;5fsj1#5Uo;Dfp-o>ndpld}GykxrvZS;${gm!< z+qQ9G?=-^G-Gp6$QT7qH+a~S}1H5{wESDqu1&;_VEbHteHSbh(L*@;&uiQx0ZM!Vf zt!SuOW0L0v>1cj*)B5nf0~nnEokIeUKV%+FV^%j#e6l;8xkDZ}{Eg9XPi%$1|GrS& zCxR~rR?E>ZsM%iToDzGy$mt>|ovXD+4P?xnq5pH8O%EI)F%Uo=1z$wh5d5cR1iQ%Z zp6PQ7yEhebmF{o$nV}eSYyk9pnoXPZ3nCuaq5!ndv}R=hxrm&1-J~|Q72mv7rcmxg zE6p9W-2-L2mrD1`Q7KX(Uinx2@l;q>bn4RQfF;X#{-8=vP__-@oL80(`E~XZkIPYg zjGrM9MGvrnFEme=bGtG!gf+3DZh>89a$4E~-B)k(2NX<>uOT|eYiq7V2WS5hFAu>c zOng853ZNgshN4-HdFjw9a_ z;lW?%WjHDf6^jZ-#a#7VL(CTht|8MzDOoAkkR90Z%38-d%R20W=rZ)G72WEEyoQ)u zL&~oqfL*q&H~>3Fo-bVLqI6L@SA|{~=&WnVb14;{=TgtEA$d@C7%PnJ8ZyS;=XJ*G^9p4T%F4rlXuoiF6#Rqzp_d|d@RX#OVfEYzD3`D)~wNHLz?F2(5o=q>p z7Ox?#&+$k@!-ZZ+z|fJAtRTfrFARb}O{+^liI#Q4eL?*dL?!)yVY7*Po*HpSGN7|U z%xP&Nndpk-oEm=TiVr@FG-~8uh8gtq9jN+L-hgPww9Vi_$^pDqq64%N;LJ|8_|cT- zU#0KPB7J@VqJpPn%fj2nbK1kUE7p!n)<9&-)n{GG9DSlnV?UqtbC-MW&|Cj#I78@# z|GxgoV}1j8jsakg;NddVZ~g(;~*JaCsBVa%vYj5}^S|#E4 zBBIcl;U~lp32gpC-1_Z+a`);Q z(z|dCp)-;OtoN_06KRq>CjXe=TN+?RZ$Lw?sT?_AEx-|{#wGy`_=c)>(>h4|Z`rp2 z@e7bY5#z5#-Us_qYVAL*c$j(e#{_BV2sjF^o~eTNG{*O0G(pMKT4 zb`9D3q+V}wftPA*9GULwyU8GT6{Ss9@urxfhaTRUI;5Xgh3OqctSX^orN^~ z^To1sc_%_RrpNRW?_%d4n9Ya@fdmdGTtfns0IfR2mgp)O+(%izj zPx=88YZu%uaBg3}26`3A3$zdSW_FH-kMhxRu^kaM91uOR-wzpAG>p#=GEQw#_#d-+ zu;`DVrvpzmgeZbp=mn7va5K07rt~iIpbd9q{(aWZ)Ss5L3x}JM%hcU3@Nq`HM zzCa{^3&Z;OQ#)2FZXC88!0CyYL8{+-=Ni(+QuYn>C$UcnbRVwNH^=K4Y=4D}9D2cD z_8oS#Otike;U9sx2EMIkVS_(T?yj$212vD)O#)f2nd1aV_sVAr%ciiReF?{bF09|k z$81Dr1W@0275Uqg-|kFID88uC8CDBc$?#phGFiJ)$#9HSQED$Z1g9_2Df-4hl)1Ts?57n&n?9k8}1GC26Pj5G)kXaGzrchY~QbuCh}LC*L|DmVRb$n)>%e zpr8#a{*zMv=h9y8Akw$=&eJ|%Gcer&C<1*Ew(kKpbep9-%I8s9+Qqg47aAYs$0Tp= z=y?IGK<_!BZgd^Cg#Y#pe9Nz1(ID~m7JJ`nZs_e+sG^UihS8&D7|#T56#?_vqF!9~ ztV&%&STo!#?!8DnmlS^*8+U8NrafP^fae@pa9&l8f^=m;dEa`it?T$xY6;p9i94Ac zsEpz$gPM)IxVX6NWd&(!_u#=sMA9WTnW!^nZ^9#UkG0P-$HX2|#Nk;YvL@;&U*oa0 zi7oFcc)9c6)SQllv=7wtXo1QaE{zWxLJpomcirDAYMjTzC_lg$99O2iB)qh-^V{ zkKl9g-&{lf;;opV%Fzo~j@J-TAMtC*C+NLv$gnTi_rF=F@92#y*K3F*_!tQMh@!6{ z8@_)RPz&hOE6;0)gvV#?7Rmto_d5)3<*X-!wH3N|Z;lUZy{qlFX&PPnp_BXfvTPcE z-fNzr-aUnSCoec%Hrmk~3U*^)mtmCjRCsKx9Q6Y|TOd&a2mW8-bmRDM+~mJJ1l)shgcdqn7LlA^Vyour*!XkGbH4k1 zjCr^&&U^pQc|a}2o}&gBDMz1wf1KJD;j^OkkK{UjpH2xF=WV7Jf!!bteIrAc#gbu1 z{N!&c@dF0&vHiF{g>wlMc}Es~1jx0>cv>U4Q^vw2zSx>2dPw0PVs=GPT6G_&tZ*<( z90>XZ+)5Fvv@Ekxd1}K?N)}scrK4`jtr)lRu!k_BpGQS0i{NPjvkTeEs4swP%tELS ze?OZ7=^6md8GugW7UK~7Knm|7jH#Uy-B;5_Hhf`M>s~uwlO8d3GCy|>3GRm;IR54M zCj52gQpv*%b6bCW>Ln078ND?Aof3)LM6#G=-Sg`MbU)J|!>`Pu8Ldneg9EJlHAtfkpo|B*8MNAPs%QnT_c!-{ z+AKt(L7jUasY*)N0omkETzLodvC%@Y!`&I{McQyK!CCbvco9hV_;ApJ|qA0SYPE{+WbG z1#)wxXfrZXDypY{d3}Vu+F=Km^9m(9{AHs!$#b;V2j>bIs$s*j2c%>F*&N5<6=JRyEwjSu zvV1lopE&rgYcO{>L5IRhu`P6yF@o~eM`#yWM5_Ivm!X%T$g)p%c%pz@|GI7up}2>C zwOwTT0*yNSNW5GwME^>d3}eJbGwv61hlYQ0$MU5Q=sMhdn_kCgg^7$l&(qb zly~jIwBF%I{<)aNIMefhyJ#9DF8&h~!AgN?ua{L<6gGGr7&y_eAAN^35mMq*-J0v{ zPdu3WtvJH%viCc<56#Z;E1&WRt&nhMJafr@w~Vg-bW~}r(hF*R3zG%q2HI^#Z%c)*iR zjg^HRpEn!bs42&vDPBXw$nZz@l?Xm16=G2R{wzUF1^V%{+XODR+sVEAtgY2r!Wh{C zjy}h75qD$gY!^zTmgBV@9Mbd*L82K`<1AztT*sEk;$n{89o_=wkacUWtxMmS;~Jbw z+H02NA<#h-2XaJtY^m)@lcEn9R45Xm4pQ>m)IFAUWD)_)~J$T$$Br zU4GQjk@kPzNPf~2*!DM0N=ZucrVOwHWk7cT4n$fatOf6!pkd6`*VYmm!O#b)J^^n# zGyyb@?E*pf_+;TsR3h-`-5cH3e%Yk(V=2B$yFW&UJdX5@MEv*P(>3btJ=BYxakKJO z{lgH)CaI3;d%%Podgs*cf0l$mgaxRT9S zKWCdBLambs_U?PFs>Q3tBs~U>4&z@qo5yB&0tm$N`>-FH6Tc~Nrj`|TK@rayJ3G?^ z)EB7c%6YrGw`f`->>XLp69MAxmNX^|^((Ans0=|Zy>qZ4z3pbDPyVYd!296)P#p}q zT=CF*8e0#*9D`wJ-;XFDeUa%AD~eR8QQ{FP)F~<$`NqjoZk+Qzo*J~&J$Pq0FW<;y zpjVo>aJ;OBsH^(G4I2JutF^@0Z!$fyL>i$@aO5;1IbHnsv*d_IWGHX;4#Yb4Tq+c8 z^nG3LmQm9RJ&Tt{VDyoDZR)pqcJWr&Co|G8q+$4>Qd=UB289wf?*Vw&yP|`@@wQ@A z06^;_7JaikFQ-Fm`VG(opqop7_2vEfn3U4ApY;N(#H z9HGeP_BJHoF_wPuWiLsnbYNS0y7lQ-UlFbLw?|SB&)`P_*?=I+2wuP-eFq0|=RKu7i;Xg>A%_&t7@lw(|;P|P(~rX8Nnc}Y*K5>b4rh(jdGH~*Oxt; zKRvcNDcT<)jPID5oiP-+0;SgN+JDA?^@I$zYQQknX1thGt~l%E%Bn z69kt_Vo8FgMb>gK3sZw9!@^>)&NPIG9a`KKVA+A4?;Ohf;%(nuQL9TzJ6idGoHv36 z!sI1#2UFrxDWDV)d-h(6=&?AUBR8$`7B4WQjk>5ZeO`;YRua{ouCgo7@BlaNx7EczmOU85s zPDyIztwxIoi~H{2sT$xwlj;)w=Z8N zg7bVqN=fV~QXQMv8}H)Jz8TOnY3b_9-4DN$jR%T);hGEg9ivho*%mWvlE8}h1diJXM$Y34D7|*hNe~lhSsxwP*#yLmcq)Z zcTfXOpj!;ExOB{7y~kuy_yKa0I4pJ$unJW@G09cn)CX=4uPnBw?`ulqDh-se5mb9Q z5r?!sT7mr%9jid7?%NSZ)plO5{rY`KIyhwWSNZTA8R_K;WSop*VIgA}Qtsh7HH?gC z%>02ME;>cR(dQwOG3G19r8r7cc$KE_W2;rlC|Sy?*fk`!X(OinJJTZwz_7evhldlgdn1Bqt99mh^c=|CPZ;a@{Y(y_huyrq52@d1TT z{+z7*2;L#R8eYKdMV;^9VCOO4iRbf#2bKC=xyiNZISi|FiF)i-i;s__*1&hQkb9`G z1wjd~o*Vnf{9wF>QY91E3s_PHdRyuEsnIn_F;O4ioFwB1ZWQl&IC25T`DalQ`0du{m&Ca#( zM!HSgBB57Up1lK&iO8hBA^0ux;mLH`p07Xemrj-#Mn7EDMP;q@g`Wx_MVvJGy0I{E8DGTgBiS*;WlFzM+X@ZHp@E&CA0 zB0j1@_W32YEnWJG*gVdLq!gWSPHL0UJwhc*6n4Io&^cLnewnnDN+Dxne*sj0-6r`% zSB)3EH3C99T|$}oWyXqtj(4T>a04k~0HewCSF?L8)^3(jXX>v=JCT)takASK@MU0N z4fpswz(`RvgVJ`*cPm=mbwr?wW8Akn7vJohN#Sre?*##|@9Esy`l^*tg4_E1<&JyB z^w7`tr*@vUuZzjeEX{1LE)KlZ>ixtZA)1ctl;G;d%k(p1frb;49sOfQn(@%~)xrP;tI8>+N|SfVBKHkwa+TQm_F;*Z`bqaIf! zfB!vz6mqUv{bl-omwHBo;StlTfdFFOPCNJWhkgx{N@WjtwBRpFm;h|7h)eFa?U!xL z8-5JkbLj?kAWKAZ$a1?KCHKlTq{&)!#(j0p5RvVKo^KA(TE9!mY~-(*&?4s%Gsf`SWj$++fHj(E0Tm|_?SiVx2A(%_NZ0_X^PxgA%StS%J`?#Z7LhH!$m%_xsJ%iLBluSl?g!1+_^m1MNbiuPwr}u61 z7{^;&);)6wn`5}Q9rHuFROG$^-gK;zwf2r~)ilAVF#vs|X$RuRz5hV5lRt=**GJ;{ zFQRxRviTUeNX)n$m<>qWL%R1gD8Ee*C{>?hp;CvH&D%(cC}q|`(iJkeX?FN`Rj9tz z!;$8%kmVT`WpKerN;n{ww11^Jh*Iz*EHzIH)+uvKJ+-PNYt+|`Ez)VkW2092($m*J zD9U#{2k%1QL1pThT-YB^yjV5>Y-q+W0{tK8p z)4d(nkou|_s`XVpw|e^|c)o&MVcGVx_$LCYJNMvDhm;r^W+uq_?~R3WCfPU8ez3Hx zBB~a-|MmULU@kn;sR?b&-?k7Nm6QF)vB5x0M()o8{FX|70phmjgxAC=4A{7YJj%D&0HYmrYR*F zL~)JqGER;7JrdY9?WTlueic`W{}#ZO>se-alpIC^W&s!wO{MA=Q`{cKd;<`~(%iJJ zvrL+Nl2U;UK}6f)>rvy>YHL%Y9yHt!BUhM=C?n_7sjm4{x4CYxJ(sRR>1d#0Xm`NM z@{&&0$1rt=&R6y-DMu^L(_&|f-HM2Kl{kOl+ux%fjcH?gPDl9=xwnG zygi#UAj;C_CIrNkLg-8T0S8SNEh{?vRg;g;wLi)5k$?^e09?@e7{>wwd^JD+D7u&Y z6ihp0scy3)dN;~e;%i%NsQlfP`>)v-u5_RtO^h_zxN?pGT|6AAn02w3Zk=vX*ug#M z;uUmR;w`#(AC`_nrdGl>koUMax7z$eyQ^kn@8+AA;kZXsal5^s7O0~PqK+@NAL?ji zpL?j%Nb{rL9)Y33LplfEDfmt)K_J?&3>gEPGIFzYH3=jr#8_eWiggmSJ`G$xJGgO9 z{Vk_wBQGEfloGm(*AQ_@P&h4GHUHSIDy`)t=odq09J5dEm|=Smd|_$B{8OaV>2sz> z0o%1Xdq#JNGLTY@8PNGua}CK%=a2t-e=vEdXKil-not`nK7RPdbsEOnH9%&Kb%hK1 z#&u@N2<_iSnF!JTSyqJZB!wcJ@8nMAug>~P>tBV*v`mtNTDuDt2V@-Fd$GP-zQ@q> ztV_kK6t5&7g{Hkr8k<}<&50>){;eV_^8&CPD@i7J|07b)}|yMXwt&mWy$5tA*$&b6938hu&loR zcKsvqE8#VdxolYUIy#|_g+U{>k$tBrvS#4wTmMy%>n(y>b5{x90cX_R{)@}EHKvyr z4tAM!rk%{~_O90Iy35;>+bK9I;k)-4CaEmuPgW$OG#)o2f21-@Rnx0E{Hk53uMo@P zs6xM4hOPK^-lJY3B64#RtLG~lcWT`sZoeJH7vo6np>`J2KGnH2-uab^pT-Sw_eq^3 z3ludogJ8rhY$(;XXnxCw7;o)7$&=NJ9yPXh=4VbMFkEQK56 zZ)tMJBn^7Rs_u}w%6n`_rc8_^@yTYXeR;{9&f)4^x5GKoeP4+&O7H%|0AgPrbE9ZK zg$L7y!g_Dq-cLXDQ+ej}y8$g-Ju7s-LfgsZY=DpLwq?G&m>et50VUJLtvFh(#h#RI zC>5xb|9@*%15!ChPu#v~z(7!F@JCT=YU53J`%9;t>xuI?Xyt9|R~2C-T@~cqU;$HoxyYLv4sHoa>ZS8`Cg(Zs) zelM<_GKCCP0+90P^%@4odH$HIGN0C+Nr7`Yh}4UU_edVz^73~X7m$;=|DgKRV!f}np{3Y@t-FhP8{AzFp3bd)C2=LeUQd%MtXJxx__vL z;6Lpjl{ytR-oBEW6N-AQ^WLELqmG5HyBArY(MR_j(w)!7)B25KUj6h%BG!3-BYRd6 zR?B&Ko7ShXDu}iiL83tZEcOg?6HL>y774Y&3({wLdqB;$eDJn*cIU)>VeL)9o})hm zh<17WasZ+#o%I^|v#$^4Za~k$W<+|@FvhK*PW*E+!@0YE?XT3Mxn@D0BEjt*Pa(2L zCC|1LuYxO}?cclG{pia28&Mhe;A=}0i7(o*s=ZW(?__CQJa(y<@3okc;S0jvTFSFV zbZ#-$&)h#dm6V_Nw95#EdtxR>CM52aVrb|j?DX2x?v}*yTz?OI$RWBlZ-N=Q2g;z z)rfb!&x!{+S8WGB_t`0x65*N)!udR@E9ZpzESnm+z8p-SXjo}4oAmq&nhwe1aW$}( zA6608AW!#b5dQ0A*UV?|tH1%q61hsa>tOLq4BhgKGlQeuu`H~YU1z;7%!|egC9xO~ z1-}D=r;lYoTS5_DH<(rWCz%WFka)Qp9Ee%qB*TD@5AzR1(_KTj=%t}>8^%wS+D2|I z8fS`6G+X6Kcixj{9ud6km3rAa<#@Y}E3c%j9Tfb;P9nG) z=}-#vDak8B9wZ!8?i35POg`2!qLt5nM0!qStJ0X3zL-uyY*}%Q+^1f0)oLOh+NrcF zgYZxs-PxuHqBt5WC>$W!< z_>mG5YK2>oXP5k}gW;@)w2=bwzU1@Vv6(JYMi19N>nc9g+mU{<=|S zP8mM$;KH?k7W)K>roWt4}M+|mgzCxKL-|$Blni)O!pJs=Va7Ixn1-_Z5JtTZzg!DeR?DUif|KQFM zSB`HTa6DqS;qN^J{uJ~X(e(sW}&x32q?}?(RWhJ{Rm%+b>OiH zISh7v-?rxX++S|MF7xf{0TWJ8rL7JNl`s~2%%-^eT6Nxm0PJt7#48fhNN0utmvZaB z-K*+uqKDYUV_W3rqdobN#6XX4WlZocQpJ(#d)zRDNX+$ZcbHV*zO8vd$@r_Id#;N4 zT{dNNjsuLlIhZ_@96ppcuNkevXS|4oz4Q#Za6A-#;f>F;y@@!gc0ml+jHS9^la@t> z+#$y>9|;p&R-S3=BopDK-XITPG!}EE$uK5TB^ev%xiwZ6Fpz!l>NCy4&l-h{%tRek zBSSr2O4+>k&3Ybsx_P(#HN13$YX;=78B_qhXTX+7%O6r%R@tnQU!b5x`C$s%V%#~4 zV9`a4dMv_+E4Mm1W%o;wjxr_ywl}Fd$PeWM{@TCOS)H-c#v%%&w20Uq5la=drU~L{ zxOn}IHj%pxf)$tiWPd~jQ&)6+N=l0}%374~p3gIz!@K9)W&{uJo>r%PJg8T~8wog> zmEYt1jDS~9PBh!oU@>!@t+SoJ+VtDW_#o_5RjJ3PV0e$BfQW-1FS%7f+5VeD2}0@6 zTG+gWdjm|XsY>XMf8@usZ}p|WiTdxob}&dR{w^+&m=Avx)fNobU(?$S6mmV?<#dNN z)p^Bkj2@sZNKCA)hw&1iQunK`A?<^R#JU>$u-6ao*zNo&YU%Ierrw{5ur(s_YIa_K z%&YsAd!8c_Yg1y+$04v=rjrnh`F&e;6>rxQSq44cWZ6e?`Q$;-&Ge)+7zK_V76SxZWj zle$jRTws;$Nc8a!Fe*4xZJYwe&`eDq_;a>7vd9?pg2K(J=f|A-41;@e{ql=(-1)+E z6dp7SRhD&%B|01G(DfIPJ$u;eOnpmh@*5$NoomIR$7@>A(Xk~Xnyn@1guVCX^u}P1 zQhiT&j`@GrG#qcaHPW#+>OrMJU;07C6KslyWHv`XHhnMdRU3XNKE%LL`xqb7uubfT zFs}SjJR#4?ZRhXQtDmQ)RX8Bhv%%v%IF)XCVE%)FwG4VMY5FS-=7V>36$0DiIWO~s zoDM5f@t3URx@#+su)4;C49kpP-nZhsOhr_u`0L3C>O`xOAb8dV#2D@t@454;l#)XV zsZ2a+v`Hl#mImha(#C75T0YdFjhQ^!LZDGH`QuDC`cG3RQ=+PnLqK`ed2K`tZU zR30Yig_uaGiecV84PCxLX7+8f666Gt3eop~!Y`XKfO)_oC=bWx8j^~v_eWbz_2)ih zih-}1%vTINdEH(-rJ)h5keg#8SiuwpQBae zXxcaRYD;J!&1bK;G!&JHpW&`RUC9gg6bC+Sl;k^d7K*cTgCJPw(44awS#+9;D zT`*J;GTr^47~i6QO^Tp5i(TRtu}8;&mu(i}N#KF4^}|hzP`nPgBWw~3jo2akx3lgP zS&R4S_Bm?W&@oZDF2PtoHPZzZLRm89j?kB)I3LuKWBm>7I9_on~T{ zBzsO|vBaLQK@@Xu3qd9Agp8#1+^pCKtC*x-B+n%dnuzJWTUFBz+;(X)hNU|#Q7tF> z9rml(85&CCjf&SlGCZA!yuCf9>za(j7AfKSi_>b2xzA{1{V}(`o(g^_dNjKK+-25W zWCrsOe|S&3h>(5_E<3dqqR#?LwR(<@GDGCm$%Xi15(nbTCmdbEVKihj(+m@zIGB8b$mcd$`G;XMOLPx^J*O*w$Nq z=c6LA2ZjtS%l(qIvrFy*j;GQu!|F!n^+ z!G9rMpRcS~_!F=Vv_GS)xTW{m(y4l6x7Q^3Lv0|@N_3NL|6>gENUaXd3(J%rg-prh zDcvA9%%sgHDwl4^uTjVQ*8D~4=)lIfQGba1?#=Vsdpsfi}m3gbV1q_}uMy3wUf z{^?nK{|5J37ph5z1~N`e-yxJ0>lkIG4U=kqM|&7`(nuly`v7gA`|z1Z)1O;)X@Xm; zh@p~mq1WnJF|ALkW-NaOL%54Cf5pGX5GlVm@o~n$7;SOzk;&u7j3r|LuV>X1PokE{ zLo(s=l@JNp{leStdY?Wv4+%q{-SRZ-A!D+GYiR;j^^R0J_NoS&N7X89t}B)hh>Lyx zPxEfVrGds73jywdv6vp_${M13l{Py{_|r8>Z-xi!%W13iYtYVQ(dD9*(OeY8%eRLV zw_`1oO`~|Z1XYAkhp*Za8N=$lLe3wq%O-egO$eCdt8sUfJ>>T7DEW7?bhBE?K0ATPlR?5N; z=+!3-a&XtzR7XwxuK7PKopo4K|NH+@K}5Q{QyAS+3WAbKcZ|_J5Ckdd7>ye#h$vm7 zyV)2cMM@Ba4NyWD1|aeN9Y5dSb!}Yxlk1%Gdfn%B-_PgcnPkhjT|#qdkB+&iz?g3? z57I(;gOK?Harfsl&9uoDa9HwO`EoLJA3Gc?_R>XCpLSvCM|oN;tt_=~uIS4^H;kx5A{PQm9>>7#n_Skz9US0^+mq5F2@neFXIs$ zl<#v3=KKElPmMA1wM@U-r4CJ1$jl?`oeTlr86|m0;cVXMg%rIcTmHO&^3;f}&&xer zjnh<~VeiWTYziz_xhG2Ynepk;@=T6S)w5P11tAGW`#>3w@tfm}47K7gR|}!gcWQR_ z0xo)=9+*|GlquNjO5OM^jm9kg8P#zRW4=XhT`6kyTZr?;QeJc|-=*rbrv=Gqz9|_W z;;r-hx}P=QN+@bfn2MyUjCA(u1^Rkzn?L@2ORmH03X%G(m z2 z2H+sQ_Z^VAI1E@;E`0wD`~Zaf3t5TAXRpcYJ>pEN3Pnigfv5(De}^mdvJFE~Zy&vsy5FD{l}dVOG0_cPBw_e>7`GiC4z)gh4<5v41=zn6|)()6Lx z3ZcdnAGo|?eNbb0r+9fk(R+-;3mQj^d;TCdO9?wJ@q+7Jk@(|=&j(se5y7PCHk*2(>E8vSrvO zqPt|2RH8C`5?PIDKV-YQk`)|cSBJG>M5Bc0guj`?Bf5Yu27d8VQYb)ESZD_tYbEH3ruv$PVwr!2=CnbwcJGG}xtKgQ4 zGZaXM0~I08gx8rv$x@|kOXIb_Q$;G7(!5?ddApkWJm`Opi3~g28TAp%aTj!lI!7)) zZ|)N-`zz&juBux6GN5+rOcg4rl^&@a+PdYmg*PtMTd;TN{WV&>Z#?!9IDx!?xGC5y zF)5+V;BO{Bd!V-L>EOr5uS+J8>2BU69jszb`(7*N$>q2vYI!xuuZazx?m0^x9CN7T ziN3#Q1rC&vk!jA?1sPOXNGj-mh#lM+s20vn~9dh zo-S6+RqhJs=y)eBvCY=;B2$3*admj(^?yXan~BjHI-=2ZPPeWstaCAVOW)A0%SGmw zM~9h3MwY&DR>rkD2II*5Ca8aRk5b8Fwj+TXf9PL~UeHl4R)qooV-+)9Z%=&}CL{4c_aCeCT-rc}s_H(h}u`#nmnbg8^BBDr68DtGEQEC)zP`H)N zV0o5hGLbXpPdbI2-ZC{;IwMliuh3#dSH!o4iEcesB&ivF*RRl6@#m8pN!8W|Y8^G1 zstA!8U<(qhw_w2+<|zjRHO)x+$=EcqzA3Sm(A(bkVdJY-{YTjGKEyIQ)|}K5os9h{4#b ziFJ)jMaD7t*4%&4vI!V4tqgAr&?O~3a*?S79yLcC!xab5)#*D%6{2M{>Q`h$t^71_b|$|-q_!dpbM%*sO-!P z(v1iDKGVB0=NIShlbheBg)&q`Yd(bvXjAFMG?p9GQiafO;jkpxPg1=#vZ-ylRi$#K zln?Zv)izH4u89kG>JuQ-x>mjg6G<$LxXO8`PyhRxy_?TzKNpd`!uOdkS<|3jnJWjS zr=*76e$;9MikJDDp@a)P_|U5G2ZWwrs!teer)ub^d>~fs5eg*lByDa^%b@KtLS zE8mKf(;mk8{xZ+aUM|@*9O$i?SA^Wz#EuBkst z?I(SH^S=3TGu-K{;M1zv6aKV?3982#;|3KGenU9NnZ=H`hnS19&s zm~50Tp{G)z;Xz%K(|%Y`IHgdkh-BLQEoBF~Cp^o8$?EYN+3;MifIuXh>pPjLPb0s) z7CR@&iIi`o+3!cnsvH!7hA~lES-r~XENX8;>%a;=)XPmiL7`UPXKTrKq)e@v%kLR; z99FbuJw{KB)94#!quO)?Su9qv^DJdkN-_kq{S4YBBPP8U(!d_PCaHIO|E!J+zUHNB z-~hO>Q|j4<9+o^d4fVGC7Qb!HYuX@$h-h@;ZO#`W_B=J*_u<*UFhbm9Omd+_ug}hT zu*DDV-kerJJ! zPt7ieq^P=TXQ$Sn!^hI*8u_WU)`x(!AC;-AW&S0La74bcydi@LgtxH*^l)qEds*`}~~Z> zPesAVckvxP#ESF&^Xm&`e)q;X^pe)?rjx~`6Y48R>Zz*7%r_S(?jQd}wjC;+d7DYc z)u(=~a(IV)R-dT3%=z3nyQaIgb_hMvc*jOs`&f(4oH}m%$zPWd>UbENDvcgl@f@C% zl6bcGxy<>CW$wO@s1MPf!Gxx0jEg5w5!ib+Y=JPO$)aXZ+f>f7UwE^QpSZQIXF5%$ zQrHA|&&nT?=#b29rMynAwV6d__~$eYjs! z@7#=#c+e#8%Bsisyt`PGuyn^x`opmn6L7)s+J9Z>|NjM}Ov+JB+5CDe%(->`Vm^Qy ziFj=D;6Ea7O}8P^OJ6SjXx&NHft9Nbz@n&ios5qjxEScUNc6y7mwr3F@M*G0Rj=@% z#`0bGz93n;r_UVH>N=m9ZU32wcBi&;Bil6Eb}4rpS>RbupSp!4M0>xzWNf!VJ;#hp z4%(XLpz&fvWDRYmHdpIEw6e$DtC8uEV0&+7zPjSn$#p6n@o%f~2w`N)XJ71e!=-6< zG`kg{*$Tg~!s>j#AMm~XAbaPFT*nlM-tJdliU$U+nCn?_D(J8To4tiRr?r{~>Bkt4 zb`zgGLp+6b-}{+zk`!m7N$Hi6VIJ{2dRiL1=4A(s{I@3qC(h1|#y5EKbWSR_x}HlT zRIGj^x3P9#XR^t_zg4BoeHG|(ask0~iT0qR0 zsjHDuz-%aeIw7KG@Gtc+#wO-^@$a31?Pj~6^Ol*$`(Z~HrGJuSdMAF8PiD9T@fSGQ zhe5H?OB@|nF58~FP3NwWN55r&Ac_O``sFVUh5-nL`d`Mr7WwZvX@t&xSdtd*g!SCj zLw2q+HQY`O4>??u`q_8o7k32tH2TN2Q?2VEA&~_~$Rc{bW%nwwpkcCqbuCe1`fhe7 z(xyVYy~AQ+>!(K(XO2GImx7b#`gQ~g+r384G{YX?rY&l|kPtiStX*oULd(zmf~rg5 z^D76Xwg9klYU{Ssa)qT{ru(TWT&p&5u{Y!k-O6(vovCL*RN~jOzZEo{hplo~@{9PT zdHk@`dMf5~J_bjB%X22M%^zd;ej=6C-PYpOAAOyn&e_>rc>Z!ZtEToVN(gAZ((2?} zb<~!NiQO~F$cT5gPLRkyIl3*-zydxobRRRvL`yDuap6$KFrQ`ZC7DR z-uvpdxVP`*vF~f{Xg>FZP{k*Ym@hyEn5w>BVtC4Fc+|Y#-m-z^;1BeqtpEQQ z^+`Y}+P&gRrBk)<_}Yy0uk^61SlJCP;{Q}K%WwChf&GN~{ZBPw&t=`i_ z1U-dJC%;bIm@GV^05i=*eG}S*-QED7*@|c+Yi#p38b-%O>yKna!#G&JMsHHl1e7N@ z&|fQFmW@d=tXW=eoNJ{xFke5wv8PVp2!YL(xZcYB;Kd$~>7}u{GGf+9)>hh|yNMy}}7tAP1DD#6~J|=xdI-6)gtY%Py z^~4|v4D>*$g)yN!*R1l8DGp^mw#=L(G-fb*UKX0U1az`_p;R_$mdW;bZ*1BgW}L%9 zN2l&x_p)KVf7_a!t-YZzQ<_%V>?+*bYB%`v*g>OET0?=7uV@d~WwF7UlakHZG+)i| zE5S4fu;(6K4}3qp7~2|r{(#s@!j^H!q0ib%39NMa?rdjF; zYLKAw`6zt!kyY4qNWN}pROOP$;KD$v)>nE)T5v-+G+gK_Dv`C6!hc12+Zq)b8$ z_QnbDkQbuc6-4N*RUE@{Th)bUc2;cZlp8JAr0wGRRm!-jN8h1ov!THo%?}~w0d~)y zGPQNs9a1=r2m~<1@0n)_KTEhjDlum$UgRhc@WmSR;k!52Pe_q=BN%BUAvFdJTSSyj zop&453^U@lV0ju=Fc8(#>E;44eLusT@U#wMEY-!ReQ<2 z{tkdP=jPx-3P!RTi78?y5v(pF>MWg7BVw^~f==*h=e0^~u^bmMt}GARKk~!1q7(}O zbU@iSkqecU7u1JLr_>uw|8TS7t6ly%m8fl5+5zF_RU2h@Hy|BKQN9OL2V+`JYtR2? zvRBn#J4CBxU=k)*s}`fL5aYHWaaZ+z=@1=@aG*I3RkEY(QL00bvfTXoGOYIxM==M4-3AwXlkBs7rj zY?EAX?GW2qGry4M;Hg}VDb}HC$Enft*_AZ0FD$u)6Al^S-pZn0)t?W%tCSV= z^goIYilPl@X*OV=nEkg;oXX4_aKmJ{uYHdv$3%sn zS~f1y+|$1C`~e#+`T^YhL|qZ5Nr+MGo0>Z4>fqZ^X}6lm^=9jP(BlYBWLxFhv*hdH zypIRuoG!XeeWgN6v1EiF53QIJo&__!1DxNza?%^ZLI;Tx-izz%#XiCI9TJDSjyNnmo zA(~5e&Cq@HV^X%dATj`A4G1v8#o9EJBn^LAr+Pmo1m>)Wyi0^59vY)667*M~lKP-0 zhFcq)lrGksN;WbU3Gy$mJPm8yEi6a}VPxCe6yi+I)@gwWyL{8xuH>+cVGOj&zUVP8 zJUhz0yRe}{nCd`}Y0~B!%XP25p|Tk-!_M5uY7G3Bo0|Y2qL7vX5NV2>1z)kZ_{;f; z5;#HnKvTF)EsQ9qqAG&>wypY;oee()Kkli#ZH0*T%xpr(osUbb=-h$qpd8ssN=4vF zFQ7YWA^>C1FJ_je^zn; zQGi1GE$T)CBBK@prvrRj3o9HgEiKYg=lrrvJ;;W(AkjLevG!k|>16ALJ73O>DLK?J z*autReX(mJ+oGa|XxFhtP?q%iazx2U^yY(!8AZ(+%$2P|pWf)lI{Jz-kT@ikYe9;G z(x6wQ960+Jf9~vrD5XZa&!CCX?nxh5U|>;AyHY1%K22TW>AZ~xWut>f^XI8|pOXX~ z1f+|2{v#4W)no5|M>m1)A`4sV0&l4wuzyx@d33|tL3Ol}tuD3NRN|#IDbKG)3o7!2hpQDDuMxS;Mr6P$x)@2dUS^bX)=o`#Oe;@cC zlI7tEd)M6L_DQ)!-58dYZ(Bf%m~u71FfLu|cJgV4Lx$YBv~}Jad;l`kK>#7x&_!7@ z`A1fIg+wAcpj8h1CM7*G=j}s1Bl$KnAm&F>u>s^%@fq|oGWbnqnF1S@UP5twDo1)^ z3u+h15Q86~P?vj1Y*+9L>W(r`d(rCUr$6>4hNoJ~T2l_|M^_P-nwyvxJ z;Y!@Ofuy3EP}?}wOM=y6Aose29n1@Dg9`r`W6$XbguQEIOiNsPlmuyh8)o<6Oq5|8d&JI-PD9s2P-N)hS zDKe?^^*_|CIb?})VV_`r_-kEw@g#b<&F(`q&t_PuVT!KQ$j-`1pk9f*z1JqdO!yR_ z8hKN#K6|n;?>WjLRIut&_s#;b;`{3eBM8e*ZPrv%gP1->?TyV$mztv zNB~GmZ_*X?-~0Zpg8zt`lv{U6m3p^=Xe8Ur zKC@+Z$k(~xLtKz<|i=R)`Rj7+II*3w9?e#;nB)nqFg^YzD_iaEy`73qxDboBJzoQ+0 zN4uVnh~|2^nJurhnx?q23f0w|5Jb^8X^YH?OebG0(8QSY0bNj)-x&(8$B7o7}wbMA?O;fer zT7?1hj?km8N^a>duH#tXh0ZT4~N-{sVJSG;d|v)JWtK7?y1 zCX>Q5PicTv!D=+~w#PK~<&IEfSoP};(nOjCb+vp;=n~YLL;KS86FKADE2LXfg+TY8 z3FYWdvKp=K0LlkIS^oQ8QUB%sMdjbcwXZ$!>#1;h?(;5a*rTaiqJL*>?H!P50M%6a zhnn}+PZ^6%vr&TuJu!0yLAhmGU!{-Ze8l><_0K3I#+<|G5yO*W(!v-C%O#V}wtzEF z?beNS9VQ1+uzjYlGRB<6l(F4N>x9YCqq}GEC0%bg<&xR*e?$y}#}InfH)$S#^ITv! z#BFGUK7YH;Jv@x+MHarU38^CR=Eogsdbma8vr^(8^Cw`X`@n3hE+Tdyr%~gv>IQFg z7FWd2fm2d|f8sBUnCZctm*@JKUYA};{(YR&d^m&;HQW3BaVVw*i+$FhBeUsT6^BxH z=RE=SoBt3-2Dt->Cg3Xk-&_m$`*8d^GkO4Eo?TpB0~cpt={HH-LP(Dz%qzjwV5w3Vw zK`npD$(6twp*5Sp!R*RnO6M{{Ar)CwM)=}n2U7WDH&wf8WwAV_QN#pqx&NybZ}r>J zw3gSA+46*nn{H1ga4|cvKu?I^-R0Tvc4rlBrZS(*^`*zPKD(vU)FZs^ct)C+!@O|;29hQf4KiS%XU zi)PFSi3z~hTFS;hc%{i<@u&r>!zTCl{@uUsZume8s~Oj$oIuK*|81}U+Y5-dz6jY^ z`X2@64G@(MB%}WWzyQNF2gQw*!_(*onCmixtj@m$Fw5}@Ps$HqtO9T4IOr;io(o`~ zkB>DhOpi=fti>|IfIdT6I)w*Vi2K9Ya+spfJxrdtX}Klc^fLijn^JC!4v;h5wEZPR zndxN^Q=8sr*tE8tZ>T(Vbt22$X7aNf)JUE?t#7-{!6U9GyyfI>BfV6CUK3+}hi@DO z3Se0htAelbU{^wc(j&31IT-!52C7K2Glkz=q_yO}N4TZ$CNLr2uGICjjwf!DN%eQ>6_u9XB)!m58RB*WUfeahrMJovmi4PE^kiU#(;An59RP1%o($OX6f0~8VWq1 zQfKOt6UB;jZibf~(!O| zNoM=8f_AI&{YQ^$aQY>HBJ$jpZ4NZ(-j^x-@{0L?p(g+G5B`tNLk`R>fshr)#5Ul^ zVjDna{NxFYIn^_tRxa%CY3l|DffE*XAt&Y=Q7RNZ#ax=J+i4Lj5G^(qV5iV{5Qsdx zEODrdA5!*=fsh+!8mkj6vJG)D%!Hw|_Zk5cbQDPdU)O%SN$FfY`w=nb#1Rp ztqb8bqPO*Je=9gGFd+hUjT3kt3WiA=Y#SMq5^WlVIEPxzlXxTKm)cIf(AQn-BX;VL z8NjJ+HGEk#N*EIhK6cH;&z@Vm;M}^I@Qn?^aSGeJ)PGY}k$#JG<|(FY%YJ`~`cOX} zXH8<<21Hk#-@dn8vMEgDZs`B}m-<&G+hUtMV3nS|$JPIalY%<4C_Vq|bk4%gi##%wS3uW62%A;@|5Y7Klv3R!5Jl^?-n3`N&IM+6=dGKJes3oujwr}TXKL>Q< zeH=7<4g7=|N#7j#=*rsb9Tucdjav`(FdqX%(-9C1RL-5LWX*Cu&)JEuZfq%R`qWm} zu=n#G-fN~-KyBefX=zE<{p^d2E8D&SuhtOf^4-75(}v{mLQwGU1o8zh+7RvJw}dyKM>oNbAE9-*}!nI$8l8%Sa%C zXip4~SZMqNzU2Vm<}aWCu&k@J=Wehfj2IA6lLa%DdHIsx>#pE}yp(j}Rg_ac4G6Rr{t)jp0r#RJF+Rq~fu5-69rXLR^ z;F|-H-@88x$~Ew!ylPr_aDrj1^IpVt1xxJA{Jhiho)SXN2Ib%pZ!#tn6?GclQ%RY! z;)tQ*gVESKI;=gy!YW+F#a>dN>N*Ve-GRlszmgM}0e(q#rceH^_3&iif;mEM<_YQw z9#lw}CYvhX;Pg~Eb!?cQK5PUhb>1H&CWMj#>f!aPI6{Us#|TApL?QP*7U*yy{#=Fp z5sW&HO%*r`7?YnKt+g%-`KCCHzQv!27g%gK6TJs~xxWbRu*#U01P;N7yT{~&O~TCO zjv{LRY$}@75tf;f39Cfs#u~8;$91GSh@TCiCAm7|SfRNLU=Hf@4S=M#6FvDq-kSh{ zn~+KA&*;y#7UV>sm2f$L0Rmr_6EmNd&wB08FYPn@?atj;J&@2fwXHxN4PmFs?Oa>j zhZ0$4Q2_I>|5cf;b3u_U>^A@FF^7j<@ySl5Ew;&+xW<1l3#pb_WsQ28{KRivq=#v&Qd~q%rsR)H zbCL89vjMJ?EWI717-sxMO}jjHn&4(Oo)6NFL13JCCWU14lufPZZwIw74`u{>pYo{@ zMb$KZAIKi<5Y3Ls)KOdbg4v#bGyb{5_;s135VnS~jlt4^nL71$+h!Rh8;kZ2{2g#& zp!HdBfRf#=r0){bZ5D7M_v{1D4xDP45Ub0%oVqEB2s059xXqI^lxBB~{sp9$UW5>L z_)Si^xA_Q5b>aPGUPISvp$2pniY4%+hn5h<#lYpe> zBC)?nUu2MFR{L%>(Go4n*rw4w$K6EeZL)}N&r$e(dm>?6c4E8K_y$D-iMm1|YF!*8f3go3RaHD5T)<4h=f1^S+ylC4!Psz?T(c!ou9Y?o`10o4nrU|%1} zk2x43QTlJLzt#FUII?u^akma{ZXwo$K_w`pF zsyldNKueZUpw9eSy;w*=S|F7VPB)XwnvKQP4Y3309Mr)^fslvN&|w#fBB*4Jlp%+2MoLHz;#=ytE9;3%V+|RWi!_C5zE88l?k__t=~aw z75O=1De(Z#>FukJmt58amvhBAh+dr=Eo|az(op8V8;Mbl2zZ^Y{~%AG9H zXH+;Fqc{ESGh?H=%V@ktyoaQP((wFm9|PRQ<2$_YnDswomeuutY(PSEKf{FsZmHZN z9%VFHk&<1uq5Witmv3uh<}KDft^d7gZ5tY@n+PmnIjM76SD|Wbv2}3q7o&So_doAS zTk+i#)F;%i4Loybl=)D0qxeH!YY?jByi3U+^+~l$@L^t&;e$6vPO+}@S$aGONVJ-6 zy1CVNlZy5kI2?Oo`NjTumB_Gtk{i3w>%}if@6ocoovB6MFWOJXa0VmZ;+_eYUBTj3 zod_r_PW!MM{9`8@9in`yFS}xTHtaAom50z=44~cUCk|*gvy)#wS zr6+WqIX%#ChJ$gxK9mb^u&5AoGn;!T|R`U-1t@&iB~NOvY@{(gZT=b&iBWXyT=iRr>FG%w*$fa0xkP9HhB!aCc zCsX=WH%kH`#la2j2D8u>kym~gu5Wrbn#tQ2`TIbE-C)w7K|78|)8S8fyf}kL`Ep+1uUAzFBO+IMD z5&_WS0Sfzz{+-3~Q@nhfL0Y{EldzY4&rNoxC9a8bzQxRgAMD|zBFX!KtJ13}%D>n1 zB`HFIBMdl^ZZMP2!qew#F6}v6K5g3ah(z&()2p(xzT9wxKEd>Eoj1@}2qGY*#D^Qn z7sk2NTe&C#-|AC6w9=P$nh4QDvId_76SnF=5ey$pd`qw=EwU}mC$5Zu2_Lcv`MQwN zYX4Xa7OckrSweqIadz3lJGnz>?slLgAo+`Uwd;9TGqzf^(ibX5rL%?nsp`x6jD2s1 z(9N`;wzm}NsX0BIXua;(lfCDk?DnnV86Da*Qj;U@`=tLgRS+%XJW;Nb$pI7^ogE>A z4Nj>UCFstLI>31>x2YgDpC$cms;1XZ&GcSjcNfOuDYwx}=-C;5ti9H+fL>6ELz_#+ z`AXbdT-e}_$Gp(GrCge7M32&*Pq<&m3efXgyVeT@JqJc5Pk%MIOpLDTz{db4<^SCu z*1oX<8a+-jH{_ANh@at!TM*<-HucWq7+e7N2WNPq>l>>D^VAaMJD9oG4Zwl)*@K6q z;Rsk^k6$Z2S?Flai#CvxLk}$%h$&p{_pIboc2Xf~RyvH?Ce^bU13HROh!((hk_||I zU|j3Qq<)JL?*X-iGTl9&^xzRwXV3m66(`D+E0aMt{}qO!6z%7ddnoB`O_FBoeIw0c z2xM@rm_AsOPA@_h(juPkeIYR7s0)#*xlp5Zx_457K8o_i|g+0QI`tbEIyt5-u^CP?*2z(|ePC)m3I zWS|bbVGAFd9`6~*teki}PTj8kbmsA~vuR`#XT)+H%XHW#A`@XO>P`*HpJxip&0=+@ z<>~`lKP0rAu8TYX7igj$Y6mB~fu&+upYYo(naC3phql2_YFwT8>3p0=uN19#?ma6< zJBxgrwETRBU$>pHL<;6h_$I5zS&X^6kt%bf8`}Cur@=T zCDzurdrz5myr)KHd2mN|E-5`dx5!buLG2U|RVYlg&UBLzgwLCl*U|7P{K2(NKVf19 zg_}w$yHZiccR|3;MyKPGr5w*kiZ{`(D>#|@f&@Ns(H4j`va_FWFntCU|AdM=&*!H3 zU~0ur_NP(NM)LBR0->^vIt4zj>Ju_$#~pojGmU(g7runu2ex&A+-q8OMi-gyCngc| z;)vJ~eZ8;oxomQqUyCl|#aG*0Ek#*P%^~a#t5ES_)!M*H9s=%ON9uB=qY04p_hQJ9 zn>B6`mhnncrZix$d$BJJ(ffHnY?$T=&JJ8`L8d*U>9qNh|naT#~#95jAf z6)u*=+M4q|ICe!z_pZdwa6;@#!OSj@RLkEaQ# z#3_s3|Ml&6bwZbL7XV&1{ocV%%GP!Qrrps+u3yMfIqv`>lCnc&B4e;w)$Nso?#rH& zlR#+mNyAjH1l4T?PL@v}VPxK*{)67)%AUJ5ReGAN;HI4cX=f6apEym-lsrY9Pk5Nh zy{GBW$*_ZU?wm=?H5_xc|GQhNz0&T3&w;)SoL{Yr$THJ8+-_@pc1lw8hmI~==0s)G%a71OBBwM^I7uoWGdSK7mW!@8Ta z3qo`9+9$<=px*%@hmM7y=NYoKE%He#eq+KlVRUS~rM&kpI6g-==`xz3nf3X(#>WDm zt`uSve25y6sTA5ztdX2DdI zU-7dWG~0@&sH;nGbZ@;@XOjy6AI}cok#z|E?h_Fu)spsi8PYMXQL8}B8X{O? zBP}p(uv=)dJ*Y?Pq4(+poT!Xd?qXH#EAF_G$0Ng39Ui#5xNd$)Y)iJm`eHgnSABf4 zGowOueK=GjysB&7+ZTbl4|)QB05m7ukHLl}RaTeQ-44;;G14VXY8TWR+GsCjTE1Wxy-uCQ~ zINjFRhqzd?h`hI#yaN-F zxSnA9JbDW!v+a^craRaUzx6}EM_W@|p<`V6mbCPp*3W}S1g@7JYCT{Vb(D#$* z4>A}}DV=n&SZ;By07Ar_Xj-z?#R;2z8-bgNleUR>a5F+-JX`MYf1~s( z;C#)rO&iO_&!5E_oXi6+O>=+vb-2OJ`y^y@$wFRfVU~Fh9N#s;(V)T8L{u$(A~vA_ zO^-J(#L6^Gg?}FY+Y6NC&Xfdm`A^9`;Sv))3I|x3b@ypfZbok|il+52<{6~Dv*K8N zdk}9*(`O$~LJ4RlJ5aK41tRvhb6qRFZ3I`&@geBV#LnhUg#Cf`O~1-uoL%hWM7dQ{ z!$5LdV{ma>$V89?_J9u$-uZ22?AgpGE|SIyxNCD88VjP7Hj|XQlAPNEIecoRo4J9& zEjtACbSbAxJlrecavGQm!PZ^AlU;mS>`ICcKlAm$ADpO$7hM_%x|pRvog|+D1`nk ziMD#rgq#%{tYH6(cBTC(1I_kZ6g^`(D=xZ&^=O1rz3oGJ=gwDBU^$&Mz+FDdl)9Q# zA3qeuw(iLI>4sP-=eQ23o4gj)q-jbB6E&v=-y-Sq2%9p-&*<7{mhtAR93WS&hg8IM zJFrW&P1zPibyR>*A(T^@&?L3+^DA8T1eSc#nZP)()dfG?#1_Y4SF`rTg8ehBp2~wH ztVbeDVcN)k#|im27pKFGiNiBkKL{yZnyqx?R&fbAMW9~4x2sx14;u=02WkjMvU+@k z)pWpZJ$R8;w?l@Wn>7p*5b=7CJRpw|(#Yn*wO)ncAp@Nqz}A+R9S6VK%iD7P>Nev? z0)yDQ^FHNuu#{>y&K!1vK2EPmtmK=7jrGdB1#l;Hy6(s?UA;pN5^9YQ7VATC;I&C3 zT8Gs47r#@qIEx;PE?-`KPgM?rt~dx^qJ~J)!BN8yl=}^-ZsB>)PgjX*vmQ+l)d`VU*?k+ zZemODY$rBrv`fu8t3C9!#ZNz<_O%?FB4|DkuyWr(b>EN?ueR+~&M+Tt8W|Q-gO+zu zu&|mO?oXK6lm^)WK-{20tjMTOkGg!;fU_>ZF+gO5aTHg_XtmWt)apiq=i+msIgf^Z z4%AbQS^>*wL$AUhTAWS5y3@5pDOr_zT=Pp0i(#&pIn3m|I{jXn^2t1x@{>wnJWs*; zgrG-gJ8PXIMKJLx*wSx)X;fCW1_H?b@ciuLIiYw3(1e9Mt;>>lavyGQde%I|m z-p_~eh2?Z9v&wz&AYDFN5kQ7ThAkH-u}IHZS#QOgBmIz#lKRj|OLl5@5@~kYChi-@ zIY`JxWQWSzn$#drcdu7fW4g_&pI}H%n4Zs2gsEO7g;!6We(0KnT0rPJuX#}(S`|=i zut%qLpfb_wibFxx*fD444GYe6!exZM8yL4L2-Oa5)+@?pu}~f9)Rt)IJhG+5Dp)*h zLWqGoZP%2%8c^H0pjx5(Z=1{QfqbI%)t}rF7iwC3#qTH46Q%{PLE{nTGAoGIt@+q{ z%#QHFMbp(yY?RtEY04P7PjDIGv>G!c=>8218insKEbicch-uoLI{a{J1qe}hk zD*>ssdKSzCsSy@rvxBVnczJD+)9W!r@w;^qBVlIh+jTB=x7e&?0E+4iC#7>wdW?4& zv>vx#XPCb;f(SY?Avc3Uy)5=;`6L-LP^VI{oQA<4y4r;+>DiS#8x<8?*Mg&9u_`(b z0;xHU826CmH)+kYo1s58+0#^gi-VV^n>xEBm~QJM&qYr}<(U;7-5e}=0#78zr%X81 zQs*}a7loG-P-rt7EW=35ZB-Yg#pPO|EpMHjO-QYYm}pFvEN6-HwQBvqa)=)uOCzsH zsB5{uze3V{v780m09}Ej=wzB}&4_0O&(EcQX3BC$vB@=1la8EiIUQ^8vOd3ECp;K? ztIf-J3i5`}*bw&Y)&buj(Wc0)v7b!TWfZ*yO(`&C?wh>*OHz^XT*PZN(Az^k{%zUi zIs}(yvUbU@XJ4MCgdDh~`66^+N@5bKX*H&H50|Xv;rv|Qf-I#sG#SItgWr?J!XP2 zjbe;+`U8LX{xtlh3GP!G9}7GrlY z{jVnxbFYAv!2KAI=zWdSl%{D?c;h{oF1<{?9aQKwb`$r6+xV+COn%5xvB#Cz@EnZQ z=kDh}AsX~9pjszg3*{oN37Fe%x~j`$qjSw3yiN1_xf5x%=a@DXn_Rms8|dp;T((V0 z4`a1aNe4Q@5?yxFh5zlNcfA%BAB|L=9cWvazD!`G(A$$;N%F=OL>9a#OeA4&-XbUs zQcsRhczi^69~>0JQo_JZh$Gu1*WoRtX;Nkq(VI-otASi!o=+M)mO@dm^txz)H@}aO z#GY=^hXqZH|Rv&l=H}nR%(>Jbxy?Uv2b?86(h!ek((xIfLR&Jot^ zs8@PkLs87vn$QulfGK88t2JLCfla#s0nr=gNC^`LljTLo-6yRoer;xLfvTqW#Kh|N zuzIdUVjM8tp@nTsGUvHR8xU7W}0*?vDrCe)1pDn4GiJU7m8YWs$L@gP9!ngR+vR3X?R>d^>gzwpB zmJz_ng2O0VKA6^*TnKPz91_SKXt<6Wx*|R+(fRT3MM{E?g&#OP;?apv8X(!afUjBG zd8F?sxT|$FV=aa>SMGt`+}8&TL^KwnjH!q^{l05LSoflSACMgtHt<)OoU7d~08nR* zT|(}B)!+n1&}Y%Gvw@_u=>L5NlEKkzn*lW^vm4%m+2w|vN~PG#0j!NNd9{_Qou9LA zlP!hmNVCxs6RQ>>BPQ374@GTtQKv%0_Ix>zTt>Xn`@LteGCWW`Ix^;!OVZhb zRs%&^IB$Iwx-%wcZ5>%FR?h!43tC5sU_J&Ddp;0-xPH1i;OV^Fb?bZ&wGZA3+#9dy zq323`S7&=npIUo+1U|JBQ7T+w(67kP&QrSp^Kx(t7~1xqZj{&=LNBMP()Z!5fW^HY zl!cP?rY944lcOtqLKM29kzefKz?iL{T2r<4pEbTy?8T?WWF1HX=Z@>Ru<_;{lbSa@rw2ZV zpZfM^!3JuTP70p6Z_llO|PJqH~!|AK< z1>l+U*w6ij27pAdQU|5RG^PK?(|dqZ{r~^}l8jQv?iiUN``8pmD3y%tz4zuw$gw&0 zo`(~u$es}?`#832BI_I@6z7l*PWr#RKi}W~a_Z_zUG;pvp6m5^-tYI@joRbIJm<&t z!n4gx&4h-|4Nj>tmYXnj5uqwBuGGqU;Nhgh3R&Gt{PxNnWFN-}M=CO%gVq#^hx|sZ zGm<4Ksj<83O$yfB!2>xtjgB2&{ku|-y$Zv~8mH7q+L~RbJ99>P-D#;?cosFdD_IFy zOrBgwXverqNcMww_R3sckcR!P4<_0gpDHvZ{JpmFTNXW@HYkvW{2>W%D*NPNPjzo5 z_0c-quf8h^&mtT03H56}}?*nSm z(2m)bVb8XjM>S`E7Wh3dojk9SIHzSKNBakCQNlDuM;iK^%zbTa-!!D2{Vs9ZiD^y? zVSbV(;@Du_CsP_ob(Mw3bU4Fk{-+TQI@@=c2{h0{D><|Ka=B2r;qIkfg%m(}?+m@& zGjLvb=s8ePQM0Ewj+ztGeqv0aoqHRkh6;`;R|0R0J$16cSak-spIV5Vb(U(i_02ZV zy`>rovp6pwspBp59O!BqQ=4UWHvhILNX^3XHfThVqw9q65KMX{SMvDAgMkx}&`1-I z2b=V8{m?;@CzP@QFuvNwsy~$Z9y5rM<#}-bhL(r4#76DoihpDRwQ}wM$hPrqmDy>upb1nkz`onR}tAPL?N zO*T`uj!pygY2&2Pn4tZWDonBp4%|87_p(q7X4)X8j^Iz3SW8lHZOY2uc-y2_1@R#h zo;^BcYqCx<^`y8{Cc}lD#y*bg_eI{oA`U(PS$w#*`+^FQ1ogKs~M~4(`U8m z#vQr+?U&C(AA317&pe}yOcgrHe);WvMMgAvgZWZv6SZ9>5i-m-l32a&D;#Y3NenqV zO`M?kvKpaWHvkQd44PRtNwQXk+qz3YR`~5w|T8>3S zc|a9#6mWRRgsU8)d^XN?ap#_4a>?dD{7#qF{meoG&gHwwn)w!g zuX*5B@->_+({3eU^wJ)ZirDOFJsqC)KTL7SRlqhhR9|oX>G9n~de{PH(qa$X(muIe z{Iv%Tx_pSKio(_u^AT7+iRsZU2pCa7h(RvE%Q|RX;Lk-Y_<}r}pl~o>h9tO^L)#|) zjK;#Wl%cCH(|NO-1n_o$T?8Wlia&p+vPG^2ansTqT%kNX$X#T3Hwho z)|?N`fNZ}t{QQyQx&VlD+}CaU$LfKAH}AcW%N5Bmf}*&K2(ob~J@d%|@HTNza9elj zZ+b`9-Yk)UTmqk;5{Ld}dim?ocD}PPxG?VVaX-DnPk3@m6Hk{kNFW zY$avBxu}neueS<&-=iP3h|zX{8O3j$nagJ+(|8c^?3E4Y^e z?@IUwi?l2Pm#bEmkK1;Pyp%*v@ZC607^B)=Xd?cS$~!l$;f!$$JMh2 zfFt4MUjWa0!Ki%sx`Xv=mC&u1zb^wwyV+*qzQ6Sg(8V_Xa}iL;1RCQ&Pu<+d5oxRU z^)U@4iJz5f8s{ceX`f%_B$mbVSG^MxO{04*J7tbY-I-}~3ENnT-SMnb+H{z0KHV{2 z2VVMs%LNDW(w8s4sMWt6%&pb7(oi$ASZlmv2m7$m6|T>un0V$& zq&}NB(|&ljKk8G}Gwzs6)Y~SL48ymss)Com%yuYzm->{+!zxSFX^x;u0yYWA=mpFE0g_A`55z9&)L6WOYt&$KLe=lfbUs%0y#^-=9~fqE?uyc0jP3E zQKt#O1-uBd-3LJNYx82*CE!ljFpaV z6BfiJHJ}n+H%unW#!OAkntRV|5Ra6LpuY30&iv~Ya%#;Ff^9xwCQ|-4Vwa-}C76iADnKpd*Szgg(AXp+dIj_V&NVrcdFI!RYi=cD;@iu@3% zw9V2dYwNIk8zST|LY?P5)U+^d{z10eniIHHT}PRv$Jl~e;5>+EgD z|N1=?AhH4-UNr--I4)@3?=Kz;@C)7lp3lYal$YtzyHpN|_A{9z&V%|_BK$(3mAkdo zhQC{>s>EVeyxz@7UeN+)QM-;D+U+=Tmpj@DeDg3jYp2o*PO)v=H9oB^=}2?=aJQJE zX~E(9uhQuTmHLkSsIXh)-!JEX?ixq|&4elHhVg_o|Oe+4eyI+dA$DGhB z^dsCUVAW@duc^t9fexJGcQeM#QnQ)$$zz>9Kp+V<0YYD=NI#9kg-nzbaa$_CEHVmW zN0ahNv4MClelEbRFnUt-xJ$xORfU^q6%EWthBoKz?^dAgu$zc*&7 z>_nd>a(eHVhm8T7CF>nodj|&r351QwVYnc^#$1^Dv{*pq{@ZOM5A%YGw+4dxZ|VVL zZ1Zb@zjXnR22*T5hJLhzedv&YveYHauy@DgQy0)_cr17;s!YOk0Mgvk1lRU&;uU)= z{RI>HN*-1Lnf}#OA$uHc0!{w|xIeqoK*oIf5SsDio!<7jgC)IoT-hMSt&;@=SJ`>r zet+{ZVBIxxbM+(Ku=b&rvr4KA7C@$- z?r>EoGL%87p^vBO!tMeo`40x(-tyaF>VWFV{xuGt-EUvM{NVDYYba$1)7RT() zeWpa)RMQ6gr)};|I>3#1XT5?~G1*?O_xIUu7vJ5`V0AHq`OtOkpFqL$hEt&7cK63d z^haX;6i+P4A7?GqujwdOB>%z=plRf-57ID(0ap;)xLkYHrL&`Xjxkg zNR-lcyb4iU`npuK@#CQ;fniaWXZfwaXU&#A{kYm=TED}*+aN|MTI#0GDPud46sx&= zpBlDr*CtBK^DZ6r&@5gU->LShKZhC3jM%^wKheA&-bV;s}3420XKonVG zViTW)Ahch$*-Q8Br0Wsj*iI}XDF%BE#XMiHd0Oq`)y8=$Zm}~Ea%hvX*7c98b3Cwr5cJDb2Mvxsi-<_+jd#>qH2T2f_{cQSu$5?yL8KZo?OEoyX zZYmqEF2v6S>`n_>f4K@z4_-dDjrdFZLbo^MbdSjQ0~l_CyPa%*74|G&cBp5D#Sk^m zg$o6M+4-JJ2=(cUR&up)#7QG7nwod?{PLl+l*`Z~@tHoxc=x#ZQLdK3LwD?F$X~z) z8wHKt4j--$?65TOlB;>OkT8EqKjhj6`^Un6hdounmLCz!v@ds`Ud|k`O1e@RY241v zw&)46i2KC>9cJOArI5a-*x+e#FUft_vLQYBEpQ7{dZ^O)Inq8Sn&3L(U3a&=v6^*e z6L1v8$s^?*lk0w-uk8PahIw=zffE|(ZmfHoCokvyWQ?^}o=YlK<=li+e4;|=1jgeC zhZmR&JDg*lUSg7T#rT>~*;!3l@{*Rdv^-FRh(?svZJ!tKoC7L>;vW~EwC!r(sM2Kf zep2{ridDYxnk=-re436=aIm`&|0R?9-k~FX`1QXZvD(0N{mTsxq2f6a(cIw@5m8}7 zL!|@14UAP)9DR5>HBY3*OMw(KlqoT(jo_az60@HnE=m3DsB$ zf=X_QF2oTI}+;?H8EHsLq3}7MCL-%^#JO`t_YzPoJ8mL@2U# z=ADG28dq{$yA-&(NnD2*U;|Vkszjkg%?*Qt2oo=O@gELyd;@HO`#B+}_Avvo#=_7o z;k^Q>hv$nhbW*k=<6!DDfk0N`=qzi-B~8ZN?me2I2&Gsd{#lE$?V%YoCa%ZW zxB$o-(VtFr=`fbj^f&;DQkUebQ87d+)m zx6BmXR{NSi0Be+DMWgv9R;5tgVoeV-p`!sh01!zQ9^kiRew~DI=6_@&z-X#F2|rZX zoB_TcmzUg$wgKm#{v(t7IXF1fQ_K4K9~rgq`{@}e;WLK4D#>DDhY3`E^QQ5Kb>8yo zx#{-+YHMcaXeOCzx3PcB1{Y)_kJ)Tv+NhlODy9UHgDB<)O#XZ&mvJ}-+?M3va0nnZ zSFDnGgLW3|NlRP{`d<%S?cyj>E}vL`P{`=5wf>p9{+#cyK4G*l)!!i&-~F1TML`5= zZxhKC^0KQzkdq~@wIykQp~_SE%Cq*!N%RloW>$4xH8at4L%$ne?RADN23_r#CkhYQ3L6UZTSq>WnT>B+{Cimp#`5)S zWh#vJ`kqC2iInxiE_3X>a{G(x-@IL;siHXzsZNpM`D=5JQY=jHw0dbj6!zo(ktx}t zI8wzsIIGoFyMU7AIZxsTiqSrA?gLCLhXg77gfB@4nn>~qS>7CGSMJ#N`?NRavk~a{ z2M`2s8l6#^I5etqQblOkX)-$`(JF-?xke7K`AN}I85!3jK!yZ zdK3XTe7-`}&cT>q4>}Id^{PK(EV(<^FCyY#)?@6?5vOj(@qp$xa2SIAhzkqp0upJ5 zD+>5zE$6{>jfD?$8*KEdm?rN^F*{XO(Z@R(S%LWF4Uy-&4f!+t1lo-p33qg zUIk9#&ni3^!)RbJ^k+W)AwPkz;LR!Eu0ZAeY54oo&MIJB)&0L8XDT1h!t0%qFP5e7 zc7PQUqWlWrOafN=!G(Lvy)QzvV~1ZHJKBuF(*dkcq4+pEsOgdo`}bt@WA1bI<;_3y z4bZ^O`ZKN(9T2OA!Nx+zuk-tBlES)*(nY6!`VBSyrgfY~zk^&DS04f$RrI8n0}Inm z_luO(0rpjMl05FOw>kR(pY@}472d16=JOPh)Ej958vULcX!A)3b#ses(9s=Z4V`i? zxht9?zgwkU*OH{A?@7+MvW&BRm=CP?@N+O7tBwmP*qc4`u%DF_Vew>gw^WX55Z09R z>V0WwEE1W56+C5G4FQH`8$8un-SjvKFY&ZN9A`aJ*|;eD`In8#dDmw6uR0~bnf{kj zMY$g)v-B>=b)$B4V-ZIz=6&;z%&rxu!u>gY{Cpf(jDDWajazGuX;yFIRN8`V_Rhz5 z&r1hH7r3SXzG}|6;9#2kKQiA#n^Uf{I3O^hHdy!P`C3t1w5U^ZM)=28*XEbn7q6$U z0njyA=j??X%hDppFO$3zmhSm`#;pNP2k(e#H-=4Zqb`5h-)#&8zQR?hzV@C(c0HTQ zZY%T*i-(FugHXt^zX}=8cISALNzOT;)~x6tdOOmitz6%6X&)i4npE1-pwHp=R$lG@ z?5s$+bO!Bkb7nPiaNS20IHkr`&b1GG_BR2b<_%q{i8u zfxdy|hj}X+8nSa18jnPBe0ZGp%&Z>w<%|doL2C5T4>#x2??0<#X<0v%Y!qsMD+Ooz z?>S(al}6$D%_;qjal0X3+u|5ZAAArxG<2|AKH(U9B%kboL@r6ueLuVGb{wKTXY1k2`PDdGxW-heR*VZwKK zLp_rM;@urBo4*vamUUA;dA8+dojp3go8m%-^kv_1KYW!g7*afbquSi`Ffj88^#1BW z1AYWbJBT_t?9<$At{%CeOD{lbLzzUfaP@@+$Fab)hnt323_n{LgphOrUTl=qLqXqe z+$;4})swwY`Qr%@P}Ea%Z%mD_9fy@^wc$+V^z$(>3A_42hF%r}kEL;1s;18Nc{_8o zFTw;QCcgMAY1S?0CV=4nhG~fBjwrc*>G36D?7>u8Cy0w}#N97w&t_}5cf1$fjjjJj zmZ!p%u64Kd)SsOR9@EB2W51gyl5bET0=%ldhdzJ(@XiYX5x=>0si69{A@7GV-AFWN zky?>c8;6Vfk-$K-l>JjBr&{UYGN2qSK8*5gkqNp=XG<-nR>lg4JWMpogli$kh99v@ z@!jCMe2<9}of3O4JcSa6N~q#0ltwl(e7VRVr#G7^jxxyJ-t zK?Cm`y~MO}nK`MIJm;LCJ_Se=_0lYfwXW=AXBoj+^1$}gqnj>xWxjirwX@3;_ndoFjF`vW673)j6DmcVQZxh=MqXS~r!MgT`xj)_ ziiHnnm<%Xomf9)&USG%R#WSKar*aoYAw``b z$D}OSlo&dB4X+0pcbC47FSSP((}^k)e`1E$irF{9o}$}aL^0vaceez@6y^Mk9dzs+ zY!{OTuWfR#Hr9)6)YmtNwJfE|@n)J847G`iNMi%nc;p#1wA)$~F0M#C)ZTSfMKrCa zSp(5&+y#&>P$cor8on$v4?1{yIgw-!bg@qOkKVp}3rg#Yc6{6C3U$|j!K;0)ShnD{ zfqH=Oo52>}yIoAxPvUCX+;|J#_f^M+Ah=!^p2den@4k_prhf8DSt8Zl@4F`*&(kaE zW9Yw0E-n%bf^nkyLIsz0pG#6l3F)KXCaI^qCEv5Ml(g4!wYy85Q!sGpro+9nZ7~Q^ zd}QRKRMKenQ;W6($`{7k#H00fCp~L{M`EM%J=As-&qV6L{=9%FrPg*U`c-_%gDy+W zJC!*$EbKZS&X9b@^oX}qzre~Isd7OA_qdT+EGh`*?#+Cs4w@4kL#%e`+fl)s{N@&@ zkuLZ%-~kjKTDgIMN1Ecxh=+^aFdN?W1W}7{COgGh;;h7|e~>|vVq~@azYTIw17Wm{5qY7Rd7IC zcG_Fw`e#woaQYKQpt|9_!OBZq&n$j@z>V*$;MAInrmaa!NqbGf_4+jJYcGy>>WBNl zSEKuBR!PAUdX;38J$+H7FYheg6n2;D(e`_!r$0GkVHL?rok+o7nz`AKBqEkPO5c7= zrBy>=sG0i_M8_?nP4mpa$uh;VmvGa`ZUgnL@z=2B431Iy)L(qC)zKtl(2*aN#+qdZ zI1xC0or{ZVhp7rP#b2@Z}8OwV6l?&PpOjw8dkpVBjI3 zG7N&sSbb7$M8v=QO-?#xxdDm2uy1Wyyk6KS-p0maggR7}wRJEk;FF&cB2@9iv0yl} z5L6Xx9) zy@kCqY;V-1W%xuQ9Y&gf^iuGdlXI1Q7KLO`Kq6{9OV za9HhJ_CZ6Y-+Zo!5o`Y=+rM?U@>?wBWlSyiJA<{P;c?zswtg@!u}htjs@dDVMchig z-w~a*CFEy=zCG-Gu3tYUXGZ;rrDpo4F1t7~i?8<)0?eBp#>@$i{fHjs&*DiUnIKPW z7<%pDrnA8ttGk;LYnx1)0!$q+*hKeSWX6!3TQ3Gvg&y^9zxR(!J29J|Gb`C+Puguu z^8AUeq_xWt>OHP{v#~=LdFWY}wGd3OBd1^0&RPv+k(5-Y2Sxstd~_|<*l^Eca2(i=vYCNCSm1x%(lVDLUn>|wmd)bkt{1zP8?~#upFLn#LJ-l6l0Q@U8APtpShHSFl=qg zw8i#}{%WL&4U z=y6&DP?pqt<)b(KxT&mvWaWwm!#GD#y5MjQo7g1KZ2PxEw+0jZ2gH_VbE6Fh*yYM& zXaMa>^wBbDe;W>>1X0r05V=RYQ=Cseoa^_*Hac(T6uM;R0T+otv%Ar&9h^#E)%9m={J$H+rbt~P4T3Ec+;}8JB`+d zteU9mHjYqw&;X;fTRvAA@;5b^fa7)75MY@I|wk`Nhff-K9N)})e23+CLN@!9|^MUyI-ZRBEhaZpx{}4 zZ@{2yNsX!p(8BrC{a?;8f)3pf?fve%vxA(MR$iTOKKMERD*ncqSE0L)e(Eb`YjzRa zT15RP*RMTb)_P;nMLOf5S`EXa0_!T4`2&cH1I_JQS@qA}(e*OLx%leQlSi`_VVY4z zi_6UwUreO79e~M#|lK)zAU^dx)D(qX^G5H{1l|4n^m#{8Ii>bSGXA-5PEY- zrStc%3cM6H3mRx48CX%i)3d3&C4$eATsw8V%4x!8rueWkdIas(A8A#UelO6NUhtL# z5=LTJH`xM5bAWV__ndFQyX-nA?I<9yDo=x$WonBh=Jvp&w1{&S<)8fV2hT5bDRFmYW$TtsM+FiUa#*?{Cf7xOXKgss17^9sWx1WH8ou zJ#2E3vhn@1D&`YAoDx_~}T#dreMLKh1HcDKFySt+*ox;<N5X@ zGmD=Qf}uO+jgos8)dvi@X!&TsIG(Iyc)miB7nk8MxShU~P3C zfw1{YcIdeb+u&yXeUN(spoSRt%hVB3&YNYMahY~;11K>D%tkE~G=D=NG4cS;njhS| z89!N04P;+GJ5@=Q?m?5{Hj2CysT78KIhgvcfnJS{_R6=_QT=FjpzH09?jM=pa*ja) z?xtRugBL|4T89Aj4r8~r_9iAuCOCLgw53ByQ+L2R+4>%qm@mI!lRIu%t^b;L$4WSQ_j%0@ zJ{79!ko>9ETI%)?(&nKMgnvrd+3)6*+(bztJ(P~ke}5wm#+ToNpIQ?;Cb`YJ$Av67M{dnCa1nuDLG&f9pO z>St=cn<1bdk`|OddIP`%c@U0u(Q72XA{Ggp3WL9e;-2RuxrhX-(Y1!Vzkf`FRlbVNd&}8++eG55l5A zWI`I;+ELWpQCEw0{p$46{kv!DF+SV zJjW{tMZw$Tq--6pPd{d@^giup-2A?#f#&outXbQ9vU$;`1n%iw5KhvX$k7w}qzOU+P5FI@=qiqzma98v^ z#P`?yLub=|%$QaMd{j=hwu!lQ(Y3O^fjil9qsV@Cc-<^ks?vHSIjP#^S5zXip-{DC zo@RXEN*r^+>+A)B#bo6PM|Ca4M5;_{HkomqxDa3?ecep1%o;i<`8r!SP6IVB6wxxW z5U*_CsrP=mThXGix)s-9;8>VaHn#B*sKs53R3OjoynPQWw>h3t%r@JB;QGj_uc4Ik z?wmu}=%QCyk%~>5`NpkE;K#Xjxlw*^ZkvYFg;fya_{3U1QKd*jW0&(kQ!PG5D1BU8r zkVX$z=MSQ;Msblqr`~_TYDymAd0&+RV%z=k^PMcn!3<$M6UINYX-Ifip-}a;+_Z>I zX%Mx1ort0i*76Yhv|BfHygsGDlR#l+=+N$DV=oSNHec$nmRdhxMS<9ak^X|)RNeJ$ zEFI3nAat-zuAeav0(|2RFO;Cb#Y)!9J=7k5Hiz1{6-3TcOJXhi&oMMjOgYa2}_ zQsH=gQt}tN^Lm3=uQzmrs{8yQ=IG1y6w+IIzgYh3&Tn-OvG#gu#=pP#sG`q}(eO*? ze`Le|C4un=W%S+PxIih;D?DGHO19)kw$_Ma!&lTI-lWsZaq|sC=5~!lKIi6+qV`_w zNs!(`?~JqyIHHnZwTw63_4aq8>Fw3bl?FXLKXMju=t(saf<>hN<|~-aziXe7iE8Z< znNAn)Kzd+=^2Y8@qSSDPu9Z$Bb)`Z*`nfo*K@X$ATj6|(K*oiJNe|)4W)cC+vb->k zR&n`4SorQU;K6#V3tTuJU0m{CfS6SD6h4*CI(07TNL3hC0kS@4$IYvg`yQzjWaL*4nhNXfC^uVx{5CJ|sY%G2}2KwQ2IoH>i`lGg*-lvLcTk zGug1TYL=0Hl5pVea##E+j_e{?ZCx*9oP}4*4x> zIp?zRND2sR9aYx>_kog+z0dZIYE)^irGflOm{D@7NYkd1c zES&6j|DC~)qeMVSb)jklRt!Keva5&C+Q6oP%yc% z|DpIF8H3<0^IUJ8?|-N544w4L;b1#t7V=bY9asgO49xCm0bN8}3+P{oKFZly=r?yr zy3xnL5Z%jk>L;$PCW2xQ;2`!>j{$s(uruas=!1FE14f(?wHmUAQ|bMD6g8hYu+0Lz z#d7N}0sn=N0&%2CTF7Axqm5VagmHE4p9Kqhaxf$yAi!;|#8M&i_f~PdWm^Gk`B}4; ze^kX9cg*J&7>%nzia3+jo)-MR*I*OR&t9gA1gb2m*wg7YDn`tpL{GA0H`4vBu#@`Q zqrQf)r+Mh7o1ULoJJ{1tZrrdEputxK5d;M(J~@vhAf8B@=>aYSyqcd;f(Hylw404A z1weK{!<+K|Yq*S5Ips^P>pd6x{7{G)oTb5YA%`|4j(HoQKHf|7$cmo-3Lo zYv3c8h$R2I_6OHs|2^rZ#NtPPyZU*r zr(g=MBBx-QHJ2Mf^Tm-A>YzpQxl>LjPRq_k8$?75lT+bx_x1U^^DSZ(p)G5G1Gt#C zDFx{-vp}cMVwbFXsh0X_;UaIJgIXyeJ_jZ_P+le`!yQGYlwaQmH3aM2b|X0TF~{ID zSe!`%T?=zTl6$qhMjyw=3dXp8h5}__4@}e7HCe-mR1&`P?fSp8i@4E!XGO2tLZ?TMt*ogX_u9ktaZhr zdsV=LiuC!!rp(5(Yb<-}z|ud&FNIA90HpnXZI@`v0Pq^Ew46VeCU?%ou_WmZ3hk_9 zhEWHCMf$>6shHrAgn3S8{9|BBfK@5zj3OyQ<$qs(MjXoD1b4h}aR6nlY9niq<+i7n zvA#sE3Tqek3D@=FL?L1^1=x=3r{t#P#?!y!I|AJc7D6I5AhIeE{C+KL!Ueo=gj+|k zH<;`DdZGtdruB*zVJlKejSV|F*GdmL&3)iW=JOBvcDE~t#gd0mE^6OufDa=u61dSM>fJXfWd>~6 zN#$Sty&V2rUTi@w9$3#31cp*kny`F(>RL+e9=d`9IHE*xdXK-vvSx|r7ACpWOW zg@^MZlTPw8ko!yo9-fb{Rz>_`L@^~7d&Fgmg}A|(llcSSa0JB?a1+jl8_Q zbzHCXdx@hrG?ttI3`#(;4c6dwO<~(9JpT+?G%X>z;FLx=?->JR@%6F+kr?3c%b=+H zbfdTtA6}mUf#8x zX`X&-C>5A8iM@dt1G^Dgu)4P>82S1whjPXf?MYP%1-cwkn|`0;?G8KBU@L;y4z|~h z4u>3^Myc@iYczm*2AvS;9Z-0Nm$6UPq@H5C4b_sq3#?a~+zC|C>zzy*c}B1F$L_M) zL=)3m21g|nZw?9gj>gR71H&93Be*)K6TxsW?LuC%!&|DT2lICeW4PE0fb)%Qk25Ax zo#lO;1G*`>|;{%iH}`o|5K0KtZ~p=Hp8A&SPZX~Fe(Kp zkk2;~;tR_qHD#qTf+QIEuFn=(TFxKhB=r4)X1ELEsbb`*Co??Xqt*HkW7*&nt^WP- z{0CZ1ISSSA+~L+Cms?Vso`ZL^AjEGUdlVDvXKkQ*#U6~Ss$k%_!k(1j5ZXsvzH&J; zN~S-77E1eHbG3qaRe@QJf8hE^yfSFsUiAdjmN(Ly3yVit*fv{V4DO5Zy+#6M&`#ie z`wxHw`27P)#*SqzPI;_D*J0goUL9G?T8c^rf{T*tIR8)z_U_fM=OT6W_f!y{eQc{{ zVXkD!PkQSHs(<2}a>VivvqDlhIS}aK_p;jgpAkS13FR#@CwSA+{M4(uYvhS;R6Tv1 zdMKGPOSkCmQ(KKa7YKt`v?Vp77mvcnl6AY8@+gu8&ZlBsDU)wCn z0)(3bzMr+1jIFqIKvYv&xB-MiAFwR37AyLc-KOV0uw#yt#0G8LM?IJ1CdGXpDl+?} zc*U6pYn}Cf?R5QmPBjpdMbn}$&jKPNs_0>#5ux(3@?^k)vq`=@oKy2tnHQYr-8qn? z3oO)1Bd7+k#d`1co^QKH%c~SVzu?E1##1&%^xP}OIYz93u$g4q0FAqnN`z}?n!hf8 zTx3T4%+)+(cW|1tR%tq#zF2;C&?Zfgl?1ojs;Q?X09r37o_Zb5HFrF;HJZ z=&w8UBVZj0+ZT`YOHCs5{#@axel%Jc_*00B53pcyu{jqW5b`f2+DXR85TTE<+g%Kgg`yn0@~cs>Tlx;_U0&=ZQfW96kU)bHdIc(h6n2 zDPSRabHgZ7H}00LH~+3>C8dC5zdp?0e+QFh9&@0RT=%2V+5wf@&&#+&}~n%$-mp z0bGR6t*Pj4F#>W>l@^n*N`#D@42MD@5-8{q0iT`TTr|7rf6eZAg3ZI_Iu@34%hM9~ zc>ZfPkkQXI5RLVHB-2I9=-7Ly@XRNS7AmLY6Cxb~eLxAK04^`WRQMvhHN(|uA^*re z3=8;egwut*IIQSomk#~d3it7V6eIhk5pX5=($k{o46$qnLcW>lQO4EZu3LzKK9|~W zLiuwWu;4b@d_osnD_pcWtN%}%9Y*mHIIZ@;VLVUEEDf--v-)FuiwD}q6SvrFp3GNi|Z1BX;1_k!o0ec!Soq@&cgu%JF zfn$m)k|rjT@^#F<@5$VhZSY(qE|}M+>#(!T%Mj-~S^TvZu#^Bj@O&fT-i2Z)gervM zR=UQq&hd?7y8~X7^dP-Ld7l6AV&F9|!jJyq+$OffyHUARD61u>F0(XidAy5lv+-gQ zXM?#=Vk1Vk83W!xsUCNyK~4Q08o-ECLSZ6lhctoND92%>zpzJQSrKPv;uhTGULr4? zQ*@|`^4x+^IPXbRp8By$x}7^N>F8M%ITTpEOYz?t3u1gI!7emX{EV4VtZ5<#aIiCc zBP`#VftruO9iK)kos$Gnx=nY^3pjN;UR}k_B$!CVX7yS12r>|rw83^4r!63Z6CtCL z@G4(@b3yBNmo36I7&6Lrxr+`&v7H$xPr*s?HHx)Co@&kB345Sl+y~4CT9uztg9Dsa zKy?gwqp1(94{W|0^yJ=h_cAFV=5xBH?{~pLpJRAfVd+$|O-@5Z)%4>JW_QAF3gqo1 z&1DZa&-mFT($dz)$^NZnm@9E6dD~)&g}@m~->GX+mL2NpP3v!gkayw+(OXv0Ma-3$ z!*#7|{gSgtA^Q8l#6b~N1nWm(ViPdz(F8s2w$OIaA6KNXE+-=kL|ANt>bgmfUU`^{ysyFU^)+1`5tiJ(_TSK91NOcXj|!bHnoA#M<|;=o+!u5v zRxe}8wCQOto0E~ra7Tp7u7(C4k5@%!UpV{X{vuc%aa0gsf*p3UFCX&`i(UueveK-L zH#;H`E5aO)=<@#*zGs4J_PJfL7ELYlRW#M9*LfsKsmjP8%_pNdE&Q$dZ*^`#b@|^1 zU1?B#q9l9~j7l;{?rkqp0bb0eL0Mng90dG2xqETubr)7R_u7%(aSp3iF214us=I~E zxx}vk+{{*tvM3ht+g+IELa)a5u2vAgMyD$k|CJv6M>YwJD1dDSfO#Z`QVn5mb2wh( z#<}M#Vl(j7wcH7HBUkZ1v~tawR{K%(1Nn!U6?1IjWLabw#x% z^8XGDZGfK?8%L&hv-|(n9MCG9y6WOzcK&|`G2XOCho{P%X^$@43NMwR#ZO-A3jq!? zjV1sGwIloT3m})&c@=Qtl*;08{{Q-MgroGPZSzaMZ6y%N!9ew*3Go{*H50pER+Z~N1fZi-UYxI6))ILDgb#I(Azcv z>f353aZMW?r{G``rw$#)J%Gr&jwiys{a^EPi3SN}NpA5|NVAz-oJ^oF8?8IM|LfK@ z1T4dai}qqjE&)r|8anEk!T;Z_OTB>B#p0s!M;8X{6Sbd!`w+mf3Oweo@9W;z0e(He zllRs}twn;}hzkikjDKXRr(mZnac7Ony?Y1dwLneDd@h5c;nQ}yX2!9en%{3yV!J}M zTh~WXSBwF?!y=vD{ah~wvWFR@{kDcbFmfu}`Q{i0HV_l3p3Ix`dh-1736LoWh>WWT z^t|%t{s(6I;suOUHHB@l<1_1iq(Op&;?$ZT3vAPIK!vHHn%46VdkF4^Kn!Zxgd_5 zTu}o|>%X#bcP_FvfKB1`-)f|6=Y`wh+`~_-yAv~x`A4?ONp`?>pi2?N*d5-(!MYZ{ z#>sTB70029)dd3u((n-_AHb2m8>zv`qH=fqg}B7kmLxNMe9*AwPHha@Qavfh*v~#L z3C^C0u`InTs?dW3>Axu`FU{S0@=`3UPOoy}*-&jFAojMYD|N$QP{baD$5YxNB|X7c zoGgA#!p>Sqyv3jSSE^Xb=3?PtwE2RC{H@&~G0^^FC{<$lTN=I6i#>Il4jYI4R@;Aa@bfzkH@mSEFMsu4Xh~Tg71f|1tF)@Ko>r|86OSaAX&q zV2HVV(y<|IqNnK=ufi$ueJxUn-1Avo?F-04RErlqF4 zPm`5+A3pog=uYI_0}Fow@IdorKu!^-);zBAzkVjOi0n%Wn)_e^^LXRb+*Y^!b?YI3 z@IL*_NT`pfse!F35?yBjKks(295$zbHOovLcLO?49+7VSjFBP?^*8@k19@h_Gu^FU zQ72X>XzWnv{9z}RT#94xoy*MgMVcRAhsr~iT#s(_&YAOd%YR^}+uYjPw(gR9Qd1CT zkIlC$dImNgxoBw0xpEr1OTPj;lLUx_3tLsta!>q zbV$r3mny_4Ra4hIfokJEd*`+J@4_;wYTOQnvl>}pVPKKM9YL(pypp^&ES4TLdu9cd@`9O^Xb6ZP9LQM6#Kpm@A_R#Q=U~q6^t{3 zDWTEl+14W?Q|g{T8=$2EH@Ula$Pi_Xh)i z6fObzf}l-^!g{Oyip77y3n4ru)|T}nOs<1G>cy?m_mz9#=?kX(LPceQQV5tFYNp+h zHJc9r`Xg;LV&~VGoMT36H^=Q?tm`ZSNyfX(vKi`MBZ30;biCd{KWYtsczD0d*ENSQ z^6LjHd{oyr`2rJ=Iq2Lk`+F)7)pb;R_4!faUEdCaqRF-X|X!|F;+Q1uM^d#4GEOLyNZmT%M&4;GoyS$-FO{Fu#rd5d4 zgZZnpW@)=c{vv=TiZ#%yhF3ol8XhcMQS0>?4fXcM%eIN zAsawSsJ}=|{MI$MB~&saApvyi6K?F>N6q;z(Pw>LMk8&EcS^72^PVR$04OzE$0g?U z=@T%~dQPkJyRl(It_eLwvC~cn^DtBK`X(GDT zdRI9^>At!1{>*ZI2~o1J?q~!^V&|(p{WM~e^wRRVPW$3hN7KH(!*MBAc}lMYDq(>b zh40(?dltc&Q;&uD6(bR|Gbm@Py|FIWrheK4i9Pe-zUu=UAB6V4uPnmh!gQ-f9yQbB ztOHNG?uK1Fb3Dmue|v2+EJO-EM-U3B*^Flo3b~2A9?MM@lWYeF%|2^2^R=Q4!u4>I z$1b0b4By1P_8jI9lw#v@c@}r%tAFX&Sc$tTw z!yZ1KFOqiss}%>^cgGU1FqS9pvGWn=LjYt4iRrYhq8GFl^S28~0!8Qll4@*No8UoH z$gZ0PbQby7&p1p4Zh;pMF;uMFtjdeH-H(9!;mz`hQsA&6Oc&bj0_ zOsr8Q_&XR;X>~aZb#Zo6tSc|{8UVkLlAb2^Zj_8xdhdeH)RKPwOYva;l~L%2>y|p2 z&we_G7CI;;=tb}8+i8hMbuNr0UeDf^{U$WJ(S9BXIhM zDtAQhy!Cu6r4~iyuWj7jQcoLKwfu~X{!Qad`XF$ye=oLX>?np&^ie(qe&#Yj?)my$ z?9<2F2{6F~RnuUkxeve$F0MP{b$61dV#gRtH<0cXqKaLh zLQ5A+ul^yrprpN!DFN8UE7y3-tAYM8?bfHelbO{P;~Q z(e1#)%sfcAEIY7}XT!{FzvIl3(teF8P_JU{M3dgU2{Pz*p$l9JrLIMu=x7G)XlE$| zY#e)TBbq3?JRyw#JljrSliyt$DDvOel}r}ZVs((+nQ+4kE^{H>ma=oSSF!S{dAd$? z+GFMNGXJ#ob=PG*?{)Y`xUg4`hg}!+EQZZV=#XzeesUtoi#Bv7qiolSnat*&VZa^A z(WR-qItcILnCpZuVoZ*hdX#5izS>mp-@U?RLQ!|-mBaNg{!_<*1M@Mbjj#%hz(}Y zmhW!*a{-?Lq|=6)am~!oIIvCa=;&5Dm+i;8R*w9kbV>gciG zLKJ$K9L+{0y>p?$W_t=-3}S~ zH|+q=0+0#%(Ge-OF_j@t-ci~<@n861{?kSK&?eDhP9s+Jo+bdDAOiE#Ag(5iC;8;g zw;rSr zUjA6p$4_{JDYb?P7G!^K2UaQUA?ky^KfrtrnzEb6`c0%jAJ!d4?lxX+D4o>LNd}1go>kH zW1R{FRHyap;`RyKFcmM6g}pJuJU0-}g=maR@@Zqt0FC&yh^aLNUl9Zfo&!GAi~RwD zc!~Pf6VU_5bB6ILUHIw_nH>vLz4!bh(M2rbqMV!ZY22g`Dv|+2E+BUU&kEZ)|6lwq z&09o7qCklgt_NUQId2d>mLNiywC(Pg5EI=7)l6p$jdG(d#UV) zEAGf~K2=PH(zlwSor|x|x7*1qo~a{qJHHj#Ud|AN9Vm}0U(OFtOivl#(mPDAS@t+E0Yd)sKW8t7D)qa#fltC*KI}X^+%KI zv|X%s0aDBFeyXhihRqn^U@Y+sFsfP|U{yUaF#c(41*`8I3nU_f5ID#^bFP_okPYEnJ9=9oZGl1NE941s6?%h+rabu{J>rjCWdP9#l=J%^HCv0J+5i~xk%RauSdFruhH3L*&UWREfR&fqE|E zSp@z^ruvw&2Jq(zZrA{lv4S7g6mmt>UK`AYkNwj9Y+3&F!|<{wKuf}CKgqiP$z+sA zlv#!HLGGZn2(xVZq5Q4RGov48CNaC(^*~wq%={!+>bgWX(JPvHCGUVubNg=}>|c=u zj%x$_Bj?;&~Y2uuqt3^*0N*~Pn|6FT~U&P(a*M>cy-Gu(aFln=m zB)d!;NiHnRTATzzjFt1#g_@dKI^QKU*r50`Mp>o3+Cll`xAByrtzOEwoqsk*dkMUj zB>(x%{)z)`C;zs9lVkP;y5DXlPw**^uKml+{4##&S69?Z+dLZ=TWz!mS5(=hU%y0; z#`(3j@>0UKg)?9G$&nXPKhRQb^mbjMCS;Td_zMNYpru9*R`U2+#J?(Zw_b=cM{}KL zq?QK@$SrbDT}h$=i=LkrhiydWh6Sg>*s*Ya37>5U3sM4}<$a6b{tZSd@l$Cj1RhmBxxRu96 z(UV%vyA*-yP;tXDmW^i+_oem$CJ}lI$K3wGx5#&_0Z-Z+aJc=}Vq5oQDnYaauNJg$ z5}NTn@Zlr6d$JDn{r-uGRXm+`Azk*L#spt%TxHYxNQm74ik21uuIcFLw%Hjm^&^0VY9+=3U`baPfJPuBkpMv21t13m zeN8yOYNOl#k2!Q+n8+2u7ZFOoY#*JNtcW8*HA9L0o{Jdji~B{iaF*8S(1QzWb_^z zljj(DYm?0mr{CII5*p)Gesn7uA5eT)k%{see%>j$)|k+kVtMRN`F|$^3-Tb@RKq?T zpk)Oh=V)WBf?WydVuU2*Jy&pa@PfZr{(tVQ=ieXC^+mypLXvfYo&H*;Y`QvZggVZo zSHdrtZ8IKzHP8F?0?*>J)m*iwIxuVr=^V$GT39$uon|l88U?uA;42z>9h)DLiaR!N zIGH32S4vSE52T1 zJb7Fgy2uxFbL9bB6Mu&2C_lSznpu?9My#VqO04V4HVfbE`fy1QeARmZE95`byT``} z<|1^8ZMCcRgL;k2$0uu?z?m(7Qody9-ve#hzOUwuP}`j50IBvkSwO$mrISFBcxAA$ zfpGZKwEyqq;OG0AyLhURb0ci<`7>Z4cbmqud!v;i@`X%7zt>7+Vk~1!i`APD4V66% zgb>QHnqUeg_XQ`L%WFYv(6=$YxI_NeLZRBdXB!(*s09$`mi;Q<1m25S3&lvi&g^m+p{zsHi|U{EW+kP!F% zFiNUt^*Cj_yEX8J+k1ho6|*`6Tl0)=-xJeymkhE*VarE>GP2P<=C4|HvS@0$y6whj zQ+)zn6tuUN6=wLX9G^JyX4bcbXxe|omhhMBF*gLh9up6|b|?Bc_kgaMs{|U@WI}Q? zp;fPEEbX>=%Kr1)|E>b?vOVG(8|LvU7XD!1MTeQG;UQu8fE0`y<35?SAEXT44`8Pn zl#`sXPbgD7w+o<1QCZ|U`Y+L~D-SQPHSY0&V$uGDA0c7{f_nP)@1jv3>88<|X-Ba= zYBGWqs*ne)MbJXbYuS@p?Y>;Cc7pR~5AHuD6Bw;}02l@2)|;0>`Qr~!KB01vwLl;r z*x{3PIx}$^jkf6PSiPE!xsTO<5EdKTxi~i+y$A0FOpJuAs(pQLaNw1!j7q1?+OP0=l;p6P< zNwXgp(&I}HXylCZADsqwbj?1JiKct&{5dVcW2;w2EB1L_M}8r(Bf-Nk1q zEznt8(c+C8)y5B|af^%3SlMua7k>k+Bd`Y-a1Oz}Xa;dD5z#;SP2WKi{BDT5CF?p+R0`4Hggm&oZ6sX&u&br6>39$~4-r|59qp?VqxKV{&Xb3vCIJLQ8p1!amOn&qJ-52R^sm5$+2RYcQ5@|BY>*y4 zk`m)rDu&E^H3_oW)jNQCuUwA{7QBj4{F=wHOxYcATG z9dY`KLB%+~PV?u5jTQ*=Q^T!uN@!G-zSzmqe-N!z5(O(gE=m^$=)Z7sdPuIR+3{VR zgQni8+P5r5BIWYSWT7y7;D-GB;0S`vE)l?i2PngR~AezVJBZxX;VnH;SIwT<27F;ESWMr0Y?&jMsB{@Y2~ zv~Z2E#2M6>WM0KMtFoJl@pRm^q5u?Q0AA+#jj{a<4z_(^otk40uX1k(-0Eb^VSK_v zcctz2u!TESfpC)MWk}z;8lJ!4b8HO%_F?M$;}phG7)5Q8T^Hly+UI|WZkuc!d~9_6 z>{lbq&Cb<+bn=pc^HS?J&;8bxgiyvDo6E-m1DK<9O7M$qs4 z!ZEwYNh@uULN>ePAFNf5xqxC*djiTLz=ZDJrJ)G;?S9|=kIrAM#^b)!=oE9eY?^F+ za$cQJ^}RhmYqHhmzJ~ID&}2ug9~Aw{EJo4B_|8uQK&>CG#9kAR?k)n?gzB7HGVZFa z#5dLkxNK5pJ~IEOy9xdb;FKL6Fp@!_z-M6c2~Tzi-XEcmHvB*5=iCD**$aoY?g^jA zDgUSa|D)~^0K29nBD&am>GA)GBzSk-Xo}lt1w+XbLapr|6*2aW$|Qz|9~d~Zn(79L z{!!O5*jH`puodnCTBt0XfqIGW<_Xzdc{+t3%Y*G*<>igM;d` zr0Q>fh{j#rjtYybXrj7`CVXExyH+gNdA;*+prO6bZ${t5=`Z^TyLDiDceNNY&E(mj z%0r8B=&aXwX)$(Q?RhG`r6-YA_Fj4<1CoUWKKyj6`qdN0d1mOH_V0`FErSQ|9ep_B zKtJkBT$-iqiWHE_Bfvri-oFUs02P7~!*k*gX!Q56|2=>+{-w+NrXbQ>zkz7mle9lX z3!uMQitXNCE{yi0VAma_J%8O}+X`*Fs&;#=ypTdY^wgDz8 zoL6igCzZVg$u5ut(v{KZGf2IA(!k$)YfAexY6YXrw+!mgc!W0vzF8TthB!vdEYa0{N1&;|IBnc z9vVtt3KiB6djEtF3I*|y_*2-#1V%cV*Ls=w=Refmd#aU8RUM~ar_L*eJn328j2eIzn zk^guk(BnmAgSEpqwaU>7CCeDr^M<>H?XB3Wvp3;$gFhveeLi^LcHA^ztA3DG|nF491$ zi6J*(@CQ%X?>N)mH@U>2E`)dzcnxhV{P3A+)@3@*Rx=k2(&^7PBGP~UA-X6_^c^g^ zWyHdx2zR>@y&VX;U>Ju&cIgq`4@>wp8~WJJ8$5ErE1j1eYver%Z?bFI z@AJ7jf5$wkY-eH5IfvyTYt_)QOEDV!2 zEeI3;Zfz#ezZk`IhkrO>d@cKX-4Lm+(FOib5E>frH*4aKA&#u$r`*a!*LW|a}w>r+-lEoVQ$e> z?pFbQd`&gOrR?5;&~5qxC7~0U;3lfcfbt>3bpH>fiIM<$ak8!eGn9vYBASW)3h(bn0kT+OZKU6fxVX#jPL z`4{G7-iW)-rf&&(yylcs5E=pbu7)fz5uQ-AZM(+YBrDNY3j*4a$12ULDS#igV zsagpOYoX;`zem^#{ioLq!n;+B4Ud|u_M`l&C^n0pRQ!NiM!k8|OM^mR)*Tkj7y)6j(wxIc|rD!B{x7cNKLQUs-_s(cN zrnXtUvrpR$2o_dIi$(6E!Y;5O-bz!r%%;V;s)!DSL+W5CY4fE@aLoctdW>sA@;V6D zTZ(#_&>OXQ$ZAP}Zt0VXL(&0HV7>DMhu+ElTw%WtF5 zBF}HrnxDkSSM~&N#H;8CDP!u2u)$m$P$+3j0^Kfx8jvC!G3$GU1tI5 zbfO1ahHL4APa9GM2P=CqAAe4*ST2?sQ4G{O1ig;(NfKPm@`4QC(>J(F9TyC{r8}FR zrfA%tb*XnLQ=KnzoqH&eww?R2WZA44=R*8Cd<%9fJSlm$De1fJ43eKZ>dKD=2ep9r zmt@-fJ50tdB)gnpuR7Y0e{0<>D4;K2ci^=#|GZp&T^}o*!6;3}RvWlp>un{B_?V`&5&DoVVVesEqXXCD7J?QgM*|B+ zmd#crFNqh0w;G_6)ogN&f;!@vy#&P9N*qbxjVxEBpS;Fo`#P5H7mk~5HDf-n>QH&Q zvsJ#@zfi_kF@kuY~#ahp2qmh;?20be|{FixklmZshnX(Fqd|3L0}} zjAxzXN|03%g8=jbKQEOlu5tC7zJws}rnc2Q(8Xf<3R8?YDoyxG>Lq-{QiU>tI=t*w zEbg%cM)5n1AF+Ulpp~o@=b+=qLMZ=jwH$7S%oj`57fh2FOI$@q%8rS{vtdJ|4Uv4P zg47$4O?6phG~4nj+0TE*geX?d`b5kjB5E=pWp4|@n#h~YNF<`|SB(SDL{WV%yDOE%<-aKVp zLN52YYNy&I^-q3eK(j)wr+VpY;TX-8vR?Wi^)wh(3nl@v4%rtBm1$zt1#8eO+D${n zt9sXSPh%WSySBBsvmeAvZ)PMaO&_;wRrruiJy?wPp<88LH4QcjZl@I_IPIHfNcs`_aY|KEEC`Q#*d7xCV)HlT$Dy!t`7vh zH=5F0X3)1rP)8kS6llr-vlQs}?dxgra)2c~X~S98d&~N#rR&0;*OPi%b3==Ks2&Om zzcOiq)-|0o-HU5LM>KZKJS8etK}gd?gHB6ajG=@@nwar;12#G*TtFk;WSlv9P> ztnhXGYYuHcj;_}=P-7Su;e}%If*fq79KJN0P^gm;vO9vqkhlWDfS;@`_j4|$IM)6$ zFwxqe>vzY2to-$~2RjpaX|<9)y*!P%!MKmqS=+R2OYqJP=cfPnlecLHdxlYFwV6!| zg51UA&=00(Un8Md#T;)k3^|G{eA8eHaO^$U%$(LFmma?5tf-G+-=R>~P763Qi?gj> z=@oGeC>n$ArUixMB^8LDn?i&ayFjcyrLfQC9q+_zr5eaJ^d=_ib$$G{Q32f%iX3-H zb4@$yYbw}^n)WP*M{$C@v;8E6bbH%-nyI)7K^vokoW;hD?r`xAgDEVpS zj>_Hj%W&%HV+2WI_Cal?nsnSf&TlU(M4AcwJe#12FRw$j+_qN^)SYtdNx5P5YyzRA3`N~ z#pIKGVxD4L`V{FOCJnuEW3MU%u7t?TvdNJ`Vy{dtSjzt(_pfq83aEC)!OK`r7=(rjzmJ^S5+{vQ|k1XMtsg-Rd|Fi&n|TK z+__=L#|H79%Qkg5>cuexXf+*YD7joQx&0+HS1*Gp4FpDG5!jdwtFB%Wns|07O}Din z84DZ*23pqG$wlE}l53(P(}G=&RTxX|;jmj>2RiPYEyq-PexDNuE)E^5{t&JEvN@J8 z-k@arhP7l;{#SQe*9C^UZ0<=zC0?}pl=#kzp<=`>bxm^yQ_1G|fxylPqkDod zv`T%2yfiUC@JMbxY-PIup+}J=L7+c5e9?YvmF6-X>*8a0gc5N^;bYwj8HP299EKil75IgQZA+dhz^gC*18Qi?2KVB|%F*W3%op>+p}W)6qK~WgO!?(Bk(L$BeXm zIyUz3yhx#EOOJKT>2(+jIEy- z@m*_p!#_mq5}8+tQ=N;06U1v$PAi~3weqqZP;1~G8&2(Dt{KT-7X)s<0e>(`V*>W3 zSZ*J79N8UgmS6YzP{)l~=gXHbTb8a}<;%%QNs$5*Ln~eWa9X_^RocnDFk&=@sV~DjYnPuZg5dwa)^`RfR@Hg z%*>CR7p^$d{XKzPZuO`Bl^>Mf<;8RzF?@KXs^Z1q&i1-8uFvb_WxYyEuSKn0f8-$42hGhZ)FRZ7#5+bi)#yDJqyZS>qR{qg?CT_VT)@unX{UjLbm&q=4;9w}1 zl1d}EDNW%se(dvN>;l4c|Hd2ChXl@{rvo=g>f*2p30|{Dab?^pGZ>CK+Rf*7AD<^N z!IW}t!%E^mtv|o5@VYKjO^H5O|$@%#vlY3vx5JR1>%B(*`*v;Yjye#k`MIR$)_UL zAK@51=pI?T5rUFWI%^?IEF%k|8HSQ?V1adgJkG{47YPfGgDk;#YcE5cbGg>m^~)th z*3F-~`wd*aTWFN%D)<4OX;K-OZ$KNVhH0qOw{EKDGj6C(H47m1=#GcbBwT+X&==iX zO!6rn$GC__dNVdxNAs;hZQfEa#O2V4w*n@R%2`6O%FUJr3lyLx&A9pKJ!H95qfm5s zwbFXXvWsmk=SY8zaM9pS^%W3^Ad&n+MoI$YE6JGH(%qpL61tZ@0AYBkclLDnP+D}4 z&)0VKP^a$?QF|`bCQyWfLqgUf9<3oocbiuxCwCo>6;igSVeI;3@Yw#_f@Qcsn>J7< z)XD06y1DFb`ZG(yZsRCabd;|{N6PTLQUQZ$ZeH(TvJT_EkBzHNv}BC4%ChONz_z>B z%Z$qedg~)&mda}~pUTa4K_cp}Et*5wz4UeEB=yyopezNjgw~jA6>}n6Vn=(y@l)wsetU(f!{f%|^ugjJ(8trZ-MjTI~l7%b|o(93?J60CaNjfgkht337x*(nw`=@-sIyBD4bjg0Z=vJ0+(et z1Vl|@BZ-gcu1&DC3sm@O$-OPcb6{Pxr?mJKyVK1Kl;{~Q43XD_6tIAl{j_#{9Kug} zgcG*3C}h5~(;9O%&A7EsB)ASmsuE?6ig&!H1594V+?U%ACJ7R8ij$_ z=xV1GKG}Ihlbggj4~@Yma4)2DgzANmB0)NZpP?Q&OyjS(j;ozpb303Je=qxr!#i0| zYl-W`@RBt+&rfuX&%a_ei)F=17dm?{wT*H1I%mtsy-fZ;#s%dbYgyb|@}w^ZLfX|= z)`7B9QeqP9GVRCiUkY!#!n3$1EqZty=Fi7K*Tvv!JU|(2VB_{lO(_Y{7~X&pNSjf{ z>kFy3a&2=FQbx1_LbmVry=szaYr33k#`grG%DMRShI(83&~G5}JAGv6n-544L(WEc z<=7w@(gPR=cURvul_E3r46Qbp(#OpL=^Rl+rWmAwP zCsEj2T(0Iu=m)E=32?S7QZ4xVyIZTqig;ZiWk*f;j9xS!)vv7atNV;K{H=jeiTxU@ z-a-emu4ig00a1(dn=<6(7hQ&mgEQ4tQuZA4k|~p7qcBU^=x+8R69iq zQ%Qn?5AjCYI>B;+{WZm~PEBfmLFvmdNDS7{3FYGwFJ zy&7Cv^OS}(HV~My_#=Laij`itT=tRKt4u?zfDFlAzckswZ56!x0KKwL?S9f`jdK^e zTeVF=ulEAxYSPUtw~;FHg3Vdmw4+M#%|8X%4$KdD?e26w0*68fbSF_12g5 zbmIc+?9#vSCBJkb?@vmT(5(KhuYjO&5RO89+sr>#!Ly}uXg5agSJ-M;!&yEg1(MTij;1CXN ztrbCzrw}1Og+u5r7^@35L>-E+HTcB!Z=ld242qig5jw^wN}&>}}3T6*tII$F5vK*4->yXFZMVA)Cb2 zBlQDW7a+SnwZ~`AWIlIjBLq8RD_TP>e#P&MO-xo-fA;5qTBBJ|1xvvQX&ok4Q;@0% z=I4{WxRn=rOv#(DsZ?Z&#jv_;?|2GM>dEr@g1kBd?>PA(EHf z+XG${8L13*YE)-px@s2blhv#C5$-*_JchTv(KGWN@PZ!E`c*B*95Iy4qQQiaf%d8j z-Q(PO9sNW!Z|91@1WCULMjUwhwFatDTD=I#UTVvvC^#7 z$MVv87F~28iz_~qkgVxIKihn9$U2yx7DB^zfx4n9^+unMUYR($KHfuf$xNS;mqC7o z*5g=oeYPFBfXx+k;Of0`hVyZ!Pj5ta7LB!{_gEs8ZIU61Dc@VlICeewjIu1;%Zzj+ z9TFk6>Zc@Al=YhvNTAe*qFgjVC`KqwWY#pk2Dt_rb6@JshpiWgNoj7%xzg%Tr$S&F zPpY3pvX5Y5L>pingtt+L?Bs3w&lz#QZ^pW$?tNL|ZYu$$30mr6gDZXgAEz~uxCAbx zRx#ydf6;8}kbT@0=}rMj%CfUjk^nQA#W`;BNSD32vhIwlN~a-B?H3ZdgByc88grp9 zj#HR9XH&ZH=^R7q^QG$wZ*U?C@hf7eN5m+2^25kk$9G^Z^_Xc)oG*;Ws5JgN!Vc)< z3?sD9t?*zd4eb8kY6QqXhofmAAijYi!$TGbj01`fN0V|p*d!rIh636|8(040q%WN_ zmvTkUPY-|lx`}*^YGJ`}-Tx2K>j4(lsC2GSp@+!HVo9s$V+90)4#y$Mgr^7LlWh_6ANxb8OkB-=(_ zc<30U!4Xe)cOrHPL)CqfneaP@2^xilDWe5B{+`tw1u;j%z&+tQnxiPdpM*#Gw+%)4 z-W|TI%vz}WT%P9j_rJSc-{w?^NQj5>O$tis-EsuI(Y zTZk4|T4dr-aCm68mzLXWPqpxvd}?53J9U3wlT2~p?QT8e_tt>Y)}Rf&c)ze(tBGiz zaKzr`-Fgv!@^F2AN_VL&PeFXGbCflRV2vVVNIiLw@4NS4Aj#;^3xkJbKIOI=j9ik0 zOmk#ES{@I0x)51LzcO2n=`A|j+gNwbo`z^$H#eG6c%dVnlkF$xEH9bQRLfE1g78Cj zfJ%h;v^RCAmLbU6$(gKR;hE7u*UMf6P9UiHnT>(R^K+dB0e0k22uHw>2%1-ymBKY? z;}H>$M%YQ>-*jUD0Tp#f5s);xjWQd-NQML+S=Xk6n67*Mf>R z)hM%cxI(UGP#W99^@U_2sQB`jJ=fV{;}@tKjI&+WD*GDY2X^`<01 zD(dj!Tq9>1>a`#j&4^kJncxhKBh+FHq@B$f$|_>-db=sSz&`|07*XB*r9V2h`{exA zH-$pO!rv07R5X25P(~3WQEbG|mOCn|5z=hxtO~t3dxepk+EYmF$bw_uNdzs5X8=qc z>|KX_yPju>9eR0LW`fN(7=)xWEK_6(e&ehQd}|{w3Zjp!L-K~A`OI5wV82u*_pXKc zNdT2eb7P15+KzcL!aOwdq92vYhuKDVu!0%3|8oDNaG*RrAkbmHGFI+}bVrO2gJBze zl7LwVxZ0I<>^|TjE+r){E+trcZGy_#=W|qYyuach=R(|W9SwxoY_RDg!W2P|qS+K= z)^0)qAL>yngy&nwbBAZ@mEpa3rTojQZ~gbMst>Bf)+0)?G=;Qol&?F5tAiz0rrPbBw*QEhiN5pjdd8ZcnKdz5J!$ZEMwK4!O32Xh#|*^EeDQtgyis|}3uhQ}h2 zD4Hw#fG@~Ml~LD_sLLBBoQ@_mjp1IfBiR=lLG3}c&N7Rq1xb6gy~EXL!__HIICjJU zRX1)iS8TL;%^>pFtF>Ehz@w%f4XYVJ;xjMMS3^v{+}1Ql9yu5B!EPzy?YzrY-8tz` zD5IGmI`o;*97l8(gZbR?Ht#!$33OQ9?4saO!f{WgbK%MyG2-~-zyr2dn}QcM<=kO! zRzZ0(;ES#}%bQU625e_2n*Sna@5rOudv_cdLy%_oPu}=yb;X$R zJ;7{qooh&C1muhG%KbocGz?H5M9_E4)-Zd%AK*>AGzvkh58Q9o(-?%K5%kG(t=>uE zJd-XTzm0A`dLL!eZKdk!Qp^jy@25SD&GJSh>qfZVGhuY6pcY}$fvI|xl+_Ru#O64rRs56o8`a_=UKv)p8h2Wb>I>ZZ*}06Oa9~l zT7@484_};llpAI9!mfA7F?-9fe;&i+L7OI_Ra)^VN04Al7XOMct8^5j@S3D?rm1a7 zMfRKCD)=~jm-V+@IoyN~E*el)YaOn|XB2h;y)*b@(^v`A9uRA*#!8b7y4*}tkQinG z|I0^oG@7Sm6InuPA2Xlw>n>?D(O-E3e1Rd2o~@?Kh=xClVf zTar~^N7<~Tp0IlAO+n&kRmprt<5kIq?fkjM#S)Up1Ra*7svEtZi1pVs!}gaTu+!T%)Wlb^x?`)qi!sSI&F zsjhb2S5LtGTpdu-YP`|pkI}`(!jyU4tlkd~Iv2@|RrSU68R$A!jiNi#djoy8)InUt zI63Vu`00BEliW%~3FG0>={C|}J;;g@C1V{cgF@0jnT zCg=SKG3Vg8A8X>2<@emBSOiK+NK`MLWHb@H*2Gj_G8=cZ*n7qUg!piJnf1fx@3m1JJ zds!~HhnHxaJXU1EWqgjfh3m~5j1;W!i_#19siEIZh449PbBd!$^)vOMX+WgV9JpukS#hs)3n(78ND1> z7~hEID&Lb%svcT4UFxoEnFrZPTbOv|wpk!d26;rbnag!raODsZJ=FZnb&=Vkk9-ny z%k^RAbJHVzZ+#EuCFPGtwCl3&R6OPg+Lc>7tOcQhpI~)R8iGOxo-TAY3_LWoox6i+ zWd^7jDchDB>PlNV>|8{QmnYnktHQg90-_d}H6x#AmPlXAKj*Qcvd{c$O*~s?UXe6G zwPT{588k)PM)#G~W@0LI8lO+To0*;dI74#pQ2Lt7@>2P|mpO@7GlJzG6RaR?aX{mG z!2}2v^m(a~u8_+KQu+A-6ZB!EjyXpD zF`nzWh32MatVh#6N;nR!mC(@bFc)FYqw61)l_JdPe;j->fpYI0Z$qw0hpE8&l_ zLED=yR3O_ury~Ra$S(~G@atjrefjomD@i>;}-W5r3$z}igrcV~B zvOHO#l-|FjP+d_dCzI_<71)pjVIMxRQvWSM<9L3)r|)`ko9EnFNpG>-AM;$^?@94p z*BhYg4=8;d&JLZrGhKmBC8}-o)b2i55%u1YNfW{eJHr zo!JN$33}no>uJ@QV*)yL7;3$eB94KXNVmu`lVZ)5zGjSD78WF!K9S%KC{IqJk3UF{ zPc|ofsLyO(v^2WdL`G{4b^v=im+<(KYIf%gPnU^*D9YQ=(}Tl(loPugL_(9ul-Q4d zU~7tb$YKPr(qHp>VQned!4+MYdKPp|UPnqwws!QYq4@qwdqHfl91ZP|?Hf>okpi7; z<|rX#ShhZ-7KVIZ7@F5G4#hm=SUlxK7CukayrhYmktWBsKbvM|O$Oa*l1ZAgAQS+Z z2i=07Cx%x)HX?9-iRjSY0gtdZtP$`J*?o-?Lp_aAw*8Uvobzjh#PCbO|4!l=*Z9_` ztU_l-ue+;m%3azOIoIPIC^-`J`N@c6<7z9WNweGqSt8~Xe$Z;cI`KBM zSWnH^(seTpPD_D~?9Km2)^|rWwSH~hxz|Dy1%V(STuQ)Dr5h0$ks^=xnCs*j)bf|bJkd!S$oJ)2wSo9px2_CY|$bn8{4yVzN1uSYE)adv!;6!uT* zx;wPc7^sr5x-+;;jz?#09QW~AoP7g({GhM6=ZAT0Pi;(e-kZY8M};3Rv?%l;ej;sYea? z-pC2u@%_Z#>+m}AubZi`n1XBPKGO9bW{Zx>x197UTe(%cO zLG_lx-tfYF&Hfu2JWN&f(`9}D4O$h&urxhBqSO>XU^GZJ}Y!zyZwYgyUF+dC(62x zzd(2>W5DgutDT3uH0{^NJMe1RY4_J7-IlHiwd!0kNbMSl0@4`OxkyLzvZFZ2T0%}byPI6My;zzYyYuC--- zwp-L*@aH(B-T&w{-@u;DFt`g-&589`iuMbu$=v5>1Sj7I(UzLVTX8avnaKhG07rjF zzBrFrH^IgvR3jcKL+Xxsj}5*@h#Hty7PTAda8pJ|odai@w%V(<3smbrUpI4aS~p3k z$oVb+P?o?LaM-EKKYutZXsUJ5Ywtm1RYBDWKNuNL`$bgHjVA;onLyV8*j!Rod$&=p z7=JOZLBEyB>N8)Z1hVa~Cex(rz2$@pA=kEJU~(yX1;&tn?}sUr$re~(cD#0u(JhWE z=`$yZ_tMme&UE)heNvy2-K`lrU-x!>61gTwvp=+eOr1VS6ZUUbGNi_le(@^PmE2a- z#E9rK?HPdsVc=yN7$BjfMvaU9=MRjM3^fk-D;FKpOi;3;#$_T!5VNJXy5@oLBb;cR zR`%CpQlEOfu}S+*5Cpu5qjo9|P=P0yFNHGiX+$4_mq>v1yaRHTP{!YHGys@yROK-z znjYOr6wyn0RJv5s*IQ;rH=~;Z%Y?4C@b1&=D6qpu{(OkOvl37uvZ1xRb#1Ta@^X)w zM&Kaz3o)Trv%x6lneOzBoBdqe+ejv?(N#dZwxjjFo!H|r2mf_DHVn7w6zHxn;Bsh5 z6jY(L>6M3-8blsVh*L?S01IBlb#OyV3r0$^Q@=Kvm!7hHPIeu3edP&07dodOr` zUHe-j8u>J8(7#%zMzdtv{obsI09W(Qs2q)F(YwnU+PDUG z5J!U-ySJrA{m(vhe?(l*W?NN_uS(i?Y@$OG4DWR-yuVQ7}g27Czmf4l63EU5$QTZ&`pE1 zkK%U4%JW$SgEVsR(AWQXpbXgp>_FHnk7QuVL0g5HXJ0Q$=79O+f;obpVgF%>CgXOF z#v4jocScXAcU&CP{=xOlb9v=GMg|)O+`0E*u4;S~mE&-&Z2+|5i*QLY$yn400|1VI zWEmkkjJNtDe|lMBKv@s8?JH)?Y&1cSJvL1*t)$|!@kl~cP_ThflX4ytSWCUiD9vQl>}GmF}{`-?v|Sk>a37+Cn~FdO_$BN^U* zNi`~Gv18`5b@Kj?eds=YME1tjZVW4Y>+5zJ5zT-(-$Dd5=5Do4J%| z&yPE*-Ku2%+$m93v`@~i@lrpi4nPtL46M1z4poISeqi8B?{w0eG3iB}k(df4S;Eax zU!OVsqZp;e4RZOvS8czW@{RkyVtgm&BY!1M;PARe+WRRZ#RG2srj@XwabtrnZC^)^ z@0}bq#@j}>4j~-J*MMm9JE+KrQBSh)zeKb{4SP?BG(gar1?Y^<{o%jM+<=^PlBPv; zp?mP_XG<51d0cI(3zGPylps1voxKPA#g*z{XqYzh;Esv?VP30f*kodfY`+wi6SgWD*ZH>#c& zHWcUAzEHz17YmaNjPcyJ<4wTvUknEEblAbNI%hwB0clotDGa%>SxFT21HLi&B<=(G zbNKaQir*Py0qVr`ljRkaka}||i6GhSg<~K;lokc@FCaW1Hvjpn!*tK^^Co^|>O-oMAvr&HAzPssma4TQg*DqAZ675dnWue=c zT>O>so7*wb_T_Dv5pMS^DOp+prpdF8g(d9#3!pdGUcG`VakQ`% z@=nKXJ=V8T{{k=OIyzReJw2pIz7)}ws}YASrT>s|y95k+CiAnn5?`-5!5=wUe(R_9 z$#?b*8Bb_Q>Pe|8Vf0!*UjjD5r}hDypD?vE%jc3JIbs5hIyLBms)*XJI;(+%RV}$G zm&I>ma>hGGL5PJxs*pq#$v~nF+H*JNmWjV_YZ)Q&;B6(w1X)l98P^A;IN5Y=)J}%| z8-Mx^%T8Olc*7ihJv%zX{7*dp`NKDATWtJgxJ1sf`gL}pqeK!S>l{XJVLn;(?Zh{3 z5HG3D^G)(Cw6I0D(C+kHSb!_pH?MSNIrJJv@PAyCVp9;^?!EsBMTrw+=*)mRV6-B5 zj+`us`?P@sD@`NdS=j^Wa6dqkZUAj_!36mV;1)G7GX$7^YHYqk$GCp`N@cBhNBGd< z8p{oe=w$<6nn=sr^ z%C}r>ic!agqopJ)Y3?l9Lu#3GQ)y8;tS9qSt95WTP&ut#Hx1RM>`*`0oZ6A>!Rk?@ z6jvB>bi+#KHk#0fI>Nj^EB$r*w?IPr%~W8mWLp`?!Oqz){ESGT(E{j9WFDdR0IiYuNr100Z>*e0#E9=~pAtsB7 zQz*`b^5gi7r#`}|;CkOKbEg_4Bi0&>i{a&>ksN-8ZnJC<|BQ00F)iG)j~Oa6`?h(< zeN(1J&Z-au*{n_M2h9EwTc8L;g-|Lr?Wgo2X~ygq{^~ZqrlLvdR+z_Nvg+S4vKt%^ zd}BcI%*N2z^(>PI|NQX;62|c;Y&I@sj09maU2UOmobzdc2%)Ym`{CK*O0u};CqQA% z>a}xg_gErM<@jLivu9n8fUv-Lhl4l-WPU7>a$Xjpjze}VYHk87JtLQe=!`IroVm2_ zl*Vy(!u#VLIb=-DdX)*uM0cZFT}i+J8%-3|E1I6Nb69U^@l`*l4)6=N)%hiQ6pKQB z0%T^ay{k6d6fwa8^l8hXyzo?*=)We#_S>RrDJh%U!*+v+yYW6jmV?dKnT2g0Z`#Z3JR({c6Im`2T0ZhS<7NG zBE6pA)3BLrk=8H81P2SVWg=3wD$dT$AhvT;_`j_nlUWuj5;}Z(Blu@XqkMth^x6`6 zI0ttv#TQdM>BLf-xT*z-qGNI|S6=7;Do9MjQGNrRDZj-Bq?j*O75A{^(>)~)Lg1wF zG=C9V{{w8&A;2U%*v-N_I7dj0DQpZH8Ww=k?t+FO8|XPe8QZG$XDevLVh4^B0^R+| zn8iuG5M^nFG6PeoX*al(_055&9RX~&0TiY!xe3a$v91PO{I&pjWcac$W&B@n7VM*{ zb7T2QiJJ3SY+KOj{0)j&k&iU1PZm5m7;t4}L&lP;P@_If!DCmC9ProylqG%MHtoN$ zmX!eBha&QPcaH0#yk*6_6@ki=|4#K8qE}~HKiNVAf^EOpD)BU%83(RHdVhs8L?pww z7nt_3@K04)(-kZlA8sq?)F20LsLJ0BU9`KbkT9=C%pUCQ-Q8n*^~NgLor>SoUR!E` zmB2_dY9rfwb*GEQchO(vJ2&}GY|8d5`yA5?ArTZPoY5TDf!V>Gge1qs{+~!=RLu(87v{Z zIWDit6eVmHSuE6?+*hX;vz3o0z8=bqIE3cYLsv6cb}+Rp zz>UViEMCv^Kt+PbenA`M;$70_#Ez7`3Jk&m5{FWtjo61-IF|EUC26v7g$pypAENw# zVIHD;+-g8G*qffKg#dyg_e&Dre+~eIbrnur!^VU%NPj?r8nBXfC#HZ>D+yQmIRANj z&b8OL${^`HzpDH=cG>6i!;47X8CdfxoKR$J2oqA{o&LPH89#}Asp*D4`?}yYp$F$% z<4+-=*^P~iljeIWcn$mN@b4Bz;q#3por6`4Y{naqV;tD0lAfiP;=~GKH;w~#eBjjj zv7r}%P+#EgNHG+AIziR-S^5by`q*yQ;ppdaYk@C$Kp71n1je0r{IrU0k!6EGcm{QE zDWf+xcWcH*8o!PV_M75P(&iKdR_4jX6z=8S&*#)YatsuE4iw28=I?V+{vvct*D24< zhVD&f5$O{14OMw%y%niKLXvHzSK6!{qjGP4&)-%5;(8j@mh=%V5sjO!Pv#N%{NP>I zV}tx6%YI5y&f(vX;xGEV{i2Cz{YXVGrlo3%z*Gcz5)YZ2QeW^Qf7LB z<;nRyV3SU`;!~if={uMd3b+6_B*JILV4cm~wX_Gf0FrqnpV~xnc)!+etjqWc-OK&; z;raf8x+G z!(-nC=+%?9j#6cZrG)11)pSDGt0*1sLct}LoU~~8+xd#Y&pXOe-EShTBbcf4F(?#& z?4nkIvqn*!kM`-@-5X1*P6oc7-IDQ3aeEFxSO?OwMxX2Z!%Ng)^jFz!;PSpQeU|7k>Z z+|6z^53VoO`1S}Qx!Dr5((~7G`j!5>f?Q6jv8)G_OIqG@dZ12D;P5yn&DFj4d(G?t z>_T?;H-Q7cudk@@15Kbd%)lu}xk=vkyOZr{(7e#Cj5|S=#Br_sn>Tz2T9q=yl&5QA zTUmfZAP>Zbq!;-1w&!R%U<568XU_XM?|~%i)|$?*di`6XowM6q=U{;W?BmA2R11J` z14WYE6FoHXwzFQsM)sS3{*d=(4C#-O4RK{WR$}wvA2aBhIQyOzPM4+GR8eYpH@&E} zl6CJZy_~*1AC@SVGwKwZ4!-}X6==?#?u*x5xH6r;-7@bF#`5JUL_e)Tw`>TRFSpk( z+gK!!qX6kraPX1)8veNc@zbS#fC;L&s-M+JA`dlMm2*zF51z%FSIXUP8#2Dz@rzMl z3?n6@pV@JI`<=RzM^3xOO2l21p_WZLA)(=gk1LU~yt{f%^<}V{p6_dHA|0F)jIQ=c zk~!fl#3wH;1UQO^jsKXRc>?!?OGYM9^wxwubFc!;Ulw^B+i-Ea$|xt)bm#cjYCo?! z8_#>a&9$30k1Y9qZXqpP=e?>QKNbD{A@WnCw8%Mz@uaOq@SZo?_QSEe7WKne1~{mN zS0TTpy#fML*skjgbn6}HJ*CKAziVfJ82GA{*9g6F9Q`bvytA0&ywx$rJoPt^xEWpVBDFpTqo0X5&A9bUuo#IpPpJMd)^Sr>(8K|1k7T ztn`esDlY$0<~Z5)M0_l%w`YY$&yISyK>PVfO{4dEn` z1dTTe9qPo3Au973*i4m0h4){XrSsGb%`!!_T*`Mpher4Yv?w@cwcKUZ*)Gl6nR}@d zD26DBB$;_pjOiHQ=qbRY^Ip+>Z|e99@0A_d#LvJ?Up^!Nsf0l)l??2+;ic8EyXZAd z)uD%Xk;x^o8oQ&zrPpe9K|H+d!=Jb zbr#dh1}l<4j6WSdO^%cnHh&M{*e}uw*4^*Tt7xBMo^F=2>iXij)UhBc5iJ>VxbO4b zc~SdSD&Gy7Hdq4(G}G!pkYfuU&&F{b<2 zgMa=giZ+_D0Z*^uzX7b)B?ENu)um6dt|L87fz$0q;7Issyu7(u9u@YfxMt4q7|Ipn zQ`gLN(wFXIrDph`@4sH(BqR3zIjW)R&#aN!{$Z^24m#A@mupvJ{JKQ zbEuY2kOkQ)ay(~N`-Pw#Gx?#5&KMyq==tXhFWuw6I`0D+`MZN?*MI`p0$wN&wq%{B zA;H$f^$J(*SKzCyezRM&&V2N^@pimv4hfN33kN4B^Av^)6v3cjh;6CVkdGz-&x9pU zmq%7l68%e?y6JSILh~T$@WP9nqkPTh6cE$Se5R2>dgiuJ?`S;DKr{F|b)!Nry>~aO z^VABx4(5my3{kca&=i|qV0W#DfSte`5}*jFIy<`5C(jr~4zGDr*Mj3{RjOn52Xpmi zqA()ugtzvo6D=v$wZA}NVOEfC%e*pM$6Wh5mAGIo4)NSxNYkTdM?49e^|1Ri8}=MI z77$mZs{%*R0e;IZ;qZJBvvxa^RyhuIJXD{!IZT!4eY0;La8L@^m+uh-zC)D&7E9qqX%fCsc{&iEU$g|g4( zAPgD+RET}S*4HRo!20lR@VP_($k20%B{N4=#C|95 z4__fd#-&eq1`yNzxg*uHBlAm!YM}8O+OHh3Zex)jhX(o_>|08o#!bTTLdYHagshW4 zM;jjW!7}2$KEJby)=6Gh*tUCn#M1b^z_;O{Ke=YZ8D6_ScxTBJQXFzMdOC^hn&24g z@y+3zO<0UxH0uJ426R43a{z%t8eG7v*UTOrCsVNj@dZEI1tiB@{*t(jtlAGit*p>V zt}Fmx#MaxfPwmM=2|CVHT=`kcAEIZtJ#cY zfC{=XOA|a_sP7|}`U%-r6X@s~=4~1v4t7gQ`;<~g*%0k6D-4NwvaRtXOs@j&M@`&l zX-xS(}J@uD_GEQzGFL8Uld-v+ygL9_nokK-rRdPss}I` zhSo3fCjw0*@?abgdE z)qqp5Xy|Ip5l=E25#xxHEqHqb+StFdqOGU>5(5&ZCJ;p7Urm5!x>wbnkp~q> z@9J9ql@;}=i+N&y9!gcf96kkj0@`LMeBi_F*c-?90WlAYYXs3&)2A2MvVd`=uLB${ z7W(WQWsnj;7!ST6sp}C@UT;^XyJ*%WY>zdpl*r2AIelP`iUCVGT~*zrn`!>Mn-(q} z7LGmAkq(v8`58HVi6x@noy4mV$bQ|07eu$FU5SMlH`a}0qPNqo)chhYGO|>~S32iT zmy$)Z44Wq*OXJSHTz}Uy{nO;DKWMe-YfyvyQjiT_!czUH3^6T2Ot5d*=*{x*=atXu z?7CD($_ZVVTctKwUkNPOlMQ8WBis2t5j|=~y#V8Nl_dvmNS-$@Obk+q(v^9+B9y8U zBlCbTRJ_vBb?r2)=21=0R}-8I3Gr>K)~nWyf!HrexBgC(06F5Fx^mPplF}dDeD#Gd z@h8VcQXPdhRDE*PCHs%x05$0OZiH0|14-h}hvn}7^L4cXUzgasiFr7wyvso1@)Ep? z4g%2IsNlTWY4rkn7#$c`ky~CYJ@M)q2w+ugOx>h3@W^ZuNW$y zCAxcU3DTnqSMOR(mMM=-R<<+Jk&IqnQRMF$3wxYU(=59`bFA=rHk-jp)ZR7j>iZVF zc9Y-p^zsDZMbu)zJ$9fG3msC@Lx<87#w1@P6L^zwCfd8*70SGX&o^Is*V{Dw#eGTtI-q9#KK1Vok-Y6A|C=wmaj55-cQ$nmCDDb5eQ*o9V`g{L3(D7S z#I3u5FE?2C4&*_3ewx!O6iH8-;S?b~0GE&P#PwW&4t^*qzSwcYkl70Y-@1NR8?}OM(p~io2ad*=A8aY!!(Na8ppf7U}op) zDbk!+yytio3>w8}VHj;!?|M*MzJ*Jz!ETiG7AgjIG!9pbkelqiHz5-7tD}9N@^7{0 zQ-h;Y`Pb+&5{z=2U(B2}6}Io^uReyY#uzors3hmS0A?czZ6DDSf{sUurO^l)V0?x^ z|B?1@y&BL&g5$mS&mSd>X{ySBFi}{k!f$qv;{;gXQzN~Zu*0cS4*Mntg5XjiunH#1 z9<|LI)$BbrKNP;`A|d7T@wumh?P^-%i&NDX2hDW$#)T za*NaNiE~NRt9`QyeCxkAf9RT>sGb|~^}nY4&maG*hhI^Bxo1H{X2;OKccH08B8UUx z2b_B7@;NttC4Z1=H}+|zHP)ui6PJBuciAIx)nIFt^)Qf^dy*yDrIigoRs{4Ijdtk6 zhYuMlD!Rav+B55guA;pkT>abiGxIMR4T=n=l+g42?}>NrNl?Nj!r669H;pQJyS2NUj`PHX|H4(bM%vepOyP4g_w?h>Szrd{_?UD2J*Qk1Z4wqPyOH1TcaQ&3 zrn|K@vwx2)+V-!w`v^a=fbf0{QlVMKn^N5D1F?xLcg7nKY_H~DmbpAiM7rx*)PmpX z2vcrbd9XDmkC3vQUy}zg8=L8^{QqK?Z$3=@4s7Wi%eR4!>Y@9a>!C--l3X6`uNH~s z*UP;wG=L(px?2?_4p-5c8{MCZhJ$>yrm~xla+A9`;8!vLu@@R$k?H5LRI<{V)AxEc z(TY2Fg4JM>jWF4mE-Br>$4|#H=r=3gOx*y2LI{H>l@^y7wk^b4=0dcDswtTQrq+FHI$w`{3d z=r5hmI3m(bNVbv9tcG`I;sTW7Qq5yCTCWivmC)VyzNCw0bb011g4)lAE+ycDKuit> z>+P3RSmiWAQ-$giF$F#VaZ^0kc|#)o4R84MaAh8-r1GBw<{FP{QN=+8)9HxDhLJ1` z#KIPKLx|B&Pz2VV=k>yidr4hLP!((tzl%(%^FS39kv z@xUYnAtC2zemYQmlA_`V$UcBh5b+=}Dqd768YF03`uB0oeM_$9ny|BF23UPXh31Pv zChXY$Q`;j=#QKBoZt8Y3t89%*wSr~J_3P>m?|O6oYQ(vE#~VqGt5n0J*3@NKFj8z1 z@yF{Pp3-@F4XwPT-oKPL6g2bF92KWc_fm-Q(HfT;2)qlF3@ZgDqjTp-k{xb36BjGNhY9q)pz@^^#R4&))PjOo00n zxd1USKSDnAYj(%YFCRslH7u0HM8jHI=$cUtQ)RsCf zlH|boFIy`|qO=!PbskXb<5ulw_bsK!D$<|w65Xy<91xqGRJ-_dcyC4nGKzCy1Uj!m zZWif^XXGvNDKJQ$5a``}gxIl6@MAyHOIrLXUFIc4@t$71Ux<)h<#3W(^~{@Ks1&6N zOVf&P6*OP>5l2cS@rbp#5mJE!P_m{5#rfS^3-;k%=dt&#Z0qOg`TO`b`JAfqlCiGW zQ6(x&ArC7iK@b0u>KR`PMmO{Jffww(1N)>Rge2)mdzV&s6&3b&U!8XqzFE7UR*#bI z?u(@DL~n7bF~oY$FGQgHByBSd^UZ^NA^-fLf0Xv_>CWJ$-Fp9oc)&xKcc1c|U>;9@ zT@OE89%`h#S*1+KcAg`E|KG!YRyp&*=@J!nBJY^d?_FbU~63K(rnQXc`(5+|)DeR#3H@sT2!^0x5i z`l_1q{ZB5GC%s=w99BS9lPf$=fk0s^vySks%sjY^~m> zYR44(oHh%R5>g>&W?wd>TPi8vi&GX3E^$Z{Py&$GRdtAt0K z^k1T%cezE%2(g=^d21Yk?N6%#nEO5p;}imIU(*YF9j&Wf(2|%bZA|jM|KbPMv+-KR ztx<#76`OA;mVSq-lo3RDv+%85p0=dXTPk^qt+tRXCVy!M+9@sw|iyo(@3$iu0us>UE8apP_s%6`AYe+KYP{C_M(@W=z{Fzr z*lDi@0b!mJ+8sOWSEcjH$BRRAy#v6E zN=Hn2J|j`$Qpye)3S%NEhyt0ozv+wG1(lK<&d#kOl{aj3EcZkviKy*N${x(j_ zUY zUw5n&D~?xXImoqNWgvK6pnzF(Va+6-9*0xrvYn#N+Ti`cS53{8)g9*kYO}f_de%<6 zJoJ}WN`}dO@owpbW2xqwiX3V0KO3y@#%mUrvK9Qwcr{6^9qq0Ypf1iV0XmazU!W>3 zEIAAkI3K~`d;1-^7gL*YlHLm4zrHE)3LYK%`a9tpt^5+85?<`6Z;WjGbt6dUb@7#{ z@ux&Rqq?YhcANJJKWa1?SaR6H!h5!h`?wm@FaB#QxZrN-z7Gd zXnmBDd~+g4Gs>9xRye~uZp=PYN!5YM!fcKbE^YQ^z}q7&+fzBkDm|`y^j&+?U57lGboX0Q59}V(i62UJ9LWsSfKim+bh{)MV5*_2z)ZLaNhAaLgl}jVA#z zhF3*a<`Zj_6czsY1H5nXEQD_sfaQ$Go%FaU09}SHK6#_5_}@ly+gXc7^_Xj@FCUND zJ|880?=>K61Mvz2LMMUMYf)WK+)w)>w(poUb`%*X?|8}Wl}{hJ`Kwwi!mEW$Z%1iz zy+9k-45A4^$}hR_!9h}e{ixcT7Hx}VnZq*qMkw-)RW8_@+%%g-^NCX>lCS<$VmUg6 z$9Il|)@|4{tuK}obBUP;)aD5`ZZ7kfXDVYnPOB=5AJQx5KUXEYqp|}+82!fp|qyxe(79$J+N4k{ zu!S8PjR>e`uGi%SfRKp8-3n`F$ z)jR&mcxR9MnZ}$N8T4RXSQ=RQc|n)^{1}rdpYG~tzwxH zYBbnsm+;WA*qt@6A_ZEJ>m_2`nC-?_xP|NDt!nZg*HIoJntKa!|KxZ~DPD3%O@5(U zt}lyF-o@?h7MxuaNtNva8k`ss9NM5r$H4pbB4vGkZ2ZMsk`^EDCOh`1R;0e8TP21u zYzuvH5Jbq_;CiZ?*yL#v&x_tlR(>HU?=qWJ$Xh8ohPBf<82{-BT)_ZQEPK`~fX)crmI2d^eIAX!6pcdI!wZ%gf$J(G0D3&AT{cX7+;9MN~Lb@Lyzn$u8)e|qKCC;ut2y@BTnX$|<*=$rEO&cd{$HP_GdHqLO z^{PGObCwz|`8BQxt?MIW_==J=hbnQRyY5y7U3E#2$_r17bUXkmdM8?nAq!(_b^hW#Y6_$Rmju#wh%v+Zh zTZKjHOXua#ddi%dZ$1TvX(C}0EX8#bv53`nORe1nf;hy>y7(?$zqG(;)>UDwg}>i2 zugTY?y?1G#X23XmcW&*W&++}268V>_W-tG z?HVTbkcYZ@`#11f9Zr{QoTfs@T-gg|ov`I=66m!FjYgVFj@R7-Gq<9Kt7 zH!5OX$At_;DY`O4N2g#$O2j>G`SQ2J#ZW=xq zKx3san5=h>OVOqT5BoUoWprn64@4>2`t6j1?IlH;O-M_bIz@=Rv(=_n#tEhozmpqj zucu|q(u_(ck$0CCYIO6pph4_r+!c!X_~$yZx`#Yo7d2&Rn^WG16WWZ}{`@_74%iV9Fndv={@jXi- z&pE-3IWu^nNbY-_nF}>%#m4dt&wi9bXkrJR&dvG*ZMjfOb~oXUU&&jF)1;H6(75Cr z(o+4zSw97KSD##Mu#fe%F0T!$2Zyirgsji;RQu)SJm@Tz#C!I(N;)RLo`_}EU#}xS zn!TT%1@2PFYgP;3`7Si(QsXQyTUw}}Kc85F%vOlyS{}YK^+4aYdu3guUskmui%b?s z2%tEZ^mO=K+^F-Bg|ws()M0#N=PovrWO6JWXZ&#wxJTJsGVD(8EW#W)?>3$=C2~AU zbVnv@{$!v0Vms`x+Q{Zsed^I4-__kOJ5QwP>Z6L9>(nK(8TL7w87m^~P#gE7Qha0M zCZeBc0~CGXMSVZC>79ibpA#;d8}bDTAM$%Kshn3x;!z zU}V@BF|cr*)M}i;Ipg+REo(X``KOe_evBs%qFd;W|7; ztbnGy->zEH_U`}txMV+Op)M=Gdl4Kv+!W6j0=*3pgxDCVdkL&2ZB>rv0sX&Q=+918 zkRZ^MVQ;b3EdsG>m3_Tc@=j?0PspO?;?>U9m+q|J{@ex^urN}!+q&~C+DS6u-?5H+ z8c8Dg6Cp0hSnkP*jDA>k{T#cxcFW(ZyOUP;^GMG%CE%*pvN(73(Fpy#JGv{4lQS28 zK|wvtuW%I-6vvXj)tSe6!-ZTu(9cz`qozG9@FLy7P_>$MoqaKg=;-beaXHSaWRvRp zVf5j{WZ!ny)kx8P8K=IL#0pDqT?HzIhSje?c!%vA(TqM{KOE0+2BNVr5^R$ zX23}N*c@8TU4%?HUHefnmo1}Uca~h|-hLAIzPPa~@AyHMkqd>dZm>~KQ2`UbQZ1$! zLE)VtAgz^eLCDT#qlavVQsr5-yZc3UxemTxrt~>SZy;=~q|;y)&egZ>#pKRo;j*6= z&Db2eS-5cWkH2$2EHn+2VXnOR#N4_;W3z3KE7r4GvD4?S?6fb>;`&3^oGi>ESK*+_ z_epAnTu3!c*T#Iv%UeLzq!B^Db}`A?KqXZvch9r32`2;Oe_G`J^{S70&UfA7B4WSLy?m9oxm{ zi-0pN9@nIUcUMpK(mN1|AoWrG4Q|b?#N}s7MxMhgkxAn(PLo7LGcWRY)lXZKd)x1r zW8?zXJy%|eNx+L0P3L=a@Ha;lk_KFQgv|Q{(05wPRpN8kwfvM`86y>{UKJALE%+p) zyH-M(TQ`(UsES+!d;7UuL}7mCT**yb6t?|Wp^-q z86>MKRq-)09^G$w0Jbd?`~?}CF;8QvpomS!77)}6Iikj+uL>a*zRFg>heT{J#xOaM zK3DYKIO-SYU88W?JF}@D`7PXI-7K!2SIwk?WNLa=;PS^JViXZ^%`x?b&*5T*uG+1} z)r5JoS95Zn(@}SjEldS{`G*`tFq8j+%7MVe0bDVL7A2wit3%xslOi>Bv*w>%$cY;@}PE*<+Z^&c&*CRdXd{3wl8O~IGS5MqGQ*jo0qOq>GUD)^_vvbB}HJ)@?)vhaYNN1hu*~frolB?t?^lB z)3SN*g1X40uhTO$K#5YZ9L?+0yPf8(PMj}(0qNe@$$pY<&G8hn#e2qTS}IWWJqI4z zl?k6GCRIM4xzZ&}hKxT-FcUM7FCEVp*w7l$FIwO&Z}^kdY#o>?obMnmbZu}__wauD z7_pP-XKYSSV{9^Pv3|7PGK8!1S+Y!5OU*D4A=L1By2iDEf9LzZ!YaCRQ!WLLFAeq) zV0lR45Ld&_-F>%E<|ds38L6*lxa|D!fKDa4BUjvz4-Zw>yNUAxOt;r(Y?LGaL!Ffk zO=zG#;l-Gp=>FhMZgS@$RZL&04};S{dhEtpAaPHpo2%Zu?m-sCM{yc^)A4+Cd2ixu?Gp@v%Ue;{`BFy*CMS=ha0u;G}vD0pfYUP6eV$rKQSr2B=w zKevHT*ED{Ws22Jj_t2r}yZe<%;z@Lm&{0&X@>_f#j&Zg8foEG^9^sZ9rJULpRKvBMcTn#pCwdYsq5n_ zvfRYkm$fr0yD}Zhc6!Lk-p`Ttmu$$)7~le3?Eg0S*mI>ZH%KRDh)p_W3LY)AIJ7&) z6W;NB+df5cg2k2Z10t@K6do2Y`E9_yU)A`MN9DQv_$u|Q&5eI|-|}#E-;kGEQaWw; zT_R>9AwW!Dw&Z{q0Ge6AZ9RH5nYT5b=y+##lBO%?S`psXJD$2|N6Y2WC9@IUm3b~p zxCA=B=B$PkJ_KQ|J)GKMBeOQ&t;ag zHluKBL3@j6JK<(Evfm-F9FvmvDPH#gZnBB%wYLX^{%z>wu=?%z5Vpj$b-TBDHIbjy zA&xdPYfW!sq?#Ty*1FG3EKB5%%oS_-KW#E=PIQNtNp45YCNC0pwCtpfrTjs?ou!^ zWQ0$UKcrugUstJBe*^+W9ZQ8$Jil@E#d{Cj6bj_h=?YA9``OoC8<_bQ;mo%|K{Xsg9@g#4>9Cgkp ztmJ5$&YKCqGK=-CixHV-Mz<7wg74f);A6@_JUE8hr?2IYbdzqGzvyX}}+96lyfm@gB4tXDf9 zvc6FPv=RXO`i>6`Q=2yX5#0V6<@>v%R`Wo86gV(p!y6c(7bgpxmzB%if8J&*bKbN3 zfUPmFk~TBl@h3YlLB{}Sd1Qa+c7O1t&^OUjsChw6vW{8tt#?juHn*7M&JvB^ReJ15-L%#AZY&3URH zc>7*;L9a=eQ5XWOt5RRJ3C|Xt!1V|j3&n8Wq|zRxt>R^9DGlxm;I`{w$rkvC42{@* zl7#Jtjuo2f!=TR^T}$Q`%0gv0ooY>e?bt$>H_Pt+*Ml^KnwhMhAu-}r@Cz=T61=4s^5eViEGQEsE;x>~ zDnD8t|GIEJo_s^3}7|wje!Yy}-Pms<}ht$cW;|Yx(BQCIqHA z$FI2uo6$W#%t}p4cQca$HCCNQiXODDEMla%X4Fc)WDt}F3-rg5Xy!8|+vaA1wjktX zrjqje2}QZ^phJ#tE!PWmCP@d_m_@_h*SK9??Z9RZ2b|z!@|9fYRD!uip^h#R4zgj) zmg}`UTjmSka3J9&Yos$b!bfF0;}xKiLQnm9$4=m)XFU@B$|Z_3atg)UJ;kkE(H5&5 z4s&9nEA0Q9t@i+GGH?5~_ubW1Kv7C40=ksYLJ_{- zLASn>QP*4{n|zfvC_xnqew+Q*dJo=>gBnQ@0 z60sqhUWySquy_fh4^v~h<_(kAolRejNBYoqlWqJnPjf$L59(Ul$D{&FdxBA8!MD`S z%{r!gwD^5YgpQR@^~!4Ue3^Xa*1%-x7p#lH*tC(GlA!Bov>LH|;GNPEq81{11@dfx z+#9%&*(Pqy+W!1;COBQE+ZdarmS4R{%yg7J&*8)M4r}%6wp{%ii2zJwoWdL zFi9wE)#J5)8p1Fqzi(%I45kuQa!%76JBSiU zZ*ptF#9v33D{X=!Ofs*8l{!~jSp;k&NysZMTAL#{rOGCyl2HO93HBd6+HzeYQ-3X<3!} z<&vE8_+t8FuygRBRN6tCL2lR_hzK7fp)(^>t}rZa^tDXRGz~L9%OlQX zUhdqoL1KQbu>dIOk%tZ3K|AR)^#wL$v8xD*XM4AyKxqzC^H%yXhKH%s{@2`a-m|-9 zLG*J|u>{#Nq+<0EREF9Rr-GVCZgH)jJISJp+e*{Y!{!rM!iT<|+FrgB-5#GI(yP(D z%0n(`%z@z3P-#sed*UApr@}7>*a{aIeMGDB5(^sBudnqGD}R$!o8Tzq3cv4PV5&0?7iX=WYvjm*fPN&yX`E zzL<2(&zag;v?{TRzOw~$cCj#Hdz!a-S4j;q?)i|YE}-}hx0Ym7+G zh*EO>t@|4;76VH?H}|TRt3uYD4%%)J+I02SDkRqeG6~zS0kuzVsnb@Lrk7O-GbCCa z`NOeXb#0&|@I_p&eMtrhn_GP#o-TPJS#~|A<=Z3wbcv$D#WB%^atMRneI}si8zjhj zzG}pZVd9^@@7%xzL;iYx>Tgs2&rGM8_Q&4{AJpgDl&#yNlq{TB8rl)BpL(QoBd33d zT`e=?4HxX3{d73INIn%)lbIfE1AmjfA`pBilm@6irk@-uRxu`L)jIGz02T~kI&RVY zY^*)OK_|P+*DEl1HmC|YYaPtgAXY(vmi`((6UEpYHpwTjE2BstWNix`clAdRoU!=)Kqd@t77jk|Y|8j^U#(YOE=1xx zUuhU~Orx@GeyK8v*FUtbq+KU$U*)q0-(MtxU5coM)3%Q#-E3V}#ae4Wkk?+wBaFYp!ebAwn0npw z0%PxaXS~JSlOfbsqho=}?I2HPoQZ;GU?F793QTFeopM8l)PkNbT-lwyOHf5sO(H|}7$-(ed zbdtD+qoKavPo2@qyGtP#fG2Z1aEPAiU3rJd1@?ScfWGj^=}=X~H6ZX5^kbR?n9E#$ zx-JTQvXVwMc%*q=REgwl*>OtOtqN5?u~`yBR~&mATc_`i6H^z@+u}*yv03B4@4Nk8 z_vZrT9(*-qR##*3-OJUtlbxrrA~ExO^1F`nMpR=siai&}h!;8L&(&mpue6ob~cTvWMHD zitypo$rk9ZWc{7>65m?$*wZ)nYrz6pY zP@?KQHe@|JO$etS-YxSGs21%D%D@DXj2Y2G$^6j3#Cm< z<-?=m241NuVC~A{Uz;+pt6OIK#yjZhI5kJm+A#|h09nZFGBY+i^d>^>vU0A&$?_}Q z!IRt73val^T^7my6)fF3sX_Ie+)Pxp_I$VX2G)Dvo;uKg4k&is4$*}YT?Xi*f$;#K z9H&ucJ+1y1XJ#ofF0tmx{+Oyrn2wi=-E;P4|0?0O?lODOJHNRzRbu=F*|tv!DYar-G!dXzq%E?y z@n$Goy~oCf_)f{NL(uxe&eQ!x<5RbDzmFT@)iC-JIHM}X069cb>M;|j zLQo4^TZ9IVTGBW&U!0&B=@-to{ECnhwJe*A-hfqAYxH#ktn-ITu)^_*_*a4E)T8l8 zw2@=mNP7w!>KW+Q5mSocZW>gGstrktOM`HO!5mG#&H-2RwoXV|u$hY}XeCKZE>$qf zsJ-QN<~faU&*L!3FW1J5&ls1=JsZvSvN|7v|GL7?nCWuN>`7D8vJ9D$1$AnIuD>WD zF)e9L$rhZVi(ci^HW3^u-Y2-MczDyA)KVy)-5kV*waD4zk#ChiTzy#=UQ{zCZjpKWSo* z*V6I;nwa8ax%)qUvY^yYGR%%(&;?=Omq6c}+`U2J67*0?Tn?V89vP<=A?eB0=i+BE zZfhhO_m*|ThH=qrA*fSmpf!n9!P0WUQAVfP@DAY$wwC7`FOl{4^sWixg=xc$ejo|K zyw#lPs5FW<^ZpsqE9HBEQ7qjVdo6r*Kcv936C60dV4n+*K(%XV75s({xQp_ZU@#8> zB*OZ`{{fb(nR!P@gKEFPgdQ>ELM96wH{?MHfsOh&+Xq>IvD+!C;t3IYw==8s*o06= z+v)Y^o1eQ*#YQbq5nvuCs?%k!Z-@_M^2s-Ir8otF%ZQ`6G zSb526^6v;SHFQrXFMWuq6T_pTV-qlR#+%eTlV(|Np+hmV5jBS0){xJP5)24@S;j|s zIlQa2gD2^f=zsL-y@jNb9Gh!BVabmK7aaa}y*Ygjcmj4^=ha3Bus5=S_%VJY-u({v#!0WjwL)}DMM6JTbuBBWJra;tjd{f#u!NvR&cTISWwGhH zrg^&Y=ie&TsP;B;ZS2XLN5(^q)rCu!k}7pXljUGUbd3^08>#?|CcLgYO&BUn=pz%SrxCqOm*>HEj?M zJeZ=ju&1*(5Rq{fK&HGNmvus2E(5$4hE;q9^fLLZnow)XEqtYYv>IWTwTXr+50Gdq zC>G2oaUe@uLzaMM2#@p=_ma1~Qt(u*7E zhcOHl@o}i^&2<5MFc3bH_u(?@S9Wf`dXGb|yXf~V16JP2z(F(vJJOJ~uz-#y#h=m9 zxD~nMW|A2n5){yOMtULHCG5pHD5W=K|l@Kwsw z|L<7v8C1(3!XHK&(ht5KMgdBK3UbdKzGoYYbo{>~cka^i)w)k@oEWV8pRa>+_WDdS zbWAhlPcruq|Ka`m(K7&2 zbb(4ITgn62fw{3>0t2qfs~rTp`umF=U?JoC#I|4=SXs26@asz$5*m~Y&4wWDcM#tV z69a4-h+Ap->0W}@?eT!y_ati7w6%urI*>{(K$`J?mD5{G*h)NLSoxGF+b(R~=5Lh9 z?8r_Bi!IRJvX|L`wQICij@p}Q%@rtWzn87pNYLjjl} z$yZ!t{4B(Uk=_&Jm@kNufxg^FGiFOqR`qVQUzrq1=S`VoKv8Fo5C z9h8%3j68%tbtlPbr>p%lzYMXSCMXC>)r8wi9wuQ&M{C4}HbWiPG<}UW=RfGm#Drc~ zmHRu~MgOZ;?0MKCMX(=x%wd?A^FNZw5Mc0kU<`&m z{?qUz){IJkInTL}1b|0h$ZyvHl}7JrjM5?OL&(#f?cCt2yq_6PkeRwz$JyJUB~KPN zSYRWqtjBGE_eI)l!#%p4A*%nZR1xJ0Feu#cfn#!R9+7NJv0kH+Eh-~iLTm)BNeK2P z0~d9hIw-b@*flJ&-|nMJt=LpWicmA`EUF!6|NX_hwghfDRBb^!xPpj>gW9#;9QzW^ ze*Ze^kfB_;e=OZIYnqxN9wE~%YLu@hX!!*_3#I(C1v?asgtcE3Q4IPLQcSELBkSjV zWZQSlZ^1w1?p)}<$OQC;W3REnn@`s9)<4R8VE_JtP!P?~y2(0JYkWxAleMM-afw^( zajNyhNXb>4YW^1#!osG&SOFxrJ5IGfyva`Is~-sodHPE)?7!_57&OX^td62iK!d^LB7u z)D2A>>t1kkvaYuWKZKMUE6{QaYV*+Bzt;QD{wzC@>-|@qUIcu9R^~AtI}qXZSZ>SX z1tR)IYFiBP`6J zCjb8#K|X|G*Q5}QHoMRMlbHhG`u`<<1GF~+*QDkda5ep@bTH_>RUh!CIfgcB-*9J* ztBO#SanYIIXn8uaQMRL4eLHPCHeGO_#H>*V5a!&#RmMH9P)|@myQo+j1{^Oi!+pPk z9P7ZXnuawF=SXoWqZccVSj%0|c#0kI?N}I;#zz;$oCEwf`tP7k>J1 z=~tBYyOuV|2w7`OZ3@qL?8M_jQq|q1<3Uo%SFV{xhhSdyZC5uwe-GbZ#{$TIPs~=b zTjc-!<;zQj;A?=#~2Y#xp?c0h<{t zp(6RRc9e-~O7H>JT+N5F5{gw|t~^0sIPK$;%Cr^x#2PuZ=V!chXg!j?<%^piDefJ?)p|`8!2h3p1H`RmflBf{t>8 zm&8c%obYw3CAeqMJ1rdDLEJ;IwZ9MNUa^ie3V^}YPNNT zwmknG2_8-9z0?0Io+bHVe}Ds}3GO0#oYKtjTI?1}jJ~4g7+iz<&+|SHW zK_AE24O-jhTI6HSBP*ixKvHxZTx;qdR?MQ>dg%@vbvJ%luMkx9 z*iJ7}miHR6dZu}P6S_-SV-Pl$e*b;wKDNasf_h#5#P1!r1np(qs)B)Oc}Ryy7rMG^ z?Dvba#MsGRIl~U^o<9FTb9Rk$1!d^iToH@>fRn)==bOU&vO(d!_MZew-nTQ98U8Pd z77tB~A5~qbu!}QgX|Q*O%G;0BMbpt*+$j^qW$ciHERTvnz@|vlwfE`g8b6UXYgQvrbnNi_ zdqMHizrVQMIgHP?p@2xmCjvQ(sB7mc!bn>&uNfZqvj65SiCf!AH+HVl^avdO@2P`Z zAHUbt5vCikqe<_hzHRx*o@u3Rm}e-#7vWXDq)*`)-pDBEV{5{{zi{2X6Ha3_tW=WP z>Cv2k6P^e(h9$|YCfA{dOw?AG8J=Tpofic}jxPtEg-1U(oS`Bu9$2`t8a5Oy-@Ke` z7s%NzYMRM&-RCMimV3Di*P?Ccj1j*;rd>R&2N(5QJP zG;59WJGmM${ ze5ls$3kg_wuWF9u+r2nEEv?J(P&wF6Z7+#8YRj$g$%#?C)$HqKOrg$5e;#-yLlaQG z$?L6I3&XMYnK0mPRZV2a+2Ll!&#;+UO)qDMKXAYAFpj;L zZmrSl0nf{t;HJn`o9D4HMf(}T|4hRqYS)T)k_EYzX1tfJ*iV#orIngOUojhc2T79F zQIeA%>TN0jC!{A%Zp=kVhG+7Io&_6;Y+mYw03q%Lk0 zPbLB?2_pMYa8Ya^aExv1|g;%Vf+N;6K_V0pP)-S%P4hGE< z;>;!*D3&(B06w$Agh}i!+{<2O38Ib0Fr{cX0}KAPcB7{{w~olh18UH1xLG z`exminX%Eft4ZHezo<%V=%MfzHS;+Qa2o3Vq4MMv*Xounfq#EFdCnRCx>8^9I{F1? z?tTKfoo2k?usOcYYQk6Mkj->v2X7Riocy&Vnb@2~Tq_+c=k|(0xKuw>3j+IS9ns&D zm42MJcY-RrFgig0^?S=}++k;~jyyB*(4o5K z{5p>pQ&25LPgJdrD=+7Yyhk2Yf=0$kui>zN+E-65g<6+Mq9|@Fp!~BJYe9ma!(x3C zPE~C^p$et^o>PFwNp?5>?6TXL6TTjCwWM02TxRPkfnTUiyjS}>(x4;qN`pbc^&)Oc z4+azvESP6r^1htsOEvfIzUM7@h(TnX(=T)eJp zya>mCj;hRr+be^Ica(`16!>cbGVXkB5f@K%VJO57<3YFiBkR{-CefRNu4ZEOG?og~ z(0(^geG=NOFi96F2o~AaL~WuWn+LdOwbQbei839c8;Z*=rJoRZbMpn4a@MGS{_h#e zW&-~W zY6mZyXVk%CGmwMxs(`2!KlpBs+3P<>ph*m`lbQ@QLZSHh!#JzrBcmx;7LC~es-CGd z+#oBZ$em>509@7$JCVKD#*JUMpfkmQTo3mu9JBBlY`-!8JK zZ7qW_-dTbr&pv6hd3+oVw|+C3meVXNqbi>_0N07~BD7e4thkmr_Pk#dqU+-eXF4E* zqpy@xLl1WmTOB|xTIRu)^UL0%ZLD6M{6S>!^~SfkPsQJUWp<|ejY0&0Ss%!CrbU7S zT`}c#*nMhyB0xk}Ox}a3ui@R7*0;?=Q%P zw_?OLQApc^vV|&P_am9-doYFX0|`IYOa?j#>{ zFzx^KazUJM{p9=Qqm}wwHg0Ohoo4}_v9)2YlgvWG53_l^MnBq?)fQg@G{D$w+{*kWUrV3C;xY{ygC}{_ zrZz%gvD1b>ngCpzXq}h3xkR<&<*Y<`)!@p@)dLw^W$QM}%QhAm=}*F+M}=-a09on8-w9?g?~m0s>m}urv z1yR^rfj|SBEq)jYX;#u6l8MB^9N#Wp+^9N`Wbr^|EVR9_j`zy+4uw~{5+}1L$g7>= zV%iy&H=!$Q?dcc$46Rgb>|x>)X|PFe3f}EzcCf^C)X5#o+SMrUgPzC|eE7?CC_0I6 zoI_s9^skfO0yadPM+|qT-bGcqe{oH0u|51<9Z|yk2iezmb_Ex@adYxH;pb^Ov3L#zCl%*_%^-)mFp(XMZM(u4*lza2C`ZDz;GX|+ za3dV#_6287ed4g8Xb>bkulk5;4jk11;OOxy%k1{ryOBzZ)57$KlKoEo#qB4MD#acY zTSC=1a*NAS8r;Kj^bP9N91|;Jv*2&#q4BLIr zJ}zW%i0u>&spZa!;({S8o${{gS*ra=VI)MeQkg7@4JpU(kTFYS0ZuxPR zj%0l!V+Tq)gSirFV-v-b)5bPQVm%ffmob&18KQzpT$kIGW*=r?kEd`)c1xS3hIt@M ztEOt3LW{n0nW9ohNE#*YjR9YvIMDwpmvWc-TK#>JbBN&9u^?ybHg^68JKU?pB|6*( z6a^3$b+`({$vlpWNv9N5kyFt+`3G;)wY|UujfwBKNOiP8;;aG0??u`qaa$^F$Hxus zum$%Y6z{gKmRbd%O*w>UVe3Bg*cn}?03Lsq;D;zl?qwH!@B z^s91N$QzfAY~gPvwhiiF4-Sl1xE5pn;R$LMio5v;u&?~ba1Bh;KWA&;yPp6i;PS_` zhug+>`(CgB)y*1nA$YH=bp3V*BO1iM>$Z|-RVE`iD7XRr6EDO#d*MLZ`sV9<3k>=8 zWeXHp0u)1uJksn($AxFI4s&zw@q=>+<# zfO*GQXBz9tWXYW57CETv>>sS|#UPeb-B9>z{~d3Eb9_^}m`?FCyP7DKr3&bo4Ef|+ z>7UOpRe9lZA3V)bR!gn9fSRwm=gW#lS5ACDnTV8queMa4mDyyn3t>A3smBpO(tZ6Y zbmE=$e9hWo&w>4Z4B10Q0Kd59)_^#U;#Nbe7zN(10uc38NUQec0lXdYv0tipQ{Ip5-7TJFDb>CKI#y(bDn@am$EmoaE23y`9Csgkk4ii34P%s)L?^E=*(&{ji@-fn|q-7zEg6uk0G*s;~Tb{k+Fc+Vw zzCX@J02!^r#+r!;pCyk*r+k{;iIod=5O7$ugO0o>9L()DpdcE58j9ojstRU?1Hm;* zPalL=wi*l{lWN-w`;7ORX(SqKZ7H8mu;Mt}YiglSZ(oCmDZF2vvZUzeb>#*fFE_c8 z96UWi8ed?iaXj#;N9bMSp_@u?^}Ymxo5>+hQsau%BzkkxL>z95t}w57J;%N)XEA`A zf1qo{^K#+0aHHT zwM9lY^h7dEG}VRsCR5k$3#IchFfw~c<8`eFO=rT_pWdhQJuH!aC4FaaLL0u_&amnx2uE@eV($8yl0c86W!$tA#!E!^DzlHv-#qp zI*L31jA=t!fY-ux9#?2ndp%k{KS+hdDX4VK%B*=ww4jlk@l>fbyV(G!lGk4|-^&_; zl_Qy+HEwx%pJ#p^~a?K%|GNga?6I^G)9d*G)S~nALYe}%bfsqxYk0J zmv39ck)jrI_r9XAx7mzcpstK?5fz(zrraE+fXVD^8e3t+~`_;yET57408k#(O(e7p4R(!l8kYbH4yFEys)%aMTW2EFTP z=stU?$Iy*eoeqPJ5`WB-H@#hFD{5`nxR{-Rp{P@|6evsW}_{qW-Rg9TWC78EUA2kc>R+ zP>2hwP4s>wNC;7^GF!hekV`P`4(ZnpFYE=E7q>S~di$wt%-a zikX~`zR&-v9B+tL1s=OKXLO|DLI+`TeIuklns!h((|jRY_3r7_hHq*aezeA?OP6#L zR6h7vx!qAHy!K>2X`cd^vtWHw>Y{wSqQN|3LdIOMG~7X^$Y&u*cX7rjz_zJAv0Wzo z{bq?g#&Df-PJTy8K1H`RGxeWDLnYfTcx?0Y1CVlfkDjxYT%mTyt`cwm^y~vF0-yd) ztlG;Q{iXExK9_m4pW*Zeot&lezR2~qc49mqX`^QlP^BwV%gi{@3Oe(7b9&vOr8x$r zlV_IhjsIs)p+M)9=6#tj3#@8R`J_ED_bN(~-f=2GG5rb}$kF-UEA;fhGHRleKu0_%e!Nz;GE-WEf8Jo-VWwMp2r2t$7L+ zQ4v0v()ibLnEvAoMFcj=@9B7h-ug_e!NUHckY}1p?Z+vOL^D!3?2Auafd3J!G-Oa$ zg5J?C`kaq`oTR{M%rQ46vZPIhTw1@+ zznU)n9dGX(ngmx+(@6NT@C*Q}kc9`cMR9YX)0 zKGB?WJ2HIk$bdzwS^(kbAd*~;gCwv?%&cq!csOh{3Df;V>de%|t+{uFVpGwtWkvlw z(z@j;3=%6N>@~AH`TV_chQz?Oe}9po+c=nq2gEreE-~z-khk(goUCs+Y@}OnTZYB( z$nb;@RJWGaMz(T-VJ@*1~)_(L!`gUug>Huw_E+L9-D5-=8vWtlI7MXiI2zdnH|3G zZ9nF(1$l1RB(dnBJIzWe*R0zM{#2an!4B95Vae3H47DQI{<{WGt;{{E;Mo?;qkR!J z$l874{hSiFF%O@<8{n@hO>JU# zmnsgF+r)143_o~vq^Wi;FfWzA_l+!6NJg3mopipnj2Q7@E^72{gv5rf-%Ovo$!B$s z*a2WXl?FPR&Ob|36$2`)(rxHeYyZ>?EsIEH*g?-DC=n#$X3BPx+w3UF%$D!B`*9(T zs2=cQD@-};D@e6g+iNu4R@yFnM=5B}Jt5MM7%;eE6+y|_h3nPe47%8=OIwJSdpS+* zyWf>}Y20yXcdxRWtW|^FBukwxv$p{}v)u5*;BU8QDy)n1ILHaISvZO}y}?0YpKV3! z0VlstLfAILAH%e2*>7v8M$UY*eH4|Z9*Nu3ikoHJRRl#sl66reh{ZUNqZy`(oNebQ z`?s<{6>mr8X-+tyt%0sJH#LQMg77mSHWMYKt3x#$Ymm(Lqn$)(e-nI3UH%xuK2(m9 zKNcc1ruBOQBJcMPah|#4XJe(AJr)sBe^h-o!aD5Ui|9QNu3*UZ?jJp`&>!EZ&Y=Cs zPbjahzj=GD(YSa_vIM8f6~e`ZSYo291KTU?1=^?7WG1k!(5qHHrV}i zc~+hf8r_}|*DI%_5Jqv7RKAhLlsx>}#ik@5>&|THNiWgPiWTL5qEF02v&C<};NBIU z4;pwCwSi$@E(9q|EV)#PC^!D|=g6$(nzR*pt#eLpWdi;pKZdthB`=BRv(Ei|1-YQP zJH~0*b=#(#&%Tu-O}i~GVEQl~Ga4oZ@mhUv`nz@XBENYIo34j=Il4L&(4xf3GTHM?r|q(f^BPGM34*rYY~i|-tI+o`TUYlwknD#0)je#aRPckoSz8#Y4@ z1LgM`S2fy(RX~=CB)ot0 z*+Tk?Q8{RxPKw$o`{CcY#2a;*-_-9ulKqv&wiK4kSAohG?dr0d(fyY+58 z!@M7~3FTvQYjvUG)Cn13PJN2#xpSca_^N)U<7Wv?{kO@J0V7kU-2JBd zMn8t4R;_{`JEO*;Y2qQ~OogpgedX(aKKnlXu-72zx`Ci?+=|#jKHhj(2icE1r%#Pm zDH^uQ$X?(Mye}`bId;0jNZnjFT1@+@X>7X%?A;30k`kr;lJ?!;WaXAeLiv-CV_-O~ z-g4k!DN_--J+WAoN<<>fE2Q$leg@QQlX#-+fw0$8h#N2(qS`c4Vr&AjRM{{59TM-TLStc;Dxr1`14$sUSqAl>4mjCOxhI zXOd4ZZD|T`wl)2DGuNO71S0RZYsMS18AGxz)w#r7)EaUFZm01+04kiUm>42krP zOGiZV(EX`Spe1a#gN|L)B2F2X*@gtj{E)eqWvY`C<=<$H2>XX#T|ASNn9GP#*bI?! z&Qcd_zxkMRD`W%L;2>PFAb^c-P)XhVlg;6U#26xQvO)7nOZF%VY&f5$>i(Ttgq>lk z4T(=H0MoX|=c^qCR)%-Z$>@W7JnnjvW&^Al0IR|#_DrB%EVIp8061k4YF8etOv_{8 zb3vNwvZM*Br+?kqDWi4`OEm)+Z>?3EaElwBBRs`3@)@Tz_5lN7h`$b%39v^OCtF6U ztAEpU=XReZJe+3=LQ7r;;RV81_6BLV_bn7P8;+l1wH$MR`##){HIiAS0HEz@?>=39 z=VVP=kCMGv0b4M*aD!+Z@d37>o9=Lzc4HqX}OcQEi*coo;&e9+)fwNsP5L#k6_FXzpyg4CvZg5T0Yss)|yq>~cS zgB%=A^#A4++{`6tM}{M5W^{Ba)OkopvA47?4DHaagWB$TI>?ex5#6VIIdlm5^h@k1 zg!!Z@fQ9SczbsP-S(pFhNsI$ju>Om^;P2%nr%1%tqJ)4i#>2zEOM1|$@6HtLE zli9ZoQL88ltN^5n@|wqv4N&>oUhQ_yY`MJk@5iab}B4+~GR4cFm%Dydne0I>+1c+S5EHELz`tEtj+~lxW&Zuwn2!^y39*OnFfRG} zciSTwi>ksXK|w=&kbS6mgaXdFw@CYH5uW8q!z78^Yg4q)(x1dZB7_nKN^E}rAkZ}) zcUEkt7^^uct~fp)-Obl*PK{aaAbKKuhB3WBy>9KZFUdMTMq|{0t2}Pg*=yrb<_0-_ z*jM7gxk$YNHe?bvdaVOvtJE)qGeD@4Ng?aEmsiLsW|vc=^WkdtR&u$*HBS(g3{jP$ zON!P&MihYAh-Q-ApQwH|MY=H5Mz{?)oxj&qUA|LG0o`Q0g!#H|_V93iWBmU<1XWE` zdovr>mj0*Fk>&7a`zZIQJZMFhZ zcV8CV8LALlfK;q4Ub4;&lh&F*>VNDcjc~$y4*nDrQc3`nN6&Ia;G3U37Q{i0K zmJ5nDp;oyRPNVKSNZZ*FF^<|A4(@K8`5~%DxgkP+hZA|oEYrSuU~<~7M|{L~0Yq_Y z8F|qe8|qI+jr?pHwsc2E4t)6gHLrUm$p2hMh%XzC%`Q7!&SqJzVuLeMT{1c$YDsU} z^3yHA6#H3lG{lIr0q$riz7ON#m-mWgPPbgZSz_H>)|97*X{BAd1Q@OR3MzqX~>GfMLY-U6E=OX2(@tU&2nyQV8z@@)eUe3qLAFvOc_5^NTBXDrYZ%lRrRHmXQS(mxLk%xVKA0LD8M-&$IAJ7sXkVEar-7C_wHUxYWh#awgW-)dZ^P|kII zn$$!91aD~K;P|FUu!xCNZ->KvXGDl4)Ct z7Vx0N@?w@~J5;LQqZ0d7xS4Zjpr%MI#HJs~YKF?5A0ZgA#?MIyP<0&`{=jt2dHa9w z+|n*9_$~MIiviXf#<>qM6Co>PqZf3L1@E+9Lf3gq`#t0Ik@kAd&B0A3tGssi8AnMi zNvZKYS!ZRiaodGK)0lesF+TB#dn{b;jB?!Sg`cNwseRaMzZVA+WyxY)MmLlv>FH0o zwhkc|cD)dI-rhMMSdUabEr=Xb)ADrC3T^jrT_$-`Pw4UDu}tZ-vz^b9s~F>PbF9vS z@RCZ>O=E;o&BM1&55r{UG`|X#;o{&F6yU=I6kP20zz!^R_lMEQWSl5*;DhI0oY@@1 zPaKeZ>*`?iQXm)irI8hr+Y^Zo=pYQ670<;~6r}&If0c@p^nB_h(Je=l+Cv3yYUy>} z0ODDQ{=$e{4TEeshR4GE$Z*zCWOnBTgCxXGf6*4!iPjMshlJk`;RvJm>sRGQyU)-D zN~HdNWxQ{FqCzz>2D=eIV|Snb)%~%YGFwKF8D1cI=4s1?IWEl7P+tRrXhzE8(S(gV z6AxPGEIH=Qj!Qk^p6ky5fb1Z)a&FH$?F@@~y-aMW0-kp+my`=uAdnU;OSCQ6Ou?G& zuy&lXp{RLzUAS_lHPw1>UUzJOohK?pa^&`3Y*sq*yzl-i&~g8hW}5UK=sJZpG6(1) z{nnOHKn&%CZk=~FBHL$szfOpznl;8>DzjizXeC1_j;uDcM{e~;&(=m$W;+<_qdI3$ z<^qy(IRtwP!vprN;QV@?$}LQ?KYP7wfufo4e9s}<#mpTfN%z)FSe5dPO-K=;&R)o= z>teRv3@2uWLmvZ!#}qr2?t)2*lSGWtzRc!7=rW6lCU$wn-DS$S*=xFT)qFVU6V8&^ zQE!~98jE+joGCaC6+9D^yh=TUxV0u^#5Zl~LAm{de;yRlymWDNC{qHs{ zCU9+^UR*Nb8ES7@S+r}LGms)R$R`S&MO8!_e4iu^=h zz9XTKQ_PcjXbvnuxMg*e5Hr4oQQ`5(|NVG7IQX1b+#N7M#4E|RHV%~!D3w&^D*~6T z@sE9SRGY2cGe-%h5=)gXOi4%ujyN`K^K=^;7%%pt_JHy6sag>L8Zxp2Sx@~%V_&=C z*$)9LA7WnqXv%=R`fYPLfEV(eXzNb2EYvm=Y+B?wMAP{MNNQ7#BwH$f1Tbldlaa6FyEao{Jl*qA-ZPqe>%#Z;IM4>S@$C zew1@o-f(F(UKermG4~tJt#0HHZK9MTGJDQWUQSgN2w7@7kXlc)i6%%X?yWP6rPfm5 z{^5qkVtG3{0HwqrF-DuXGcfj{LEz@CiV;EI%4-<-#gBcH( zIp>Xnp(d3Ecpy>^M3h|f%=$#2GQfV=`?)bkLu(F0la@v+L3DvO~ua*K0?zs0SeI_X!|EP zWh7mh=p^~EqgUqzUAU1Y?8o{lTqd7#pFrENnf>EK{pf+*@+1fBSK`rII&J%q5d z57XRPgz=h13;XMRg_c0~pw8~#8B%x?nypp0^N+hNJ!ECEt97y$a`Ahya>N##gvy$W z6p~3@?iOT(F8yg(j6N17gCq`RZ?&L!L;vTa&8`vzm@6BD2z1$CidUN7DZX^Li_fh1 z<|J&ht}%7pvMhWE>HdtiREhZammPJu5NzlMw#eddN}Wi%!G}XOj^#lix9YC$ssH;6 zrVJx_^N&h*mQwrn$RIp&2k(y}Em+LC7FTc}!X@BTQj6C$@SWnC1j*X9Ol18h;j{tR z?T2XglY!T2Luz_OE1^CgCPg~(Q{(voEtk=j9vF*q7UViQm*XMjbdeS&ym~HZ(FGbZ9YR!-W}>WXHbF2gFSt9t^`JTT(EDZImX;s&# zo>5Gd>mr^?EX}t55n9AGpa5o_CS8## z>6=vVwG0+a)HlOK{s18}WDbmwn*q-{M6y;og2EbZ#q9npa9z#bq{o;BfGI|tg8+y| z)0I%J?Nb}&aTL6vyfCne^fz2NeAy}%GGdF*Pk3A6o0akmZlh*(^hy zUDPi6gU0Jj1*pVd|;PKiHqHCqOp?koL#5@~FOz_gCEebosj z^O~r}lNH0ZfGU8aOgz0xm-NXFr*hUM26>{PesDJ#OgvpF`b8x-Ey7=&ao^QJ^{!3Pz7Zp0+!UdT&z(w0VpQxA zTB0@;t0;cA)!I!EwJWh_#TKL58nJ5cpoF4U6}9`j`u@I;>o_in!(Z{bUO8Xq`FuW} z)X@h}|B+oB#Yh=YCQL6graTyAj@k->=**N6Vk1yEM@MCQ51Y1W$-e(E(}LT5hVNes zvo)-`$Orv<_q}SZAXmY?A&70z&J)CTXB9=?qR#hsM99_?>3HG?T&{O~h53m-nO`N{ zQ4mLQl5}v355P3lj+qB&e__)sD*RNCEgsf!rJNBfYxg|*2V*TNg?1f~G!z(r_ntUc z@hupKc++HswwUEw z=Mfn2LS%prTm~8s!VLI-2@x@)F@+D zbenQjO`UTF@?cTVhZMw`5}INE=p?C(bE9+0Yg;&^J{zzXaM~mC{TTjR$o@!&*bT#L_JLD;0616(fJ#MA|e>w3=Jap&MXer z!>4l|*tixgHtWsDJp??pHYOzq&CAW?&f0gc%YmV7jl3kG7k)zd)4yYQ%4icLUdRIK z^dAPDaDwLb#|RNDolimevWK-EB(zw1d?Jib>{bvJo9sbd{*nS)Z7$4c(MV8qn~nQ3N0 zwf7_t1`{F%5pL|nl(|Wwr;F8^H`3}u9bGO8^~ggJ(;_*SQq(HMoXbyXjxonLE)lgU zN?j92G#;UfX<~>)?vwH2)F^{2d)hN74v36WK_&`o_pcLscm7QFeY>l&-HkEZghk0b zner=}t<)XPryR*K+SXBJ#iwq)eVw~OgkxxNXXw?dPL(&Zdb)4wWoz{3%{eGO?#f0l zKD}vwaBKDs2d$>zNFHM+mQwDiy(;7i=PPXOT8(r0x9JP7nPBR4%LJS3-$4~2v66g= z;aTq8Lfs&e#kBpJ3)Af0`|g7IG~pxuK9L=H;zFU9U3JiB=8AUJ5r02vv@&b$oO%R3 zjJxLzYIaFb=*ac#%+X%*+%!ItudN~u+x@{fiK`?%-Lm*v2Ca8IMx04xta;L_gjnSs zIeromk)dkoS36y{Pw@y>$Y(@TB$SPoOZZ3d&hg)xG^5l4#BO^OO`X&=v{32Km{gg^ zt1?lc3Wjfyg8=E=fO-WdFKr50yvmvLZzdq=(c1)Fv zD}GxJ@PJP_N@tQBoZ=fCmC|cQyG|Tg-^}agDfcPO?*3yhy_G0qR+lhGOsSY6ZH-97 z47^z2bqHDC5Pb%f$G%#bumI;&*j9sRr}#I)o@1bCUpN?y5LS;TvNC%pee3GyKm0iD zx5&@$J}Gc2Z6wSsl;DT?Sf=}m{?1kphQ=gI0;_H)siUXOKwGVjXD;Ek7Rj%vRXwKf ziqb;K6RBcR6|SCg2xr`fj_3@Hr)flKbnsgWdgCJ*e*a+Z>1hf@P*lMj`)ZQB%wSD5 z=QKCaK$?YnF!y#J1_zhgK+MV8a6S?nB)tiTi~g+NsreLDK9}n~hy+PLqFKuQH12Q- zL57hrzb-ut^G!u|{+uL`3?s$>^Onw{b)1b$fBdtrdco^p<(QSa=|HRTr{vAZNn2UL<4ih#!SBGKEPZ( zyQyx5_=4}^O_S|R7P@9ttE$dw{in;J*0VM}ZBvziFqZtumz4O?-H?z}$PW-Ag_-Lc zL~Y1+57DSs2mxVl1WEFFBRJ^>y(=mhlTAzl@9FE5SfjTT#%q_FBPu1KA^Xi2`@WM9mxKKA?lq}VmRIA@u9!f;F`ddlJ~(ul=&NHcv{)JD zZ+%A1#hp$8qz~QY*Cjs3WW)4*?)soyqaR;Otb+Ac+D6*gDaSQ#TPo(+jt7};d;dW4 z;bobhFPH0VNcALhY*$yD())OhB9Lo00_6l$$ z`EOTV`dIB&N=n9i${(^ocG1@ttQgK$H1-CuP>L+h>VCzDTqYrC-~#=Cv*@3W79~l$ z;671ucGouHzMseRYs^W-fz-plMCa!cuN%-c^C@uTPle5?cAvlm2>*zZORsydexPO# z-XF1n3DNJFnorI;5l#bmLUANnLcgW z_}qL{bfw0Zdi$07S9ulLQ(x^PD|^P)Bq53;dIqsgcR?>=r|re2URB^BO|7GO&6{e< z$^IEZ(>8ui`%4I=%@e9gDV7hZSujD0fR?J?2zy)$lk1j>g^1pYq_K4zY27a4ON~r> zcvbyNN2@KQPh4lev3O;w)i~A7u~LcNANA{!u-5yW331(3HS;^Z^d$S`G*|`74s|41 zqmTNDz{u-Ybu?L_0W`z7W@d;1+>|%r4qzaZUf}`ZGM$ddpvis)#a*4a6<$ z>(C^nV?vQw@v#zCHvwF(k%H)ax6w#))6;P}@<0+FYAB=c$Cn%kVf7I4B=@1OU$xp4=kb!U>8!k;++d`Vsf{ty(R0CB=%O3b@H@q+GXZDU;l0O_cFqlMr0}K$ z?*g(Fds^{UX_NmTB8Vsy^jDd~p33m^&U+V6XKxdeK#EfTz&2)Xhw)66 z$(peO_zyUiGCH@z=X4RH=T-6)%SWEspvH{7t;%#j5z@X8+eqqZR&{JZl=7PIHT?`=}BU;^?%EIzh%+bYX^v7u(s{YOFa$b5>e4mi{@dtC$u zg=RDTA3Ax{;cw|#@^@Kit6jt3%qUTV&WI~i0r&|EZ_Qt#XZLmq~rZ|g70GK8?;uE4L zIJ{2y0H4T;N0r^GtNsgw+obl4zL)|`W^5ZdDsb9x~H$sGINU_?!}F@8{ckw)%9jnQt|lq^vKy?7Zw+UKwcZ(@dPo=iM7|I z#@!~+WMX&eNE8 z6d#J;0DIC{{kXgVY_sfKj6bLChy&59x=FI^b_nw0A|8v>Ts}#c=LSVm5gHbmABAeX z6JiJ`I_pnt^n!6H*&Zn@17HlO+`(zvklJZJ-*j-fpEL}W)l9YC(D$P|Q-oAvdOv+r zfQGN62PJCsbpVsio|@qRvCyKk*w;mOwm(eOOVu~!*G6|%)0?dH9|JngfmMUA=sVhv zim>-fzpGg7J7D6?|Czl!gMVHPD@}0#t=!3Xyo!KPp!`%6$&`sI7Yfas|6yO>sU}e^ zGG1jyamy{`k)>8hR0Q}+0L=9u_E46)CCCFk>{JEwtBkrpjUv`1NRRP4!&2@gFC%)| zHa@_9*R**4hl3Y#0NoT_d=3!Noe@DBU7s5n{0)oE)wxd9 zaq9qaK!|T9Z;2@akSkw2Mxi>tm%ghi0#5>w=WL7hBetW6a#CJ#|RMNx4m*JWJNj z*FKV4c8TzpnJmRd)56KPNUi2+@MiFX zGQ(3dj+4as+|jtmyRcS)=0wlEjW=12VD)+r?$RCcR?aLd(`N%YrJLJEM8Df+Djv~o z`%dorqGiJ~4sXUR?I-&6?|wi0x`d-?Qd~zI^TD4sJ$u)h;S-trR#^RMCDrA3xfmYs z;v?GVhEYpcv3If|yYnVWIrT(AwXl`}z|3u7%>ZPPgOjZc?Avs`T*1IVmnZ~5T)_7o za=P}+?EUq;qgkt4)6EopNEonb=}(G-QQwe~dglDv1C$IYW$Au!14b0ep1|zt` zyo)-I%(TW=UzMI&DJ;Q>B1~0PPvoU_IMZ|&yrAOJv7fK(VeCyz(u``=d_gD4ZY(ao zh@tGwP17P}UrP}XNUD-z-oxB{Gb8j0cGGy%#Aoj1KB=f(E`LL%V2H66FL%SGw_i!C zcoWG9n>Xk7e?{GwU%Ar~r_fXJLVLzZnZJ`kySuA$t=DZVgC-O9VMP0lpi^zgikq;K!zAQi{@MU%zr7rFcgzRmZ7IKmP@sr@#d zQbx~8n+w4RMeJ=M$6a<^2MY70-y+uS*^mwOpzGNz>RbnVgAaK zS~3)^tJL_maQTptSB4ceDmZvdZBC94u<8{@m}61nE?%7v1Wk9->pl;ns7dM~SJnpz z1;(jZ&aygj8GhT@O@-J5bxG3whL9;nK+C%*A<>_WM0NJ+_7+A7-xtb;yVAlJm!5vj zzc7Fz`>#Y`ZV9ONZUm=4Z0tH1Ojq;$#yM*EuG0GHuS@W6gBNI2w}NxpQ==rWATnZw zB@SpFY+X@qRUYZwl5THH4M>1Hl@6%)ibQ~&SnFt=G&39|O1l22w6G<%K&Rw-u1SW8#4Sqw-GLjmM#EtJdR&cJ%QN~jr!~If_K~Ug1LrN!C2Nh2!*skI&z?| z#bK|teUcrDcYKvu?(*1Q&h}dwXyM-$-aet6jWyeXzER}92%9Btr#m`CPtx9{Wv=AT zBoMU&xj=^X#D>JWhFkZ&-Ixq+g1eNFy|XtU6ekxv#i_(han8a%(!`9@N~1owrk~F~ zqFn@G$RRQ#x~sBDFmxz7z%>C89R<=#S|v+sWzxScS<(h*j7;l19`L?)iDzHXmS&_% zc7`;%E<+`(a>LTHElM~?{ax(CNB$e8=JpL*uxzV)MM7T^5RcLhX?!C5OsqO@$AOgc zvRKYwa-hZiH_wtk+YhcRlk2*N*L~JUpVP6xV*!790tC+5r0C2w*3zXtzxxX*JRqk! zMpr_=Q;g*=W3RJ+VLt$WlqnF3vHfJq=(ePBMa&y8Dd*a7LG{FXUY%=9GY0o6(LO<$ zEm6VHu*6b3-nsae>z2^A_R_oFloLY3eW~%>e@ph-^4A`Hd)jTbM+(&)D_r)>FE$Ub zp@NZK4bkpKNuwU>nRh;`q!=0G2XaDGwuVYrdjol_1P^<8G)h$)m@Vej-Wzc?C#eC! zqH89jA@kXYzO|^I{w|rnE){)THbDHhP7a;Fdque`t4lR7p8uy}V)J5kKm`FmpkPvj z9}v-T`uuNLPj=*n(8sy@bcL;ReKMqjcA1c%p(1IyJ69tMuSt(jnKt9eh?8zeSM(|q z^cU7hsOo5yIN!l&i61(jx#T`+l`Vp(<+Q|qzWQ%>YPE96-%bX`_kBddJ^`T&!)qjh zLAlQu!w!8>*Wsd|*x%w?+qel<@Z47uXx{WPCb-mEl{zwpr-IMfr+vAYX+C)UN}|N- zB$F5jLoLCx2Qr@)7Eh#>y9>fvTp=kNIycu}n`vJ=*ZyR^@cvD9Pl;kDAzAcYIS4{? zYZZ4SVvJTe(SaNZ@8JHN!`B*E?K!z!X#5^OxeNTIeP=_inzg2(N#V;Y4hhx(WPf}@ zo00LKQ|{R{qsX+U26V}PA5>p!zF6o32K>4MMUynC>Q6F?yQ$aV!WZ!{{ww-NgjkU> zNctTH9!IHus-T3ZgYrtMDS7G_Mo#byOpbhbH9A~qK@SlZkjO5VK{yI@SHjyWh73f} za-FKbE_oXqIjX|8n5L#nU9z!njN1?uX4fdJ|F+vEuqeD@{ zBg%zIsIeV=hFqtqDQcUZYemf7YtA*mYL9Pv{kr5_bKO@A)=b^D%~*QqZqNIQ5%=@} z(N_%Qa*RQdQ~;KRY|X0^mv&`iqkZ6gaP zX5z!U*HusGHFUp3$eU^(|C?-0t+G46Pf}Q&kd>+Vm%lFkTNFxpcangMvrgWS5D}Ru zua1<0!+qf^M~EM1!Pf?QHw0rA@c~|9bAz;D=Y{n#Qa^ROn=j|XLQ$;_D^|xZbm?6K zT5;2)zD_O{7WlWgqyggQ46_>lxAoz%)Q-AR#@)k}G)q|W`zmkO(FYr&5;+1GVF4?t zD$V!`Ns>uOxA94KZ^};NE(+Y_C#>U-$^}xR18^}woO%%N`wg5=J$sL%ACxD##?iUE zOnS7Cxd*GT!$4ImXQo6zb0D(<1E4cUrj^bbmT0U93cf=U?CS>2)Kw&nsHSBFEH9Y8 zQpL(s{*7q|3aCLgsnWezYFv@%qvBB=*>dY@8s^&-lfDtdsA}qrXC9UQ#sNR4*Yoq` z5Uq!J@8ZwH+2;SQ9spqV9PZ-rd-Zfgyy-~tkwP-{kbDV!ZP0dyu^114&YUc7Nj~7j zJ<(xVXh`6s1Y5S-|Xp`;>fYQt(sWm>c6c2gTKuh&bKUC!r&pfDXVF(= zEa@pvANg3pTYOY%A%mM@uiDZ4E@4=z5K$+IJkm_n;Tt)U<)mkRUi32^`0BqI^1x3R z6(jB&B2^xi7n1Or*yJ|*cGadM+oCUzK2=hSRDWEgFR@JI9-(qBqMH))^Sh>*#p~^b zn{-vr&nIa{bKUIIO}wZIG;21Y*TKdme0yG}9?~>5UD63QQGuTiWO9DZvRF>bMJHIVO>yKkD3MldPjwOsdPQEhBn(a)ik++BN3QjaO$mpe~;amvR{ z`4_a*C(_^+%Q3ex{URw4ekj6UqR0c5c&Xfe=TlaLm6$=eSs!=yu+%;TzWr6)RZ!6o zDt~SyHC_@RXhBi#`&To*l%!~C;X-tspbOXkw=!hBjP1h5Dmp?qC+lhNk~Qmx%)e2BwA$!vt!e_fKYt%V)*2NGjers0 z-wt!Vin4RpTSs=Qojy!$;UAS|$g3_CQ>g6`M7`Dk`vXo;iNL+G-!@1zomKrlY!5Jh z*Wm_we{#h(Mgml-!V%&9;LTQq`ab`td>Q{y?iHg`i#I<5Ez>HEuEP$&W2qTbshJg} zU6_W^UrTV`hjoJ3DJ|80oHxn5G{-o_{_mnI2Mb8T66XvjB4W~N^Ja^3?p?ar~m}^Z=-YAuARXClz z*F+Ob9T+5qM0Ud_H(0?=C4ZMPBhp#6IQ-kIR64D@PA!u14?`eqXh3l zy=TndyN%~^-Rqx&4>P0tYY`h3t-7S?X;+NAnO>NYlF5mA+QT>2(~GcO2@#-QJ?fv4 z^sjSdXG=a_?8nD;wtI3PA7Y@h?r~!FpxbLY@6(d&xBXv7OF&d2Gd z(m6q@ANpO0Zk1`G&96gx5LxMgZq7CGXe9fv&UR{&&bh#Fs>^_~sIq8gpy*Uw4jWpJ zy(eJwk7{2hJ-)vs;uS|^EN^(435H`6#v_8%{_eLh2#_s28%yW!wCJ9mUm1P3GvweP ze&g;YJu)-( zgaGh=Bs--h&DSI^r(HRR`0_~2{}hockTUTT8_&F#ncY+{R&Xcr6ZofS>MO&`_wH)w z8kdNVtH9;Lu`d^&ZBcG7HUXfEp8P7Ni{x;;*Hn-uubuu{fc8< zhmrnXJ$S_6JmDnqp`Z5nRK^+t6M(&DTFQ7;Z(PKKkCHi%8g4cMjXttai7hFn@f4We zC*t7^R$R!rA`G;%hjt8avU{?xy;{K}4L0nAXYKGoL|I>?17SWT#$<{5D6p@B{i5!kVruORzegpIh}*bsARR9G&V-Td z*Se*2VZ1<8CU2RE+~xJzrtlAqQRLCvmM(;iT6+UJvzfML z{1U$~V&cUq-A0tAZ};l8k<@NB<2++L%Fbhk!mi$%1eKsGSukwk(XSW0`x=K^sAA&r z{E9yJB=vdXfyg~Vcn?i(8&pxLG#4N!R9J~nfFWJNYV-#B{CRqgxSPdxk(%L&G9b?} z*c{?=)E#F2$s#^b5cF9T*rVZfBpsKMc4JMBn)WUDwc4ffVX24y=T}1n;a$3!Yla~< z4Bc*C0RU@?pQd>IX()vqDqx?edLs8K1d$$*(T}urxxdGV`yd@CK?6u6C8qw6=fI`e z=`>X`muzXDhJW;OEYV}?<>-gnv_DQ99+}-as7>K?naU zT)@)^*I*}xEb|1|{Dx>JkjwH#E`KP{o$nN4GuoCHGjl<&_F1> z?|KXSz=DkbeA)@;t@e&>T4Md+(!zdL{OYeuFND^57gt6lRDB9>oCd;(&xLF`RAPv~ z;cTMM)?&D7s%d8Ztx7M2vu8V6)m~(+p$J6d^`SE$!t_?uA}r*x$n}JM@u>_fGHKoN z5H!!49UEmRj>$9fl@0)*&z~vWVf)JrU}KCtcO1q~Yuyj^wS_Zb@91jRMO;FJ#$SEd zbKP|Pp7c*c&SeG=6c<1GbY~7uRBSkyC_4^pJi=3qleXcZw{(~BN^E>rfv}=X^ zswb}6zH``DW&8DT#DfQ9m%O9fAy*13t)y44Ty!cI?7y!BiRfamES?bt>zr8Am#oDu zB2otr6!B>`f(-4GMGEq1fA}ZU-l}~4O8meG=u7{Ocj3|NxGWlw8eW`e;t+Sk&K9x< zA1jp1NZq`rDuO*`hB^*@7?4LE7VXLBy(`mrpJXn@K0S68`9()%;6 z5H88ZlF;A8?Yhi|c0;|@-+0j-qS_TtO0YMNxqt*RIdUA7XDfnV$aQMorLBOJ^X7G? zqpHrHtz3U?_VoQaSs|j|@@1;oOug6o+N;eUu3l0UxcHp{)AO4>*^c`g52z*^j(gN~ zUUNSDt>B5lB*bpQctF=ERhTMOINRaBJ{ktfY$ptw+Z$0g?apMougc$GIzdktzv?L3 z@B?e=Zzn)HVEbWl#qpa$;cHU=&f9?yj9ryNa*a z_aJ<$gSGWJb|H_Oh*R|mZvGZ@&&xwmmD}~^P_iXcul*qf%99SLk)3M?i}m!cA9B-J z<|$#2KfC{tRzv7mITIlJ>VkJ^{B7vEg1Fs!;Ci-jKZEKAP-f zu5w-O)l~j5HrBVa>sfYr&tOJPFPB+Rp%ii={@F>)A;8D|_kWOFyF5W_UsGJuGxv?_ zs*s<6(d*T8+M(Ff*o(+V@nHqr1)(O!2J76D_POCQahsmLw?UQY3!4`<(UUcx=KTAH z1w+f`ft;9ze>z!@#r7*f*|C*{8`>)X;~4(5f_tE_d^5S}HivazX4C1o`V-zla+;|< zb;gD=qMh*>GbM>2yWDIQms@*I6XPKm_+uMyL$jv{9GYzKnjj#DCSjJ!ZCs>JEP=Gt zL%FBO6&J$e8Q~kJglQE&$#l&kNLWPr#sVyOW6c$Hrl#l+amBa0DV2O!!E0Nlp&eQ8 z6n0h3g*~rV*JNFivDUoL5bgS`Un$E0()tN3M7vy~UFA zA@x4nR!v6&$6c0Ykp-j-DK#I%0E=E0q(aM2Z!zkk_#(BgF1o!ts8222;;&Dj8f>tO z)`5cvfofcfU9XC6)~h_PBxe^k-y0=t*u>}03b}Q8uj6MiigDyasF*i&C~i~vTtOw> z*9`8OxF^8>>yojGRbUFCdSnd{3$v)tC^T6a4E4r6Kf(%HsA}g%qLKXV{A0 zsOZjST@7cy(Y zl|{=B5{D5cD+_tnxbkJ%^MxB#X6n6iouS_y?Us7mJ5#mdq{DbkE@X1{T68htW&i}^ z|6*a!c|P^DeF7Ywo9LsYBVtIR$BGcedHO_#mCVS(W16`#Qq+k_Cjan5>q=@>6Ru+?|*^8$+pWHh_L??q$~tj9t)usxALsF>qen5ol^1II7lYkJb33yh4w z*Fm9Q1jk+qP**;^i5wVtM0AODu`BU^T#Y~D6I=tj>QLJ>EAkq>NnHNVED!g@37li^ zX(Crk&^;2PuR_K$q@qji0WbVb%Q|5Jgo8ZcBjVSj^3(L8k$q`N|BTYAn`fZSH{n;s zrO){u?vL{{6RO)ty3>NqNP^ucFeqrN3g#$DgK+NzNQAKc^FVBr@cE+8@|Y_F8(rW2 z{wGnM?TyM;l{|y*T92^KnV5@GamRBLOZf{4(*{`;j{~hj^}+??lfq$)-AS@L2>G{Z+G_Q^L!>*`L6vrf73fe%I!EFFkJQ&D!y_^qwHp0F z>Ilx?lK&{<16+7w1S&BCGBEfFQpbH}vjley7r%4&OOuV&WYuJaoT7jm`9IBKeg`xW zsUMIOOO(1gT7^e_InQWP-&Zr=n8%=roA%gbZCmH$&6k?Sw(|H5RVqhwgAu} zy{}ie5$_8O*l)b}OQ*y6-i@$58LQ}>6d$+#7?VQsI8nfpSK;{XpLa+^#}P*WK!b}` z{O{WQO`YMA_zj-{SlGZQ{r4dKHyrc7^Ys6|`|o^R-0=4W+NNTsz6$nAyrd`;L^r!U zPam$g%4lq7iUnmJ@oZaAM^>VW@Ea#K^=~H5c;N)Xg5EQ1LgJ^l+p6dw6jLQKwW9DU zzDtwg9QTZ2;ol+cQNOEG(8+|QltcDMx(29-15njs;b8(}*4VIw>Y-qeHQJ;PX%Y>$ z%uoq>9Zc23XCfDi(DEgBK5m*M;R{B*F6XCqO>)1jOvk*`8O^J;{Y;l7$Gf7Ne&i4RELH=AUwljggzhj`B@HZo^%|0)pQ{oG)nAib;Z0)VJ=TW0q6fY{ zfj_gmfwXi^=aeZt<-l?n2vJ>k$np|Xq|y)VLhH27T9XJ=AY#B4k`Cqwv=sfn=x^`x zBu+`uL5ZLLm`fcts8h35IZLt0h_;gCabt({OxNEwFebLXi={aR8qCGznbLGFw=;{Y zmGZql)l~oMB^1Ly?DkZuyoFodNjVI_v+P@iU6z6jA_Xry(WGNn2e7tTqull8*VK=z zU9@`W$Z1x#J*{0+X}T0Sil-I(wF4nNmghwW2XLENyq=bv^D5J%_&ElPsU9t^YNx*L zasb(3WEl?#OCj0*MhQr;Oqth|lJbws>TizFT_Cz!bu>EgDH?RBR z@N4Q!?}BhtBSYp$E#4)Y6W&J?W|NhxZD5I%u;>WA;e1r-$QB^_?sXh{d(ezcdn-}d zev?Al+hsy2Dh0Et+)`9W&{+xJ39YvpWplVwr!u-?{KS|@+ZE*rq@XPK z^7WF>RJaw*V1Hgd{CnfHM88Y6SEs6aXRU`xQ14pdWHHq}si{V3#1Y)S0l!=W!jO0p zvLC8|H^;K?%WKFXc&sawb0yao&SF>Tu*?(ud{}tH#&~Ffqa@3!Qx)BV;`Ys{CwzdN zhQ^t?TtkzWm{#)&F%L^V5Y80b_CCw>pE}MT*^MQJSU;Vm0u>!1p$L$ij%7OF`TP+Y zY`-prXWIsr{SyctGRWphoy*nm+sT_4JW8_q4MpSox< z2U2690!@P5;^~n zu&8?C9M$#v>+(0q2sZq`pNBHGl#!KB6F2tnJ<;s?>9DJHnKBi6)w{BDQ{13?+sG9* z-{k8Avfl&QbThx2^Ta({jy{>|@KD&q8NE(Q{&`ees-g!13`)kMuKJDPBxTV|1S`h~6|#l3{S)B(!=Mq2&8_TngIU>ZPSoNH=(Wa?F6C=GF`i#r0e zOoPE4IUg47Mg>lA`6UpP+=!F8P`X~WeMkJcO|K<|J_ z+LevIjd8PZI=_6L&h;l#w07ZcYiCnXlfCDMKC0ryb2WksCdE=3lb=vL%@GP07phM%SYTPZHV>u?=@q zyli=0F5D|meE8vxh#_&YAB#{Dg9Bb9`%L|J4+7bGScOorLdqofb}5 zmSpOerT0t0bBSi6<9Q#^U@ahE7npHWR+Vu}6%W`@u6rR= zf=c|%0kI`FCd58gtCO48#I&a}16?C+CzT{CRhD2TjWL{ zjv{*4J!QkL8YA6PYPx5-XC6Wyi{AOknV*?S!;waEO(eNbIYeI>HhG3O<*<2gk9h4$ zXX<7Acu$v$_o~$HOCU-=2d;nzg#Yi96Bok;(sg2n>NDKEbR?DcKOaffj$?=`+A139 zUHtySNHxuiPo-mzlFVe&9L;S;bRfU~H^VtMTwM5UgqoiKL;2Q0H1FH#AgVk>s9P@O zqIrQUyuskZAuTC!0O<#%%2Wa#2lmTR|Ve-ky{5XYxlej9qxDa#U^uO(Ebtk;YBB+#Iw2r77p-;@RDZ?`3!S z7H!#{HFjE<%6qeZX!yso+AfcWCtSXi2SqT4`F zd(p9}0AJ2v7;a1Lpha$*ZpIE-R%1{TNKU~%F8kPKNy{%>;!wY_3TRH${lD8SS@FKJ zHJk9V`u{UZ9h#HV@_zU<`HZhb^7!ygH#20~(btRGXQs&u?M&LmRG9)BsXOgHwWi*% z#I)mqy!~=jEtqaEv1#%`sJ!oZ@g()jU72h_rRt6dNrkA6zCw;9AIMxQ!6SS2{T#E; zL@iE7cdRrk8;AtVVPV?BzarkXGMBmvoGw)Mr=4ftFOB!mWteeTxchao8qYl2s;VQJ z7-!BC<$gVOB^`&uB%;;dRQucLq8qO0LHNhl!#_4|KY1pn9;_mxaGksf_*r!UN@3xl zr^;j4t=2hSu4HZC{G1BK(Wi>hjrn!eh}f2V_r9i@%=??}7wowmRLxfX*y+@Se*urJ zm}AK~XOn=8rl4*i2^-5+KB8iGp_>W#Yem5m33;HM#T2fdB0(=pa^W6egWn#$3-H>t zU&Nt&$5%%XbjjwzOfGXQe_QwH?a2HiW4fb<_6jJt@oD2 zc8|LWu|b)-zw*@X^VRM3v)5Hf$%&8Cv&6N7uB^V7X}_x}^M>#ry7j$ViwXG)Mj>WC zLIu64u0?#fm)E2Y+zh*?j>T^`VA=AI?jFT;=9N+n3p!g~FYO}5y{}i2Lk7O|F zvu*l_8Ka$9c7|H`1l*ENQMvC+&REOx*-I5_A8&`22-vOD1RYgUQTS@sYD3Cy&j8<= zfkt$6YXT#8p4vDUA4VjN)*@6sY)ErEu*8X?N8=9VIt5zXdi&dR{$h+CtBLK}{^4F7 z-d`KHi%(ZG2F_f;&*d#eXYU=!3fv2-Q5(cUnqwa3iLfhS4y6 zgLOfCh(3+pAh$Z_(ZyJtZ4nHJa8F4cHtMu1KK-r~J7nlB==5D>qMFMS`yY?JjJP}}3)3~bS1v3A6j z@c748jnxgUqfXPLJxm&)!s%AY%@NhsZqdte(wp0-6{&}1_&NswHIS(+)zMiWx5Y|} zuUZW2NIJUr>k>ulL?P^o&Jk6slW-yPGWy|1@N*I46I}u@OWb{Rq#YK^xmK<`6w=dI zDkc|6nOT0=TCQ*;TeP?@yMs?7BvCtZ+dLNMUXBs_pe_xIe*V$3?bWGIM)MAE)C1=K zp13T+k!FP?(-%0GpWx_;H;pAlC+|!E&)n%h9_eSiwNv9 z4HU7W7a&*NnM7@9eL}?213}%v3h4BkGFevbuytJXFyD)7X!LprPkh>9<5Zt!^i8Zs z!9MNp#|*2vrd*e2cGkS|l-pXONoEL!?re$VxlD0yav=X_QQ2(=mP}!EzG;CHtb8mN z6Socbb!=9A^lcWED$D;R5Ug5)GIyth7TguTD=yE(T)^eUe_zVtPo+9}m+x{AYrCkv*m_Kn%QNEpG8SeeV{h0YgXn`G&Y* zZb?gJ^acLQB;Ghe=;jLke%%!gZV?`5ddnfT}<%z>vvI>hN>$5B_c=pa7V$ znFyusy40;b>M2?l)>*6-F+m6vDumy0!I}NsDV^lQ8rac8g+eZTgA_kBmSVcBgioyX zhsn0+pK=zuMzV7>K|uizpVGyiv3Q|^iS$Ll*2u?yPIC*nS2j#qbjMYqEI>o2d3Jf+ zqVqopV9osX-g8f@Ui3M!%}OSbZtr8JTM-QM;N0|3srwx`c%)KwWpZ)mOwcaE zZPz1|y#%$z6~4OUm1kDguKmwb&&`6H1lhxNKkz8llRoyrA7(V)I$s{9?W!tq;wK*J z0(lNT1|Lfm&#&+awGbj2o`m3LR{pcWK!SRaKai{i^6;`$G5JTCwgl_I9dcR2=&wsp zN9H}{^V`V1(i)WOA&P&I!IdT4VF01};qId|ZY`F(9Xh*4XWS=K)P}Y+j6~lF-Wy|F z@`YPccA!wD{ioPIqd>N|bf-oogyK-#Kpt-)P%tPBc_6yma`f)wec+Kn9a#0ratW4f zqzK9_+&s4{6OS4ub+yE=hCSe$SwG9FJ{sK^^0#~#pAk|=|Lr^HNKn{v4EB$cuT{Z= zR5y1PTg`m<71iKgzNd~(-dz;KGco=H+iNXK{}&fwrk1g3p<6S&Bm1|KU6Tae#zXWQ zqSjw7&N&+E5+V@6(p?a3In~jt((l~IhTauPldYI!*{^Sq69v8C4N=yO*R701?{jTP z$UpsL^cRS0!}vm5y{G8Gj%emL(WoDwN7&n7`OE4`I=x~m9DA>hwO^1mAGPEK!uFCr z^P;H>z6C&{HTT`a*F~?sJVTTRI1c3-W3Nf#FAJbh{RPuhwkBQ!eDj(iAK;e;+a7Xp z1>#=B^|X+-K_Iir3IprHiSbmx+b+TQb*T@ClLe~LLuwR#eG9>wcWhCzeXcCE> z5Pw~o(|Uxl9_jWTEldu0!4@L|96M1Ta6{mnIGZcGTshsROF7txqn`4MfkWRhi1f@y}Ot$ z0nhieguSo%Zyzs4B*72P*djxvwFZ+)Bu?1bm7dr%-$6_*IQT7~^DGeP#SWYW-MfM# z`){msR3(BiMVq`oWj6W1Qla8Vo(zNGf;7n+2_s;eq~tx7-93HH{1##o{&=bV54iZb zL09M9jbg${fMMBPAh6`ur4=COtVlD}0a(c&c1wXKf;qr}Z{M6=K*e43g1ywHUt~gm zT>=Eo)R(Sh7rl08z^}Ci!ln(6t4@I<(VqON2$19oeDp~_e!u$)y!v%%2e^mzr|p5- z8;Ki7f8zrFf41HOs_AX(9(CMf$8tc5G`Z3{hb|)Uq)L}w14nubNPwV0;2lsALNTF4 z3`M}uTS5RK6agur3IQQ>rAR_3a;Smee|zrzf8&jBykR5=W5DpY_g;Igx#pTv@TFot zDvj|P14{aDv3nk;vT5M@xc&9@cHa}PdrJ8)ZB8=!4TQw5i;tWn3H2470DI^p9q^7a zJrd5}G0<5~iY5QP^C}kDMBiRc%lPHM^Pks??I)rSUJpb{J$z5M%S1~%lu2u967NE; zS?olHRB)3BO?x~mj~7z=Mvf#L{Hy~n&e^N`H-t>2QzAvuzeZV5xdOYrlXCBLgqy~r zfN9{tYmhPgsG{9PIXVAbEx@Z0@hi$rW0l3-h!3-dw-#Gwl$=*qliZCZV;y22g}OH4 zThAxY^ez(_*;aCkfRtY}Oz*KsVhY<20C&lk4mQ9fhLvAd zo%zo{^G|kwG0L9%sZUHrkex5R+SsH5uvkKdm)|=0+;NSX?xC2t<f|R4nv&E#nEi5uHegx%5PAG3I(lbIqeh?;Es=eu?qay;=iJ6~jrq`A8UiFb&X4 zo=6=^k*7ON_WzCd0DhlRkw!GEY-7Oi*mexc-laB|%Jk^U%x2pCJX6V%GKz}5ur>n7 z$3jKztnrxFz+~ErY4h{UoDogu1g~R;o@bT`6)UhNz<-CUJl`Dq|Te&7Wto zfT15SA|LqA_Fqk7VSl4J>+A=CfB^?@(dE6TLz$qw0dLv608cAXpke9U$heop7M^)ugxAi7~A(t_Wh|ifaT3l;wG%~X&ni1sohT}vK;iG{LgYkB>3Fe z^UgZ!&HMFzX|3-)2hNL^?OI5E)}N0Hd&Orc0_t$R=P|^rC(&wQ%6Ct9gd{{`RPFrl zDA@*(UHHPb7s>tgzcwK=h{(@BZAaoM1iLV=u@rULHr--l`{_QEQPk*38(&!)1O(O7 ze+_rFA=rf-b$4{5lrab5s>0s_mK{mlW2@mGp1*kH|LAg;4@|B@ROYd#%i5>io(5+x z=cSjO6IZW9$|j87cs=vY<%^K5*3hbni9O^J%k-+1Ursu{g&;X$72R#piH2=Q8_5(Z zT>bq8Wadwtd4+J!`~%zarJ&n}R||&iz1DW0c_ALrPkCYH`7&FdA)EJ^eWpbQgM_tJd@5%VpuAC^ zBaA9Mxz(lTu6Ap)^(|}EzZ|OThf;BI)l{NMWuC%w)p|n)8TIo_&zr4@)H%0C^ftm@ z;;+hL@{zYbUfi~Eul-oMvK++!IzLO`r{%s61=S7=yn(1Tfni~dex8v9XMyK*7knhy zVOW^~qw_hl`OC}FojHx7lN}AkEdN+)y`?vFJUv!?j#s68;B;i%!DQ^$sjxf*g^sG| zBs``pmgN&u+J4}~EctmxM#t9uIGF`@%4?RL4ofe1MtXB1_w#|mGpzk!&byto@zbJI z+4l2PX66b}+io#atLkBV_m10T2vsZZYHwM?=kyZJO1qiz5OV$DH+yyGK(L3^F2DEA zTP~2;)8t(L63#(H5gCN2(Wurp6w&6wrQp5{`zH#g#uGIck34WDiV&2SZ-iE8*VPJt zlW2BJ-{JyuCzk|N7Up=7wV{)q`Rp;6tlq9!c2V`^`b_-r*lXpVG@C{kpHXk-b_|0zTvG@@ zdto!_no@^ebcS|Hzh-K;qNShxt(^z;8fs*%RpW4py)pd>G~MEl1+R>pmD!YxU~6mP zW^K-aEU>rEx0{>a=u`)zPr@3gCxlK@ z=zwWTm+Dz_S-m40G9t)k*uze{RZeMYJ=c-`di9GxOOhn6d|;(qvQg|CU(lD}G5u#p zF0`2Kvj#7%j}$B7BAN>Sv#34>C0ZxLK@IHZfcz+|C3;2~TAH#1&;k|pbNHZz;%4+Z z38)~2R?LO)6!07>T-Y{=(z7xgRoIZ}aMMq({jMq`JWXqAu#3Rm9Jp9PfHZzCYn%)Y zq$Jh_WgK`Ak}S*Bydk#9P#rPBVrkWP@7pD(WFQ^E1NDjb@3=gLdz;Ahn}$9_nK(7!UqyzFZ4Ta)MpWX>hdw^D|JN;X*>!nEKc;Zn7HtELD6 zKj-BFOA(U;nbaCEs+P8=+Q4-cEg9|v#Ztpwm)uG0I8$Fmd#!ZAf-e!um5YqCWE8PTkB<9 zGU7nid8x*p^}4Wj|yndCr4ljNKg zbu+4Kk;kfHEX5EOKg6svBcG{bTYlu%$1=>6u&;WD-ZbHO9Br@7YCvyB3%-@x^Xnj8 z;-3)xc}DwF?t|_~&zIzL6oGrm;7)rc)S5u6V*3wWKvtT^H}|_lg*Kpdams_YrrugF5q~naku9 z#p*l!e6j=8=Yr1~e$$=2XKAm+Cs$c8bgQ(CAL357sN@XV)O&hQn8UyLm8AH6pRO<~ z$c4)$A~~ae-2$(Oyb)57+BmZ#1xX6zYM&EFny9^#XpV4Gww=ii1i>ZOGHDG6-QB!~ ztbTq~gZpGxJDDx{lV_bw?{d(CFD|fg*o-!u;ihHo7>;kscYSR^MTE)-UI~mF^`_T} z(M2X37e9VU_DXMlDoyb>p5rX9Q1_7-rM1ckk5UTO^2*{7a{QTZ|EMSThxwtQyZV6} zsh7UpRVDUJd$C%Qx5L%HatsuBIjvRtn$a0B*W{;` zw}n@sqr^w06JZ0tHVZ;$jp&s?jKQ@AzVEJMgi^mT=4E3}^U23gP6U#>?$XdZLZ5?} zT>R0z+_NoflQ5jWvq;hTl?hsK;S+;qygW{A$Lj4+62E~Ot-|zy44S)Il`U z)0Ap0f8*F9X!%%*l+JEUNxc&}SYo*tQ>C^LB~)S%)-Xa5<2L|?@pidyai^9OUuDE% z$;_OeXR1fl+FAXt-nZ{b*X>Tl+Q4)kBslx$VWJjv^s)U40`qtnC=)d7h8G zCGQ4_UcKk9bJ4x><+wM|W0JfEvGVOF5$&Q=vtX(Wx$*Iw%; zLuq9fAN@PZQ{2q2++=9F(;%@rd0I+FBCh73Maa4^QlPNXMA?!1HVhR)O77Hmk3`^e%X_$T8B5PVpXgAi%-=fZuE4s-BA`CWE zzYbI=9&ISLV#}e_#r)J;hKT&F_=9b3I%o!K00jQ89wLP? z91LnL?hoMpsZ`nG*fyQ||$8gTJTRfJg*;aPzeJB@E{NZBfs^6cyQCgk0{NxUHxa zL?lNmbj8;-jSy;llA{jTsrw@hxlr0=)cSz^#`eO`4&$ycHq?f=HBpmobN>7@h1>= z=F?v_SdOizCo8XS>`6qegWck+?Mh)|xV#wZ*o zTDb_>^lS~xz!0(+Hfk@MHS2;xE@90al)NLSrV$m`Ap7g%B2zPEdq^3|DRGnyr|#)n zicyjrd5|1tv$f>qwyxU|!hJ;HU8R&?q&w@dA zHQl^Xx%uzv*ZzqrCQ4Q&TkZ9JgkysND||puOZL+@V|gOMo|oEv8~?>YX~)M+%vvF% zzVxPtccdzu+xASv_%V?FVR$OHQM4?wSf^B2UHAoVG+d>Zp_wKiFWU|iR^VVN7Ap(z z_cbeTEJD{k`ub*;@Fax}!!KwxZ}}`WlZ+hEiEL){6@#Kj71#VlJW}NPVR(xd=Bxvm zeL;UW4*w_85{b%w@#e;hGd#xpc1DAn_E?h7r~p5t66aCx_jmsilJ2GN_yH=sYZdUS zoz{)j;)c=8DYm}e@|~IM9bu7t@J-1*ZtR$mUPk{{g2xVIE_`g_Vb-KDvlX%z>R%M2 zSySC)^d8Z?Wq_?~X!(A7=)GDJ$MY7U9}U^}!#@mcC>pxuJ%2tU66#{%1=H^sUj@OX z^|#l%65GSRJMJF7r2|GzpR4#@!{;KUVrrPNlynP!$GmQ0|9WQ2f3^=3tLx_2pfKv} z7%aYLY<%DgQp%$J?L!S-mZ4M3^Y3XfQZDN9hI(OBTo{b=!eqajT-eB&A)tTH2%( zNsY=Ju!o^_Y%zPo_G)iy@?h$d%0VUaQ@86LMFJSw+F*gW4rNaZOyVr!qH-H-5cu)3QLJ0>l&@4W#=2a0SiX>{oG8nLYQ zbCR~UD>CN0Y4$dDT;fLy`+!zYm9h_~O(X>#J3|4x$Rf1$@3eqXPi9rYbaxqH$5)ML zr*#zTl#EdvKcR1V!6(Fyen$m!&o|O=&D>@t?cWm{+}}+DvnseOgV<=jAVwI3U?}%4 zZp_ARO>JtX70OWz#z|w-F#Hx|?ej@mA47e%3D#xiqdMHc8`_}Mh5Xp8sGZ!@f~28v zaecMB&6InArt7Fn!d-K4{-+cHZdup%e?>=x>?or7;BrMb4=M*;@sDWH!D2FbiF6*8 z4hs`huLjGOsIy3MBsnc7&^7s@AxT&{UzH}W-WtVlqyYf-U#d+5X4jD{;#KU<)XcZlNv3bjJ6Es>~tN%cbKPqLriQ z8COdq7XPtx_s-p@dw$*fYijBZlp`JJ^?1|?=eK2Sorpw2ROagZGQUjhak7~GopzWs zTZEIS&JnkeTMzU|&is;a4%adxXxGNLn7p;KBGi9YWbDnj%R{x7KmHYajOxJK5lRo- zm#OQ9yQ=^J65AoDjyDNEKsYAnzE64ETvy+3?O?1V^eHLQs_*N|S3T<6Ay5mcuc6;v zqux-oC+N|JwKCjBGD-W9^d1=!mtgAUFU{X}sq}5%v|ku+A8~{$>%p)pyu93a^NvkC z(j|jJN{4USzVI9I$;d<;qaIqdF3xQ(c>3Xpb}#OtnR{w!G^^&vjSjb)vD!nNvt{-b zcgGrJxBS&~!`jWh*4&zSH$bi%#|N0TWalb-m|QN(y64yPV`?aMT9s1fo!1;o^(4<> z`esi2pWRYnr1mwE)5sp=yw*eRHZ~dIDQCxq+<}T#1>7zJKGqW)c@HxJz16T}e2wY) zR5v45WHbecpB|k1u+fnMQ`!CSrsbl+2iR>t77+zoHRX18F^v>LX>;CY*Vi|Sb}u+P zUN8$~`%qPsoGwtP!a~-KY78*=oUg2m*-3UN*bPGAMciVEQ$(WLRK*~T1w-HWw#1srkTYx(+I+^GFu)XsO%a>s~ z=;JdKXwFM$W%XNuub@#zYLl&2)u}Ofw1O5;!-<0*&H99+viZ%ZhrCL>%Pt*L0w442Zh zvo90x&na1bV)Cm3&+ssZlvnpPOvno2-Gm<70@3fF>*-{B>h?to8Fc{H&Kt%$dB5J# zunXO{-S3lFHc7T-d}viev|JibVYFVS94Dn$^$yQzpCWz3rnJaD=lz5Necpl$+9hR8E)!J_YpUn24R z9T%+uZZZ;}Q++2_vz5D{nzY%EdreaePosr6Mw=#&reJG3Q;t%MF?7tgx+FaC+q}mO zT|nrei0#@>T+|Pex)mfIs0^%jsYTtnZp{KkZjjbfoDE&0o~Ypgq8 zkHnABb|MN_lG{y7G>l`7bvfXf)BM!aIEW%F!aH&t+s&%jn`{sBf45};b=iU1%JI$q z(6O8zTL|Dd0f9Rp;>OQ22(c-%G<42gGH01DJ@yFPg<7jAje)5v+7Hqz)HNEGPmZ&f z+S}XRWU37=TbXvm!>(fY#3a5`8zy*;wC1J=x#~oGux8YySNKQnvfYz<5ty%Li5zze{9X}ctv8Lsy(V=_;tCnY@LOpvV5KW}cc?uBEVxNQyGaAR+@JZ3&jroO5FCw5o3-T5i3MvG7Da{(B3!;`Fu7*7%;= zzB3vl8)BD!lC2UA9CN+rRXgAMtN|fXzUCwHjXzJ7m(%5iT*dD1 zadRradSJ_&du^@6?N};k$FQ;$x*tW{h?L(JttxE1Us4_^uk^sL1GXerwB%`ceyX>~ z@EmR+n<89`zMGbkHdWixYmbE-UmF|t9B(9`cty0wg>0<@3yk;w&E$YwE-kxN8esCh z5Rt%OA4HMN1rikf^h|FLd*)VGzp@x961xQWhjEj9U$c+`6&moS0DoRND<$h0&`Jvc zv#?MTzoI&WM-cY74yi^|-`}`;0_BSl?ljG6dvkbo*V0ZPLDM6Z%6W3xiSr#rAb=cW zIoE5Z3>0=@sa}ZCKYUpk6)~u*6}}E=*DnHI3#=br9e#D0c^RkI{GVk_F<@`JKgqdz zy=6%6#=I~iIcAMCY#G2BVL$X9&pL0CGJORn#V6ye8S=}*$Z-Cfy^Mm#I?e4f(RYKR z=ijJ*Z_c;$jUhTLKddo-cI$sF%{(((TbYikM<%v?k^8z^xg#cZ{NHV z@Y6=$>`?+%DSWqbduMmFo&_Q=tKzeqVw`42t`1;6Hj5DCQct)wTkp|gefiwYe!y$d zwXdq|DPkKy^670#%%*Tq`GYMiSFU5us9-jDZ1Cif+A+oH>bG3l+Er(zz#KVJ1*YfEYeTZCF&-UDI)b&c09HO>!Jt^ zF^^nCmBH@lr8eB176RKl5{Iaodin3K!03%G&y4mt#tcKfgzHE3}jV<=h~i{Q+-!@W?)*N3>A#OI?fe@h*i6pRX7`WbK%bB z!0hq^IjBeICKW>B6VU~|ZO|?~1Sa2LtTRsg>@hnaShef266HT(JWTNld@inv(vzDI z_oOW|r&}tf%kB)sayukS5ar1?v+$u(zLFgLa@{{G_2zP~eBr3bw)&JGaA1SIkeM>I z?R)j$fdLV?NJth+MW{C`f@ICfA9_RgcT{AxN<)LZuc6apC9AiQAL$I5L^$LaKFYh_ za-|2OC6beNqW`w(67&z_h}VEn>qyYJ=1ED?FkK`!iB5X(+YdGWJX0hU5hdYfJRWN07mmY@PfaB7v1mcoc zV5;zGLc4Aevf|pS8q2nGM9qWEm`(9(B{-3LLOW_}6%diN4U6+vlx$@TDC5q6XUp5{l?&67+&J=pat71qH(H;T|V z!)M%9w4<0DVgyD5G~4aerw9)^{O(~Q_alMx!+6{1b)Yxh%Tqk!JbSC~NC_s-Uz{?X z^7wB7q}lOPx1o0flfH7qOhgvL@DB%vOI+ULJ$CBH@*5;?Rl9*P9VS-wlB zjYqBpCvUpR5%&JB+OsSO5}w+0#Cy4j?L=zsD}Z2!&%5?L+C|=VW1|=@OAJLxr8RL9 z^zCo>97Ti{bmZyRc;35&v{zHp%#wBV?v>(cV3UtCHRYa=!FC@yo^WiN?~5OE33-HY zi%*b6gCCP+-2a7enL&srOktX60&A>t?dm!6Cmzh&;(UY8%NnnS-&SOi|nl3}S=Iu;yJ9idK7fq&R zmZ)JWegs6;|g@y%oN$89R^c(^Q@9l$#@s|^XEr~1#>Xu~1`#T#bBt2Qs z(!^CQxq|FVZf!I!I?p?(g$c0rVe!53&o`_9aO_wawubE6fd)2p0tvFIa2H=ZSiR37 zwy*RmZmg*v%FVBy-)%p=&gx;)pO0!A$XMc#7EK_Wn*Q_CBUUJj`)Zx^CXjDybudhgv8cyvmCmC`B$qHFpixwSqUQl4HVmBJX9B z*4$-^F^3AD87^#=$4imzo_B;i4taE^Ge=Ik-sA5ZL(1v4)8d@v`6m>2)IQ((#>@kv`@6}y^ihpb zXbS&~e!0$u(Kt&tkkHXTptB#`slng$l)d|lNyNWXdPoI5m;Cdt72*f`RWbK$q&~Z3 zOkh&9?pt@=#wu9{e=1kPImuMAs7fnMij# z@RjNxFk`~3Erv7;G3)t7roMTBHmM5Zc|-P(-_}`lwVy2$az4;F3&!X;i_}Q7Op^SM zzDH?mMB{KVE{q360T$+AOx_pB&APDMetIL)6PC0ycV!}M*tCt55&8fEYwr?r z%y;t+Fgx*Dan%q&zuo8>LrN-HwW{y4oySqYdKOrgw-s6$M`qoBE}G0fIG8+{nAvL`yu+)GtEI z;Xfn!{}aPWY#&=L>T@aq4 zSe=Bvn;AJ!kUa|MCa8AFBFVI;H#LT)htn@KwLcXP$o*lcw7M3Q zHE52C^~Z-e;lg}FTWf=$yN2Yi{36>y`SD&S{32>kfdSR!;8BgMLwR*S&(Mch1o#%9 zKpe@{+92tSV8##kxI;mmaZl^1kg|UkctaC<$N7jXn6MjR{HWeb9bkNaJjyv3bK#~6 zOmo0d7OgiocI}qLB0VDr)01Uyx`}o;4XN&;jNOv${slL4i9oaq*ZWH6DIO_K_Fh0ft%*%nF@d!yy_Moy(ld6 zq3Y$`bWT%YM&pIbvn=%CdFf?;%8I=kAS@C%_Z?yiGpb)t4b3!!nEyQU6+5Ggi9gQ< zt3DlC#-!7L<}u}0kd*|L;{Oe@6$#>3r_eXAc{nfiI=^TNmcj;W!v3tqnp0PnW&zf0hep3w-N*!VkZPuAeFjz;OjxeIza ze=TggHccUBrpP2!?U95DBVomTKagoH(!tZ-L8#XJHS^-}ZLJ`LgpvTwIxQ=$fN6IZ zB9FdXhk7Fq$>j~?@nQE{PkC%&yqW&I2^A)O-HN@+%2U)|wg3oAyKeW2yUUVfed8}w zA|#Z*&cBtd49iKNOvy;h%g#@W9HC;1&K=5`$QVeAJ7vL4U5G76ZoMCkGJ+p3QYT&jjoEg1Dtbvz8sh1!|1Lmq?T$1Z{c3S{q? z6~dvyIO&83&QO2x`E*>g63HzT#!J`!4r7J4cYuc2SHXIM94`3>%RG0WS@uxN3sxkw z^!QP(h422Qv~u2%P(?-2H2qcGGPf5x*H*q;qot9Y1A9tyWwpexiCh_O@RHVb2m3cUvnZ4i zWxK*fmhDc_^vhLC4a2zUp>hW6Z?o?>EzWn+ex7+*I_jQ&p5dZiuFlvp9;(j0^8fc# zTP;p6L_bY4_aF3}?%)4oh+cM?U%5RlZ*Reaze3pK#@E{Cau12RzqjP4@5C4^yXniY zHz1JA_dwu%aW9=ACAK*9dd64~HPaO2?=cs?sh-!pJF;Z=9Qla*NF4#_!L&I{&U|30j0$W4w zuDP=n_`gRQh`L;C(9Cj2Q#V}{N{1O+xP?U$frgs^Azthk0x7=W)g^Q~LaI(GQ z8BYh5yOYCy(`C6KDtEy>>grQn98oiJ^1|kyFp+<@y;*y-%M0aZKDo}_o<=Q>;U%VB z;63*erZy0`fIQ9i8JZ#@i)V(jJanT!EkE~6I9C(egx_-X=P4^GMRx0aoF88#T{Zb; zcrxl&aaD#E89IG(Q_FMo=NTjA#raHd4gvKMCS<|G=+$Z>Ew+8hkLLpm5}~EROMxXf zB+4FXx6|cw++{Td27aN?DqYGQK3Z5m7dZz+gd$3}o_;Vu@feeK_LifwJqg(RcDxRvJ=gsDg4a%Oo>JPoy+p%`lV5YReeH3D`q4~N@ z3bH~N1GrB#nvd_}Cc*orv%9SU$#pJeQg;IrIX0oP$4=6V+78*U!44ao)wsvwpHteC zrJE^}mF~Q_2LuWQM&e<)#~4Id4zA2_-gLu3f!N?_X`X9QQX(QTUUBm&T%1+fD7B<7{_hv5)2jbgG@CQ{jo7Cc|>6{9b%J z8o_lKi@;myod4eZw7gL@mohB_K=iI?0G%QiiM*{=$2txHHi7K2^{h|YmL@s^Zs|Iq z)&Jx%Pr^!+l-_5((MYrWC&CkXpEiVTW+64uCrG&3ANjKjHTSD?&rS6%*A`YE=OosB z$a@m}gVIC|*SsyCYpMVU_TE{DHy@aF>fSp8dkU%D+o^r{6l;e~7p>u?rwG^fbNL@| z<0aleQ|y6>Ih+w}-up3+0mbfVsd%0QUs0AFnVB`)R-H`hh3!6^dteah=c2wg8rQR< zXR)?muqk)k78lxVxTWuGf0v)2i-)bUUAp9Rbh}}U342DqQDE0y37?Q|MwHs_^C)yb z&&h{tXx=6-J9-x;^Zubgi@v}+7miqL^%%GCt=>h-P1Gp%A^amh%$a}N!%mL*+LX}- zjOt?wOtjL?T&~luU7~)NT1dxWV1Fl_WC1ZpuP%+Z-!Qb}a8C)EEgXH@Ica81rc9>4 ztE9mooZNa-pqTDW*Tft7LR&a0?7HvCpOX@sC73pz^81$@X{kitH9zoPUdZ=_rA-8u z4OH#FQ6L9|x~D3b=YN>|rzmWB*0)ds#FeYS0{laAMB4ZkFT0V9tSJU#e@OMQlqRMCl?1Z!WUn79Nf@Nzwy5996#PLXzk8)cV%|VXt)@El44MXSX`Cy z*RPrW6HM$RWK^)xhxz&Ref1D^v)<=<@CG*}_Zb#@#Usxt((@_yi{G3vUhI)0X>9mg zg~{m^T0F=~eTz<$TWxK8cI&@uSeE&n8W=0*S-P9&n$?Y=!VpE%qP5M}wyA}nbj47MbX@+$RGhv_cM<#Yw{j$qr5IYv zP3`r9%YE)9WgW>)mIV=p8IkQCM}Uw0uO|i*ug3tS`OS34rRG4YL#J%K?h}OgYh}LtS{aR0sZ(sDO?keIzj4fE_wrM$ zV7sqz|0G<@(*JQ}mxj(LUsdAA^lD7HH!qLQ4?8agwB;!EiL7ZmC(hOB_VPX z0f4-SmQynVgJ2}BxX+jyfvqFVPFGDJ2takd9!KwMVE1?8KH~N0XAOAgQs*!OYv58Y z0fJKmjt-CRd~l!i>Bg}6@7VwcjV`Ls=fE}?FHIaA|KJ>|n5k+SXLQ)YLt8S**gZyZI#X*g!?CVqJE z4F%@sQXw2z*79a19luNWZL&zV!Fa9@Me7_3Itv-rxb==!eq(CCXm}qs^+6<<&xK$Kxy@o!f6{BN_)Q_0cMY7t5!CV|JF96#um-g)41RRe>JF~E0^kw&FbTXd zQd0WURP9&jI)3U3H)Mss1_IKZoaIBOW_6NvN%DoBn{q?)dFRwyN1uRl<6^rWL4(iW z{TQDE#8mUZn{b>ppjpS`y>rYzymESeyP2oglOXqE9E7t4iFESv=I~ZQWX!bBTyh@U zqX_Vgxn2bl8a!T%*27P~5ze^n-P%tq%NgL-fh3HjiC(!bB<%gf}tz$~=#aL3i z7CXlG-0@n-pb}^KnaTuud$G-oD+uHWscE1St91WV-b}<4IoTJX7`DK=OzAy68)x^u$+|w_OWS5?c1i-bnz?Mvb844PU_!~1@%$h*O1Hr zjp$yL94xp-bo=ahCgS>qCjIv{M)%Y{E&OF5Cs!yt_}D2ir*bb%e}y8TpAA?dluV`#N>C^oFfYtofM@sIvQ(WuM zGt9jOrkPDrpwzB{g|^}QlgDl?7J;$fc(l`KP3uad##c#gH+yufslHM#VQ(l0iod4y zy5cFmn?e^#!-_DbYiN>}7lXKJ7`{s#hQ(GXfx2&r=%U_$5sCEieg}B_S#$D*Fjjl$ zQ1JeaSbu8YoFm<3ndq_^rY_%hZXCJ*Jh51at4sJu?@>V%C?o*M;a43&MG}s@PuWhu z;W@UVa`(a(WE(9?SXr{wgRad@F|B7$*%le_$Jzh->hvf=NB z7GPZMdp-U z_q+I{O-8g3o zP|FbUYQ?!BDPsbqVOu8`pUX=@<$RZ5QpB|?t2OVZ44VKM?2VcI`oil585AF`s zx9YY3gjo($DD#HHG?Wq07Ln6rWI?1SL6h4aV(QuCeWVyUzB#ahIRr8Aw-7-#5*!>2 z&d1G(&j<^5BQZE`xAnf@FY!{(ujDdT{{R>Kvg>N@aK*#8&6v~$F~gvl z`R9#o7B+8coa30*b9jhHz5X029Vfn--;sW97oRRI9I6{waQ5%d$zD~Tan}LK@%MF> z$n<)M#B)R28Y%Bvg>qIpJ=tSh`sJdqYI%Fa*79zujleV9`lr)ZS;d&8U&$K55=z*S zOWy@1QR@7+hb!MR8|MGJY!__C5r$EQj7*BuXw>dR%@pRZ>K384KN5p9gW%JFlyu_Q zZQ^Opavidu$K0`QGApPhe`+gIah$++v-i}O4t?z=I8}FOFR+e6&v}b(1@YtOAZK?w z`eFZsx|silx&ffsOBcb|rj^&;g|#$eG)8kZc;GI$@f!R)ZUK_Z8p&CHL~8}E z{f&If5_=cyhb%9Ey^+@36gpZZ4sY1&wr#@Ok1)1Kw8BbARIM=4{hw!|9r3HS7zt=WYb-2ZeZEpb$+Cw-M8JzNNcWyjvhEo!}}fCqelbMo7Y4K{7H5FZWbZvnrZ55n{)m`CT07uE(GpxN6K$9L7vAiJUmcAcgc*9ZI@73 zHeGIXD_j@h`Gx5YtRcVSV{%m+cx^9agtJI1A1pvbtV$b0`b*G&NO%FKI^Shw z^F&?kmFn_*iAn5l1ES^y#-!^C%Ilc}_i?ilOAnWyXLc=!wN+;ks92Px zSMg*ZM?S6Aw8GnD!uEZwo=?(qQ~mF9hJdOU1r4cg`s2?J)sDoB;1B~Xw-Ey%hi7B2 zK9f%0=~-8$a+ijEGU;C30hijzwNHFHj?}J`nUODJuyaDi25y5azLbOU+L(lfFHFwHMxbiZ z_wx*K%HQWfJ=euHqvuIzmbTK{hCf8-*<4%3c82=dlYShSrLWmW+r4Z?Z<}@~oNeLQ zw(QV33rGQ`zSM@<^@R)E#~?|Pv3~0CThQtekvU+ zZhLB0c9N~L3~(lK+Z|gVJZF1yz4g_>1KhkMbz$ECD`-hC;m$ zBH?bBi1;-y0>s#5&DKPU$E;igTFd`1Js;pN>H^`HmulK?V^j$B?NdN4BC>WX>e@l= z!lPtQL7;&9QbqInbgP6%ufpLh5AwEzPjjjc1=UThh@z_hzOp&r#Y}`t-Tj@JO6J5{ z_x?NUj*zIodq+$0s9uvre`iK(Q_a{QF7%~8uuzRlV zx++Pr^^Vcer4>^#li-b6oEv|g z@kxf-tERCP%wkoYd1v9Fx3NrRrpUx~DhzIL^!;;11N33a&3Vqh#iauyVuLS8ZNa~F z#J^tgl}gbG6G}%t3q`p<&}eyOx_g{rZ$ zNm-SApIS#*o8K{UDdzh=09W_^ya!`#?5L@`%x*xa7=#`T9Z1EspsTcI6U(+f zHkYIa2)0gT*OtY42_&)uo)p%XCy#V3d@z@`-R=Qz-POkdgozraMCtJ0e3&JU=hK>q zMXA8z@b9cO21dmw6D@pX@ye}>XD2zNHS0x7T9t-};<8VWL8p*%#4F<#dM%?W(o8z2 zaFzyCDliKYEhPxh0;FkYM*91KIS@pdHYa8R|JbzEpMbsVhjs7uqz2)l*r=&){~=&e z6upS&b9wgV=sHDzMNhvH9qUrO|5IVkqx#}rE#vv)AyKG2{5pdkQfzAwQw?&S{Z zZWsW|=;1hdTFudB9=NZY7%pa)%x z5m|k)qkn8+Eu$iA3Z}-KZ@>R)x~wF{o|X5e{nMrdJLUAm@VC*9g(2x{&XMBlH-d6-cgjRo z0P+TSy5;UP1~50O)ROjlxx=5*W8z*FeJshK@G!eq16b~A0LNuuM9igBdT|BJD$>A$ zJK68s7<5~BzCte4VZ}aAeMZ^t)d~BF1uu&vvl#z7z?#dFb?ju3W#h`6_=R?H`mx{Z zuY)@7T^zot6%{dO@UMwYAAq?kWit5TwL9k6#hiU&li7nNNwL*rsIt1tb|}4zKIH}?eEu+vB0@`e$0~g*%URC)W zi*M7)oXE3e$`c)c7+@IthI&D>ngxO!#RyT@_Wl+8^Y>pj=;{GZ@ftY+dawc9B4BZ0 znhU;uVwm&a(gZ6M@lDAPwIv zWr;793EhmVk}*Fcv3V2qo~O0$j+>N1QYp-#svvW4OG*JW{N{AE=$q2t>Y0pma}0KQ zjigC5N0!s2q;tQ#AVnBvO)P35sXuS=uXB#sOu4|+e-^?(I|%D#SX|%M^BG~I&j*tE zKXvvXl?vC+Qu_;E^>anPC#ER{fTv#e*NwN2Gs9eYo4q=;1U-btNiXFc^D26bNjz!g zT|4cEkZ^+jqT>FfO&?dwCG(%|SM4;93Yd|#On~bolVNx)vsQuJk)LCDV^1i!>QK)bgakSzonTUvP*_ym{ zUSq%7=_kJlDQ+c?r)RFP+hx%)M8|qZm7i5`=2oiDs7HXHMXQBAIUVDJ0VxS(C$epz8%7g)>rHb$r#w8zz3DWu;N^os~t z=)hHWCznx~&YB92Wh(TlFxI9pQ)>bkopBG>ht6ECGKCw)=26pB!+H1D*z98cLZ3>M z%KaQ%k`+g0spJ(F?4Sf2irg%Bia#Kf)3K%0T==*35Kbv5p0fz4JQ442Yck=$SxBYN z^OGp?Y6LRo2eX3=A^f&By0*Ct^GcuyZo|R&qbcn*(LO!B>UlPbVbH`ba5z&FSxb|g zXH=Fsk?fm7Xuq%Gl8X~WS1QJuUjeK+f1Ms!^RF9OIDE-rEreS~b#^pf8}TcK!FX6>ljg9$nj-|o!|kDDrv5i=E^pO10hSP#@;(k3rcJzr8ZNVuS%Am zM{^b|6$odeqVL*V%EPRJl|Svttv@i39Chsae&%q>ya90$V_6gmlB*mQ4a*QWsLxop ze>bW_B=_t;zg{x8%NUfop>3CM|svo<_=_>)jzjS zIn*Oo5>1dB>vQHh29N79?GLsh;!GwYVosBot_ID0B2aiiovHCzh1l7nA(n|W1Hib$ zvj$w`x7U}=q-8<}Cs2FUrfo9O6;`Onx^4B=eoU~-KzhOORNfhU)7EuT9sbn7u`R!F+Ps^W7pGvq=kHlHzEdX=c;?Ej&3Hc_Q+jJ@Oi+<0 zrPqovyPu77KA!&NP%&ZA)){@y_r#s3oR?Up*rfjUr!FvwEQn)fOh+0a%W#-8@3*yG zgBs&(X1q5U3$!ol+0(7(%N5&_qxP(74oN11Dz2}lp*1`|t|_=?3s`G~Tto8A%E|Zndn+W7H z4JTbe*)k574BDZRt=E(8A{xOmiKX00Hn9l94@Ct}XFb1`asXP5m|r(S{Q4Co`xSVP zBso}wUvzsJ-yKk47jAD7>FN~eJmO$Ew&TJXgJ6WGr1QV#u>IwaYHk@MrG)<7Htbn1nV z_tH@Xng5IzN_6KYd*8~~^`quJKMpwXcjn-R3F0~#;j!^rMo(47i$Dw9-r zK_ik!5j1CQtdS_1ym`jvZ2UO7<7+L$J(YE4(Y=UQ^%9wtlz8bpPUBYG$5z)6tM_r{ zf{K&dMoDtxUNNnZ0hVGjnYxIu8q!p#eAOf7T0t$7sV;0M(j-@1(<96-PqAv5w%T`fWoeP~<2E(-WGr-j#DwJ+lybuB#qu_;whB|h!;0?&_1xsz zRTUNQt_6^#7dHHOMnhlye^x}g%!Z%8y;1Ubf0-TS1ObbGJEvUtQ+a2FJw@vrSmD}+HM%T_>~adih>K-qn+x7ZY9kub1*50rU+ANcNNB7b$S)T1d` zTnD`&f6y^9t{HDY8eq7N<4}(YA5`{n6b1;EtJsougX7HIu(_j*JumoNI}V0bMQ@d~1SZch00fhxHNd0p*LzR|_F%p)Fal?upR|yO{W9-mK z_+xgsrcZB%n11IgHFF!5zM~xCj-n%a#R>^O!sFpibd?LstLf*~YXYUZf z6*)z5&I6-A%Kf^eCk*fl=rK7YxQ1Bz^l>h*lpD!rvS7Y{!)wVTN zdF6d?$-ha~8P4!(P>f2$s+UbY8_&;U>z;nR*}l9K99O5i zSk!$tmI~isisyK;G9U3Y@36CTy1-!CwC|_U4dre58({-sd&aRQbuk3o-J9nh0jTIV z)SU&i=>$Op`(ujEb>=tiRX-YiRwOZ?)w6;SGBXr;psL0kQ)7YK5P58%^SGA3n>((* zhy&>rj#{AuT7w4W!;i#mn+U=8h$BaNw8O_V+=?P?5M2#*eXU2 z%UsryPFs<-mUsD;&^n0`wR{G9c{MDgsWJygEF6MqP$E+c;Tm2jkjhF zA?e>u-b`7&#CDN!H1ewQ5?Z?HPy1yZVS%avpGJ9N|6OYphji7kW0J`#Vd^BEphx^dPS5 zr6K-~ax}$wHM3XUI|VryKe=KeX_|_e5lWsQ-C`M2s+!7W)rYg<4453V+69e5cmm_6 z-ZG&8R;Ow7y=T8Ch5vpA5MMZqu2@bm__;3#pjy}8aVHadV;53vHtTG*h$V*{8>7XF zvR(~Eh(_JCB4g=~m%s3dQ>$AO#TfWF8XSwN9eDAb$}^pER}_PtV_yAKH1xT_fzc&8 z_^D%KuGx;vS)Il6`lO`i>^z;+N#gYhyv;FZAo7sC>+ha?fh?$y^_4BZiodH=AQi!` z)QJckXEgLZ%Q^cH2+RxJnej9|H-9ptq-E+PnMJ&LC2b=QE<8~=!loZh;Tv>G9P2oW zyojZJ3Qes49Cr*Em?luOjkizLG`IWyOXueoPX3gq?!G}Zid<0kgWIcNOVb?ezb zjRL|DRoplnk5y3D!uy7s7a5{n#qZk`ioO?=%L=)NMOmYdOb3{9pz2ksfTOI%MzV9Q zd7dWxvI{SHMMm$RXA3>|%Yj}dxP4GT(yCw-jy`5pJY^jDuvj18k)ek8&a1C-^!GLh z!H+9u1Z*YMSlv}Bttp@ESafk&>ujuL*}WtlW>>`3l^$bNlFL1(X2#Kr1cMWq7p31b z&FlDeK##A3h^RbSwz)w4)Yk?O7D61zwqL1CByBb-4aDkgVmps2%Qv?8u&{OC9N!<# z#gR)PjK&J2%s_pZ#g-h%BZ6L;XCsyK@Ekl_xpigvS1ZsfW%R|kh@U1rXaLpm(OBj> zCKjcVz#+?=pngnKdv3eAqyv2a$BbvimDrg#vti#dXKtpDn3u4ORl)04MAV}$$T!FI zd2OzjR^GB2cqNu@!&+hd#gxl9d(|}6;E=aq+@e{Ql;#D!dRN8hF-hLL=G^tG9980c zt2E*OmuDyUKqmB5*_Ws^Gk$VB6eG!HS86?-rlDEj*j!MlXcXOGbZUq=)|msA@V8hN zMib3<68;5<*_fJR_f0p22z|~pXF@rj6D8{$$iyoHll9kjVtpWX{o%EnjYO$E#^_R< z)00=h_x{?XN>{X9Ihjfvna0-BA)AxO?n%@bCeX3_%;AW}ZZJPgmGr=f*W=v-(Ycx2 zPlY9HW5%FM4)M29Gvhm+tTQC~V<8&;aR;_b|LcUtP#w?4oT$q|TGA#7<6P?f3#WsW zkm=brp&ky0Q69aLdKid1;bU#}A>~d#PkMGetG^v)OB~X}KnlbPZpyemhT@2%s^P$B z#>e1duOP?t_hl=k_;%W@UmKaIYi6d`n}-*>@K2`c-)mHp0@O$_gkn{6`%!MrTpeJu zs17SQTD}U1d+(m zZEbTRi_gpgQcU0XU#eyz)Rpv?8#l;6@S7$F6>-Hqgx-a z&dLnn)xy9hH+rxL9E4AuMCQQpQ+h{1hJjIblI|(s=-)@FwWYql!`QoPpl=1`j|z<1 zDtps@MS%Qu0})BHw>Vw{FR6@Qn3f7Rs5y?!@J`D=Ir!;$ky??npRK07mm}iv%&=t5 zuVZ3a{U}O>@+x1P60p`q_E#9;%(6I7z;?n0uDZcp~NbvD1tQD9c-!H z-8{SP*7CHf)=loDp&wVF{6-)K{^;mq(Lu_PD_qDZbd);^=$!TDlfiIIdW~w`tW8lhafxj zf}SevAg}6-MEfmVZkXG>powgQuM@p>ULQ>q2&E{>Q3qm2^zTpqy#r|)-h@`Q6iFp)tdnyp~L&&mq9dEwAFDY?MEH4AMVW^tB6(s{PWdNNbiDAn>rCG|LLys8{tlNsSutfjlk$Zj&I{?)@BJ@q0k}R3+k_>)zug4k=&G553`K2#u{FZOtQCfE=`TE_ZyQF=e%qTN9#Fu z&ifP(UMfhPB1^K$IKm34js@+mxO#dT3Os6sDiM;mSH@3kY6p2@NNkIUGvvWqHX7q+ z;dd#sJ_a`N9Ur4;k6MY8Stv1u{q&dgtM)%Z1=aPg`KBa*@oI%w{oXo{*jiwb`oB8n zf8FKb`cAO;;YT?R2<2Yzt!}K3HMVW1{MP8zALhCWY0qWDcFS=>BQx8lg%M+drUj7> zm7)gb4xrla!3o0fIzq1RciZ*YOR>_<^=TTHYVSB%ukpIzk~h@T1H4LCb)A#I32r|tpJ~9j8vrHTaDx1}c&{{| z4`CM>%3DT$VZ9S?N){P7Sv$nc)iNFiw4M-3fj&-zQZn8lm*|Gru-9=4sw$0%!q9+t zOJJ$AjDTY2#@!J5ikv<3&W#2~0K>sUkrgW?qID{hwbj@~PCEd>?2l^d=+#cGu*mCJ z^}RY85VFZ@sRFpck1L(=S&elWZh~-V%*FnUOZ>SK7z)B7uvFpL-c&`Sw2awo@8C$Qka zSrV;XD+BNNDF+@iX?us{YRL{?HQ&Oa4qS>j_sq*IWf+{9o_Kvc(y2oo;tIBO@RuWC zUaywuJ!1kqJxLpo;gHGCVO9JDQ(-%7Q!=kUNxF;b7rFhPRY5q7eza2TUPTrIDZL&D%wZ9ir8O>-adn&PYWt@R5k0ppC}Z85{Y zQNueOeHl+4UJaWaViEDroVow-a zvF#-ruU#j9$XXVU8k91#1Q<5N#|di$_)*Z{P;?!tP>C$hmmbz<)VD;HYCG!`l7^}0 z?CrK(6qEHd;}ytJ99SH0Zf4!*8qcJm#68Cm%X{=XR>=f&u9E6lyHErdYaInw0#-^Z zskRiJr?#|WgF7esEmYjIBJu7{x_rDi+0L>zz}@1`TU!DPeA+Hozn}83hT+73ijg_s2CtF$ zk=u#7L(1CO*fMM8d#ABg(M5&PslpsCOJRJ5p z1z-p9C7|eYDzoVK^Sy8nGtZ#Q$U95N`X?l-O?3RksyPM+wL)WAKz7~Tv$!dSO(LYr zKzW3zZ?@oR4yZ1iN)B6Vms4X=jNSUY%;wH=X6H)+ID}SbV!=iVCT2u=_HgEiQb_u! zIftfmoc#{}KX&Z@5~dM5>vCwZ(N+B6n0n6$gYM>j z>=nC>=h@vA#XLqlUTcD}ZbDn5@Ftnney-}CU9|l{^)_`C-U&0jkHC66CeceYlb)Y7 zOg)sPaw^0L!3!kRJ?;5&lwTB8zzt!U-GWyzp%7G~bTjul0bU#E=OJ(E1v(ry=OzBz zbNt^!JjL|td%|n$;^z4s+;zP;xc@7>e_#BzJsdw=@3Aan*T)f_Qd}33Q@kfsl6Msz ztMTP5jXQypD|EJUF`8Vhl#Z=fY2uJ0D)VGa`j4vQA}$k&0r@?-r5^iAOOgUlA*i(J zN^C}UiehM@HJjLmNdt<_pp@MT5pAH&nWTJ-V^0C~A-u?EZJXM5)-X4MvcUDxnn`XB z&3#w%j342%z0`K1;ttu{RBAu(PuSiAfeUD;o&YO{~N@x(L=F$!KivLb~xeB#q zX3t_9nr@5F5LLkm35K+H)(KWj=YP(T0%6PS{MHZv~HCiMVdz??U0 zgXJBN>(S_OoOJ_>v#9-SnntQW!V0-dfuodkiqzh+GDLWaL|sQgPFxy&0(hMXOf({kvo&3 zq-yH1(oLJKSq7FN>hGpEJw0Mh+4`ucQna#_xX?-49l}peO_MMC z&Mbg*`>~Howx&;557WlBlL@Fs-;jL&w4*+0phFWCB1gU7^<=Y&-BtFTpE9*ze(J<< zPw8=pUgj#zlq-}`RsDy`X`MXl;O(u5v^t2{b9_#m6fMR5M9WJ`wOW2E8{~fZwK$dT zA|U#_Sn0Lx?Z$ZEpbG3gt-9Sk?Jne=APo-C&OTq7PBOltIuCFuhKVjtHvI%PP<$Qg z*NsT*#mdAR`K4Y>ahZNsBSiFcW7s-CI$6GbHWV{V7@n)RS!&rIlOoB?aAqO$LSJ0| zEO;Z7li$B1jqGOOC-k>AaiPDLxtc?HRMw~pc171jr79SUI=g4( z$>H#P61hx%ktiJyB6}>6-jP^Ky=9d{tzHiJW2lE0>hJO;T~LH)EzJ~;V@-UHq$0#9 z1S~sTbbM~+qo;V5U}O){Jz{k<>a!QVIzSw{;4F<1ae^~Z(iXw5GOVIrF@|0ZB(6mh z6K0=3&brLHu1lDRXk_{eEn@A~CnCQ0^5J1jk>sCDlP!ZJ69E&vZ99l9)5* zA4OQfnOb{#vXnaOFzoI~AzN%O)>XgElA;RCW|0kGIq&FPfpwq@d%)#w4_hc{A?Kuu3OD5MK!i%+J^!@8?l0yrC*lU~gDo>(u z5I8QXNm0iNkPmKb>=lzSHM~UeK}yXm^T@qUPxE@ov;X}E{6JnJgyk#+OE-nHMrH8WEZB( za&a3+g+78>2NW%Y40_1KU_w0U0r&;3$o*iL$@G-|gTfIEMLl-iBS+04d(@qMt1GMA zwEE}$dm9R4NaVMn^eyoT%}OW1h3&C_&orv}dH_%QAh9FROzE$G?`L6uRlWSL4-58T z^ZMWC@4nVP=Sz9Pe+v689Rct$mifqOD(ql>HKK?avgYb_(|M=t28^?b0yrI%hTGJqE z3%gvV#499+g;hSgh^d*AhF!nCxbV9=S!toCcBe$9#P@&QAc{(c&4V}gKgNnqKEF~* zJaN{kJZ#uKh(2V&u8?p<>RI10-o(zJlMb`$_;YD7qgE=rv%YR|zi#|zcFk;9pbaX} zFh-Xo3jgt4zh3zDPESfWi2K^ZoGy;QF$oqqz340$=XBG`oJWnFc2aQUw&hfTP-9Zl zGTJV(Bv1j(x7}zkb5X_4efHQdr}0ajz~Ji0K&joN=WNhkA`#>c8tx<1P>CruAYQcu zr(jPP?!?sK7SYrt5~hUj@e zE)ij&CZCpkW~V>Y8`$}4V1d+ioo*l?d67h4Kof2uwu=OCz!0&7ho{`1)! z3dMAO5`h>oz}uS=_cdK4)(T()i5;ShSn|JnA07j(C<4L-rw<-}o;2*hec6&Yxi9KC z*w%?V>oVBS$C|`Ax%HF)1@xKmKy2P9Vs=l*m#DDnVB6#nt+vRI@)GDz72PAA`J&pP z{p9&bsLm3t$wG;I9Xt00hLpbjpRK+kt#z!=7NW#EI*)+d&R(+B>=8mt!vwEfuH{`t zJaRTBs#ma^*RV@H8`l4vQtGoG!&38uJ9%j4>w}=Wf9bRa2xQC*moQ z^liWu3W*{rREu$(h{q=NV zKdPmb(xy#4_+n|RY5YyeD74>OxWg`D{{{M6S*$}7Nps~N`C5bojKp7o&nuI zFgtiUnVIuTQqt(~La$Arh{)!Q3l-8voM-&&2?KtG~%q8}Hs1M<~>GF;R(akgTYH>iGLE!hqS7Jx)Ya z*lO@5ixoIn5EW#Y@?&Qjg3Fi&DvaiQhn_J&G{MryF2Y&IM_EtFN)n?`*( zQ(XC6fUPu~(1-r*ebAoqATC0mjK$;&cFpvZ296j@Ep6&kb2#(iJj8qQb#o0z6)aem zw1S0BEwjibtirdZlCWD*kzR8(PJ(OUzF%+fPlF@LkVk*CAH#`g_<|!beMe`Lt4A*& zg&1P)-HHEx^qE3gmTwzPX>3G|_rV!0$0VMCvMguEYx7tTlZ$UGBKB$~kLzI@c-YEs z=u@^Fo>{@x%PakDT@SvTA@#ohO7NuNynI{nqS23TRc6ifL0-!Xp+dd@e(T?|2;wBV zESn3jD8zVP>{n&|gP`T)zEttM|FgX4e4~Bc06`y}*oK1y3}+B|ul7AP`{a!4j?;&F z_of~GJXAI)r5Q0e#2yqjY)fceJxf$v*l(6_ZVok1wXdtz(iFI+~Vz-0I^ zgD0Pzn=Obb9$h`e)3=*KbagQ!M44s!0-wU!MtKOkrMz?c@U2VwmHdaT7x@O%vnOPA z7T@Byu{wKp_#dpBPXaTDGzSZbx&y?xk=}oXv)A7a zUs~HYk5!vqJ=bk)imn6gQm{2&QWEXtw;bc%Cuz{#-icu5vsF@aw` z%}!G`iXEw{Az3}*0em%DJv$VyCF zG;2b(W62w>a0FFhCH?j!f&Bd%@^H?7#M=>vMn|*UXW3CIyBKtDg3DyvqN8CL59Cg@ zE6I0V#reS8`7KNEO@+r*F2=$W2Y3VDf=1c;QKwGICho>uDg>OsPI1wt$DwZVrDnQ_ z*h88JLqWO`FNJC?Hku)Et=Pij(m{17$#?ID!u&0aqpmmiD8hcyO?kHwL%8f;lzXqE zAx-b?>kjK;YV)MTCeB9+&$UFz6H7=QEkkk&h(-*EkB{TTJ*?-#qEb~{olB=PXzVfe z%!tV+BlZhurye@do8J$4$6LRCYRw?8QSFxZYM^b4fe-E&&ei^R3?E%TT z$wId^w!=^7Z=l_F5<5bHD5q3QEv2#(a_GSRyzC>I;AicIHitzs#8Xq0b@`99x3t!l zG;?wXA2bpXkM-Du8|U{RQ$#}r`dzxZ-j#Y(w>?_%;tR8}UWw2>HYE}mANe{=<^9z( zlBkBIRF@6v{nodTudCbiBGRq6&#QE29+mnmJ2J7pa5@;RNIQj&$^MX1MA^prp)5I? zh$N&vih_~3(N)gDP;1D`!R~gkQg2v|W8pJBd&zkHE5Yi?mC-thm#Z#W86e}Kk>#~X zWYqmKQhpV#p$CNwTVB~DTXWw*KZ_To1=L@?@|KA^~t2L$8o5 zYsrvIeA7WGcLcj5;>oG)xQdlBJ|~0MQF-R5=c0e}4Ut}R5T82)^X1{kNRAL15vB-j z+HL!bwA<6Vrm^8L;swb9m!Sp$n0`)Dn5l89C~cL{Z zioEqS6hP%|T9353X=w0m$T7MaYGqM1>Of4A8x4iY-siU8ruifj*Xm7anhI$qCcp(% z?_ci{-1?jQ2CKFV8mJuPIJv$si>*#}#p=hIJfVg{JY859Oa5Hz8`_SA#W=pa1GE8a zAeZ-k!KWgmaG%Ylu98_J5x>o=`QWwLw83k0AZO7Io?!HjyGU#h`o&H^VFZKeX7@vr z+WAYx7F$p??6lfs>sLZ@pQ{Gj$%_{Mj5ULBH?sKsC}jCw?es-)6DoS&;P;q^lx_6A zGqX*Fdi2}{q-jRZi_MWGu4Z-y_NazAjl{*YSvi5qxFnJp{LUiMI~#+h)$LYM3|Oi! zyx6#CBiA986B$r)byngkHZl$3mEaHei^7sr8NGwseis)SHgI8hy|J{LU0YthYLcSs zI)kgDHi&+^ZjzNaU@S7*;!Wn7*#9Ap)0pY!L0qYJfY+v;nVtUPmC33uDw0au@^k&9 zcLwE|o!%(ji~qCB0%^X`$JjI#irUGzAZiBVs4Ryqh&u)^nthcqRh@Opx9sJ72pINB z#lLJu(cUh8%JOv`t;#&O6rGsUktr4T)f5$n4;n9eVP_zQ>wi5oBlJHT3)q>zjnf5u zLuBoUZW}4~{rjRsIk?!&WW2+X9oGaosUBXdb>lk=acY84ZKZ7G#>9`iN`Xm2WP2=u zd58G+d{fky!pV(GUysEWbcBj0{Kg~1F4_ZFya*4nf+8*pxW|Fby*yKe^zkviD3c2H!*&~I0~PmS~)c{`nw5f+{`L$ z129>f?UADdW_oBqeyST@#C=Ecw!;<`P^ay8E;A>Mb#23?4!iL@hE)x_@7|o2I|mtW zV)AzWDeo#WWPhY=z-4(Nw5OL@@x+JI{n7RvJ;l=+QxWp2fhwLtw6HUqnAqNc7BQ)? zh4Z_^JmaWR8u6L-7)m=WKFhH!BAqI5bf?WQ#Cj^jfS zyO1RI-+qRuBt4drlpuc;>A#}hJ~hj@y>ZD#j1m*4p(KIVwn64?4jZ=#C2l-fJ0$=raTkxp3qJrb)tBeo)QE!HqRrDX3dU5Mf0ORbdwuxP+^!*oOQA0lMxJ6^*^wPqTYKnoZ5L35s`u% z7rsd|sS(ya;T5Ibeq!O10d3hEg&YxzX?7-V!Y6k>`+RPuSJ2F$hc#WOz0DZk5$9?q zM`2Qott|B)z3kLMKy?ZN$NzKZ*yaH30F>rQUm`<*l;cTTh+6KE6=Q#{{!kSlKFi)P z9KENx(nxlv_**migWe2(VyjY`6ymqvqT~fpZ#_^BjnFfVlQV6mB`Z%AR_eEWJrQ2d z^sBKiZVnpJi&!fzHFL+p{<_r*dgK(J9scPLddYgHCaGslN{xQd+q&UCb26tSO@Q!9 zK!~6CH|B_@$2y=_lZ`=nXgJJTB1+4@T zEtb!{*l&A_S*w()^c##@w8iXb?j^mZO zyOJzmp;Ex2KMCTrn-Pcy7SWOKmpq4+KEg%qpC{eUNi;kwhqf3Rks-F8rCIxaZm&GA zfz;)eC#cbX(B4sh>QfdYJix?h=G+Ez1sFAdJqRxwE4NdN;Z?CIdajbvTqoFouE~ZY zW`ELBO6k$S<3?x+1v(>aAY8y(@K>ez2hGt^Sn|Z~b@I(Na&C6p>2gPgya`?`_(w3z(mCMs*!8LC2?<`2VXjy85= zmEDd5#V%RW59sgHZWDS+WD^3!YnAwxdq&xqTDgur3u`ffQ`3zL^0=nIMEP7*q?n(f zpUG=*a?I~yV03|-M@wUR?Xs@_fxT=uv~@-7cJ(z)A2GzA>M%GQ{<1jXzwDueAp5pS;z* z2rG5SG%EJm7sPo(a__pbr1`VS_XRjzUGDfWIUFqY+;IqT*!l72-E#eA2t-J$iuGc3ie~2}^#qvK}-KL4TCaDq@Rmr=1pTQu&zps0yzt~m` zrBfP%429>>kc7W5k)p482e%*jB>YuruI+QdM7aW5%I3M1o08y)31WtF^xC=GU;HX? zJX`tOqsP@5?IM<|pY#jWj~9pCX;^BWC`E-HRfy7>NKyL1j9*xGVpgvrYFzZn?r~E- zNt$9kc#pPIrD_N#o$Adwd;N5n5-bSqdINUK^xV#it;G-Sd+yD*IWLSxk(WpQr%0$9 zMqn@I;ErPm+<0jCR}dX<8j)lpNcC`hwmgH!{Xr5?5@4{yR0+(nNgoA$rx7XOfC9xf>RJ=pPZA@im9GlcR#AGuGZj?P!nU_f>9I z^s!=|w>{|pvjl<`W)i}5J4#I=rqT}iy2-ZMnM)0`OPaX^U!RDuS1lRl)W!py50}FcCO~9M>!Qh1dJy-S297!ak;K8l7j}{@fEWg-=8M7$* z#p6NX>M*CP2-mGRzqZtx<-^*bi90Jgsz~E^II(pI_!x=>7Vj2t;*Ok8M zV!CAt93>mQ;yg}$?@gdb^!vUJkU_-8Tr*OHDL5@jn%dzl`D+j$=vgBdx(9B*)VUVlLmT9Xz zF+!RmY5Eaw0ulDR3S@!W>5=Y4DI~Wp-*vzmZHqdo5Z&$!qNU*v(v_n0YM{}n4DC5s z?vCd%0E-X4@xg;*XKOQjy2T*_Mcltu%o%0Nx5vtMx=z|jiD)}xZpHQDyQ6<>TT5s3 zH4l2ih)UMxlA`2qbA1CREmTtv_XXyp(57WV1;014q zXxlfr?>Rwh97HKjd2Hb#PgFz~N%&9L#cPC7wgZs~bGqpv(`v)PqoV{rSs#!3iHB=T zL6ja|e366;ea&&gf6M@xKa7IvgYJ2}19`ze%hv?2&l)TctG)3YY+HUJoTmwz>Kkvu z`R0?tnPQmV@HP7rNyc#w^vCw3g&nc*;Yo7_n>G{)Hu$bwboK?RUFINVe9d>Ph(xKF z{A&pgJ|3}*=y37-2H;B%SS%LT6q}DJ{bcr2VLF zB9k;u!qd+zS(kToecKO_*wBG$FA-C^&=b=b@*w(0_`fFw!>><`#ZB)OJ~~zU2TBrl z#+iJsN7=K?H2GG4t(n{zr{Wc>4x4-( zK^;+aC*>lnJ~h?kKdG{<&Nep6C9V6V4D9sWyY5E?P)FcIgE$V5#&uMuA#xIqn8bIQ z(Bhn$>uCOp(`gD)7G~n6c3IMUlakoyJP($m04^VxbykO?HHYT^J_&`L&#Wdgr;S*(eyo6!UtYRV) z@qIh})(8+@hDJXb<>GgSe7zpCU?Oe$C+75(ug~we>7@|ZjNBq=63aLY_26)SGv#E+qw26bdn(C!pP3} zCf|wL>k&$og@GEQlY*Le>TP54LqR51HxW?&N5BiR)31t_@Ksa%*ewwt84O;In$FBp z^vV&5J8%-Vx1g*Bv|Vx%kR-6JxhS(|Dwi2m*)6``G+n@f>&huRr+G-o+oK}pul+OYF( z^nCZ72d<|z7;yws#6I3(cl(v;M)SDsLzb`l55s1C)cWMny{8^eejn0L;9b=?G3rw= z-WG|9Bx*3Eqh9;|u(`jAarz^G^2q12T{Qmxnlf`Tz9T!uUsK2ux$DG19#F3S1VvQc zPgi6JN6^2m^}7eY5iFv5u$xRm5j&-uXm-dzNZ7afOtTmx$XGaEd)g_mR%S*FSm|24 z27LG|dQ8K*)G`YzEWGKmIfKNB*-Gg^9=7EMD+$QB{BiT&tjl%A1>{^v7#{x3_s{D; z-!SsORCgjZb^dSKA7E{LK@`czlr*I?8wZqXRu`p@yB z#sP94*~%L$&n>cgH4YiKb_-#1vr=s@R1=s63v9cFeH0ok!Qt2=h8bKwvkq5KX;^`sAwZ8tn& z#x6pkPa7VxLhXd&gZM!v#_MP{ukHK80Pd&10SQJ9s8C*^FbR=D^@H(BJteO$UZG*E zjDKsjT7Frn?8?4{)nX{GSv!|CdV(vT$}@g@JO4#|Y{TY?o^JZ#yY&5i`niKJUb9v~ z&*CTS*60cbGb-OK?_TEI179dKxSZK#t5E%2eZObAZZv}Y`PlfrAqYh^+~O^7DtN(K zTfq6)7!FC~r6@mWZ*|&5+gnHey3u(__xc?#JEvPXY}_0^4!*~;EUc9xY^=0$?m)iP zerEXGFZBG;*+wB4x=fyhB9to~$0cRVb&5`!z&aXpw6Cn$m}py=g^hZqcTHq0^nMs` zD2~tIp-$mFlkC+oYqc(W2HqJj3zc{wb|iPO*C5w+Yz)34zG(kxU~_3y|M=yR^oU?~f?!}=36ZAK2k4)Z)IVm1(KE9_iZ+6Ek zjiRXh<_5Z;-#6MgrTts1@zF|Uabv^BfzP8^&6I7bLHtp?29x!DOU|Jajb|silbf@& zW_McG^*KMKS=^&X=&Z-n+~z;lEPcZAK#`YI`{Ak0W)Ku^c`0xfHlN1IR_a++j?npD z)-`GnzaBqia%VY4Ket}b=vHck7Ib+H>r_^?sU-j{XhroI*K)cXnII4@Qd31*3)RD= z7B&d7Zgh9Q&*78thKWI@9w+_w#dr4}WwfBfI5oQ>$hr$hde$1xoJLv%s`-;REpcCV zUy5=%;$X6<&HyD&NV)IF&m(o5iP1vkR;#|pN(|0=OiWR_fx#Fr-abu9X?+889-1=p zI*wqRUolBeDOcc7CBQZ|5usxHf!R~FE9>Z8VPbrWgv7}$Zz2T?gZ#3jRZpYQgr!af zl<{NOzvv$QUC4N6wt=kXpx?)9A=}7Fw@v&sTO~S#jw`TE^l2k^%2Sz7!j$7n3RKB( z+j4`L<@9svwYY-6BdVXiW%T81g`fhzNku<5PMDJm>K*&Y96s`$e5eqJrZL&o&eDXG zkftvYDbZ5dmzj1~=AZhg?~+{UM_~~z5%ct%cgqQC zabG~45{*A6J?kQQ;$7ePalb(){roYPyhQb;?VYohs7rd%_ViUq7!A49ywcyVU+sMj zdfMtRLd~>gU`rzNLXwSSoPSH<=7|lRWa*uZi%X)I11+2A!cL-kJp;F*RYB&LlG1D> zRj1Ns`(x3`b92BrH9b1PBB3Wf?(UE(XsO0qG1drA(4Fx+cmhGFe;V z^kLTUyAmJGBC4f95O=oTThENC$eXzBct>B>W%cbIe=A1Hq}==IoGy|j;A!);|U4&l}c%Tydc!JUpLVAJuLymuvQUY+z;oQL6Yow$hNsU>PPgfGpbJZ+s52 zmDtOV*rHjsn06qKf>h023!B_Gx6bJ{5@MYY3Bl-&=m$|zT%mRF zyp4aZ1&Kw-h3<<-R+l_yT|QQbfEfufy{X4=h}t@6aleO#@jAIuoxEiEZSP8Uz1)rf zmPnfz$!eDRG|-8RbUJZvqDyE`R^P0oRdFlTEF4^D4yy}g6=JJ{LHf{!2dPt04>7TzI&0aOz;^s zq#_3Hg9pY>JkVhW;y}hmsDvULc@XI>Ghm~Lp-YM&HWe!3+Z2*mmmnCRUYI`6i}@1w z<0T{EjyBct&t@0Kum~7qU8jZXpOygklPYWwfFu+YYRP5MT9R^3tncUZxWu#dU-WOd z?w8RQmrum{bE*259vUm)+L^WD+-!8c`z@9-Ut>}Js>JQS5;2R`c_ezx#e zpRi#YnVpO6(9~;()Q8}r?y;ZWLa<(UF6&;Hi54l7G)Fqni8G}ni$E%sc~`~)*gab{ zRT!%`WXcJa86st-g-n82s>gTQU6$>fG6OUZ%4pPN*{ifHKP0asC|h_(^pW+MRg(+h zw|dx^yv%f8p&}$4vPtBtXo~JQl)_`;qlb~cdkX3XpDWQKIdond(ImpNjmpoHn@TWY z)5TgV>rg>x1*tfvx<@XTFb-@XT4VJ7yWmWAlm|+S1$NR!NtH*pQrV;ag>Hhz^g@<)h8F0BT&J zQ7MW(!s5}V`>BvvKg0++e5&byhn^+!^6|5{jYPV3cac(=1LgkvK$NxrhC%Z_($#*W zc+gyB(OM+rtH-@Me`T1km$7rpl1%h;3c-?olN0f+0`4*MhwzE}df7OVB{xR+z2(H^ zZHrmv0~6ks)ET_6?-z1+R>pAf&Q<0DFh6?wblUQJ3%fLl)xx^vL1*0~e+7B;{eE&+ zOV#5<%DEAOaiE(_%%deJ@VF1!bd)@EEi@@6m=RMr0dtb=b7y@fGwf?av#t(EvvA;p9xo5yjhfHIwwuwcp$? zwQ6d6FxvPZ{!jM1xq9&UZ4_z|4u@N}w<5Q zg2RIifA;31!@kik5ZD;`&^=)lrJuw4l4!5}=`wKsoUObD<=?Odx2Tv>L5_i2kyFDf z&he3~oH@oPO4xvV6w(*CY5D8(zR>J3RIn8MTxd(Dei6*@ehq~xF-MK!OCqgugQHV~ zBC~X1MPE!23r4-ppfbO>)WLea2S`=KDVwY7E1d}1|)N9S)OD|5hM z{L1}xUfXrTW<9`|CC7Ad3n}$1ixEv{tlt`Q0|hSla{UriP+^&KlEoGhg+d*>;+L$z2Um*%YeWg)gITL_mWWdIRw7r8VeJ9haj1AUVut z3qtFBu!#vXhYxv7>nb{5tvoDX#I>A(IHj{mj<3A@#nhDp*(lkQ{pGA;JY6Sfy~V(Y zYvB1|dHyvm?3Pq)=jJtM+1>VZ`z9fLOX$7DWYWI!#}8dLi_A$mv^v?(&qzSmu=G1A zy*@T1BCnq#vRXT57+C@$2BYidwk(InD#^Rs2g#D)81l7`Z51N z%^Txd%L{SmoJJfle0cVRPKd;bRegwD(J@O&)A+X^6+#uD1Eo40@3x$xY9p?m&6I%y zGg!#I!-j3GIqiyR)Hl4<8CN8x0C^kMfDNilyL3baF;FuCD|#;?=6r*BkxL$roDaKg zPqMNw7hjKOMUW;2!|OfD5>O^0A~Y z>M%f@lwSZ2m`fZrNY1M6YA~G50U&#hf@imoL$!bdOJd>N@OyYgnTfJE@Q!6^F}ZDD zN$_C*qMheldr>R(^V$JUfh$~gr~lrmN?-vTj({-6_E{y}S&7;kX3e}JDd<@0*b9h! zUWTmx4`Kwox_SeIKmmU;;GyH@$~vm;`4Y=lk^j%NZ2S3&{O%wgB^V3=iRDxJLx4l5 zT0gT|LN2pyA104G?oNK-+N3Ddi2J)I2ZHuFz|keQ*=QyAFknm&bjj?e-jYrj6-26B zodh2hATLM%+VGrqG2A*0|APmlb}P;_eJz=6)(Sh-M|UGC^80=dVo2?kV2$l|RPq?M zmp9IpdyG4kTYYlg7r%PQ#oq9voy^j@?cll$|DN0pVvY3y=$nm%j1Ae#c^z*KL(+Oa zLQXSyYQ9o|-OH=n0y>iabIpL}SorVcvt{V01b743F@v9 zD1Qltp5yEq*K<7noBzU|R|rkbr*A*-8~?k_u}%)%L3*1F2jh$cYcfeJM3Wl6uS3{8 za8OPMGF%70ol#6xz(qSz{$)t0I@9Qz#Z((Z(3%8oe|)3|u$~~UY#ZIt%a3VC{t{e3 zQzxH|7yHr&+z2T7L{8@~?>;snLMiEydZ47LUyp;)n$nxKzdq@g3UH*krv*Ene1RY9 zDw)zcZ^Y|akDZ#o)woLpZb2jBnbx1*OB8H#*hM=Ip7iGn$mXg9`Rs2V0AEp{o6Q3I z!s60_B0z;4b5)T_9uB0Eo}L72=BW-siMi7)+_E`|?%0BVH8}}PKLhp{r^Nkqx{evY{irp_CjwOn<2#-O9se|?*+baz zRYm<0=+a_!*y2|BlE~hDort*Qc>><`L=MKm5VX!itwH>@(`)gOm(p<49V)RA;-ETr zsiIt%cTySko5!QOIs#z#^q$|HCvP*SCrf1$whl;YA@b+Ym(y$Ey#kJ??(NoXxM9f- zQ!LQ$2DKVk=XLe_8U5vZdfFlfAypc}?A4XlR?L}3#jN_{YKJEu_{nChrkZZUt$pC| z$HXQrH}9>j_Gw?pKi8Cj5R~8@DdPuzJFoA=YLc7ya%szw;_Z1xFgo5EP1Dn}N#_#v zfl&#@>2yov_wAq_7>tJraBy;%viYj|wWmOsZNGF;Ro!3&-O;qovhS5gdJEGp(;Mo|-3cR-U1hYjCxTARLp&YZd-2(0R~m{3%FTTz!O-N}8wV-WLz zKnAJzB0!>x*O(I|d!%Wp!%(^a&v`u&*rHP9ieh$nkK8KAb^0})VL`#x5=M@1<@zN+p08!M!;|psdk9*E zx_!3DSdzW%wQu$O9$=!qH!+B?_+(u}J&tLs4ev(*n51{hF!=$gO)5|;x(8|5(3rB} z`x}}i7rYu#w!rw|Rda%_rGuF66tKY(OSX}BDxr|+@+aRWX?<#YqKBU-#jt)Dh>z^? z)@Wc@hhW1IFIiEUoqHW=)FIC(YycGev?)r0>v-m$YI3CP?DLa2qs~wZHik>Xth5< z0w;yIZ6jvt*93*qYWy7^l_?2qz_$~A#A2{4sqY=yva;E-&f<%YVP5G2ul`%VoI12f zpX2M3!0tGcLl0H8js_FYya$leAjs)5{-@vFBA%jQ%W*o5v>S8>;gLUlP_Hkf;L{L5 zDg0JaJXFtkO9h$IH2zt32asp1`<~D<S z0p}$Zt66bC(yG%}z6dwavh-An%2k{pmj4?RQL?Q2SCm_x>@9ba)6+-=leZfJX5UX; z``O|6Wj#~V5YwrBLtBp!J}=ky4$eH-l#CSstprs*P;0bYeVnWi>2isCJ|^O2#dZv+ z0tdfg$w{gF8eQR(?yYS=L|+}gfIir4*(9EqN4Rz^ws!|Uy(h68P{ihghEYu7L5XCgbBxkkbV&e=z+u2sM6JbL7LSzkwA1h5;qiTLhyD~ke%OA;?l<{SrT52`B;sD zM*)p@YwN_Tp<%fj(0z^Zp=x_DW5QY#9U>`du4E{bdFvobDLCTU^n6xNp@yoCq|-2M zE$e6K&2VKA$HCy5nT7e7)VJ?meGHFFT4uS#6h>hJn!7+cO=vGI55G!GUl> zx(-*~BGv#u^p!pRRvQX6{&;(D#@zlu+G()B(C$Kl#FI8}9;7@%7Ex`7_KW09Lu?y= z4+<{dP5aSI9>U{8@x_M?8-NOAC>T`(wDZu0TQ5xTRuS?oNkp*Y(P4E z9PB(`9S1F?Y;%{;y!*>elcoH|_+pFY?p{OJ<%+yyg*c|SIDOpk+7G4V^GlopfykWZ zx3u7x$?Ycr_MkiJS&QYN>J&mEycD@)h;!5R9r}DaJW!rW=3a$)4&|erb_;eoRUP+8f(*DGD70s*PWb0YfA&^~EJ#EZ=Mt+;o+8_+txk+`tQT8 z4(LDEER}H1j)7x;{7J~>%3B9V(&Tg}v{bxV6SPhI3JHKa*b>z5b9qh%APMm+rKB4{(0@! zb)RlT08YiV2N`~njFw6Yz{6ntCfg5U&so+Ub&%-X zAitfo=*(8|lN2gpRWiT*^sT}Ezww()ITf7I-M{!#;HC>cvE(M_Q2WX@{X9IrRF#Gi z>xHk1pNLOJ;3>v180oDvjC92a^?`@ptH3g{NX3K7G_g84F;T(L<)okA(G(X|E;f$e z*^S5pR9Y?~5&_-xm5q>`!HYF36%WKk&cr59a z5{Z+C6`l)+8|N>Q;^02qQ+WJZ6wzec6gPJ9&$U^ca0B#B!%}GnFZ?HJJ#CM!V~xEc zxCg;7_nA2dUucY{Qqi>swj~WMyi6&E0NU1YzNGofoOhKeDxhOo?6gX-Y(cS8-N1C- zw(&1@7!Q?*5Izavpw z3>xM-Ay^awik2oaZxh5B|Gw^(wuUx8(q&9{!sfD*we67sK;tCaTo?~P@S*uq9fy|& zZA*ds@nR1NoHa`*NsmWPGX}$zobgp@A$RJh$%JZ?GBcm%+9d}bl89%=&n1r!#-l$D z17qp+#QvpW@7v~<%cg@M;GYp~0rSQTT<0jZ{M%w%#L3QLqTiG6ng5RXlHVyJk1m<0 z+~Y0peaeW9H(PO7CSTkFYJv7E7aD$|OXew3lU`f%`yAi-J;LZ!7FyuNC`c4MA5*&9 z2_%+{tX|^Q`cp||zP+&3s<%$Qs$YB@1oR-6s)IsS-3Y47AwZnvE+4pB_f6HjsX-vc z(S0z_xI2xct!^vvHZVQa`~rFwQk;$zd$;&f8f9B!%uaR~#@rpegXWtQr0qeRn^-kf zsJi*QEMqS-=HFW?37UzIBMe91c!%~?7mI7U4T-t2%tU5cOFZB2zr@NX-&HZj-z;HJ zmVn^w%23S{Hrt#D;8`Ks{ilcocjMLYNtU4gn#5F{XNP&BojaF`>gu4c5-KTx|Dj{gwQiq^O zBE*5`+%gd{n3nD~F$`tgw-qMhi!a1>FIfGi*Gn7?!e_7}z;14Ojp$#r>>!Fb(G^WNqG=7*`crQ<9@g8 zdQaYI7I6L#4g{3?wVE-OPguPV-Oc6`NrLC+<1babdx=aFRV7?Hg%aSCsz;YS%JR?@ z>vkgYc0K+R{E@6Ndw21JO{-xt!A?=b78|Vr*^OxYgGNWrLo{OXiVE-tl zZ1~a;d9dQw2v-&lRX1skzkyL?QrqIV+%jl6mM- zdoyZ@O6>~cM>79?nczf#Gwc_bteg6yk=pq1aS!k@=#ev8DpS&Zz-fmpTxaR`dj2cq zq&_fAt$ULUM)qf$tI$_Dlv6MS28Fyc9OY`DEAs>3;&7u9a0*HOHmweFn!NRP<(Q*BnOxy0R=_>a-|WhNi#5A@3)m)MCu(U8h|)yl?J>@7QlWC>y2j_(OOyZEL2$Tfu8LQ^t$4~fCcr1=iJ^Bw4&eziFfle)sI()EbT5P#J*MVTSDB8cbU`h!`xNrgT&8rEGT$AX%L-UZ1g_f z91YAXBIPD6GcDHa)$U6z5SD<;CT%`iB1F|}>Pc=^#qP7!JciSYMWnQ|va|f)1gqJC zgfmWMd+(E%yEC{64&_Q%2)tjW;Ib0~`iyoyVQhZ3$EW$fKoSs5iW2||Y6Ydf9i1n| z2#FaV!9y9d>HITvc^Shz`LqJlh%Vq^Fsa5f78$t@q`!aE6+CMzz!V0)VhdMJIL9o7@PUELfdZXDcsjsI?C0Gw7ka1u>8SpJ z7WR#AfFj-^I8C7AC-0K>; zd`N!Y;HAb*sC2yzwuUP8?az#m4O+XQ{Gq{zj6Qt%iPGGNdO^8-ckdRly5rpKFHa@w zf%0W&1@2J2M9uEkiElF0$DUs*uci?1_#Z|d?U>T*hGep?GE z{8O{352#Tw%1C}JrUiWV{h0{4arI4M%t1Ry54TP0lSs>1W)R_O*rv+a-?(cr$SR3{@vAq>SbIgXM#E958jAs>pqXx4o zfzdo{&!UedGoF1o(rMS(|<+`#fG61D@pDGBdM^s(k-%Rk< zGeWx^DBU_1*IjGO~b%W z+{89EVAk?6pWH&FRv#Un5p5$@Zj24c5~tnN3H(d2ioL2^*Jw886G85)WCG6HxUN_M zR*k)Zf^jmjnLV0|g~{rBiB>MA6^1u5a~8FIZLzR3)1h@KP|>oOIpvA=NU4 z^y)pJS0XF{63=RES-xeR5$Ii>V19Bs5s!;$wrh+Y)tLXJ>n6++XeQ_~`IzfQ30W*g z!JuZ5b!x3uUi1?Yf=RGDws}|MM%oPa5AG+y(=wK4r)rwGexdak2wo^4Glh*YqhPP& zdk-~woT8@vc^9WUWiEspc=3gwHI~B zkv|;3W|Jq@bX`7seGL)jq385#S^$?Ur-8E8MU8!AR)wy7=BL*wZh9X6o}tHz{A8F-)(8;#|CYt~ z;rd5?QF>Vq);VH(LTmG;$&G2Ui9{l__Pgg4!otX$J5wz9k$;mqWw7|{{^9cTwql?L zr&0dv#Y$DP{u^}TjgI^^?wKa^jKO*xF{7PL;#-Qv+{Pw#@^|7ebBUeq4M`tH%%=$! z14Efrx|`J^HXkTqe}t&jYusT{`pJD&Gu9wx^=|EVbzLP)?&=q=>Pg2gmuV1lyA;v2*hBjWWFzKw?mKT&%}W_lCbUDT_)g zGi#Q`LSn(wCm`Krmou5q!rr2E;wP*C|Q(^-` zRHm~?iQeAt3ld%J{PsIjwK#t}% zP6G)~XblZyTG)O0{D>=$da8se6;CW3M}6LL$1KthO{Ejqt>6)@7@8&#%`lff&{xy~ z5u`=be7NrIUB^o(c!pkcf#77zfp&EYT083D)};vWn%(vnt?P@_r#Fq-1_;*|E+h7z zsqty;{$1G(&3>hg#4q}#&Vd^qp|3H3EYGKye z@rA?_GPm>vGzAjShUP9>4q+ZI#68d0su^Qmmrs&Qq@m=nhknqde!*f!y%$;_<8v$G z$kXC8>3em~F5MQ3J%>d?!$aRsJ24GzTGvMd6gGX_f$}WIzQs#K89#N97hUO5z~a62rLRFs zkHzVTud_OdWZKrgB+c(ik}a-XRx?H9Y@2MisaI^51H4D@4Sw1DG0BdxbZ5QW zDeRPKR8}ICk)&=u{U4VFYMkD_<@Q`RwS8#|av2#q(br26LkG;uUDd(m>N5tnMq7QPrL6OU zj#aN`QSK>w>IfmO-$wX9fddc(6LBx}xSyFez*lTHq7NqRuEHf179b@DVsjLe!Hvtm_nn>p=U17>~Mm`H!J7|vK8Dy{+akc DL<(2N literal 0 HcmV?d00001 diff --git a/assets/images/layout.gif b/assets/images/layout.gif new file mode 100644 index 0000000000000000000000000000000000000000..20cc11ef03a6154a6ef4745efd6df637a5ecae4c GIT binary patch literal 580 zcmV-K0=xZ3Nk%w1VTb^F0HOc@oSvS;!^5?;wX3eK|NsAylal}d00000EC2ui0Ehs3 z000C3NV?qqFv>}*y*TU5yYImuj$~<`XsWJk>%MBh3`K3l_UJ2Q*c-;Ml$>{XbtZuu9?6-WLi_`CNJAR+m^Z#W=fP-9q zgojLqh>J&xjE_H#kdr!+l$SM@n3S5Eke!~4prMGPq=crYfT^l{tgU#juynGsd4jf| zxVfUcyrsUss0;!C#>dFX%FE2n&d<=%($mfYAJ^E~+S}aS-rv{7)Z^sk(bnJ?XTmpM z=@jeineP|z^6vBz_U!oi5BtLU`D+01m%xEfjJhlQ!Poyf6?@XRTnNB4smf&25g85CRCz{@DZo=73CnlcUd|m>&O(-XZ`V`hd z3c=_kqS~D5V(LKZBdFP|_M%EqDGsdIv@QaBO)N03!4#7HVD`{j4{e8`P3YCe+YWID z-Q|#X)m*xD3+&y{_s?Jrg}uZ2|Qh))ideD!p2DVA$|X&z1cK_XOTUE~s(RA;s{PcIE;mM3odvCka^?;qbS3AG`a{2eU*XOrCpydz|Fa#*z SfGx;i*?|Zqs31KF002ASIXsI1 literal 0 HcmV?d00001 diff --git a/assets/images/logo.svg b/assets/images/logo.svg new file mode 100644 index 0000000..aabe789 --- /dev/null +++ b/assets/images/logo.svg @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + diff --git a/assets/images/transparency-grid.png b/assets/images/transparency-grid.png new file mode 100644 index 0000000000000000000000000000000000000000..bd3566daab23214031a0dcacbecc1b65c9b3140b GIT binary patch literal 1544 zcmV+j2KV`iP)(%Qv3?qEHi|6Pz9qDe*gO})U$u~!_+?0i zX0=sgj7mb;2UF}uc?#2rVRE8-4?6$wF>@3LU^8)k3c{V3bjD$I zMEr}bCAZPfLnJ%ziM|fq2?vvnsMP2)Mg|Zls69UTG?Fouslp`C3R%#K3uQ6GB4AYh zU>iGP9Fb*y@JLmdnj}yR{SCe4pO^%(%*WoHRJkZr&*61TKfz3WRcJNp+PDX=A{xr<)v#j+Zjsp&@!UlUK=W zBt!PCFlC7gQ#p{v1u`yr+gfT+cvYDREsiOh7M*HfRLs)HF*OemDuYb*lvte2_$c^6 zXB5gTf`k<)HBonnX(kJ!X%}MAcADT3%ygJ6yiOUE?M{567aZ!NiGYlpT~6ta=Xy<; z;!xMA2GiLJ3-r9g`)C%ab0HYKW@B}s<(bb`Pg+Y%p)}4wQE$2 zxoAxd2j$4TwN6s@UrI)hITtVzYzXjO!Q8D$|k(ULzU{fUB-RdwvhnG?v@xodo2 ztW-s2;RS5dwn^qir$#nturiY->b0PbxWEU%QQ-uZJs>LhPp(s`e@b(r$Oef`=SLl@ z!-}wd`MZ88P@8C#VJIs_SouD0RMQ;eF~ugQU0-im)(rrXYAN11$vi9uhjD#18wJ|N z(wr)we6A~y?;mcWVdW<-5$42&=7Q>aGr+1c7Y+zg ze$KsNLZfDmxHmVYU&*zUt%l8;X)e`0dMzcJ+v^faGXk5`dsIU-3MlI{or=KHpdB^z z!b8(V&hS1L$=4AtAG?ekrC%D7kc2TNj0eQg8f+s1Q^{k(`?4fP#_Ws{ts&uunDHqO zk`u>7Gc!<0bEx5s4*yaVMf_A8n&#fBMVS?hf9F(Eq zxhNYOB{|HmAQb({4v+FrKD__rc7}#2qBto*gZh07AuE+u4%-|oco?O>gRS&4URFy9 z(WW^@nhQ#Qg+@5Z7qTyZqqM8OdZBA3Fcl95Y^nA^5#$hOFic1if_YW*!c_WfI4r@7 z$JB~&oblW7p$WsX*=h|{|5XDW!{0my|AX_@r~9x?3liN%dA33kKmDv#siUUSijEOzj@4gq~rZwkm5hTq&(jQ^qz140000= header) { + $(".site-header").addClass("shrink"); + } else { + $(".site-header").removeClass("shrink"); + } + }); + + /** + * Show/hide video lightbox. + */ + $('.front-page-4 .wp-video').append(''); + $('.front-page-4 .wp-video').prepend('
'); + $('.show-video').on('click', function () { + $('.widget_media_video').toggleClass('visible'); + }); + $('.hide-video, .before').on('click', function () { + $('.front-page-4 .widget_media_video').toggleClass('visible'); + }); + + // Append icon for enews footer widget. + $('.footer-widgets .enews form').append(''); + + // Add back to top button. + $('.site-footer > .wrap').append(''); + + // Add id to top of page for scrolling target. + $('html').attr('id', 'top'); + + /** + * Smooth scrolling. + */ + // Select all links with hashes + $('a[href*="#"]') + // Remove links that don't actually link to anything + .not('[href="#"]') + .not('[href="#0"]') + // Remove WooCommerce tabs + .not('[href*="#tab-"]') + .click(function (event) { + // On-page links + if ( + location.pathname.replace(/^\//, '') == this.pathname.replace(/^\//, '') && + location.hostname == this.hostname + ) { + // Figure out element to scroll to + var target = $(this.hash); + target = target.length ? target : $('[name=' + this.hash.slice(1) + ']'); + // Does a scroll target exist? + if (target.length) { + // Only prevent default if animation is actually gonna happen + event.preventDefault(); + $('html, body').animate({ + scrollTop: target.offset().top + }, 1000, function () { + // Callback after animation + // Must change focus! + var $target = $(target); + $target.focus(); + if ($target.is(":focus")) { // Checking if the target was focused + return false; + } else { + $target.attr('tabindex', '-1'); // Adding tabindex for elements not focusable + $target.focus(); // Set focus again + }; + }); + } + } + }); + +})(document, jQuery); diff --git a/assets/scripts/customize.js b/assets/scripts/customize.js new file mode 100644 index 0000000..ecad068 --- /dev/null +++ b/assets/scripts/customize.js @@ -0,0 +1,267 @@ +/** + * Alpha Color Picker JS + * + * This file includes several helper functions and the core control JS. + */ + +/** + * Override the stock color.js toString() method to add support for + * outputting RGBa or Hex. + */ +Color.prototype.toString = function( flag ) { + + // If our no-alpha flag has been passed in, output RGBa value with 100% opacity. + // This is used to set the background color on the opacity slider during color changes. + if ( 'no-alpha' == flag ) { + return this.toCSS( 'rgba', '1' ).replace( /\s+/g, '' ); + } + + // If we have a proper opacity value, output RGBa. + if ( 1 > this._alpha ) { + return this.toCSS( 'rgba', this._alpha ).replace( /\s+/g, '' ); + } + + // Proceed with stock color.js hex output. + var hex = parseInt( this._color, 10 ).toString( 16 ); + if ( this.error ) { return ''; } + if ( hex.length < 6 ) { + for ( var i = 6 - hex.length - 1; i >= 0; i-- ) { + hex = '0' + hex; + } + } + + return '#' + hex; +}; + +/** + * Given an RGBa, RGB, or hex color value, return the alpha channel value. + */ +function acp_get_alpha_value_from_color( value ) { + var alphaVal; + + // Remove all spaces from the passed in value to help our RGBa regex. + value = value.replace( / /g, '' ); + + if ( value.match( /rgba\(\d+\,\d+\,\d+\,([^\)]+)\)/ ) ) { + alphaVal = parseFloat( value.match( /rgba\(\d+\,\d+\,\d+\,([^\)]+)\)/ )[1] ).toFixed(2) * 100; + alphaVal = parseInt( alphaVal ); + } else { + alphaVal = 100; + } + + return alphaVal; +} + +/** + * Force update the alpha value of the color picker object and maybe the alpha slider. + */ + function acp_update_alpha_value_on_color_control( alpha, $control, $alphaSlider, update_slider ) { + var iris, colorPicker, color; + + iris = $control.data( 'a8cIris' ); + colorPicker = $control.data( 'wpWpColorPicker' ); + + // Set the alpha value on the Iris object. + iris._color._alpha = alpha; + + // Store the new color value. + color = iris._color.toString(); + + // Set the value of the input. + $control.val( color ); + + // Update the background color of the color picker. + colorPicker.toggler.css({ + 'background-color': color + }); + + // Maybe update the alpha slider itself. + if ( update_slider ) { + acp_update_alpha_value_on_alpha_slider( alpha, $alphaSlider ); + } + + // Update the color value of the color picker object. + $control.wpColorPicker( 'color', color ); +} + +/** + * Update the slider handle position and label. + */ +function acp_update_alpha_value_on_alpha_slider( alpha, $alphaSlider ) { + $alphaSlider.slider( 'value', alpha ); + $alphaSlider.find( '.ui-slider-handle' ).text( alpha.toString() ); +} + +/** + * Initialization trigger. + */ +jQuery( document ).ready( function( $ ) { + + // Loop over each control and transform it into our color picker. + $( '.alpha-color-control' ).each( function() { + + // Scope the vars. + var $control, startingColor, paletteInput, showOpacity, defaultColor, palette, + colorPickerOptions, $container, $alphaSlider, alphaVal, sliderOptions; + + // Store the control instance. + $control = $( this ); + + // Get a clean starting value for the option. + startingColor = $control.val().replace( /\s+/g, '' ); + + // Get some data off the control. + paletteInput = $control.attr( 'data-palette' ); + showOpacity = $control.attr( 'data-show-opacity' ); + defaultColor = $control.attr( 'data-default-color' ); + + // Process the palette. + if ( paletteInput.indexOf( '|' ) !== -1 ) { + palette = paletteInput.split( '|' ); + } else if ( 'false' == paletteInput ) { + palette = false; + } else { + palette = true; + } + + // Set up the options that we'll pass to wpColorPicker(). + colorPickerOptions = { + change: function( event, ui ) { + var key, value, alpha, $transparency; + + key = $control.attr( 'data-customize-setting-link' ); + value = $control.wpColorPicker( 'color' ); + + // Set the opacity value on the slider handle when the default color button is clicked. + if ( defaultColor == value ) { + alpha = acp_get_alpha_value_from_color( value ); + $alphaSlider.find( '.ui-slider-handle' ).text( alpha ); + } + + // Send ajax request to wp.customize to trigger the Save action. + wp.customize( key, function( obj ) { + obj.set( value ); + }); + + $transparency = $container.find( '.transparency' ); + + // Always show the background color of the opacity slider at 100% opacity. + $transparency.css( 'background-color', ui.color.toString( 'no-alpha' ) ); + }, + palettes: palette // Use the passed in palette. + }; + + // Create the colorpicker. + $control.wpColorPicker( colorPickerOptions ); + + $container = $control.parents( '.wp-picker-container:first' ); + + // Insert our opacity slider. + $( '
' + + '
' + + '
' + + '
' + + '
' + + '
' ).appendTo( $container.find( '.wp-picker-holder' ) ); + + $alphaSlider = $container.find( '.alpha-slider' ); + + // If starting value is in format RGBa, grab the alpha channel. + alphaVal = acp_get_alpha_value_from_color( startingColor ); + + // Set up jQuery UI slider() options. + sliderOptions = { + create: function( event, ui ) { + var value = $( this ).slider( 'value' ); + + // Set up initial values. + $( this ).find( '.ui-slider-handle' ).text( value ); + $( this ).siblings( '.transparency ').css( 'background-color', startingColor ); + }, + value: alphaVal, + range: 'max', + step: 1, + min: 0, + max: 100, + animate: 300 + }; + + // Initialize jQuery UI slider with our options. + $alphaSlider.slider( sliderOptions ); + + // Maybe show the opacity on the handle. + if ( 'true' == showOpacity ) { + $alphaSlider.find( '.ui-slider-handle' ).addClass( 'show-opacity' ); + } + + // Bind event handlers for the click zones. + $container.find( '.min-click-zone' ).on( 'click', function() { + acp_update_alpha_value_on_color_control( 0, $control, $alphaSlider, true ); + }); + $container.find( '.max-click-zone' ).on( 'click', function() { + acp_update_alpha_value_on_color_control( 100, $control, $alphaSlider, true ); + }); + + // Bind event handler for clicking on a palette color. + $container.find( '.iris-palette' ).on( 'click', function() { + var color, alpha; + + color = $( this ).css( 'background-color' ); + alpha = acp_get_alpha_value_from_color( color ); + + acp_update_alpha_value_on_alpha_slider( alpha, $alphaSlider ); + + // Sometimes Iris doesn't set a perfect background-color on the palette, + // for example rgba(20, 80, 100, 0.3) becomes rgba(20, 80, 100, 0.298039). + // To compensante for this we round the opacity value on RGBa colors here + // and save it a second time to the color picker object. + if ( alpha != 100 ) { + color = color.replace( /[^,]+(?=\))/, ( alpha / 100 ).toFixed( 2 ) ); + } + + $control.wpColorPicker( 'color', color ); + }); + + // Bind event handler for clicking on the 'Clear' button. + $container.find( '.button.wp-picker-clear' ).on( 'click', function() { + var key = $control.attr( 'data-customize-setting-link' ); + + // The #fff color is delibrate here. This sets the color picker to white instead of the + // defult black, which puts the color picker in a better place to visually represent empty. + $control.wpColorPicker( 'color', '#ffffff' ); + + // Set the actual option value to empty string. + wp.customize( key, function( obj ) { + obj.set( '' ); + }); + + acp_update_alpha_value_on_alpha_slider( 100, $alphaSlider ); + }); + + // Bind event handler for clicking on the 'Default' button. + $container.find( '.button.wp-picker-default' ).on( 'click', function() { + var alpha = acp_get_alpha_value_from_color( defaultColor ); + + acp_update_alpha_value_on_alpha_slider( alpha, $alphaSlider ); + }); + + // Bind event handler for typing or pasting into the input. + $control.on( 'input', function() { + var value = $( this ).val(); + var alpha = acp_get_alpha_value_from_color( value ); + + acp_update_alpha_value_on_alpha_slider( alpha, $alphaSlider ); + }); + + // Update all the things when the slider is interacted with. + $alphaSlider.slider().on( 'slide', function( event, ui ) { + var alpha = parseFloat( ui.value ) / 100.0; + + acp_update_alpha_value_on_color_control( alpha, $control, $alphaSlider, false ); + + // Change value shown on slider handle. + $( this ).find( '.ui-slider-handle' ).text( ui.value ); + }); + + }); +}); \ No newline at end of file diff --git a/assets/scripts/isotope-init.js b/assets/scripts/isotope-init.js new file mode 100644 index 0000000..90c21c5 --- /dev/null +++ b/assets/scripts/isotope-init.js @@ -0,0 +1,43 @@ +jQuery(function($){ + $(window).load(function() { + + // Main function. + function portfolioIsotope() { + var $container = $('.portfolio-content'); + $container.isotope({ + itemSelector: '.portfolio-item', + masonry: { + itemSelector: ".portfolio-item", + columnWidth: ".portfolio-item", + gutter: 20 + } + }); + } portfolioIsotope(); + + // Filter. + $('.filter a').click(function(){ + var selector = $(this).attr('data-filter'); + $('.portfolio-content').isotope({ filter: selector }); + $(this).parent().find('a').removeClass('active'); + $(this).addClass('active'); + return false; + }); + + // Resize. + var isIE8 = $.browser.msie && +$.browser.version === 8; + if (isIE8) { + document.body.onresize = function () { + portfolioIsotope(); + }; + } else { + $(window).resize(function () { + portfolioIsotope(); + }); + } + + // Orientation change. + window.addEventListener("orientationchange", function() { + portfolioIsotope(); + }); + }); +}); \ No newline at end of file diff --git a/assets/scripts/isotope.pkgd.js b/assets/scripts/isotope.pkgd.js new file mode 100644 index 0000000..7b34633 --- /dev/null +++ b/assets/scripts/isotope.pkgd.js @@ -0,0 +1,3523 @@ +/*! + * Isotope PACKAGED v3.0.3 + * + * Licensed GPLv3 for open source use + * or Isotope Commercial License for commercial use + * + * http://isotope.metafizzy.co + * Copyright 2017 Metafizzy + */ + +/** + * Bridget makes jQuery widgets + * v2.0.1 + * MIT license + */ + +/* jshint browser: true, strict: true, undef: true, unused: true */ + +( function( window, factory ) { + // universal module definition + /*jshint strict: false */ /* globals define, module, require */ + if ( typeof define == 'function' && define.amd ) { + // AMD + define( 'jquery-bridget/jquery-bridget',[ 'jquery' ], function( jQuery ) { + return factory( window, jQuery ); + }); + } else if ( typeof module == 'object' && module.exports ) { + // CommonJS + module.exports = factory( + window, + require('jquery') + ); + } else { + // browser global + window.jQueryBridget = factory( + window, + window.jQuery + ); + } + +}( window, function factory( window, jQuery ) { +'use strict'; + +// ----- utils ----- // + +var arraySlice = Array.prototype.slice; + +// helper function for logging errors +// $.error breaks jQuery chaining +var console = window.console; +var logError = typeof console == 'undefined' ? function() {} : + function( message ) { + console.error( message ); + }; + +// ----- jQueryBridget ----- // + +function jQueryBridget( namespace, PluginClass, $ ) { + $ = $ || jQuery || window.jQuery; + if ( !$ ) { + return; + } + + // add option method -> $().plugin('option', {...}) + if ( !PluginClass.prototype.option ) { + // option setter + PluginClass.prototype.option = function( opts ) { + // bail out if not an object + if ( !$.isPlainObject( opts ) ){ + return; + } + this.options = $.extend( true, this.options, opts ); + }; + } + + // make jQuery plugin + $.fn[ namespace ] = function( arg0 /*, arg1 */ ) { + if ( typeof arg0 == 'string' ) { + // method call $().plugin( 'methodName', { options } ) + // shift arguments by 1 + var args = arraySlice.call( arguments, 1 ); + return methodCall( this, arg0, args ); + } + // just $().plugin({ options }) + plainCall( this, arg0 ); + return this; + }; + + // $().plugin('methodName') + function methodCall( $elems, methodName, args ) { + var returnValue; + var pluginMethodStr = '$().' + namespace + '("' + methodName + '")'; + + $elems.each( function( i, elem ) { + // get instance + var instance = $.data( elem, namespace ); + if ( !instance ) { + logError( namespace + ' not initialized. Cannot call methods, i.e. ' + + pluginMethodStr ); + return; + } + + var method = instance[ methodName ]; + if ( !method || methodName.charAt(0) == '_' ) { + logError( pluginMethodStr + ' is not a valid method' ); + return; + } + + // apply method, get return value + var value = method.apply( instance, args ); + // set return value if value is returned, use only first value + returnValue = returnValue === undefined ? value : returnValue; + }); + + return returnValue !== undefined ? returnValue : $elems; + } + + function plainCall( $elems, options ) { + $elems.each( function( i, elem ) { + var instance = $.data( elem, namespace ); + if ( instance ) { + // set options & init + instance.option( options ); + instance._init(); + } else { + // initialize new instance + instance = new PluginClass( elem, options ); + $.data( elem, namespace, instance ); + } + }); + } + + updateJQuery( $ ); + +} + +// ----- updateJQuery ----- // + +// set $.bridget for v1 backwards compatibility +function updateJQuery( $ ) { + if ( !$ || ( $ && $.bridget ) ) { + return; + } + $.bridget = jQueryBridget; +} + +updateJQuery( jQuery || window.jQuery ); + +// ----- ----- // + +return jQueryBridget; + +})); + +/** + * EvEmitter v1.0.3 + * Lil' event emitter + * MIT License + */ + +/* jshint unused: true, undef: true, strict: true */ + +( function( global, factory ) { + // universal module definition + /* jshint strict: false */ /* globals define, module, window */ + if ( typeof define == 'function' && define.amd ) { + // AMD - RequireJS + define( 'ev-emitter/ev-emitter',factory ); + } else if ( typeof module == 'object' && module.exports ) { + // CommonJS - Browserify, Webpack + module.exports = factory(); + } else { + // Browser globals + global.EvEmitter = factory(); + } + +}( typeof window != 'undefined' ? window : this, function() { + + + +function EvEmitter() {} + +var proto = EvEmitter.prototype; + +proto.on = function( eventName, listener ) { + if ( !eventName || !listener ) { + return; + } + // set events hash + var events = this._events = this._events || {}; + // set listeners array + var listeners = events[ eventName ] = events[ eventName ] || []; + // only add once + if ( listeners.indexOf( listener ) == -1 ) { + listeners.push( listener ); + } + + return this; +}; + +proto.once = function( eventName, listener ) { + if ( !eventName || !listener ) { + return; + } + // add event + this.on( eventName, listener ); + // set once flag + // set onceEvents hash + var onceEvents = this._onceEvents = this._onceEvents || {}; + // set onceListeners object + var onceListeners = onceEvents[ eventName ] = onceEvents[ eventName ] || {}; + // set flag + onceListeners[ listener ] = true; + + return this; +}; + +proto.off = function( eventName, listener ) { + var listeners = this._events && this._events[ eventName ]; + if ( !listeners || !listeners.length ) { + return; + } + var index = listeners.indexOf( listener ); + if ( index != -1 ) { + listeners.splice( index, 1 ); + } + + return this; +}; + +proto.emitEvent = function( eventName, args ) { + var listeners = this._events && this._events[ eventName ]; + if ( !listeners || !listeners.length ) { + return; + } + var i = 0; + var listener = listeners[i]; + args = args || []; + // once stuff + var onceListeners = this._onceEvents && this._onceEvents[ eventName ]; + + while ( listener ) { + var isOnce = onceListeners && onceListeners[ listener ]; + if ( isOnce ) { + // remove listener + // remove before trigger to prevent recursion + this.off( eventName, listener ); + // unset once flag + delete onceListeners[ listener ]; + } + // trigger listener + listener.apply( this, args ); + // get next listener + i += isOnce ? 0 : 1; + listener = listeners[i]; + } + + return this; +}; + +return EvEmitter; + +})); + +/*! + * getSize v2.0.2 + * measure size of elements + * MIT license + */ + +/*jshint browser: true, strict: true, undef: true, unused: true */ +/*global define: false, module: false, console: false */ + +( function( window, factory ) { + 'use strict'; + + if ( typeof define == 'function' && define.amd ) { + // AMD + define( 'get-size/get-size',[],function() { + return factory(); + }); + } else if ( typeof module == 'object' && module.exports ) { + // CommonJS + module.exports = factory(); + } else { + // browser global + window.getSize = factory(); + } + +})( window, function factory() { +'use strict'; + +// -------------------------- helpers -------------------------- // + +// get a number from a string, not a percentage +function getStyleSize( value ) { + var num = parseFloat( value ); + // not a percent like '100%', and a number + var isValid = value.indexOf('%') == -1 && !isNaN( num ); + return isValid && num; +} + +function noop() {} + +var logError = typeof console == 'undefined' ? noop : + function( message ) { + console.error( message ); + }; + +// -------------------------- measurements -------------------------- // + +var measurements = [ + 'paddingLeft', + 'paddingRight', + 'paddingTop', + 'paddingBottom', + 'marginLeft', + 'marginRight', + 'marginTop', + 'marginBottom', + 'borderLeftWidth', + 'borderRightWidth', + 'borderTopWidth', + 'borderBottomWidth' +]; + +var measurementsLength = measurements.length; + +function getZeroSize() { + var size = { + width: 0, + height: 0, + innerWidth: 0, + innerHeight: 0, + outerWidth: 0, + outerHeight: 0 + }; + for ( var i=0; i < measurementsLength; i++ ) { + var measurement = measurements[i]; + size[ measurement ] = 0; + } + return size; +} + +// -------------------------- getStyle -------------------------- // + +/** + * getStyle, get style of element, check for Firefox bug + * https://bugzilla.mozilla.org/show_bug.cgi?id=548397 + */ +function getStyle( elem ) { + var style = getComputedStyle( elem ); + if ( !style ) { + logError( 'Style returned ' + style + + '. Are you running this code in a hidden iframe on Firefox? ' + + 'See http://bit.ly/getsizebug1' ); + } + return style; +} + +// -------------------------- setup -------------------------- // + +var isSetup = false; + +var isBoxSizeOuter; + +/** + * setup + * check isBoxSizerOuter + * do on first getSize() rather than on page load for Firefox bug + */ +function setup() { + // setup once + if ( isSetup ) { + return; + } + isSetup = true; + + // -------------------------- box sizing -------------------------- // + + /** + * WebKit measures the outer-width on style.width on border-box elems + * IE & Firefox<29 measures the inner-width + */ + var div = document.createElement('div'); + div.style.width = '200px'; + div.style.padding = '1px 2px 3px 4px'; + div.style.borderStyle = 'solid'; + div.style.borderWidth = '1px 2px 3px 4px'; + div.style.boxSizing = 'border-box'; + + var body = document.body || document.documentElement; + body.appendChild( div ); + var style = getStyle( div ); + + getSize.isBoxSizeOuter = isBoxSizeOuter = getStyleSize( style.width ) == 200; + body.removeChild( div ); + +} + +// -------------------------- getSize -------------------------- // + +function getSize( elem ) { + setup(); + + // use querySeletor if elem is string + if ( typeof elem == 'string' ) { + elem = document.querySelector( elem ); + } + + // do not proceed on non-objects + if ( !elem || typeof elem != 'object' || !elem.nodeType ) { + return; + } + + var style = getStyle( elem ); + + // if hidden, everything is 0 + if ( style.display == 'none' ) { + return getZeroSize(); + } + + var size = {}; + size.width = elem.offsetWidth; + size.height = elem.offsetHeight; + + var isBorderBox = size.isBorderBox = style.boxSizing == 'border-box'; + + // get all measurements + for ( var i=0; i < measurementsLength; i++ ) { + var measurement = measurements[i]; + var value = style[ measurement ]; + var num = parseFloat( value ); + // any 'auto', 'medium' value will be 0 + size[ measurement ] = !isNaN( num ) ? num : 0; + } + + var paddingWidth = size.paddingLeft + size.paddingRight; + var paddingHeight = size.paddingTop + size.paddingBottom; + var marginWidth = size.marginLeft + size.marginRight; + var marginHeight = size.marginTop + size.marginBottom; + var borderWidth = size.borderLeftWidth + size.borderRightWidth; + var borderHeight = size.borderTopWidth + size.borderBottomWidth; + + var isBorderBoxSizeOuter = isBorderBox && isBoxSizeOuter; + + // overwrite width and height if we can get it from style + var styleWidth = getStyleSize( style.width ); + if ( styleWidth !== false ) { + size.width = styleWidth + + // add padding and border unless it's already including it + ( isBorderBoxSizeOuter ? 0 : paddingWidth + borderWidth ); + } + + var styleHeight = getStyleSize( style.height ); + if ( styleHeight !== false ) { + size.height = styleHeight + + // add padding and border unless it's already including it + ( isBorderBoxSizeOuter ? 0 : paddingHeight + borderHeight ); + } + + size.innerWidth = size.width - ( paddingWidth + borderWidth ); + size.innerHeight = size.height - ( paddingHeight + borderHeight ); + + size.outerWidth = size.width + marginWidth; + size.outerHeight = size.height + marginHeight; + + return size; +} + +return getSize; + +}); + +/** + * matchesSelector v2.0.2 + * matchesSelector( element, '.selector' ) + * MIT license + */ + +/*jshint browser: true, strict: true, undef: true, unused: true */ + +( function( window, factory ) { + /*global define: false, module: false */ + 'use strict'; + // universal module definition + if ( typeof define == 'function' && define.amd ) { + // AMD + define( 'desandro-matches-selector/matches-selector',factory ); + } else if ( typeof module == 'object' && module.exports ) { + // CommonJS + module.exports = factory(); + } else { + // browser global + window.matchesSelector = factory(); + } + +}( window, function factory() { + 'use strict'; + + var matchesMethod = ( function() { + var ElemProto = window.Element.prototype; + // check for the standard method name first + if ( ElemProto.matches ) { + return 'matches'; + } + // check un-prefixed + if ( ElemProto.matchesSelector ) { + return 'matchesSelector'; + } + // check vendor prefixes + var prefixes = [ 'webkit', 'moz', 'ms', 'o' ]; + + for ( var i=0; i < prefixes.length; i++ ) { + var prefix = prefixes[i]; + var method = prefix + 'MatchesSelector'; + if ( ElemProto[ method ] ) { + return method; + } + } + })(); + + return function matchesSelector( elem, selector ) { + return elem[ matchesMethod ]( selector ); + }; + +})); + +/** + * Fizzy UI utils v2.0.4 + * MIT license + */ + +/*jshint browser: true, undef: true, unused: true, strict: true */ + +( function( window, factory ) { + // universal module definition + /*jshint strict: false */ /*globals define, module, require */ + + if ( typeof define == 'function' && define.amd ) { + // AMD + define( 'fizzy-ui-utils/utils',[ + 'desandro-matches-selector/matches-selector' + ], function( matchesSelector ) { + return factory( window, matchesSelector ); + }); + } else if ( typeof module == 'object' && module.exports ) { + // CommonJS + module.exports = factory( + window, + require('desandro-matches-selector') + ); + } else { + // browser global + window.fizzyUIUtils = factory( + window, + window.matchesSelector + ); + } + +}( window, function factory( window, matchesSelector ) { + + + +var utils = {}; + +// ----- extend ----- // + +// extends objects +utils.extend = function( a, b ) { + for ( var prop in b ) { + a[ prop ] = b[ prop ]; + } + return a; +}; + +// ----- modulo ----- // + +utils.modulo = function( num, div ) { + return ( ( num % div ) + div ) % div; +}; + +// ----- makeArray ----- // + +// turn element or nodeList into an array +utils.makeArray = function( obj ) { + var ary = []; + if ( Array.isArray( obj ) ) { + // use object if already an array + ary = obj; + } else if ( obj && typeof obj == 'object' && + typeof obj.length == 'number' ) { + // convert nodeList to array + for ( var i=0; i < obj.length; i++ ) { + ary.push( obj[i] ); + } + } else { + // array of single index + ary.push( obj ); + } + return ary; +}; + +// ----- removeFrom ----- // + +utils.removeFrom = function( ary, obj ) { + var index = ary.indexOf( obj ); + if ( index != -1 ) { + ary.splice( index, 1 ); + } +}; + +// ----- getParent ----- // + +utils.getParent = function( elem, selector ) { + while ( elem != document.body ) { + elem = elem.parentNode; + if ( matchesSelector( elem, selector ) ) { + return elem; + } + } +}; + +// ----- getQueryElement ----- // + +// use element as selector string +utils.getQueryElement = function( elem ) { + if ( typeof elem == 'string' ) { + return document.querySelector( elem ); + } + return elem; +}; + +// ----- handleEvent ----- // + +// enable .ontype to trigger from .addEventListener( elem, 'type' ) +utils.handleEvent = function( event ) { + var method = 'on' + event.type; + if ( this[ method ] ) { + this[ method ]( event ); + } +}; + +// ----- filterFindElements ----- // + +utils.filterFindElements = function( elems, selector ) { + // make array of elems + elems = utils.makeArray( elems ); + var ffElems = []; + + elems.forEach( function( elem ) { + // check that elem is an actual element + if ( !( elem instanceof HTMLElement ) ) { + return; + } + // add elem if no selector + if ( !selector ) { + ffElems.push( elem ); + return; + } + // filter & find items if we have a selector + // filter + if ( matchesSelector( elem, selector ) ) { + ffElems.push( elem ); + } + // find children + var childElems = elem.querySelectorAll( selector ); + // concat childElems to filterFound array + for ( var i=0; i < childElems.length; i++ ) { + ffElems.push( childElems[i] ); + } + }); + + return ffElems; +}; + +// ----- debounceMethod ----- // + +utils.debounceMethod = function( _class, methodName, threshold ) { + // original method + var method = _class.prototype[ methodName ]; + var timeoutName = methodName + 'Timeout'; + + _class.prototype[ methodName ] = function() { + var timeout = this[ timeoutName ]; + if ( timeout ) { + clearTimeout( timeout ); + } + var args = arguments; + + var _this = this; + this[ timeoutName ] = setTimeout( function() { + method.apply( _this, args ); + delete _this[ timeoutName ]; + }, threshold || 100 ); + }; +}; + +// ----- docReady ----- // + +utils.docReady = function( callback ) { + var readyState = document.readyState; + if ( readyState == 'complete' || readyState == 'interactive' ) { + // do async to allow for other scripts to run. metafizzy/flickity#441 + setTimeout( callback ); + } else { + document.addEventListener( 'DOMContentLoaded', callback ); + } +}; + +// ----- htmlInit ----- // + +// http://jamesroberts.name/blog/2010/02/22/string-functions-for-javascript-trim-to-camel-case-to-dashed-and-to-underscore/ +utils.toDashed = function( str ) { + return str.replace( /(.)([A-Z])/g, function( match, $1, $2 ) { + return $1 + '-' + $2; + }).toLowerCase(); +}; + +var console = window.console; +/** + * allow user to initialize classes via [data-namespace] or .js-namespace class + * htmlInit( Widget, 'widgetName' ) + * options are parsed from data-namespace-options + */ +utils.htmlInit = function( WidgetClass, namespace ) { + utils.docReady( function() { + var dashedNamespace = utils.toDashed( namespace ); + var dataAttr = 'data-' + dashedNamespace; + var dataAttrElems = document.querySelectorAll( '[' + dataAttr + ']' ); + var jsDashElems = document.querySelectorAll( '.js-' + dashedNamespace ); + var elems = utils.makeArray( dataAttrElems ) + .concat( utils.makeArray( jsDashElems ) ); + var dataOptionsAttr = dataAttr + '-options'; + var jQuery = window.jQuery; + + elems.forEach( function( elem ) { + var attr = elem.getAttribute( dataAttr ) || + elem.getAttribute( dataOptionsAttr ); + var options; + try { + options = attr && JSON.parse( attr ); + } catch ( error ) { + // log error, do not initialize + if ( console ) { + console.error( 'Error parsing ' + dataAttr + ' on ' + elem.className + + ': ' + error ); + } + return; + } + // initialize + var instance = new WidgetClass( elem, options ); + // make available via $().data('namespace') + if ( jQuery ) { + jQuery.data( elem, namespace, instance ); + } + }); + + }); +}; + +// ----- ----- // + +return utils; + +})); + +/** + * Outlayer Item + */ + +( function( window, factory ) { + // universal module definition + /* jshint strict: false */ /* globals define, module, require */ + if ( typeof define == 'function' && define.amd ) { + // AMD - RequireJS + define( 'outlayer/item',[ + 'ev-emitter/ev-emitter', + 'get-size/get-size' + ], + factory + ); + } else if ( typeof module == 'object' && module.exports ) { + // CommonJS - Browserify, Webpack + module.exports = factory( + require('ev-emitter'), + require('get-size') + ); + } else { + // browser global + window.Outlayer = {}; + window.Outlayer.Item = factory( + window.EvEmitter, + window.getSize + ); + } + +}( window, function factory( EvEmitter, getSize ) { +'use strict'; + +// ----- helpers ----- // + +function isEmptyObj( obj ) { + for ( var prop in obj ) { + return false; + } + prop = null; + return true; +} + +// -------------------------- CSS3 support -------------------------- // + + +var docElemStyle = document.documentElement.style; + +var transitionProperty = typeof docElemStyle.transition == 'string' ? + 'transition' : 'WebkitTransition'; +var transformProperty = typeof docElemStyle.transform == 'string' ? + 'transform' : 'WebkitTransform'; + +var transitionEndEvent = { + WebkitTransition: 'webkitTransitionEnd', + transition: 'transitionend' +}[ transitionProperty ]; + +// cache all vendor properties that could have vendor prefix +var vendorProperties = { + transform: transformProperty, + transition: transitionProperty, + transitionDuration: transitionProperty + 'Duration', + transitionProperty: transitionProperty + 'Property', + transitionDelay: transitionProperty + 'Delay' +}; + +// -------------------------- Item -------------------------- // + +function Item( element, layout ) { + if ( !element ) { + return; + } + + this.element = element; + // parent layout class, i.e. Masonry, Isotope, or Packery + this.layout = layout; + this.position = { + x: 0, + y: 0 + }; + + this._create(); +} + +// inherit EvEmitter +var proto = Item.prototype = Object.create( EvEmitter.prototype ); +proto.constructor = Item; + +proto._create = function() { + // transition objects + this._transn = { + ingProperties: {}, + clean: {}, + onEnd: {} + }; + + this.css({ + position: 'absolute' + }); +}; + +// trigger specified handler for event type +proto.handleEvent = function( event ) { + var method = 'on' + event.type; + if ( this[ method ] ) { + this[ method ]( event ); + } +}; + +proto.getSize = function() { + this.size = getSize( this.element ); +}; + +/** + * apply CSS styles to element + * @param {Object} style + */ +proto.css = function( style ) { + var elemStyle = this.element.style; + + for ( var prop in style ) { + // use vendor property if available + var supportedProp = vendorProperties[ prop ] || prop; + elemStyle[ supportedProp ] = style[ prop ]; + } +}; + + // measure position, and sets it +proto.getPosition = function() { + var style = getComputedStyle( this.element ); + var isOriginLeft = this.layout._getOption('originLeft'); + var isOriginTop = this.layout._getOption('originTop'); + var xValue = style[ isOriginLeft ? 'left' : 'right' ]; + var yValue = style[ isOriginTop ? 'top' : 'bottom' ]; + // convert percent to pixels + var layoutSize = this.layout.size; + var x = xValue.indexOf('%') != -1 ? + ( parseFloat( xValue ) / 100 ) * layoutSize.width : parseInt( xValue, 10 ); + var y = yValue.indexOf('%') != -1 ? + ( parseFloat( yValue ) / 100 ) * layoutSize.height : parseInt( yValue, 10 ); + + // clean up 'auto' or other non-integer values + x = isNaN( x ) ? 0 : x; + y = isNaN( y ) ? 0 : y; + // remove padding from measurement + x -= isOriginLeft ? layoutSize.paddingLeft : layoutSize.paddingRight; + y -= isOriginTop ? layoutSize.paddingTop : layoutSize.paddingBottom; + + this.position.x = x; + this.position.y = y; +}; + +// set settled position, apply padding +proto.layoutPosition = function() { + var layoutSize = this.layout.size; + var style = {}; + var isOriginLeft = this.layout._getOption('originLeft'); + var isOriginTop = this.layout._getOption('originTop'); + + // x + var xPadding = isOriginLeft ? 'paddingLeft' : 'paddingRight'; + var xProperty = isOriginLeft ? 'left' : 'right'; + var xResetProperty = isOriginLeft ? 'right' : 'left'; + + var x = this.position.x + layoutSize[ xPadding ]; + // set in percentage or pixels + style[ xProperty ] = this.getXValue( x ); + // reset other property + style[ xResetProperty ] = ''; + + // y + var yPadding = isOriginTop ? 'paddingTop' : 'paddingBottom'; + var yProperty = isOriginTop ? 'top' : 'bottom'; + var yResetProperty = isOriginTop ? 'bottom' : 'top'; + + var y = this.position.y + layoutSize[ yPadding ]; + // set in percentage or pixels + style[ yProperty ] = this.getYValue( y ); + // reset other property + style[ yResetProperty ] = ''; + + this.css( style ); + this.emitEvent( 'layout', [ this ] ); +}; + +proto.getXValue = function( x ) { + var isHorizontal = this.layout._getOption('horizontal'); + return this.layout.options.percentPosition && !isHorizontal ? + ( ( x / this.layout.size.width ) * 100 ) + '%' : x + 'px'; +}; + +proto.getYValue = function( y ) { + var isHorizontal = this.layout._getOption('horizontal'); + return this.layout.options.percentPosition && isHorizontal ? + ( ( y / this.layout.size.height ) * 100 ) + '%' : y + 'px'; +}; + +proto._transitionTo = function( x, y ) { + this.getPosition(); + // get current x & y from top/left + var curX = this.position.x; + var curY = this.position.y; + + var compareX = parseInt( x, 10 ); + var compareY = parseInt( y, 10 ); + var didNotMove = compareX === this.position.x && compareY === this.position.y; + + // save end position + this.setPosition( x, y ); + + // if did not move and not transitioning, just go to layout + if ( didNotMove && !this.isTransitioning ) { + this.layoutPosition(); + return; + } + + var transX = x - curX; + var transY = y - curY; + var transitionStyle = {}; + transitionStyle.transform = this.getTranslate( transX, transY ); + + this.transition({ + to: transitionStyle, + onTransitionEnd: { + transform: this.layoutPosition + }, + isCleaning: true + }); +}; + +proto.getTranslate = function( x, y ) { + // flip cooridinates if origin on right or bottom + var isOriginLeft = this.layout._getOption('originLeft'); + var isOriginTop = this.layout._getOption('originTop'); + x = isOriginLeft ? x : -x; + y = isOriginTop ? y : -y; + return 'translate3d(' + x + 'px, ' + y + 'px, 0)'; +}; + +// non transition + transform support +proto.goTo = function( x, y ) { + this.setPosition( x, y ); + this.layoutPosition(); +}; + +proto.moveTo = proto._transitionTo; + +proto.setPosition = function( x, y ) { + this.position.x = parseInt( x, 10 ); + this.position.y = parseInt( y, 10 ); +}; + +// ----- transition ----- // + +/** + * @param {Object} style - CSS + * @param {Function} onTransitionEnd + */ + +// non transition, just trigger callback +proto._nonTransition = function( args ) { + this.css( args.to ); + if ( args.isCleaning ) { + this._removeStyles( args.to ); + } + for ( var prop in args.onTransitionEnd ) { + args.onTransitionEnd[ prop ].call( this ); + } +}; + +/** + * proper transition + * @param {Object} args - arguments + * @param {Object} to - style to transition to + * @param {Object} from - style to start transition from + * @param {Boolean} isCleaning - removes transition styles after transition + * @param {Function} onTransitionEnd - callback + */ +proto.transition = function( args ) { + // redirect to nonTransition if no transition duration + if ( !parseFloat( this.layout.options.transitionDuration ) ) { + this._nonTransition( args ); + return; + } + + var _transition = this._transn; + // keep track of onTransitionEnd callback by css property + for ( var prop in args.onTransitionEnd ) { + _transition.onEnd[ prop ] = args.onTransitionEnd[ prop ]; + } + // keep track of properties that are transitioning + for ( prop in args.to ) { + _transition.ingProperties[ prop ] = true; + // keep track of properties to clean up when transition is done + if ( args.isCleaning ) { + _transition.clean[ prop ] = true; + } + } + + // set from styles + if ( args.from ) { + this.css( args.from ); + // force redraw. http://blog.alexmaccaw.com/css-transitions + var h = this.element.offsetHeight; + // hack for JSHint to hush about unused var + h = null; + } + // enable transition + this.enableTransition( args.to ); + // set styles that are transitioning + this.css( args.to ); + + this.isTransitioning = true; + +}; + +// dash before all cap letters, including first for +// WebkitTransform => -webkit-transform +function toDashedAll( str ) { + return str.replace( /([A-Z])/g, function( $1 ) { + return '-' + $1.toLowerCase(); + }); +} + +var transitionProps = 'opacity,' + toDashedAll( transformProperty ); + +proto.enableTransition = function(/* style */) { + // HACK changing transitionProperty during a transition + // will cause transition to jump + if ( this.isTransitioning ) { + return; + } + + // make `transition: foo, bar, baz` from style object + // HACK un-comment this when enableTransition can work + // while a transition is happening + // var transitionValues = []; + // for ( var prop in style ) { + // // dash-ify camelCased properties like WebkitTransition + // prop = vendorProperties[ prop ] || prop; + // transitionValues.push( toDashedAll( prop ) ); + // } + // munge number to millisecond, to match stagger + var duration = this.layout.options.transitionDuration; + duration = typeof duration == 'number' ? duration + 'ms' : duration; + // enable transition styles + this.css({ + transitionProperty: transitionProps, + transitionDuration: duration, + transitionDelay: this.staggerDelay || 0 + }); + // listen for transition end event + this.element.addEventListener( transitionEndEvent, this, false ); +}; + +// ----- events ----- // + +proto.onwebkitTransitionEnd = function( event ) { + this.ontransitionend( event ); +}; + +proto.onotransitionend = function( event ) { + this.ontransitionend( event ); +}; + +// properties that I munge to make my life easier +var dashedVendorProperties = { + '-webkit-transform': 'transform' +}; + +proto.ontransitionend = function( event ) { + // disregard bubbled events from children + if ( event.target !== this.element ) { + return; + } + var _transition = this._transn; + // get property name of transitioned property, convert to prefix-free + var propertyName = dashedVendorProperties[ event.propertyName ] || event.propertyName; + + // remove property that has completed transitioning + delete _transition.ingProperties[ propertyName ]; + // check if any properties are still transitioning + if ( isEmptyObj( _transition.ingProperties ) ) { + // all properties have completed transitioning + this.disableTransition(); + } + // clean style + if ( propertyName in _transition.clean ) { + // clean up style + this.element.style[ event.propertyName ] = ''; + delete _transition.clean[ propertyName ]; + } + // trigger onTransitionEnd callback + if ( propertyName in _transition.onEnd ) { + var onTransitionEnd = _transition.onEnd[ propertyName ]; + onTransitionEnd.call( this ); + delete _transition.onEnd[ propertyName ]; + } + + this.emitEvent( 'transitionEnd', [ this ] ); +}; + +proto.disableTransition = function() { + this.removeTransitionStyles(); + this.element.removeEventListener( transitionEndEvent, this, false ); + this.isTransitioning = false; +}; + +/** + * removes style property from element + * @param {Object} style +**/ +proto._removeStyles = function( style ) { + // clean up transition styles + var cleanStyle = {}; + for ( var prop in style ) { + cleanStyle[ prop ] = ''; + } + this.css( cleanStyle ); +}; + +var cleanTransitionStyle = { + transitionProperty: '', + transitionDuration: '', + transitionDelay: '' +}; + +proto.removeTransitionStyles = function() { + // remove transition + this.css( cleanTransitionStyle ); +}; + +// ----- stagger ----- // + +proto.stagger = function( delay ) { + delay = isNaN( delay ) ? 0 : delay; + this.staggerDelay = delay + 'ms'; +}; + +// ----- show/hide/remove ----- // + +// remove element from DOM +proto.removeElem = function() { + this.element.parentNode.removeChild( this.element ); + // remove display: none + this.css({ display: '' }); + this.emitEvent( 'remove', [ this ] ); +}; + +proto.remove = function() { + // just remove element if no transition support or no transition + if ( !transitionProperty || !parseFloat( this.layout.options.transitionDuration ) ) { + this.removeElem(); + return; + } + + // start transition + this.once( 'transitionEnd', function() { + this.removeElem(); + }); + this.hide(); +}; + +proto.reveal = function() { + delete this.isHidden; + // remove display: none + this.css({ display: '' }); + + var options = this.layout.options; + + var onTransitionEnd = {}; + var transitionEndProperty = this.getHideRevealTransitionEndProperty('visibleStyle'); + onTransitionEnd[ transitionEndProperty ] = this.onRevealTransitionEnd; + + this.transition({ + from: options.hiddenStyle, + to: options.visibleStyle, + isCleaning: true, + onTransitionEnd: onTransitionEnd + }); +}; + +proto.onRevealTransitionEnd = function() { + // check if still visible + // during transition, item may have been hidden + if ( !this.isHidden ) { + this.emitEvent('reveal'); + } +}; + +/** + * get style property use for hide/reveal transition end + * @param {String} styleProperty - hiddenStyle/visibleStyle + * @returns {String} + */ +proto.getHideRevealTransitionEndProperty = function( styleProperty ) { + var optionStyle = this.layout.options[ styleProperty ]; + // use opacity + if ( optionStyle.opacity ) { + return 'opacity'; + } + // get first property + for ( var prop in optionStyle ) { + return prop; + } +}; + +proto.hide = function() { + // set flag + this.isHidden = true; + // remove display: none + this.css({ display: '' }); + + var options = this.layout.options; + + var onTransitionEnd = {}; + var transitionEndProperty = this.getHideRevealTransitionEndProperty('hiddenStyle'); + onTransitionEnd[ transitionEndProperty ] = this.onHideTransitionEnd; + + this.transition({ + from: options.visibleStyle, + to: options.hiddenStyle, + // keep hidden stuff hidden + isCleaning: true, + onTransitionEnd: onTransitionEnd + }); +}; + +proto.onHideTransitionEnd = function() { + // check if still hidden + // during transition, item may have been un-hidden + if ( this.isHidden ) { + this.css({ display: 'none' }); + this.emitEvent('hide'); + } +}; + +proto.destroy = function() { + this.css({ + position: '', + left: '', + right: '', + top: '', + bottom: '', + transition: '', + transform: '' + }); +}; + +return Item; + +})); + +/*! + * Outlayer v2.1.0 + * the brains and guts of a layout library + * MIT license + */ + +( function( window, factory ) { + 'use strict'; + // universal module definition + /* jshint strict: false */ /* globals define, module, require */ + if ( typeof define == 'function' && define.amd ) { + // AMD - RequireJS + define( 'outlayer/outlayer',[ + 'ev-emitter/ev-emitter', + 'get-size/get-size', + 'fizzy-ui-utils/utils', + './item' + ], + function( EvEmitter, getSize, utils, Item ) { + return factory( window, EvEmitter, getSize, utils, Item); + } + ); + } else if ( typeof module == 'object' && module.exports ) { + // CommonJS - Browserify, Webpack + module.exports = factory( + window, + require('ev-emitter'), + require('get-size'), + require('fizzy-ui-utils'), + require('./item') + ); + } else { + // browser global + window.Outlayer = factory( + window, + window.EvEmitter, + window.getSize, + window.fizzyUIUtils, + window.Outlayer.Item + ); + } + +}( window, function factory( window, EvEmitter, getSize, utils, Item ) { +'use strict'; + +// ----- vars ----- // + +var console = window.console; +var jQuery = window.jQuery; +var noop = function() {}; + +// -------------------------- Outlayer -------------------------- // + +// globally unique identifiers +var GUID = 0; +// internal store of all Outlayer intances +var instances = {}; + + +/** + * @param {Element, String} element + * @param {Object} options + * @constructor + */ +function Outlayer( element, options ) { + var queryElement = utils.getQueryElement( element ); + if ( !queryElement ) { + if ( console ) { + console.error( 'Bad element for ' + this.constructor.namespace + + ': ' + ( queryElement || element ) ); + } + return; + } + this.element = queryElement; + // add jQuery + if ( jQuery ) { + this.$element = jQuery( this.element ); + } + + // options + this.options = utils.extend( {}, this.constructor.defaults ); + this.option( options ); + + // add id for Outlayer.getFromElement + var id = ++GUID; + this.element.outlayerGUID = id; // expando + instances[ id ] = this; // associate via id + + // kick it off + this._create(); + + var isInitLayout = this._getOption('initLayout'); + if ( isInitLayout ) { + this.layout(); + } +} + +// settings are for internal use only +Outlayer.namespace = 'outlayer'; +Outlayer.Item = Item; + +// default options +Outlayer.defaults = { + containerStyle: { + position: 'relative' + }, + initLayout: true, + originLeft: true, + originTop: true, + resize: true, + resizeContainer: true, + // item options + transitionDuration: '0.4s', + hiddenStyle: { + opacity: 0, + transform: 'scale(0.001)' + }, + visibleStyle: { + opacity: 1, + transform: 'scale(1)' + } +}; + +var proto = Outlayer.prototype; +// inherit EvEmitter +utils.extend( proto, EvEmitter.prototype ); + +/** + * set options + * @param {Object} opts + */ +proto.option = function( opts ) { + utils.extend( this.options, opts ); +}; + +/** + * get backwards compatible option value, check old name + */ +proto._getOption = function( option ) { + var oldOption = this.constructor.compatOptions[ option ]; + return oldOption && this.options[ oldOption ] !== undefined ? + this.options[ oldOption ] : this.options[ option ]; +}; + +Outlayer.compatOptions = { + // currentName: oldName + initLayout: 'isInitLayout', + horizontal: 'isHorizontal', + layoutInstant: 'isLayoutInstant', + originLeft: 'isOriginLeft', + originTop: 'isOriginTop', + resize: 'isResizeBound', + resizeContainer: 'isResizingContainer' +}; + +proto._create = function() { + // get items from children + this.reloadItems(); + // elements that affect layout, but are not laid out + this.stamps = []; + this.stamp( this.options.stamp ); + // set container style + utils.extend( this.element.style, this.options.containerStyle ); + + // bind resize method + var canBindResize = this._getOption('resize'); + if ( canBindResize ) { + this.bindResize(); + } +}; + +// goes through all children again and gets bricks in proper order +proto.reloadItems = function() { + // collection of item elements + this.items = this._itemize( this.element.children ); +}; + + +/** + * turn elements into Outlayer.Items to be used in layout + * @param {Array or NodeList or HTMLElement} elems + * @returns {Array} items - collection of new Outlayer Items + */ +proto._itemize = function( elems ) { + + var itemElems = this._filterFindItemElements( elems ); + var Item = this.constructor.Item; + + // create new Outlayer Items for collection + var items = []; + for ( var i=0; i < itemElems.length; i++ ) { + var elem = itemElems[i]; + var item = new Item( elem, this ); + items.push( item ); + } + + return items; +}; + +/** + * get item elements to be used in layout + * @param {Array or NodeList or HTMLElement} elems + * @returns {Array} items - item elements + */ +proto._filterFindItemElements = function( elems ) { + return utils.filterFindElements( elems, this.options.itemSelector ); +}; + +/** + * getter method for getting item elements + * @returns {Array} elems - collection of item elements + */ +proto.getItemElements = function() { + return this.items.map( function( item ) { + return item.element; + }); +}; + +// ----- init & layout ----- // + +/** + * lays out all items + */ +proto.layout = function() { + this._resetLayout(); + this._manageStamps(); + + // don't animate first layout + var layoutInstant = this._getOption('layoutInstant'); + var isInstant = layoutInstant !== undefined ? + layoutInstant : !this._isLayoutInited; + this.layoutItems( this.items, isInstant ); + + // flag for initalized + this._isLayoutInited = true; +}; + +// _init is alias for layout +proto._init = proto.layout; + +/** + * logic before any new layout + */ +proto._resetLayout = function() { + this.getSize(); +}; + + +proto.getSize = function() { + this.size = getSize( this.element ); +}; + +/** + * get measurement from option, for columnWidth, rowHeight, gutter + * if option is String -> get element from selector string, & get size of element + * if option is Element -> get size of element + * else use option as a number + * + * @param {String} measurement + * @param {String} size - width or height + * @private + */ +proto._getMeasurement = function( measurement, size ) { + var option = this.options[ measurement ]; + var elem; + if ( !option ) { + // default to 0 + this[ measurement ] = 0; + } else { + // use option as an element + if ( typeof option == 'string' ) { + elem = this.element.querySelector( option ); + } else if ( option instanceof HTMLElement ) { + elem = option; + } + // use size of element, if element + this[ measurement ] = elem ? getSize( elem )[ size ] : option; + } +}; + +/** + * layout a collection of item elements + * @api public + */ +proto.layoutItems = function( items, isInstant ) { + items = this._getItemsForLayout( items ); + + this._layoutItems( items, isInstant ); + + this._postLayout(); +}; + +/** + * get the items to be laid out + * you may want to skip over some items + * @param {Array} items + * @returns {Array} items + */ +proto._getItemsForLayout = function( items ) { + return items.filter( function( item ) { + return !item.isIgnored; + }); +}; + +/** + * layout items + * @param {Array} items + * @param {Boolean} isInstant + */ +proto._layoutItems = function( items, isInstant ) { + this._emitCompleteOnItems( 'layout', items ); + + if ( !items || !items.length ) { + // no items, emit event with empty array + return; + } + + var queue = []; + + items.forEach( function( item ) { + // get x/y object from method + var position = this._getItemLayoutPosition( item ); + // enqueue + position.item = item; + position.isInstant = isInstant || item.isLayoutInstant; + queue.push( position ); + }, this ); + + this._processLayoutQueue( queue ); +}; + +/** + * get item layout position + * @param {Outlayer.Item} item + * @returns {Object} x and y position + */ +proto._getItemLayoutPosition = function( /* item */ ) { + return { + x: 0, + y: 0 + }; +}; + +/** + * iterate over array and position each item + * Reason being - separating this logic prevents 'layout invalidation' + * thx @paul_irish + * @param {Array} queue + */ +proto._processLayoutQueue = function( queue ) { + this.updateStagger(); + queue.forEach( function( obj, i ) { + this._positionItem( obj.item, obj.x, obj.y, obj.isInstant, i ); + }, this ); +}; + +// set stagger from option in milliseconds number +proto.updateStagger = function() { + var stagger = this.options.stagger; + if ( stagger === null || stagger === undefined ) { + this.stagger = 0; + return; + } + this.stagger = getMilliseconds( stagger ); + return this.stagger; +}; + +/** + * Sets position of item in DOM + * @param {Outlayer.Item} item + * @param {Number} x - horizontal position + * @param {Number} y - vertical position + * @param {Boolean} isInstant - disables transitions + */ +proto._positionItem = function( item, x, y, isInstant, i ) { + if ( isInstant ) { + // if not transition, just set CSS + item.goTo( x, y ); + } else { + item.stagger( i * this.stagger ); + item.moveTo( x, y ); + } +}; + +/** + * Any logic you want to do after each layout, + * i.e. size the container + */ +proto._postLayout = function() { + this.resizeContainer(); +}; + +proto.resizeContainer = function() { + var isResizingContainer = this._getOption('resizeContainer'); + if ( !isResizingContainer ) { + return; + } + var size = this._getContainerSize(); + if ( size ) { + this._setContainerMeasure( size.width, true ); + this._setContainerMeasure( size.height, false ); + } +}; + +/** + * Sets width or height of container if returned + * @returns {Object} size + * @param {Number} width + * @param {Number} height + */ +proto._getContainerSize = noop; + +/** + * @param {Number} measure - size of width or height + * @param {Boolean} isWidth + */ +proto._setContainerMeasure = function( measure, isWidth ) { + if ( measure === undefined ) { + return; + } + + var elemSize = this.size; + // add padding and border width if border box + if ( elemSize.isBorderBox ) { + measure += isWidth ? elemSize.paddingLeft + elemSize.paddingRight + + elemSize.borderLeftWidth + elemSize.borderRightWidth : + elemSize.paddingBottom + elemSize.paddingTop + + elemSize.borderTopWidth + elemSize.borderBottomWidth; + } + + measure = Math.max( measure, 0 ); + this.element.style[ isWidth ? 'width' : 'height' ] = measure + 'px'; +}; + +/** + * emit eventComplete on a collection of items events + * @param {String} eventName + * @param {Array} items - Outlayer.Items + */ +proto._emitCompleteOnItems = function( eventName, items ) { + var _this = this; + function onComplete() { + _this.dispatchEvent( eventName + 'Complete', null, [ items ] ); + } + + var count = items.length; + if ( !items || !count ) { + onComplete(); + return; + } + + var doneCount = 0; + function tick() { + doneCount++; + if ( doneCount == count ) { + onComplete(); + } + } + + // bind callback + items.forEach( function( item ) { + item.once( eventName, tick ); + }); +}; + +/** + * emits events via EvEmitter and jQuery events + * @param {String} type - name of event + * @param {Event} event - original event + * @param {Array} args - extra arguments + */ +proto.dispatchEvent = function( type, event, args ) { + // add original event to arguments + var emitArgs = event ? [ event ].concat( args ) : args; + this.emitEvent( type, emitArgs ); + + if ( jQuery ) { + // set this.$element + this.$element = this.$element || jQuery( this.element ); + if ( event ) { + // create jQuery event + var $event = jQuery.Event( event ); + $event.type = type; + this.$element.trigger( $event, args ); + } else { + // just trigger with type if no event available + this.$element.trigger( type, args ); + } + } +}; + +// -------------------------- ignore & stamps -------------------------- // + + +/** + * keep item in collection, but do not lay it out + * ignored items do not get skipped in layout + * @param {Element} elem + */ +proto.ignore = function( elem ) { + var item = this.getItem( elem ); + if ( item ) { + item.isIgnored = true; + } +}; + +/** + * return item to layout collection + * @param {Element} elem + */ +proto.unignore = function( elem ) { + var item = this.getItem( elem ); + if ( item ) { + delete item.isIgnored; + } +}; + +/** + * adds elements to stamps + * @param {NodeList, Array, Element, or String} elems + */ +proto.stamp = function( elems ) { + elems = this._find( elems ); + if ( !elems ) { + return; + } + + this.stamps = this.stamps.concat( elems ); + // ignore + elems.forEach( this.ignore, this ); +}; + +/** + * removes elements to stamps + * @param {NodeList, Array, or Element} elems + */ +proto.unstamp = function( elems ) { + elems = this._find( elems ); + if ( !elems ){ + return; + } + + elems.forEach( function( elem ) { + // filter out removed stamp elements + utils.removeFrom( this.stamps, elem ); + this.unignore( elem ); + }, this ); +}; + +/** + * finds child elements + * @param {NodeList, Array, Element, or String} elems + * @returns {Array} elems + */ +proto._find = function( elems ) { + if ( !elems ) { + return; + } + // if string, use argument as selector string + if ( typeof elems == 'string' ) { + elems = this.element.querySelectorAll( elems ); + } + elems = utils.makeArray( elems ); + return elems; +}; + +proto._manageStamps = function() { + if ( !this.stamps || !this.stamps.length ) { + return; + } + + this._getBoundingRect(); + + this.stamps.forEach( this._manageStamp, this ); +}; + +// update boundingLeft / Top +proto._getBoundingRect = function() { + // get bounding rect for container element + var boundingRect = this.element.getBoundingClientRect(); + var size = this.size; + this._boundingRect = { + left: boundingRect.left + size.paddingLeft + size.borderLeftWidth, + top: boundingRect.top + size.paddingTop + size.borderTopWidth, + right: boundingRect.right - ( size.paddingRight + size.borderRightWidth ), + bottom: boundingRect.bottom - ( size.paddingBottom + size.borderBottomWidth ) + }; +}; + +/** + * @param {Element} stamp +**/ +proto._manageStamp = noop; + +/** + * get x/y position of element relative to container element + * @param {Element} elem + * @returns {Object} offset - has left, top, right, bottom + */ +proto._getElementOffset = function( elem ) { + var boundingRect = elem.getBoundingClientRect(); + var thisRect = this._boundingRect; + var size = getSize( elem ); + var offset = { + left: boundingRect.left - thisRect.left - size.marginLeft, + top: boundingRect.top - thisRect.top - size.marginTop, + right: thisRect.right - boundingRect.right - size.marginRight, + bottom: thisRect.bottom - boundingRect.bottom - size.marginBottom + }; + return offset; +}; + +// -------------------------- resize -------------------------- // + +// enable event handlers for listeners +// i.e. resize -> onresize +proto.handleEvent = utils.handleEvent; + +/** + * Bind layout to window resizing + */ +proto.bindResize = function() { + window.addEventListener( 'resize', this ); + this.isResizeBound = true; +}; + +/** + * Unbind layout to window resizing + */ +proto.unbindResize = function() { + window.removeEventListener( 'resize', this ); + this.isResizeBound = false; +}; + +proto.onresize = function() { + this.resize(); +}; + +utils.debounceMethod( Outlayer, 'onresize', 100 ); + +proto.resize = function() { + // don't trigger if size did not change + // or if resize was unbound. See #9 + if ( !this.isResizeBound || !this.needsResizeLayout() ) { + return; + } + + this.layout(); +}; + +/** + * check if layout is needed post layout + * @returns Boolean + */ +proto.needsResizeLayout = function() { + var size = getSize( this.element ); + // check that this.size and size are there + // IE8 triggers resize on body size change, so they might not be + var hasSizes = this.size && size; + return hasSizes && size.innerWidth !== this.size.innerWidth; +}; + +// -------------------------- methods -------------------------- // + +/** + * add items to Outlayer instance + * @param {Array or NodeList or Element} elems + * @returns {Array} items - Outlayer.Items +**/ +proto.addItems = function( elems ) { + var items = this._itemize( elems ); + // add items to collection + if ( items.length ) { + this.items = this.items.concat( items ); + } + return items; +}; + +/** + * Layout newly-appended item elements + * @param {Array or NodeList or Element} elems + */ +proto.appended = function( elems ) { + var items = this.addItems( elems ); + if ( !items.length ) { + return; + } + // layout and reveal just the new items + this.layoutItems( items, true ); + this.reveal( items ); +}; + +/** + * Layout prepended elements + * @param {Array or NodeList or Element} elems + */ +proto.prepended = function( elems ) { + var items = this._itemize( elems ); + if ( !items.length ) { + return; + } + // add items to beginning of collection + var previousItems = this.items.slice(0); + this.items = items.concat( previousItems ); + // start new layout + this._resetLayout(); + this._manageStamps(); + // layout new stuff without transition + this.layoutItems( items, true ); + this.reveal( items ); + // layout previous items + this.layoutItems( previousItems ); +}; + +/** + * reveal a collection of items + * @param {Array of Outlayer.Items} items + */ +proto.reveal = function( items ) { + this._emitCompleteOnItems( 'reveal', items ); + if ( !items || !items.length ) { + return; + } + var stagger = this.updateStagger(); + items.forEach( function( item, i ) { + item.stagger( i * stagger ); + item.reveal(); + }); +}; + +/** + * hide a collection of items + * @param {Array of Outlayer.Items} items + */ +proto.hide = function( items ) { + this._emitCompleteOnItems( 'hide', items ); + if ( !items || !items.length ) { + return; + } + var stagger = this.updateStagger(); + items.forEach( function( item, i ) { + item.stagger( i * stagger ); + item.hide(); + }); +}; + +/** + * reveal item elements + * @param {Array}, {Element}, {NodeList} items + */ +proto.revealItemElements = function( elems ) { + var items = this.getItems( elems ); + this.reveal( items ); +}; + +/** + * hide item elements + * @param {Array}, {Element}, {NodeList} items + */ +proto.hideItemElements = function( elems ) { + var items = this.getItems( elems ); + this.hide( items ); +}; + +/** + * get Outlayer.Item, given an Element + * @param {Element} elem + * @param {Function} callback + * @returns {Outlayer.Item} item + */ +proto.getItem = function( elem ) { + // loop through items to get the one that matches + for ( var i=0; i < this.items.length; i++ ) { + var item = this.items[i]; + if ( item.element == elem ) { + // return item + return item; + } + } +}; + +/** + * get collection of Outlayer.Items, given Elements + * @param {Array} elems + * @returns {Array} items - Outlayer.Items + */ +proto.getItems = function( elems ) { + elems = utils.makeArray( elems ); + var items = []; + elems.forEach( function( elem ) { + var item = this.getItem( elem ); + if ( item ) { + items.push( item ); + } + }, this ); + + return items; +}; + +/** + * remove element(s) from instance and DOM + * @param {Array or NodeList or Element} elems + */ +proto.remove = function( elems ) { + var removeItems = this.getItems( elems ); + + this._emitCompleteOnItems( 'remove', removeItems ); + + // bail if no items to remove + if ( !removeItems || !removeItems.length ) { + return; + } + + removeItems.forEach( function( item ) { + item.remove(); + // remove item from collection + utils.removeFrom( this.items, item ); + }, this ); +}; + +// ----- destroy ----- // + +// remove and disable Outlayer instance +proto.destroy = function() { + // clean up dynamic styles + var style = this.element.style; + style.height = ''; + style.position = ''; + style.width = ''; + // destroy items + this.items.forEach( function( item ) { + item.destroy(); + }); + + this.unbindResize(); + + var id = this.element.outlayerGUID; + delete instances[ id ]; // remove reference to instance by id + delete this.element.outlayerGUID; + // remove data for jQuery + if ( jQuery ) { + jQuery.removeData( this.element, this.constructor.namespace ); + } + +}; + +// -------------------------- data -------------------------- // + +/** + * get Outlayer instance from element + * @param {Element} elem + * @returns {Outlayer} + */ +Outlayer.data = function( elem ) { + elem = utils.getQueryElement( elem ); + var id = elem && elem.outlayerGUID; + return id && instances[ id ]; +}; + + +// -------------------------- create Outlayer class -------------------------- // + +/** + * create a layout class + * @param {String} namespace + */ +Outlayer.create = function( namespace, options ) { + // sub-class Outlayer + var Layout = subclass( Outlayer ); + // apply new options and compatOptions + Layout.defaults = utils.extend( {}, Outlayer.defaults ); + utils.extend( Layout.defaults, options ); + Layout.compatOptions = utils.extend( {}, Outlayer.compatOptions ); + + Layout.namespace = namespace; + + Layout.data = Outlayer.data; + + // sub-class Item + Layout.Item = subclass( Item ); + + // -------------------------- declarative -------------------------- // + + utils.htmlInit( Layout, namespace ); + + // -------------------------- jQuery bridge -------------------------- // + + // make into jQuery plugin + if ( jQuery && jQuery.bridget ) { + jQuery.bridget( namespace, Layout ); + } + + return Layout; +}; + +function subclass( Parent ) { + function SubClass() { + Parent.apply( this, arguments ); + } + + SubClass.prototype = Object.create( Parent.prototype ); + SubClass.prototype.constructor = SubClass; + + return SubClass; +} + +// ----- helpers ----- // + +// how many milliseconds are in each unit +var msUnits = { + ms: 1, + s: 1000 +}; + +// munge time-like parameter into millisecond number +// '0.4s' -> 40 +function getMilliseconds( time ) { + if ( typeof time == 'number' ) { + return time; + } + var matches = time.match( /(^\d*\.?\d*)(\w*)/ ); + var num = matches && matches[1]; + var unit = matches && matches[2]; + if ( !num.length ) { + return 0; + } + num = parseFloat( num ); + var mult = msUnits[ unit ] || 1; + return num * mult; +} + +// ----- fin ----- // + +// back in global +Outlayer.Item = Item; + +return Outlayer; + +})); + +/** + * Isotope Item +**/ + +( function( window, factory ) { + // universal module definition + /* jshint strict: false */ /*globals define, module, require */ + if ( typeof define == 'function' && define.amd ) { + // AMD + define( 'isotope/js/item',[ + 'outlayer/outlayer' + ], + factory ); + } else if ( typeof module == 'object' && module.exports ) { + // CommonJS + module.exports = factory( + require('outlayer') + ); + } else { + // browser global + window.Isotope = window.Isotope || {}; + window.Isotope.Item = factory( + window.Outlayer + ); + } + +}( window, function factory( Outlayer ) { +'use strict'; + +// -------------------------- Item -------------------------- // + +// sub-class Outlayer Item +function Item() { + Outlayer.Item.apply( this, arguments ); +} + +var proto = Item.prototype = Object.create( Outlayer.Item.prototype ); + +var _create = proto._create; +proto._create = function() { + // assign id, used for original-order sorting + this.id = this.layout.itemGUID++; + _create.call( this ); + this.sortData = {}; +}; + +proto.updateSortData = function() { + if ( this.isIgnored ) { + return; + } + // default sorters + this.sortData.id = this.id; + // for backward compatibility + this.sortData['original-order'] = this.id; + this.sortData.random = Math.random(); + // go thru getSortData obj and apply the sorters + var getSortData = this.layout.options.getSortData; + var sorters = this.layout._sorters; + for ( var key in getSortData ) { + var sorter = sorters[ key ]; + this.sortData[ key ] = sorter( this.element, this ); + } +}; + +var _destroy = proto.destroy; +proto.destroy = function() { + // call super + _destroy.apply( this, arguments ); + // reset display, #741 + this.css({ + display: '' + }); +}; + +return Item; + +})); + +/** + * Isotope LayoutMode + */ + +( function( window, factory ) { + // universal module definition + /* jshint strict: false */ /*globals define, module, require */ + if ( typeof define == 'function' && define.amd ) { + // AMD + define( 'isotope/js/layout-mode',[ + 'get-size/get-size', + 'outlayer/outlayer' + ], + factory ); + } else if ( typeof module == 'object' && module.exports ) { + // CommonJS + module.exports = factory( + require('get-size'), + require('outlayer') + ); + } else { + // browser global + window.Isotope = window.Isotope || {}; + window.Isotope.LayoutMode = factory( + window.getSize, + window.Outlayer + ); + } + +}( window, function factory( getSize, Outlayer ) { + 'use strict'; + + // layout mode class + function LayoutMode( isotope ) { + this.isotope = isotope; + // link properties + if ( isotope ) { + this.options = isotope.options[ this.namespace ]; + this.element = isotope.element; + this.items = isotope.filteredItems; + this.size = isotope.size; + } + } + + var proto = LayoutMode.prototype; + + /** + * some methods should just defer to default Outlayer method + * and reference the Isotope instance as `this` + **/ + var facadeMethods = [ + '_resetLayout', + '_getItemLayoutPosition', + '_manageStamp', + '_getContainerSize', + '_getElementOffset', + 'needsResizeLayout', + '_getOption' + ]; + + facadeMethods.forEach( function( methodName ) { + proto[ methodName ] = function() { + return Outlayer.prototype[ methodName ].apply( this.isotope, arguments ); + }; + }); + + // ----- ----- // + + // for horizontal layout modes, check vertical size + proto.needsVerticalResizeLayout = function() { + // don't trigger if size did not change + var size = getSize( this.isotope.element ); + // check that this.size and size are there + // IE8 triggers resize on body size change, so they might not be + var hasSizes = this.isotope.size && size; + return hasSizes && size.innerHeight != this.isotope.size.innerHeight; + }; + + // ----- measurements ----- // + + proto._getMeasurement = function() { + this.isotope._getMeasurement.apply( this, arguments ); + }; + + proto.getColumnWidth = function() { + this.getSegmentSize( 'column', 'Width' ); + }; + + proto.getRowHeight = function() { + this.getSegmentSize( 'row', 'Height' ); + }; + + /** + * get columnWidth or rowHeight + * segment: 'column' or 'row' + * size 'Width' or 'Height' + **/ + proto.getSegmentSize = function( segment, size ) { + var segmentName = segment + size; + var outerSize = 'outer' + size; + // columnWidth / outerWidth // rowHeight / outerHeight + this._getMeasurement( segmentName, outerSize ); + // got rowHeight or columnWidth, we can chill + if ( this[ segmentName ] ) { + return; + } + // fall back to item of first element + var firstItemSize = this.getFirstItemSize(); + this[ segmentName ] = firstItemSize && firstItemSize[ outerSize ] || + // or size of container + this.isotope.size[ 'inner' + size ]; + }; + + proto.getFirstItemSize = function() { + var firstItem = this.isotope.filteredItems[0]; + return firstItem && firstItem.element && getSize( firstItem.element ); + }; + + // ----- methods that should reference isotope ----- // + + proto.layout = function() { + this.isotope.layout.apply( this.isotope, arguments ); + }; + + proto.getSize = function() { + this.isotope.getSize(); + this.size = this.isotope.size; + }; + + // -------------------------- create -------------------------- // + + LayoutMode.modes = {}; + + LayoutMode.create = function( namespace, options ) { + + function Mode() { + LayoutMode.apply( this, arguments ); + } + + Mode.prototype = Object.create( proto ); + Mode.prototype.constructor = Mode; + + // default options + if ( options ) { + Mode.options = options; + } + + Mode.prototype.namespace = namespace; + // register in Isotope + LayoutMode.modes[ namespace ] = Mode; + + return Mode; + }; + + return LayoutMode; + +})); + +/*! + * Masonry v4.1.1 + * Cascading grid layout library + * http://masonry.desandro.com + * MIT License + * by David DeSandro + */ + +( function( window, factory ) { + // universal module definition + /* jshint strict: false */ /*globals define, module, require */ + if ( typeof define == 'function' && define.amd ) { + // AMD + define( 'masonry/masonry',[ + 'outlayer/outlayer', + 'get-size/get-size' + ], + factory ); + } else if ( typeof module == 'object' && module.exports ) { + // CommonJS + module.exports = factory( + require('outlayer'), + require('get-size') + ); + } else { + // browser global + window.Masonry = factory( + window.Outlayer, + window.getSize + ); + } + +}( window, function factory( Outlayer, getSize ) { + + + +// -------------------------- masonryDefinition -------------------------- // + + // create an Outlayer layout class + var Masonry = Outlayer.create('masonry'); + // isFitWidth -> fitWidth + Masonry.compatOptions.fitWidth = 'isFitWidth'; + + Masonry.prototype._resetLayout = function() { + this.getSize(); + this._getMeasurement( 'columnWidth', 'outerWidth' ); + this._getMeasurement( 'gutter', 'outerWidth' ); + this.measureColumns(); + + // reset column Y + this.colYs = []; + for ( var i=0; i < this.cols; i++ ) { + this.colYs.push( 0 ); + } + + this.maxY = 0; + }; + + Masonry.prototype.measureColumns = function() { + this.getContainerWidth(); + // if columnWidth is 0, default to outerWidth of first item + if ( !this.columnWidth ) { + var firstItem = this.items[0]; + var firstItemElem = firstItem && firstItem.element; + // columnWidth fall back to item of first element + this.columnWidth = firstItemElem && getSize( firstItemElem ).outerWidth || + // if first elem has no width, default to size of container + this.containerWidth; + } + + var columnWidth = this.columnWidth += this.gutter; + + // calculate columns + var containerWidth = this.containerWidth + this.gutter; + var cols = containerWidth / columnWidth; + // fix rounding errors, typically with gutters + var excess = columnWidth - containerWidth % columnWidth; + // if overshoot is less than a pixel, round up, otherwise floor it + var mathMethod = excess && excess < 1 ? 'round' : 'floor'; + cols = Math[ mathMethod ]( cols ); + this.cols = Math.max( cols, 1 ); + }; + + Masonry.prototype.getContainerWidth = function() { + // container is parent if fit width + var isFitWidth = this._getOption('fitWidth'); + var container = isFitWidth ? this.element.parentNode : this.element; + // check that this.size and size are there + // IE8 triggers resize on body size change, so they might not be + var size = getSize( container ); + this.containerWidth = size && size.innerWidth; + }; + + Masonry.prototype._getItemLayoutPosition = function( item ) { + item.getSize(); + // how many columns does this brick span + var remainder = item.size.outerWidth % this.columnWidth; + var mathMethod = remainder && remainder < 1 ? 'round' : 'ceil'; + // round if off by 1 pixel, otherwise use ceil + var colSpan = Math[ mathMethod ]( item.size.outerWidth / this.columnWidth ); + colSpan = Math.min( colSpan, this.cols ); + + var colGroup = this._getColGroup( colSpan ); + // get the minimum Y value from the columns + var minimumY = Math.min.apply( Math, colGroup ); + var shortColIndex = colGroup.indexOf( minimumY ); + + // position the brick + var position = { + x: this.columnWidth * shortColIndex, + y: minimumY + }; + + // apply setHeight to necessary columns + var setHeight = minimumY + item.size.outerHeight; + var setSpan = this.cols + 1 - colGroup.length; + for ( var i = 0; i < setSpan; i++ ) { + this.colYs[ shortColIndex + i ] = setHeight; + } + + return position; + }; + + /** + * @param {Number} colSpan - number of columns the element spans + * @returns {Array} colGroup + */ + Masonry.prototype._getColGroup = function( colSpan ) { + if ( colSpan < 2 ) { + // if brick spans only one column, use all the column Ys + return this.colYs; + } + + var colGroup = []; + // how many different places could this brick fit horizontally + var groupCount = this.cols + 1 - colSpan; + // for each group potential horizontal position + for ( var i = 0; i < groupCount; i++ ) { + // make an array of colY values for that one group + var groupColYs = this.colYs.slice( i, i + colSpan ); + // and get the max value of the array + colGroup[i] = Math.max.apply( Math, groupColYs ); + } + return colGroup; + }; + + Masonry.prototype._manageStamp = function( stamp ) { + var stampSize = getSize( stamp ); + var offset = this._getElementOffset( stamp ); + // get the columns that this stamp affects + var isOriginLeft = this._getOption('originLeft'); + var firstX = isOriginLeft ? offset.left : offset.right; + var lastX = firstX + stampSize.outerWidth; + var firstCol = Math.floor( firstX / this.columnWidth ); + firstCol = Math.max( 0, firstCol ); + var lastCol = Math.floor( lastX / this.columnWidth ); + // lastCol should not go over if multiple of columnWidth #425 + lastCol -= lastX % this.columnWidth ? 0 : 1; + lastCol = Math.min( this.cols - 1, lastCol ); + // set colYs to bottom of the stamp + + var isOriginTop = this._getOption('originTop'); + var stampMaxY = ( isOriginTop ? offset.top : offset.bottom ) + + stampSize.outerHeight; + for ( var i = firstCol; i <= lastCol; i++ ) { + this.colYs[i] = Math.max( stampMaxY, this.colYs[i] ); + } + }; + + Masonry.prototype._getContainerSize = function() { + this.maxY = Math.max.apply( Math, this.colYs ); + var size = { + height: this.maxY + }; + + if ( this._getOption('fitWidth') ) { + size.width = this._getContainerFitWidth(); + } + + return size; + }; + + Masonry.prototype._getContainerFitWidth = function() { + var unusedCols = 0; + // count unused columns + var i = this.cols; + while ( --i ) { + if ( this.colYs[i] !== 0 ) { + break; + } + unusedCols++; + } + // fit container to columns that have been used + return ( this.cols - unusedCols ) * this.columnWidth - this.gutter; + }; + + Masonry.prototype.needsResizeLayout = function() { + var previousWidth = this.containerWidth; + this.getContainerWidth(); + return previousWidth != this.containerWidth; + }; + + return Masonry; + +})); + +/*! + * Masonry layout mode + * sub-classes Masonry + * http://masonry.desandro.com + */ + +( function( window, factory ) { + // universal module definition + /* jshint strict: false */ /*globals define, module, require */ + if ( typeof define == 'function' && define.amd ) { + // AMD + define( 'isotope/js/layout-modes/masonry',[ + '../layout-mode', + 'masonry/masonry' + ], + factory ); + } else if ( typeof module == 'object' && module.exports ) { + // CommonJS + module.exports = factory( + require('../layout-mode'), + require('masonry-layout') + ); + } else { + // browser global + factory( + window.Isotope.LayoutMode, + window.Masonry + ); + } + +}( window, function factory( LayoutMode, Masonry ) { +'use strict'; + +// -------------------------- masonryDefinition -------------------------- // + + // create an Outlayer layout class + var MasonryMode = LayoutMode.create('masonry'); + + var proto = MasonryMode.prototype; + + var keepModeMethods = { + _getElementOffset: true, + layout: true, + _getMeasurement: true + }; + + // inherit Masonry prototype + for ( var method in Masonry.prototype ) { + // do not inherit mode methods + if ( !keepModeMethods[ method ] ) { + proto[ method ] = Masonry.prototype[ method ]; + } + } + + var measureColumns = proto.measureColumns; + proto.measureColumns = function() { + // set items, used if measuring first item + this.items = this.isotope.filteredItems; + measureColumns.call( this ); + }; + + // point to mode options for fitWidth + var _getOption = proto._getOption; + proto._getOption = function( option ) { + if ( option == 'fitWidth' ) { + return this.options.isFitWidth !== undefined ? + this.options.isFitWidth : this.options.fitWidth; + } + return _getOption.apply( this.isotope, arguments ); + }; + + return MasonryMode; + +})); + +/** + * fitRows layout mode + */ + +( function( window, factory ) { + // universal module definition + /* jshint strict: false */ /*globals define, module, require */ + if ( typeof define == 'function' && define.amd ) { + // AMD + define( 'isotope/js/layout-modes/fit-rows',[ + '../layout-mode' + ], + factory ); + } else if ( typeof exports == 'object' ) { + // CommonJS + module.exports = factory( + require('../layout-mode') + ); + } else { + // browser global + factory( + window.Isotope.LayoutMode + ); + } + +}( window, function factory( LayoutMode ) { +'use strict'; + +var FitRows = LayoutMode.create('fitRows'); + +var proto = FitRows.prototype; + +proto._resetLayout = function() { + this.x = 0; + this.y = 0; + this.maxY = 0; + this._getMeasurement( 'gutter', 'outerWidth' ); +}; + +proto._getItemLayoutPosition = function( item ) { + item.getSize(); + + var itemWidth = item.size.outerWidth + this.gutter; + // if this element cannot fit in the current row + var containerWidth = this.isotope.size.innerWidth + this.gutter; + if ( this.x !== 0 && itemWidth + this.x > containerWidth ) { + this.x = 0; + this.y = this.maxY; + } + + var position = { + x: this.x, + y: this.y + }; + + this.maxY = Math.max( this.maxY, this.y + item.size.outerHeight ); + this.x += itemWidth; + + return position; +}; + +proto._getContainerSize = function() { + return { height: this.maxY }; +}; + +return FitRows; + +})); + +/** + * vertical layout mode + */ + +( function( window, factory ) { + // universal module definition + /* jshint strict: false */ /*globals define, module, require */ + if ( typeof define == 'function' && define.amd ) { + // AMD + define( 'isotope/js/layout-modes/vertical',[ + '../layout-mode' + ], + factory ); + } else if ( typeof module == 'object' && module.exports ) { + // CommonJS + module.exports = factory( + require('../layout-mode') + ); + } else { + // browser global + factory( + window.Isotope.LayoutMode + ); + } + +}( window, function factory( LayoutMode ) { +'use strict'; + +var Vertical = LayoutMode.create( 'vertical', { + horizontalAlignment: 0 +}); + +var proto = Vertical.prototype; + +proto._resetLayout = function() { + this.y = 0; +}; + +proto._getItemLayoutPosition = function( item ) { + item.getSize(); + var x = ( this.isotope.size.innerWidth - item.size.outerWidth ) * + this.options.horizontalAlignment; + var y = this.y; + this.y += item.size.outerHeight; + return { x: x, y: y }; +}; + +proto._getContainerSize = function() { + return { height: this.y }; +}; + +return Vertical; + +})); + +/*! + * Isotope v3.0.3 + * + * Licensed GPLv3 for open source use + * or Isotope Commercial License for commercial use + * + * http://isotope.metafizzy.co + * Copyright 2017 Metafizzy + */ + +( function( window, factory ) { + // universal module definition + /* jshint strict: false */ /*globals define, module, require */ + if ( typeof define == 'function' && define.amd ) { + // AMD + define( [ + 'outlayer/outlayer', + 'get-size/get-size', + 'desandro-matches-selector/matches-selector', + 'fizzy-ui-utils/utils', + 'isotope/js/item', + 'isotope/js/layout-mode', + // include default layout modes + 'isotope/js/layout-modes/masonry', + 'isotope/js/layout-modes/fit-rows', + 'isotope/js/layout-modes/vertical' + ], + function( Outlayer, getSize, matchesSelector, utils, Item, LayoutMode ) { + return factory( window, Outlayer, getSize, matchesSelector, utils, Item, LayoutMode ); + }); + } else if ( typeof module == 'object' && module.exports ) { + // CommonJS + module.exports = factory( + window, + require('outlayer'), + require('get-size'), + require('desandro-matches-selector'), + require('fizzy-ui-utils'), + require('isotope/js/item'), + require('isotope/js/layout-mode'), + // include default layout modes + require('isotope/js/layout-modes/masonry'), + require('isotope/js/layout-modes/fit-rows'), + require('isotope/js/layout-modes/vertical') + ); + } else { + // browser global + window.Isotope = factory( + window, + window.Outlayer, + window.getSize, + window.matchesSelector, + window.fizzyUIUtils, + window.Isotope.Item, + window.Isotope.LayoutMode + ); + } + +}( window, function factory( window, Outlayer, getSize, matchesSelector, utils, + Item, LayoutMode ) { + + + +// -------------------------- vars -------------------------- // + +var jQuery = window.jQuery; + +// -------------------------- helpers -------------------------- // + +var trim = String.prototype.trim ? + function( str ) { + return str.trim(); + } : + function( str ) { + return str.replace( /^\s+|\s+$/g, '' ); + }; + +// -------------------------- isotopeDefinition -------------------------- // + + // create an Outlayer layout class + var Isotope = Outlayer.create( 'isotope', { + layoutMode: 'masonry', + isJQueryFiltering: true, + sortAscending: true + }); + + Isotope.Item = Item; + Isotope.LayoutMode = LayoutMode; + + var proto = Isotope.prototype; + + proto._create = function() { + this.itemGUID = 0; + // functions that sort items + this._sorters = {}; + this._getSorters(); + // call super + Outlayer.prototype._create.call( this ); + + // create layout modes + this.modes = {}; + // start filteredItems with all items + this.filteredItems = this.items; + // keep of track of sortBys + this.sortHistory = [ 'original-order' ]; + // create from registered layout modes + for ( var name in LayoutMode.modes ) { + this._initLayoutMode( name ); + } + }; + + proto.reloadItems = function() { + // reset item ID counter + this.itemGUID = 0; + // call super + Outlayer.prototype.reloadItems.call( this ); + }; + + proto._itemize = function() { + var items = Outlayer.prototype._itemize.apply( this, arguments ); + // assign ID for original-order + for ( var i=0; i < items.length; i++ ) { + var item = items[i]; + item.id = this.itemGUID++; + } + this._updateItemsSortData( items ); + return items; + }; + + + // -------------------------- layout -------------------------- // + + proto._initLayoutMode = function( name ) { + var Mode = LayoutMode.modes[ name ]; + // set mode options + // HACK extend initial options, back-fill in default options + var initialOpts = this.options[ name ] || {}; + this.options[ name ] = Mode.options ? + utils.extend( Mode.options, initialOpts ) : initialOpts; + // init layout mode instance + this.modes[ name ] = new Mode( this ); + }; + + + proto.layout = function() { + // if first time doing layout, do all magic + if ( !this._isLayoutInited && this._getOption('initLayout') ) { + this.arrange(); + return; + } + this._layout(); + }; + + // private method to be used in layout() & magic() + proto._layout = function() { + // don't animate first layout + var isInstant = this._getIsInstant(); + // layout flow + this._resetLayout(); + this._manageStamps(); + this.layoutItems( this.filteredItems, isInstant ); + + // flag for initalized + this._isLayoutInited = true; + }; + + // filter + sort + layout + proto.arrange = function( opts ) { + // set any options pass + this.option( opts ); + this._getIsInstant(); + // filter, sort, and layout + + // filter + var filtered = this._filter( this.items ); + this.filteredItems = filtered.matches; + + this._bindArrangeComplete(); + + if ( this._isInstant ) { + this._noTransition( this._hideReveal, [ filtered ] ); + } else { + this._hideReveal( filtered ); + } + + this._sort(); + this._layout(); + }; + // alias to _init for main plugin method + proto._init = proto.arrange; + + proto._hideReveal = function( filtered ) { + this.reveal( filtered.needReveal ); + this.hide( filtered.needHide ); + }; + + // HACK + // Don't animate/transition first layout + // Or don't animate/transition other layouts + proto._getIsInstant = function() { + var isLayoutInstant = this._getOption('layoutInstant'); + var isInstant = isLayoutInstant !== undefined ? isLayoutInstant : + !this._isLayoutInited; + this._isInstant = isInstant; + return isInstant; + }; + + // listen for layoutComplete, hideComplete and revealComplete + // to trigger arrangeComplete + proto._bindArrangeComplete = function() { + // listen for 3 events to trigger arrangeComplete + var isLayoutComplete, isHideComplete, isRevealComplete; + var _this = this; + function arrangeParallelCallback() { + if ( isLayoutComplete && isHideComplete && isRevealComplete ) { + _this.dispatchEvent( 'arrangeComplete', null, [ _this.filteredItems ] ); + } + } + this.once( 'layoutComplete', function() { + isLayoutComplete = true; + arrangeParallelCallback(); + }); + this.once( 'hideComplete', function() { + isHideComplete = true; + arrangeParallelCallback(); + }); + this.once( 'revealComplete', function() { + isRevealComplete = true; + arrangeParallelCallback(); + }); + }; + + // -------------------------- filter -------------------------- // + + proto._filter = function( items ) { + var filter = this.options.filter; + filter = filter || '*'; + var matches = []; + var hiddenMatched = []; + var visibleUnmatched = []; + + var test = this._getFilterTest( filter ); + + // test each item + for ( var i=0; i < items.length; i++ ) { + var item = items[i]; + if ( item.isIgnored ) { + continue; + } + // add item to either matched or unmatched group + var isMatched = test( item ); + // item.isFilterMatched = isMatched; + // add to matches if its a match + if ( isMatched ) { + matches.push( item ); + } + // add to additional group if item needs to be hidden or revealed + if ( isMatched && item.isHidden ) { + hiddenMatched.push( item ); + } else if ( !isMatched && !item.isHidden ) { + visibleUnmatched.push( item ); + } + } + + // return collections of items to be manipulated + return { + matches: matches, + needReveal: hiddenMatched, + needHide: visibleUnmatched + }; + }; + + // get a jQuery, function, or a matchesSelector test given the filter + proto._getFilterTest = function( filter ) { + if ( jQuery && this.options.isJQueryFiltering ) { + // use jQuery + return function( item ) { + return jQuery( item.element ).is( filter ); + }; + } + if ( typeof filter == 'function' ) { + // use filter as function + return function( item ) { + return filter( item.element ); + }; + } + // default, use filter as selector string + return function( item ) { + return matchesSelector( item.element, filter ); + }; + }; + + // -------------------------- sorting -------------------------- // + + /** + * @params {Array} elems + * @public + */ + proto.updateSortData = function( elems ) { + // get items + var items; + if ( elems ) { + elems = utils.makeArray( elems ); + items = this.getItems( elems ); + } else { + // update all items if no elems provided + items = this.items; + } + + this._getSorters(); + this._updateItemsSortData( items ); + }; + + proto._getSorters = function() { + var getSortData = this.options.getSortData; + for ( var key in getSortData ) { + var sorter = getSortData[ key ]; + this._sorters[ key ] = mungeSorter( sorter ); + } + }; + + /** + * @params {Array} items - of Isotope.Items + * @private + */ + proto._updateItemsSortData = function( items ) { + // do not update if no items + var len = items && items.length; + + for ( var i=0; len && i < len; i++ ) { + var item = items[i]; + item.updateSortData(); + } + }; + + // ----- munge sorter ----- // + + // encapsulate this, as we just need mungeSorter + // other functions in here are just for munging + var mungeSorter = ( function() { + // add a magic layer to sorters for convienent shorthands + // `.foo-bar` will use the text of .foo-bar querySelector + // `[foo-bar]` will use attribute + // you can also add parser + // `.foo-bar parseInt` will parse that as a number + function mungeSorter( sorter ) { + // if not a string, return function or whatever it is + if ( typeof sorter != 'string' ) { + return sorter; + } + // parse the sorter string + var args = trim( sorter ).split(' '); + var query = args[0]; + // check if query looks like [an-attribute] + var attrMatch = query.match( /^\[(.+)\]$/ ); + var attr = attrMatch && attrMatch[1]; + var getValue = getValueGetter( attr, query ); + // use second argument as a parser + var parser = Isotope.sortDataParsers[ args[1] ]; + // parse the value, if there was a parser + sorter = parser ? function( elem ) { + return elem && parser( getValue( elem ) ); + } : + // otherwise just return value + function( elem ) { + return elem && getValue( elem ); + }; + + return sorter; + } + + // get an attribute getter, or get text of the querySelector + function getValueGetter( attr, query ) { + // if query looks like [foo-bar], get attribute + if ( attr ) { + return function getAttribute( elem ) { + return elem.getAttribute( attr ); + }; + } + + // otherwise, assume its a querySelector, and get its text + return function getChildText( elem ) { + var child = elem.querySelector( query ); + return child && child.textContent; + }; + } + + return mungeSorter; + })(); + + // parsers used in getSortData shortcut strings + Isotope.sortDataParsers = { + 'parseInt': function( val ) { + return parseInt( val, 10 ); + }, + 'parseFloat': function( val ) { + return parseFloat( val ); + } + }; + + // ----- sort method ----- // + + // sort filteredItem order + proto._sort = function() { + if ( !this.options.sortBy ) { + return; + } + // keep track of sortBy History + var sortBys = utils.makeArray( this.options.sortBy ); + if ( !this._getIsSameSortBy( sortBys ) ) { + // concat all sortBy and sortHistory, add to front, oldest goes in last + this.sortHistory = sortBys.concat( this.sortHistory ); + } + // sort magic + var itemSorter = getItemSorter( this.sortHistory, this.options.sortAscending ); + this.filteredItems.sort( itemSorter ); + }; + + // check if sortBys is same as start of sortHistory + proto._getIsSameSortBy = function( sortBys ) { + for ( var i=0; i < sortBys.length; i++ ) { + if ( sortBys[i] != this.sortHistory[i] ) { + return false; + } + } + return true; + }; + + // returns a function used for sorting + function getItemSorter( sortBys, sortAsc ) { + return function sorter( itemA, itemB ) { + // cycle through all sortKeys + for ( var i = 0; i < sortBys.length; i++ ) { + var sortBy = sortBys[i]; + var a = itemA.sortData[ sortBy ]; + var b = itemB.sortData[ sortBy ]; + if ( a > b || a < b ) { + // if sortAsc is an object, use the value given the sortBy key + var isAscending = sortAsc[ sortBy ] !== undefined ? sortAsc[ sortBy ] : sortAsc; + var direction = isAscending ? 1 : -1; + return ( a > b ? 1 : -1 ) * direction; + } + } + return 0; + }; + } + + // -------------------------- methods -------------------------- // + + // get layout mode + proto._mode = function() { + var layoutMode = this.options.layoutMode; + var mode = this.modes[ layoutMode ]; + if ( !mode ) { + // TODO console.error + throw new Error( 'No layout mode: ' + layoutMode ); + } + // HACK sync mode's options + // any options set after init for layout mode need to be synced + mode.options = this.options[ layoutMode ]; + return mode; + }; + + proto._resetLayout = function() { + // trigger original reset layout + Outlayer.prototype._resetLayout.call( this ); + this._mode()._resetLayout(); + }; + + proto._getItemLayoutPosition = function( item ) { + return this._mode()._getItemLayoutPosition( item ); + }; + + proto._manageStamp = function( stamp ) { + this._mode()._manageStamp( stamp ); + }; + + proto._getContainerSize = function() { + return this._mode()._getContainerSize(); + }; + + proto.needsResizeLayout = function() { + return this._mode().needsResizeLayout(); + }; + + // -------------------------- adding & removing -------------------------- // + + // HEADS UP overwrites default Outlayer appended + proto.appended = function( elems ) { + var items = this.addItems( elems ); + if ( !items.length ) { + return; + } + // filter, layout, reveal new items + var filteredItems = this._filterRevealAdded( items ); + // add to filteredItems + this.filteredItems = this.filteredItems.concat( filteredItems ); + }; + + // HEADS UP overwrites default Outlayer prepended + proto.prepended = function( elems ) { + var items = this._itemize( elems ); + if ( !items.length ) { + return; + } + // start new layout + this._resetLayout(); + this._manageStamps(); + // filter, layout, reveal new items + var filteredItems = this._filterRevealAdded( items ); + // layout previous items + this.layoutItems( this.filteredItems ); + // add to items and filteredItems + this.filteredItems = filteredItems.concat( this.filteredItems ); + this.items = items.concat( this.items ); + }; + + proto._filterRevealAdded = function( items ) { + var filtered = this._filter( items ); + this.hide( filtered.needHide ); + // reveal all new items + this.reveal( filtered.matches ); + // layout new items, no transition + this.layoutItems( filtered.matches, true ); + return filtered.matches; + }; + + /** + * Filter, sort, and layout newly-appended item elements + * @param {Array or NodeList or Element} elems + */ + proto.insert = function( elems ) { + var items = this.addItems( elems ); + if ( !items.length ) { + return; + } + // append item elements + var i, item; + var len = items.length; + for ( i=0; i < len; i++ ) { + item = items[i]; + this.element.appendChild( item.element ); + } + // filter new stuff + var filteredInsertItems = this._filter( items ).matches; + // set flag + for ( i=0; i < len; i++ ) { + items[i].isLayoutInstant = true; + } + this.arrange(); + // reset flag + for ( i=0; i < len; i++ ) { + delete items[i].isLayoutInstant; + } + this.reveal( filteredInsertItems ); + }; + + var _remove = proto.remove; + proto.remove = function( elems ) { + elems = utils.makeArray( elems ); + var removeItems = this.getItems( elems ); + // do regular thing + _remove.call( this, elems ); + // bail if no items to remove + var len = removeItems && removeItems.length; + // remove elems from filteredItems + for ( var i=0; len && i < len; i++ ) { + var item = removeItems[i]; + // remove item from collection + utils.removeFrom( this.filteredItems, item ); + } + }; + + proto.shuffle = function() { + // update random sortData + for ( var i=0; i < this.items.length; i++ ) { + var item = this.items[i]; + item.sortData.random = Math.random(); + } + this.options.sortBy = 'random'; + this._sort(); + this._layout(); + }; + + /** + * trigger fn without transition + * kind of hacky to have this in the first place + * @param {Function} fn + * @param {Array} args + * @returns ret + * @private + */ + proto._noTransition = function( fn, args ) { + // save transitionDuration before disabling + var transitionDuration = this.options.transitionDuration; + // disable transition + this.options.transitionDuration = 0; + // do it + var returnValue = fn.apply( this, args ); + // re-enable transition for reveal + this.options.transitionDuration = transitionDuration; + return returnValue; + }; + + // ----- helper methods ----- // + + /** + * getter method for getting filtered item elements + * @returns {Array} elems - collection of item elements + */ + proto.getFilteredItemElements = function() { + return this.filteredItems.map( function( item ) { + return item.element; + }); + }; + + // ----- ----- // + + return Isotope; + +})); diff --git a/assets/scripts/menus.js b/assets/scripts/menus.js new file mode 100644 index 0000000..21b1df4 --- /dev/null +++ b/assets/scripts/menus.js @@ -0,0 +1,419 @@ +/** + * This script adds the accessibility-ready responsive menus Genesis Framework child themes. + * + * @author StudioPress + * @link https://github.com/copyblogger/responsive-menus + * @version 1.1.3 + * @license GPL-2.0+ + */ + +( function ( document, $, undefined ) { + + 'use strict'; + + $('body').removeClass('no-js'); + + var genesisMenuParams = typeof genesis_responsive_menu === 'undefined' ? '' : genesis_responsive_menu, + genesisMenusUnchecked = genesisMenuParams.menuClasses, + genesisMenus = {}, + menusToCombine = []; + + /** + * Validate the menus passed by the theme with what's being loaded on the page, + * and pass the new and accurate information to our new data. + * @param {genesisMenusUnchecked} Raw data from the localized script in the theme. + * @return {array} genesisMenus array gets populated with updated data. + * @return {array} menusToCombine array gets populated with relevant data. + */ + $.each( genesisMenusUnchecked, function( group ) { + + // Mirror our group object to populate. + genesisMenus[group] = []; + + // Loop through each instance of the specified menu on the page. + $.each( this, function( key, value ) { + + var menuString = value, + $menu = $(value); + + // If there is more than one instance, append the index and update array. + if ( $menu.length > 1 ) { + + $.each( $menu, function( key, value ) { + + var newString = menuString + '-' + key; + + $(this).addClass( newString.replace('.','') ); + + genesisMenus[group].push( newString ); + + if ( 'combine' === group ) { + menusToCombine.push( newString ); + } + + }); + + } else if ( $menu.length == 1 ) { + + genesisMenus[group].push( menuString ); + + if ( 'combine' === group ) { + menusToCombine.push( menuString ); + } + + } + + }); + + }); + + // Make sure there is something to use for the 'others' array. + if ( typeof genesisMenus.others == 'undefined' ) { + genesisMenus.others = []; + } + + // If there's only one menu on the page for combining, push it to the 'others' array and nullify our 'combine' variable. + if ( menusToCombine.length == 1 ) { + genesisMenus.others.push( menusToCombine[0] ); + genesisMenus.combine = null; + menusToCombine = null; + } + + var genesisMenu = {}, + mainMenuButtonClass = 'menu-toggle', + subMenuButtonClass = 'sub-menu-toggle', + responsiveMenuClass = 'genesis-responsive-menu'; + + // Initialize. + genesisMenu.init = function() { + + // Exit early if there are no menus to do anything. + if ( $( _getAllMenusArray() ).length == 0 ) { + return; + } + + var menuIconClass = typeof genesisMenuParams.menuIconClass !== 'undefined' ? genesisMenuParams.menuIconClass : 'dashicons-before dashicons-menu', + subMenuIconClass = typeof genesisMenuParams.subMenuIconClass !== 'undefined' ? genesisMenuParams.subMenuIconClass : 'dashicons-before dashicons-arrow-down-alt2', + toggleButtons = { + menu : $( ''),o(".front-page-4 .wp-video").prepend('
'),o(".show-video").on("click",function(){o(".widget_media_video").toggleClass("visible")}),o(".hide-video, .before").on("click",function(){o(".front-page-4 .widget_media_video").toggleClass("visible")}),o(".footer-widgets .enews form").append(''),o(".site-footer > .wrap").append(''),o("html").attr("id","top"),o('a[href*="#"]').not('[href="#"]').not('[href="#0"]').not('[href*="#tab-"]').click(function(e){if(location.pathname.replace(/^\//,"")==this.pathname.replace(/^\//,"")&&location.hostname==this.hostname){var t=o(this.hash);(t=t.length?t:o("[name="+this.hash.slice(1)+"]")).length&&(e.preventDefault(),o("html, body").animate({scrollTop:t.offset().top},1e3,function(){var e=o(t);if(e.focus(),e.is(":focus"))return!1;e.attr("tabindex","-1"),e.focus()}))}})}(document,jQuery); \ No newline at end of file diff --git a/assets/scripts/min/customize.min.js b/assets/scripts/min/customize.min.js new file mode 100644 index 0000000..be5a228 --- /dev/null +++ b/assets/scripts/min/customize.min.js @@ -0,0 +1 @@ +function acp_get_alpha_value_from_color(a){var o;return(a=a.replace(/ /g,"")).match(/rgba\(\d+\,\d+\,\d+\,([^\)]+)\)/)?(o=100*parseFloat(a.match(/rgba\(\d+\,\d+\,\d+\,([^\)]+)\)/)[1]).toFixed(2),o=parseInt(o)):o=100,o}function acp_update_alpha_value_on_color_control(a,o,l,e){var t,r,i;t=o.data("a8cIris"),r=o.data("wpWpColorPicker"),t._color._alpha=a,i=t._color.toString(),o.val(i),r.toggler.css({"background-color":i}),e&&acp_update_alpha_value_on_alpha_slider(a,l),o.wpColorPicker("color",i)}function acp_update_alpha_value_on_alpha_slider(a,o){o.slider("value",a),o.find(".ui-slider-handle").text(a.toString())}Color.prototype.toString=function(a){if("no-alpha"==a)return this.toCSS("rgba","1").replace(/\s+/g,"");if(1>this._alpha)return this.toCSS("rgba",this._alpha).replace(/\s+/g,"");var o=parseInt(this._color,10).toString(16);if(this.error)return"";if(o.length<6)for(var l=6-o.length-1;l>=0;l--)o="0"+o;return"#"+o},jQuery(document).ready(function(a){a(".alpha-color-control").each(function(){var o,l,e,t,r,i,c,n,p;o=a(this),l=o.val().replace(/\s+/g,""),e=o.attr("data-palette"),t=o.attr("data-show-opacity"),r=o.attr("data-default-color"),i={change:function(a,l){var e,t,i;e=o.attr("data-customize-setting-link"),t=o.wpColorPicker("color"),r==t&&(i=acp_get_alpha_value_from_color(t),n.find(".ui-slider-handle").text(i)),wp.customize(e,function(a){a.set(t)}),c.find(".transparency").css("background-color",l.color.toString("no-alpha"))},palettes:-1!==e.indexOf("|")?e.split("|"):"false"!=e},o.wpColorPicker(i),c=o.parents(".wp-picker-container:first"),a('
').appendTo(c.find(".wp-picker-holder")),n=c.find(".alpha-slider"),p={create:function(o,e){var t=a(this).slider("value");a(this).find(".ui-slider-handle").text(t),a(this).siblings(".transparency ").css("background-color",l)},value:acp_get_alpha_value_from_color(l),range:"max",step:1,min:0,max:100,animate:300},n.slider(p),"true"==t&&n.find(".ui-slider-handle").addClass("show-opacity"),c.find(".min-click-zone").on("click",function(){acp_update_alpha_value_on_color_control(0,o,n,!0)}),c.find(".max-click-zone").on("click",function(){acp_update_alpha_value_on_color_control(100,o,n,!0)}),c.find(".iris-palette").on("click",function(){var l,e;acp_update_alpha_value_on_alpha_slider(e=acp_get_alpha_value_from_color(l=a(this).css("background-color")),n),100!=e&&(l=l.replace(/[^,]+(?=\))/,(e/100).toFixed(2))),o.wpColorPicker("color",l)}),c.find(".button.wp-picker-clear").on("click",function(){var a=o.attr("data-customize-setting-link");o.wpColorPicker("color","#ffffff"),wp.customize(a,function(a){a.set("")}),acp_update_alpha_value_on_alpha_slider(100,n)}),c.find(".button.wp-picker-default").on("click",function(){acp_update_alpha_value_on_alpha_slider(acp_get_alpha_value_from_color(r),n)}),o.on("input",function(){acp_update_alpha_value_on_alpha_slider(acp_get_alpha_value_from_color(a(this).val()),n)}),n.slider().on("slide",function(l,e){acp_update_alpha_value_on_color_control(parseFloat(e.value)/100,o,n,!1),a(this).find(".ui-slider-handle").text(e.value)})})}); \ No newline at end of file diff --git a/assets/scripts/min/isotope-init.min.js b/assets/scripts/min/isotope-init.min.js new file mode 100644 index 0000000..cdd9258 --- /dev/null +++ b/assets/scripts/min/isotope-init.min.js @@ -0,0 +1 @@ +jQuery(function(t){t(window).load(function(){function o(){t(".portfolio-content").isotope({itemSelector:".portfolio-item",masonry:{itemSelector:".portfolio-item",columnWidth:".portfolio-item",gutter:20}})}o(),t(".filter a").click(function(){var o=t(this).attr("data-filter");return t(".portfolio-content").isotope({filter:o}),t(this).parent().find("a").removeClass("active"),t(this).addClass("active"),!1}),t.browser.msie&&8==+t.browser.version?document.body.onresize=function(){o()}:t(window).resize(function(){o()}),window.addEventListener("orientationchange",function(){o()})})}); \ No newline at end of file diff --git a/assets/scripts/min/isotope.pkgd.min.js b/assets/scripts/min/isotope.pkgd.min.js new file mode 100644 index 0000000..0e8882c --- /dev/null +++ b/assets/scripts/min/isotope.pkgd.min.js @@ -0,0 +1 @@ +!function(t,e){"function"==typeof define&&define.amd?define("jquery-bridget/jquery-bridget",["jquery"],function(i){return e(t,i)}):"object"==typeof module&&module.exports?module.exports=e(t,require("jquery")):t.jQueryBridget=e(t,t.jQuery)}(window,function(t,e){"use strict";function i(i,s,a){function u(t,e,n){var o,s="$()."+i+'("'+e+'")';return t.each(function(t,u){var h=a.data(u,i);if(h){var d=h[e];if(d&&"_"!=e.charAt(0)){var l=d.apply(h,n);o=void 0===o?l:o}else r(s+" is not a valid method")}else r(i+" not initialized. Cannot call methods, i.e. "+s)}),void 0!==o?o:t}function h(t,e){t.each(function(t,n){var o=a.data(n,i);o?(o.option(e),o._init()):(o=new s(n,e),a.data(n,i,o))})}(a=a||e||t.jQuery)&&(s.prototype.option||(s.prototype.option=function(t){a.isPlainObject(t)&&(this.options=a.extend(!0,this.options,t))}),a.fn[i]=function(t){return"string"==typeof t?u(this,t,o.call(arguments,1)):(h(this,t),this)},n(a))}function n(t){!t||t&&t.bridget||(t.bridget=i)}var o=Array.prototype.slice,s=t.console,r=void 0===s?function(){}:function(t){s.error(t)};return n(e||t.jQuery),i}),function(t,e){"function"==typeof define&&define.amd?define("ev-emitter/ev-emitter",e):"object"==typeof module&&module.exports?module.exports=e():t.EvEmitter=e()}("undefined"!=typeof window?window:this,function(){function t(){}var e=t.prototype;return e.on=function(t,e){if(t&&e){var i=this._events=this._events||{},n=i[t]=i[t]||[];return-1==n.indexOf(e)&&n.push(e),this}},e.once=function(t,e){if(t&&e){this.on(t,e);var i=this._onceEvents=this._onceEvents||{};return(i[t]=i[t]||{})[e]=!0,this}},e.off=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){var n=i.indexOf(e);return-1!=n&&i.splice(n,1),this}},e.emitEvent=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){var n=0,o=i[n];e=e||[];for(var s=this._onceEvents&&this._onceEvents[t];o;){var r=s&&s[o];r&&(this.off(t,o),delete s[o]),o.apply(this,e),o=i[n+=r?0:1]}return this}},t}),function(t,e){"use strict";"function"==typeof define&&define.amd?define("get-size/get-size",[],function(){return e()}):"object"==typeof module&&module.exports?module.exports=e():t.getSize=e()}(window,function(){"use strict";function t(t){var e=parseFloat(t);return-1==t.indexOf("%")&&!isNaN(e)&&e}function e(){for(var t={width:0,height:0,innerWidth:0,innerHeight:0,outerWidth:0,outerHeight:0},e=0;e