From f22b2871bfcf146827868c82f2b8d7da632f6905 Mon Sep 17 00:00:00 2001 From: yihua <2982841514@qq.com> Date: Tue, 7 Jan 2025 11:30:54 +0800 Subject: [PATCH 01/13] 'delete' --- .htaccess | 0 404.html | 91 - README.md | 70 - api/api.php | 35 - api/cpproxy.php | 514 ----- assets/404/css/404.css | 91 - assets/404/css/img/404-bg.png | Bin 45047 -> 0 bytes assets/404/css/img/404.png | Bin 1584 -> 0 bytes assets/404/css/reset.css | 43 - assets/Message/css/message.css | 218 -- assets/Message/index.html | 106 - assets/Message/js/message.js | 407 ---- assets/Message/js/message.min.js | 1 - assets/Message/readme.md | 111 - assets/css/app.min.css | 47 - assets/css/bootstrap.min.css | 5 - assets/css/htmleaf-demo.css | 260 --- assets/css/icons.min.css | 2 - assets/css/style_PC.css | 18 - assets/css/style_Phone.css | 3 - assets/font/elephant.ttf | Bin 44820 -> 0 bytes assets/font/iconfont.eot | Bin 39620 -> 0 bytes assets/font/iconfont.svg | 462 ---- assets/font/iconfont.ttf | Bin 39444 -> 0 bytes assets/font/iconfont.woff | Bin 25996 -> 0 bytes assets/fonts/Nunito-Bold.woff | Bin 51940 -> 0 bytes assets/fonts/Nunito-Regular.woff | Bin 50968 -> 0 bytes assets/fonts/Nunito-SemiBold.woff | Bin 51528 -> 0 bytes assets/fonts/dripicons-v2.woff | Bin 26004 -> 0 bytes .../fonts/materialdesignicons-webfont.woff2 | Bin 182496 -> 0 bytes assets/fonts/names.otf | Bin 1026980 -> 0 bytes assets/fonts/summernote.ttf | Bin 8896 -> 0 bytes assets/fonts/summernote.woff | Bin 15692 -> 0 bytes assets/fonts/title.otf | Bin 1018320 -> 0 bytes assets/img/360chrome.png | Bin 3696 -> 0 bytes .../img/735c8b5953ac11b623bdebcb45fe9db2.jpg | Bin 36233 -> 0 bytes assets/img/HTB16qvwXvjsK1Rjy1Xa762ispXab.png | Bin 726 -> 0 bytes assets/img/HTB1FrrtXzDuK1Rjy1zj762raFXa7.png | Bin 9168 -> 0 bytes assets/img/HTB1JBTqXEvrK1RjSszf760JNVXae.png | Bin 925 -> 0 bytes assets/img/HTB1idjsXzzuK1Rjy0Fp761EpFXar.png | Bin 9638 -> 0 bytes assets/img/Mbrowser.png | Bin 15581 -> 0 bytes assets/img/UCMobile.png | Bin 2388 -> 0 bytes .../img/a15b4afegy1fkvkgmn05sj20ha0egdgt.png | Bin 46521 -> 0 bytes assets/img/ali.jpg | Bin 12051 -> 0 bytes assets/img/alipay.jpg | Bin 41246 -> 0 bytes assets/img/background.jpg | Bin 13583 -> 0 bytes assets/img/bj.jpg | Bin 170247 -> 0 bytes assets/img/browser.png | Bin 4287 -> 0 bytes assets/img/chrome.png | Bin 29906 -> 0 bytes assets/img/mtt.png | Bin 6941 -> 0 bytes assets/img/one-by-one.gif | Bin 155230 -> 0 bytes assets/img/taobao.png | Bin 24543 -> 0 bytes "assets/img/\345\212\240\350\275\275.png" | Bin 5480 -> 0 bytes assets/js/app.min.js | 2 - assets/js/echarts.min.js | 45 - assets/js/index.js | 297 --- assets/js/jquery-3.5.1.min.js | 2 - assets/js/jquery.cookie.min.js | 2 - assets/js/sweetalert.min.js | 1788 ---------------- assets/js/xss.js | 1665 --------------- assets/layui/css/admin.css | 397 ---- assets/layui/css/home.css | 165 -- assets/layui/css/layui.css | 1 - assets/layui/css/logon.css | 134 -- assets/layui/css/modules/code.css | 1 - .../css/modules/laydate/default/laydate.css | 1 - .../css/modules/layer/default/icon-ext.png | Bin 5911 -> 0 bytes .../layui/css/modules/layer/default/icon.png | Bin 11493 -> 0 bytes .../layui/css/modules/layer/default/layer.css | 1 - .../css/modules/layer/default/loading-0.gif | Bin 5793 -> 0 bytes .../css/modules/layer/default/loading-1.gif | Bin 701 -> 0 bytes .../css/modules/layer/default/loading-2.gif | Bin 1787 -> 0 bytes assets/layui/css/theme.css | 397 ---- assets/layui/font/iconfont.eot | Bin 46684 -> 0 bytes assets/layui/font/iconfont.svg | 554 ----- assets/layui/font/iconfont.ttf | Bin 46508 -> 0 bytes assets/layui/font/iconfont.woff | Bin 30628 -> 0 bytes assets/layui/font/iconfont.woff2 | Bin 25964 -> 0 bytes assets/layui/index.html | 16 - assets/layui/layui.js | 5 - config.php | 10 - docs/.nojekyll | 0 docs/_coverpage.md | 13 - docs/_navbar.md | 7 - docs/_sidebar.md | 3 - docs/favicon.ico | Bin 16958 -> 0 bytes docs/index.html | 366 ---- docs/style/busuanzi.pure.mini.js | 1 - docs/style/countable.js | 60 - docs/style/disqus.js | 55 - docs/style/disqus.min.js | 1 - docs/style/docsify-copy-code.js | 9 - docs/style/docsify-footer.min.js | 1 - docs/style/docsify-katex.js | 1 - .../docsify-plugin-flexible-alerts.min.js | 9 - docs/style/docsify.min.js | 1 - docs/style/emoji.js | 1900 ----------------- docs/style/emoji.min.js | 1 - docs/style/external-script.js | 28 - docs/style/external-script.min.js | 1 - docs/style/front-matter.js | 505 ----- docs/style/front-matter.min.js | 1 - docs/style/ga.js | 43 - docs/style/ga.min.js | 1 - docs/style/gitalk.js | 27 - docs/style/gitalk.min.js | 1 - docs/style/head_portrait.jpg | Bin 124342 -> 0 bytes docs/style/img/1683877443195.png | Bin 29561 -> 0 bytes docs/style/img/1683878179680.png | Bin 217466 -> 0 bytes docs/style/img/1683878890443.png | Bin 196981 -> 0 bytes docs/style/img/1683878921916.png | Bin 712576 -> 0 bytes docs/style/img/1683878966104.png | Bin 278348 -> 0 bytes docs/style/img/1683879008385.png | Bin 116023 -> 0 bytes docs/style/img/1683880670303.png | Bin 161133 -> 0 bytes docs/style/img/1683880882323.png | Bin 183238 -> 0 bytes docs/style/img/1683881055632.png | Bin 23466 -> 0 bytes docs/style/img/1683881108734.png | Bin 163504 -> 0 bytes docs/style/img/1683881221343.png | Bin 125116 -> 0 bytes docs/style/img/1683881324569.png | Bin 132436 -> 0 bytes .../\345\260\217\347\201\253\347\256\255.gif" | Bin 985394 -> 0 bytes docs/style/jquery-1.11.3.min.js | 6 - docs/style/jquery.toTop.min.js | 7 - docs/style/matomo.js | 42 - docs/style/matomo.min.js | 1 - docs/style/myStyle.css | 19 - docs/style/prism-bash.min.js | 1 - docs/style/prism-c.min.js | 1 - docs/style/prism-cpp.min.js | 1 - docs/style/prism-css.min.js | 1 - docs/style/prism-java.min.js | 1 - docs/style/prism-javascript.min.js | 1 - docs/style/prism-matlab.js | 16 - docs/style/prism-powershell.min.js | 1 - docs/style/prism-properties.min.js | 1 - docs/style/prism-python.min.js | 1 - docs/style/prism-sql.min.js | 1 - docs/style/prism-yaml.min.js | 1 - docs/style/search.js | 542 ----- docs/style/search.min.js | 1 - docs/style/sweetalert.min.css | 5 - docs/style/sweetalert.min.js | 1 - docs/style/themes/buble.css | 951 --------- docs/style/themes/dark.css | 1008 --------- docs/style/themes/dolphin.css | 1008 --------- docs/style/themes/pure.css | 708 ------ docs/style/themes/vue.css | 1035 --------- docs/style/vue.css | 869 -------- docs/style/zoom-image.js | 659 ------ docs/style/zoom-image.min.js | 1 - docs/sw.js | 83 - .../image-20220709000828688.png | Bin 116473 -> 0 bytes .../image-20220709000930807.png | Bin 81530 -> 0 bytes .../image-20220709001138309.png | Bin 204933 -> 0 bytes .../image-20220709001555015.png | Bin 79761 -> 0 bytes .../image-20220709001700944.png | Bin 40983 -> 0 bytes .../image-20220709001800402.png | Bin 84128 -> 0 bytes .../image-20220709001836794.png | Bin 62884 -> 0 bytes .../image-20220709002007267.png | Bin 17739 -> 0 bytes .../image-20220709002237129.png | Bin 94222 -> 0 bytes .../image-20220709002258564.png | Bin 12389 -> 0 bytes docs/zh-cn/README.md | 43 - ...11\350\243\205\346\225\231\347\250\213.md" | 45 - favicon.ico | Bin 16958 -> 0 bytes includes/360safe/360webscan.php | 153 -- includes/360safe/webscan_cache.php | 23 - includes/360safe/xss.php | 65 - includes/Scheduler.php | 129 -- includes/Task.php | 145 -- includes/ValidateCode.class.php | 89 - includes/authcode.php | 4 - includes/common.php | 132 -- includes/dbhelp.php | 523 ----- includes/function.php | 927 -------- includes/hieroglyphy.class.php | 170 -- includes/member.php | 25 - includes/txprotect.php | 52 - index.php | 536 ----- install/ajax.php | 195 -- install/ccpy.sql | 193 -- install/class.php | 80 - install/db.class.php | 144 -- install/disclaimer.html | 257 --- install/index.php | 559 ----- jump.php | 153 -- nginx.htaccess | 0 sub_admin/ajax.php | 1059 --------- sub_admin/app.php | 634 ------ sub_admin/code.php | 9 - sub_admin/css/admin.css | 401 ---- sub_admin/css/home.css | 165 -- sub_admin/css/logon.css | 134 -- sub_admin/css/theme.css | 327 --- sub_admin/editserver.php | 296 --- sub_admin/edituser.php | 307 --- sub_admin/foot.php | 8 - sub_admin/head.php | 151 -- sub_admin/hostset.php | 221 -- sub_admin/index.php | 8 - sub_admin/kami.php | 600 ------ sub_admin/log.php | 273 --- sub_admin/login.php | 160 -- sub_admin/new_kami.php | 363 ---- sub_admin/newapp.php | 158 -- sub_admin/newserver.php | 189 -- sub_admin/newuser.php | 271 --- sub_admin/primary.php | 739 ------- sub_admin/server_list.php | 457 ---- sub_admin/update_password.php | 116 - sub_admin/usermanger.php | 557 ----- 209 files changed, 30220 deletions(-) delete mode 100644 .htaccess delete mode 100644 404.html delete mode 100644 README.md delete mode 100644 api/api.php delete mode 100644 api/cpproxy.php delete mode 100644 assets/404/css/404.css delete mode 100644 assets/404/css/img/404-bg.png delete mode 100644 assets/404/css/img/404.png delete mode 100644 assets/404/css/reset.css delete mode 100644 assets/Message/css/message.css delete mode 100644 assets/Message/index.html delete mode 100644 assets/Message/js/message.js delete mode 100644 assets/Message/js/message.min.js delete mode 100644 assets/Message/readme.md delete mode 100644 assets/css/app.min.css delete mode 100644 assets/css/bootstrap.min.css delete mode 100644 assets/css/htmleaf-demo.css delete mode 100644 assets/css/icons.min.css delete mode 100644 assets/css/style_PC.css delete mode 100644 assets/css/style_Phone.css delete mode 100644 assets/font/elephant.ttf delete mode 100644 assets/font/iconfont.eot delete mode 100644 assets/font/iconfont.svg delete mode 100644 assets/font/iconfont.ttf delete mode 100644 assets/font/iconfont.woff delete mode 100644 assets/fonts/Nunito-Bold.woff delete mode 100644 assets/fonts/Nunito-Regular.woff delete mode 100644 assets/fonts/Nunito-SemiBold.woff delete mode 100644 assets/fonts/dripicons-v2.woff delete mode 100644 assets/fonts/materialdesignicons-webfont.woff2 delete mode 100644 assets/fonts/names.otf delete mode 100644 assets/fonts/summernote.ttf delete mode 100644 assets/fonts/summernote.woff delete mode 100644 assets/fonts/title.otf delete mode 100644 assets/img/360chrome.png delete mode 100644 assets/img/735c8b5953ac11b623bdebcb45fe9db2.jpg delete mode 100644 assets/img/HTB16qvwXvjsK1Rjy1Xa762ispXab.png delete mode 100644 assets/img/HTB1FrrtXzDuK1Rjy1zj762raFXa7.png delete mode 100644 assets/img/HTB1JBTqXEvrK1RjSszf760JNVXae.png delete mode 100644 assets/img/HTB1idjsXzzuK1Rjy0Fp761EpFXar.png delete mode 100644 assets/img/Mbrowser.png delete mode 100644 assets/img/UCMobile.png delete mode 100644 assets/img/a15b4afegy1fkvkgmn05sj20ha0egdgt.png delete mode 100644 assets/img/ali.jpg delete mode 100644 assets/img/alipay.jpg delete mode 100644 assets/img/background.jpg delete mode 100644 assets/img/bj.jpg delete mode 100644 assets/img/browser.png delete mode 100644 assets/img/chrome.png delete mode 100644 assets/img/mtt.png delete mode 100644 assets/img/one-by-one.gif delete mode 100644 assets/img/taobao.png delete mode 100644 "assets/img/\345\212\240\350\275\275.png" delete mode 100644 assets/js/app.min.js delete mode 100644 assets/js/echarts.min.js delete mode 100644 assets/js/index.js delete mode 100644 assets/js/jquery-3.5.1.min.js delete mode 100644 assets/js/jquery.cookie.min.js delete mode 100644 assets/js/sweetalert.min.js delete mode 100644 assets/js/xss.js delete mode 100644 assets/layui/css/admin.css delete mode 100644 assets/layui/css/home.css delete mode 100644 assets/layui/css/layui.css delete mode 100644 assets/layui/css/logon.css delete mode 100644 assets/layui/css/modules/code.css delete mode 100644 assets/layui/css/modules/laydate/default/laydate.css delete mode 100644 assets/layui/css/modules/layer/default/icon-ext.png delete mode 100644 assets/layui/css/modules/layer/default/icon.png delete mode 100644 assets/layui/css/modules/layer/default/layer.css delete mode 100644 assets/layui/css/modules/layer/default/loading-0.gif delete mode 100644 assets/layui/css/modules/layer/default/loading-1.gif delete mode 100644 assets/layui/css/modules/layer/default/loading-2.gif delete mode 100644 assets/layui/css/theme.css delete mode 100644 assets/layui/font/iconfont.eot delete mode 100644 assets/layui/font/iconfont.svg delete mode 100644 assets/layui/font/iconfont.ttf delete mode 100644 assets/layui/font/iconfont.woff delete mode 100644 assets/layui/font/iconfont.woff2 delete mode 100644 assets/layui/index.html delete mode 100644 assets/layui/layui.js delete mode 100644 config.php delete mode 100644 docs/.nojekyll delete mode 100644 docs/_coverpage.md delete mode 100644 docs/_navbar.md delete mode 100644 docs/_sidebar.md delete mode 100644 docs/favicon.ico delete mode 100644 docs/index.html delete mode 100644 docs/style/busuanzi.pure.mini.js delete mode 100644 docs/style/countable.js delete mode 100644 docs/style/disqus.js delete mode 100644 docs/style/disqus.min.js delete mode 100644 docs/style/docsify-copy-code.js delete mode 100644 docs/style/docsify-footer.min.js delete mode 100644 docs/style/docsify-katex.js delete mode 100644 docs/style/docsify-plugin-flexible-alerts.min.js delete mode 100644 docs/style/docsify.min.js delete mode 100644 docs/style/emoji.js delete mode 100644 docs/style/emoji.min.js delete mode 100644 docs/style/external-script.js delete mode 100644 docs/style/external-script.min.js delete mode 100644 docs/style/front-matter.js delete mode 100644 docs/style/front-matter.min.js delete mode 100644 docs/style/ga.js delete mode 100644 docs/style/ga.min.js delete mode 100644 docs/style/gitalk.js delete mode 100644 docs/style/gitalk.min.js delete mode 100644 docs/style/head_portrait.jpg delete mode 100644 docs/style/img/1683877443195.png delete mode 100644 docs/style/img/1683878179680.png delete mode 100644 docs/style/img/1683878890443.png delete mode 100644 docs/style/img/1683878921916.png delete mode 100644 docs/style/img/1683878966104.png delete mode 100644 docs/style/img/1683879008385.png delete mode 100644 docs/style/img/1683880670303.png delete mode 100644 docs/style/img/1683880882323.png delete mode 100644 docs/style/img/1683881055632.png delete mode 100644 docs/style/img/1683881108734.png delete mode 100644 docs/style/img/1683881221343.png delete mode 100644 docs/style/img/1683881324569.png delete mode 100644 "docs/style/img/\345\260\217\347\201\253\347\256\255.gif" delete mode 100644 docs/style/jquery-1.11.3.min.js delete mode 100644 docs/style/jquery.toTop.min.js delete mode 100644 docs/style/matomo.js delete mode 100644 docs/style/matomo.min.js delete mode 100644 docs/style/myStyle.css delete mode 100644 docs/style/prism-bash.min.js delete mode 100644 docs/style/prism-c.min.js delete mode 100644 docs/style/prism-cpp.min.js delete mode 100644 docs/style/prism-css.min.js delete mode 100644 docs/style/prism-java.min.js delete mode 100644 docs/style/prism-javascript.min.js delete mode 100644 docs/style/prism-matlab.js delete mode 100644 docs/style/prism-powershell.min.js delete mode 100644 docs/style/prism-properties.min.js delete mode 100644 docs/style/prism-python.min.js delete mode 100644 docs/style/prism-sql.min.js delete mode 100644 docs/style/prism-yaml.min.js delete mode 100644 docs/style/search.js delete mode 100644 docs/style/search.min.js delete mode 100644 docs/style/sweetalert.min.css delete mode 100644 docs/style/sweetalert.min.js delete mode 100644 docs/style/themes/buble.css delete mode 100644 docs/style/themes/dark.css delete mode 100644 docs/style/themes/dolphin.css delete mode 100644 docs/style/themes/pure.css delete mode 100644 docs/style/themes/vue.css delete mode 100644 docs/style/vue.css delete mode 100644 docs/style/zoom-image.js delete mode 100644 docs/style/zoom-image.min.js delete mode 100644 docs/sw.js delete mode 100644 docs/typora-user-images/image-20220709000828688.png delete mode 100644 docs/typora-user-images/image-20220709000930807.png delete mode 100644 docs/typora-user-images/image-20220709001138309.png delete mode 100644 docs/typora-user-images/image-20220709001555015.png delete mode 100644 docs/typora-user-images/image-20220709001700944.png delete mode 100644 docs/typora-user-images/image-20220709001800402.png delete mode 100644 docs/typora-user-images/image-20220709001836794.png delete mode 100644 docs/typora-user-images/image-20220709002007267.png delete mode 100644 docs/typora-user-images/image-20220709002237129.png delete mode 100644 docs/typora-user-images/image-20220709002258564.png delete mode 100644 docs/zh-cn/README.md delete mode 100644 "docs/\344\270\200\350\212\261CCPROXY \345\256\211\350\243\205\346\225\231\347\250\213.md" delete mode 100644 favicon.ico delete mode 100644 includes/360safe/360webscan.php delete mode 100644 includes/360safe/webscan_cache.php delete mode 100644 includes/360safe/xss.php delete mode 100644 includes/Scheduler.php delete mode 100644 includes/Task.php delete mode 100644 includes/ValidateCode.class.php delete mode 100644 includes/authcode.php delete mode 100644 includes/common.php delete mode 100644 includes/dbhelp.php delete mode 100644 includes/function.php delete mode 100644 includes/hieroglyphy.class.php delete mode 100644 includes/member.php delete mode 100644 includes/txprotect.php delete mode 100644 index.php delete mode 100644 install/ajax.php delete mode 100644 install/ccpy.sql delete mode 100644 install/class.php delete mode 100644 install/db.class.php delete mode 100644 install/disclaimer.html delete mode 100644 install/index.php delete mode 100644 jump.php delete mode 100644 nginx.htaccess delete mode 100644 sub_admin/ajax.php delete mode 100644 sub_admin/app.php delete mode 100644 sub_admin/code.php delete mode 100644 sub_admin/css/admin.css delete mode 100644 sub_admin/css/home.css delete mode 100644 sub_admin/css/logon.css delete mode 100644 sub_admin/css/theme.css delete mode 100644 sub_admin/editserver.php delete mode 100644 sub_admin/edituser.php delete mode 100644 sub_admin/foot.php delete mode 100644 sub_admin/head.php delete mode 100644 sub_admin/hostset.php delete mode 100644 sub_admin/index.php delete mode 100644 sub_admin/kami.php delete mode 100644 sub_admin/log.php delete mode 100644 sub_admin/login.php delete mode 100644 sub_admin/new_kami.php delete mode 100644 sub_admin/newapp.php delete mode 100644 sub_admin/newserver.php delete mode 100644 sub_admin/newuser.php delete mode 100644 sub_admin/primary.php delete mode 100644 sub_admin/server_list.php delete mode 100644 sub_admin/update_password.php delete mode 100644 sub_admin/usermanger.php diff --git a/.htaccess b/.htaccess deleted file mode 100644 index e69de29..0000000 diff --git a/404.html b/404.html deleted file mode 100644 index 264e893..0000000 --- a/404.html +++ /dev/null @@ -1,91 +0,0 @@ - - -
- - - -J2ZRh_KknEI?;|b2=CS|*b=q#%>hL>Z{O!&7Zs{lf@BSM8e@h(I zaZPLDw*E{n(K?MBdUal1Ar*F5RLYAE?ACKU@@_TY!(&@1)Xi zqC~Aq0}^4>U9S~)$Ns=s|C`IspH63oaA@1{=sbB0X-i1=DYvvyM$}`@tdF1%vLlu* z33|FM0S#4FE(qASJ+zTn*9v aMN`!ScW-A!&H2H{$&;-Dj|vw zXCMn# I2^Foj*7Lyhc*HHL47vgV}; zBu&m{P*(#nsY`*EQ2&_tYEsVGZt8tX5n4 5%7q!S09fw0sdMB;NQz3%f;%^{$P+4>g|N&Zs>w-R?-eW6@nduY4@RUDyz z!5UItS)1nT;nVuX))m1q3D(fJH@0*aO&Jp|&q)lm2M-biT3%NL7~2oOR^)2(DP>`9 z+iBeX=1};UdG%3HcqYR{@DRc$0kz?A^b}0K!x<;`>zrE^SubPXV5ogIqlICNiSUBa ziu@Rsu;(XYBU&3qIiNx*4HKAzD)YXWq0uP9&tmiD`ZQ`BD5t3q87aaYXG}&&-2=b; zgq8-Ch3_p8RhIA4mYbTf9o!MG)|#AFrlFkHN(shVU+q(AG;ML3@?|IxIfKrFf3jo- zr;DJkZZV1j j-Uh_}j#W{>#B5-Z8$#KeY=AICt(k+* zzk4Cf&PV9Uc9uZZz~4lajE=(Ea2699z?plI#l$cK1W~Sd%`Gdp@;Hg#Fii^Ap;naB zGySQS5C>#nfpWHd?9kYkui8J*;nDAFpeall>Q?Bc?7 =ptFXz&Zkd@{L3qzLv41? zQy{v#`HtV|UJS!F7fx!7BKse)d-+api?TltX-#Zu3aQbx0V>dW<|2JPZQRe3-|j~! zjM&lx98@{R!Y00`#zuc{#<#Zcb)8V9;)cVg$NB{^nvoBx_~chg$Ib 0> jrg zm3$n*6Xyfqnb5d6k*1q0l>4~~TF}k*sLs!9^6TCdzd6jfW toc8h #Uc@O&eJ>zo(yktJ zdPzYi5tGKQ`Ltd ZF>w1a6LUCu{qiwh0Gfb=*}fW;Qw6UTwJ_)_o>&`?5sWI-0kj97U=nAsEB{ z{^_~W|DkrBp`%H2HIakdc71m{__d!WXQ{DlZ~29ma#{~7Y)knERx~tO`k=&$sE0)x z*n^>EO~eujY{stC>!(Y>!&H-08fMeM^Rv~Vl;KVhztS}xDGQ+zy`+YtKXdEX6PJR; zH&tpku=uNo&K&V)6QYTg$q#|QhTxkH@RDaCHIGNZmdP5S>zk>-*ysPiGipuVLQi&R z5kV{{V7b}|E<#grm@Nu)SmAn6@2JrsQFYk)!tQ>K@DK7ZvVyo7z-2Oir*X^V|LB0` zeSHfL?+tukC9uZ-@#Dl0a2?w0#VBeq@zlf4q3ikg)iUdaNr+ 16sa zwXw7LFD#dlDWYgTVR*Ld{XFE$HC3-San$--$84^JXuy%e&7g;`tdaHkcMODoicJ4j zm#d?}#^$vJs5<~8A1v4Vbf|@s D{Wd<{ 16WC1db=tE6Poj>A`v@D9bxhQ+=n@j`J1~BWx|56HSSJ5 zx^}I9H}Jx|fAQ=c|AMYAFmyK(r&~FQjnyinHa?mPfW|E$Uczhta#seW*RQ; 0r&uv~sw}=bo08KbCC$oPnSS|ql z4Pi8~79(EwQ)O*Gs?F2x8i`%jp`}9l<;J)67P~CeGo$_RgH|R+w?*w(fsST5burTJ zPWX|jkRxrut;6Nmjeco;KI@vI6u^@EQJzQbE7Ag`Xq+)p2qOW1&-Tfa+cl3N)Dp2) zpPa{(BQ1$l@Z$dMyZPhW@41CnJkQ!!gnizD6C3mpk6h1Ey$L0l82Irx+gs|+hEplU z`z>07fJy>Ge|JMa80yj9YMt${ho9;Ug3>u9wqg9fqmNGck0WdfpZ4R^k^KR34 JH^6VYmXvGLCkcmM=`e{`X>-UAAT@=<31@vVJ$V1VJ$<)7Y z-0Bc+#pexzhn+G;>JBdTqo5Z0vYTCsH27t;_;sXLM(oZ%LVWUXIVwcU-wbjnFi)4^ zYP8U~yDo@Zd@K(Rz!J-{w8t4_lDZ=Tot{Ene;F>;6GtkoA+&F&od*Ut!jDVb!_?UA zIAz8-sMWn{@U2QE@V_C`AYkjHd=thw%q(o2b#1N11@nr|=Owac^v(K%5rv^(+1k>O zcy~A|ZyfZ-%s1Z<{XBq 6nE)J03~ zdLUU_=j$>m(18Qv`G<_2ovTl61AgD&uAh!>n;=gcnA4MnBY>P(A|4gJL)mhh_i1r) z^^|=fd^IjBSC%Nz2uKyGfREr3n7gF>C_BFB5*P4AXT*Yk$p>{DQJX4R(PoRDu}XcC zQHG8H#Anh#Kr7{OW|=rK`c0N5V1xm=(hjScK0%^;J~l}eDlto#^}uD?A`G)dgs|U9 zAT@fQeb(`M-QIjOXzc6mVkmGT }kAg(-h8LDJ}d$i`~k zR#t1Ia(@sZxF`4Iey${`dXAPXj8PY zGm;7k@;@@qa!en@Z*ZwvO z`Jx*ALeoi;AYJo~kRaKqWbpJ-6Kam?qX1l8Gb`o4w}I6`SMeyj?wsK8NqDcWNoVj} zOyq35SbV^lN;9w=3)}9bYkx$UXiMv2f@OB_fL8lzNiy0;wnqG`ixeWx!im%_&b3c* z_miH&sz~(YAecpw&KodZSFAm<1`Wfb?)SHLoWMAEtl?4|ii!4cWyq=EXMj5q6Gty0 z%yCm?QvH|vEbip^oF#b`pEwS9)`S$fyD74J{x&LeY-*vKzHPDU4p}xPL^*V)GJGKc zI`+xb D<%&tR&AydZ7P_ER>puHr!~dJAIO+{;+IfmHPB&I zP{U)R71A)T7H1#B$?|-~9*tIH{nEy<8Jb-|aFmgy#SOt&m1telfU*{93e&7f{>l95 z)%0FNj6Ag`4N|FEe1HwAQ=)%$BJ=MtIqcTjo~6{?ycizcLn4S64XytQmmAM&hay+c zS!|A}K9Yg{&>ei+Cp(pB$ z$!-%xd!(e;eI7%%2cDzW&7D9?#W!@vUcgFtbl{6VL4zyPbLY^pzbO?v$EFDxQ0-i` znv5u7+N+O?h2_%)%B$gz 3uFh8f=RUJj5)NE zD+kKvAa(h@yi`Ex*!7CP Qz>W0umc`s zF@C?Zi$|Tq{zTqmXrl}zqnJxO`niy``6Z&Awp#^i)XVXt<{gXIed%ejon@g_&7+T= z3M0!cN1R6~Lzy=fBxz7p-(8m}19R+k_Nt8*cUEr%Uc`!LHF>bCdEtpL7}HfBznpt* z|LI4qu5|ru4`s^V0w!)!01vo^PCNI;h=$m_(u6u;3!N-R9veomZ79H?dg|5$dxM4p zRj{E9ztJu&BQh}Vhb}3Hc|3)e8=PKCkrQ5dTr=j^7}zjQ_6kaReYhl;@|0{to-y%H ziH~Lpq#(!b?O?KY9fe|AG+nZWCN5UpHml_nL!yeeIdmagcFN43i3VPv&HIu+1guA! zw!sX}>kdw%zs(B@8iKP~g8iAX;IG_8e<(b w=^Udnqoig9? !kg*kgt@$eWc=tWpRsVi=Luj;t3mvhvd3VPjt$f40qgri?AVZ9R!CMO`Qmbv3 z+N)J=*Iky@n6x2Za~`iVuU+_KJ)L51)bQCE5$*Q1iF>nAC0uKI(oB2!(bIzt01vxq zZvh4A;@n${p(A5|Hi;!AE)pRrfW|`gxF-k+js?q(%?5}+Ex@acqP%w9H3Sw<$v-^D zH-1{G?HTIqx*7Zv9>5gcNP{p#yiZ;>e)jF6xrYoDTEdO~@6Y?!c}_x^0qof5fi(2K ziH#N^>R(U4R>WYIk%V8@`W$N8%*O`Pe^04_7SkF1Njgm6Zq`N4onJve?%Fd@f6`gB z3X!kl*w=Oy+}Sf^g+REGY?&v}9dwCFa!d0tbuuz?TT0{B>WH$V&Xrr4od{3oY&3%Z z!gr^edD?NmFQ!4&U2h?0FVDV+47GIh2x*!kpEgl{CkA5Hen{qEh%7^?NuG_5Lt|vf zAKsmWm%P&&`4_=fiq5R{xkj!#!cz03P8&@8=C#bWF<2a%2=?d|J)c)@6wxl1r0`}^ zlls1W{Zy#!4r)wd2RejNt27QbW8s8m4^5v22P&d)%n; ghcUIru`D{Npi5qPYJn7PJB{##D+D`*|zPm5}tRM|joa z2TMcQ2G`!657&8xA=ixckw1^V5Apg{a_cW|1zV|*#D6e`K7jV?=YU=!8~!*bI)e6E zEQ;16im>*Qz~s&yFr|+4WrgWQH+e$zjU9Wex2fyR`hMHc@33+b>Un4(cz-GP4Xb;? zXmo*xzU(=7>I}&i_6;U8_G06Lxa)Q%!eM*Z=!YcL2lP;*tr-Qajw3;2_`nY(2~zCU zNeHpUH5l;~CeCqBC;D|T_2%Uek>zsT@yeuRbhF*z`F(koU+Sucj~7)G$=~TR#4G_R zb1eLI+bWnT0mwmuqQYZNQp$CvSn>)4+Ayu46v4i3$X0qb#3(?mGYBM6aY~t?8E=h> zf{M2AQ5%w!)SQ9;H>jD~MY;H+!89gwS&CS5Ls) 6C_xD+oij{ z)ubJeD?nQ7EGPN~X^HTtwH)1?wxJWkFTl|XKdxcY8r7e2;QDA)ZvN;V532$M4u%U; zSD&zYDPVQS_+s2^AtBk8vA45Q#4wfwgrfwSS+_yMJtozJDI4^y(?GSV!pW zPoePMF4}zE5hB%EW3jsm6&Y|c;xfAl_36~Q!C8r<`~X8 qW`VIY wzI+63tuK@9mkY`RO6p z;ecys6K;{Btljj(-c@U1^F-FQM_Hfx;b@Kv4Ea&iHz0nnO}shICWF*W@G@T`4=Mts z5{?;T7%#$-91{%oYm~UnKb!dB?xINV#pCnC-rGOcRh=g}L$#GL<`6ysxRY+<5X(DK z*}WOv_G|zeqT=q)U>nz|Xfn2GVL*z3-{<>4QCCuJPkW3^euOqdPZ+De$6MQFl_4h< zmI+xMPBkDsjCQB@{diP18Wpe(Q*;DwE*2-VURdP1x5JH#T61Kg_@4)nbBTdki6}~; z14Z>xljgEk&W%~VBJL`6%yGU95p$Gm{1iXx^8{b5cm!f?;$aZaO|zu|kgJ8@Jj*>5 z3%ymCQYrLDEV587R&aHqC1{yift=5bv+`ma^~#7Rsfj+VfH5@H+Uu|1cCJHi@s&F42uTQy637(RBYR{_Gfyn_?1CCL*6-+;be39u zZ4WNHR=G6pZir53Bmp&uo;updka(?u2*<)OQv|7g<8f4{wd9Dr;>zfw8uuunufj|Q z9U(~z+5i5994-;!n^#K~;RqvH@K>qa9vj`^Xhd4t0D;1ONqrXPp%XG3N$47(REvWJ zaZS&E6{iAMC_pXI?w=fw%8d+6SjJS-Bd jXmZ<+@UYup(aU3G)eyu2JG@L52hKO#U&*uXIUyS -Uu =B*+pu~s2;4+#{g5G#Y`K%;qh=U)Y}J5<^9x|w6}++;6%BkE&o`W+zS?tH zr6A|DUTErB?YS2lkO*Sjk{Sjw=9k^f@vDXJylO)@Z@D86W#mp?uE;PIy R*w`XWz@8H$S(HtgU63Z~r{+qD8=S=W9Hph)g|>d*PJAgHKh#ky zTD}Ykw26lCw`;cf*x6oZI^!LqRZ7j<0GglUdEeU2mS5vBOWayDEg;WIlJHxm*V_NM znjc)lMOIP$5I#|TG$Ze@X~ARjbOZN+&of+`Fdqi}w>W>gHY*L~8YdCKP@-nC8J^e@ z5qeo|1CjsEYwi)|*zY8~KJ;Fjj}iP|khIB}IQcgM*hI|9kCqrh2_JvK=Dgi0XiX=E zus&-O*yxaFEbIo`_RV+GJi53(<4t#zvA{d%EfU$ZKKml`@N`RUd?4jtMgt1@_HAhL ze2DP>Su|7|jIb0d7k@dkcY7iLKh;rP_u9*x@wPwm`CM`EC6uzvvh~|?!MCoV%Jf== z=5&Q0MZd=4mjyheO_`hm0u19}9Tv{+iinB-Zlm%4p&j=5EUKSVC`@Kx=ve{h4?vHR z2=~MXwQA~{z|Gpd?>}(>S=#?BMznKZ(KU($g0S=*srni)n&9epmTih;ZAn0g2w2u) zCTFK4q T1mN>b_?GN7?nENC z_KNFlVt0`(_@MwV>~=q}yvMjDk|`QtnG?2>;mRz53Q){ph?M= }<+eW~HLWYV5kkOZ9X}o(%|pJtr*JZ@G@=VX<$qGxs|r zAI1FQsSge~b#ak5hL# Hm;2c4`$NZfw#@t{D>geJ+7k zv9!(gG)_%jx>^69g}l7G#cZ*Q7-U4@us>~1+$!B@F>LW;%6)29Lgdh=G&$wm8!=}e zvTF uJ8-m`-& zX+U{j%Hg$Cn(*6cg1`}wbwDSeE*vKjh4VM+3ZNi>gsN(uM~j}WXq7iamH>`3PnUQN ztJw%0Nvpt(kQG$j(8->BxWufvMX$@WB%wVUFfY56PO=WjLi@9ML2Cd_$zH}hdNo?O z0K~}7o&fzPZbVXh4jbhVKdS=9S |ukDXYyWUf`q8yeA3QH%FYN5WM_T=G~+5h z#U>u?|1H+bg;uyv<{Re6QNKAFrcivnpDF`g{i5@Joy1Y)_h;uWqcw;B=?eOiuT-F9 z&-1EZ6v=(ECqd2Yw^z?8jMN*rV9-uQ!ph0{O69Xr=;#*Pzm63sC;a@dc0Qo^_AsQ$ z-I9GO8(K^zRM@>IL# zfJ(ws9^~VN+2`hWhkQ+OhA3U_Onx$h5F7u@M(Wk-aa3Y7Yrz@GiBBnBD8lyP!=}|f z53wlAZ-Y$rDfV-&$VnF#)m?Gv+G>^EAvy5^Cw=(A@cM5Fk -Tpe&bcjy;D}w^d38UK&=HW)u;X xStMKu`m6Rw_Zj+s{OrQTaK8)LO!8O&TTVfeCtwp2ju9O{!7fsn1NWRvBLivTQDwa)Q6)1!eZP5s3 zbY~{gIR=mV4Rmor9M}LOoW#A&S~^<9do7lKNEI%dO2~36$TK8pbX~_XxbkY;ZZV?E zeRk6{4{KRQSop_mO-CO3la-Z*ErJkoktNe)X>~ON!g@3S#UHD&(=!xo_BUqS34Fy2 z*dh(toTAVd_RyeJHJJR|RqxNKb$~A_a@WIr&gL-VlSs@UUm#vlUAi5v@-XZPSow5- z; I9yn;nsZe-JPGj&Dkh zU@fU@28*;zg@Zt**r_ts$Yb~wKF7n2$0wJ$0K`=-TCHt)xhI^Os)eg34KsZyXf&G; ziqIH27V&wr0URa=e5h@Z@P}!W3x8ENdY&h}6TFAltG1j-o^SXo|CG;#HNHtSK!`f4 zNq0_lZ(Pb^*Y<>jxYp)&c3QY-$M@pl!=J<%!}u{q%=$Z0y=ts{A%~nB7ji!#xX!)H zs2Gqu|5uypgo<(B*>M_1XVNT*0eJzusKDJiEC2P&)5Y1^6K>%)yB*kqI_|(lu)2<< zLW+*@ZHo?Gx3hhRx#deA4HlesxDCIxr5Rq@DSc=_yH<4zWa~^ln8*Q1m)K~pAw|^M z9O=aKA0F@P->*_PF@T-`IMiC8Zuap>GjEYfDlK0%Wmnu_QAT6bPR!U~n;h9Payxyd zIvP|R&tOhe+$y#BN{tuaMl81hhRKjySKr6OHN~RD4z`8)+fNeD3cIloy4TpR)fFf@ z{KAM7e&*OJLT_+-{!!Pq?bico7YSxC(R(oEQS*N^sZPo=v3}xUH0h3_#o|BK9?iI? z`Q^X%t5(F AR}EW2^ $= {Us z8ER9g!PddOeUOi>8rp9%pnqnNC*K6>^bqQ!(#@JED1_UL!ngj$)2QX#2;*dcMfBQ6 z$Bv-KZ9*- GdqWX485_z(r?5wzbS$4`FnO`TR{w>jjU@SU^1=}>M(Y}8b4I_QzV&}-ZP_J zxFFZ?_D>9Y)rgw}k@Ac0U($4Eh4~x~c?Iu!85^?vmkh@@mwVN>3k^QWTCKP;gwI4U z+fbPlM3x2^4V50(MKSZ{Jzr!Z>1^@nN{6yo(%86KQZ~|OMcQ|~{U-1*2SmYTr(sE* zyfpt c7_?*-+;V@|Ba5#T^e{qCqk+qMYt$ zE5nE3QFjUadb-PVh&3X2 h@`5% zm7z!V6Q3lVrd6IWV?s-cwU$F=ogCZo-|!sB_9>z5%m?=x@@)HFCQl>$F89Y!F$phA z;a>QgJ~t3JuF{~knAtFTFQnEfF-0_D!MMgxx@@DZne K!h0HJBxP;?Y&=>jWh5LR~Sh*El4 zoPmFkAwug;`_YRDXMrx_%P%z8sHhJ=twCe1#U*(-i3ZKj$u`SyREz4${n$!o25rMZ zHEU=(^!cV+7pl1~SO1!p4p3e!+4C|@XL^%l0E}Al#QwW=TC&gTa{J>&_@JU+C+%_x zq_!P@fz9q$G*_P2*VjK( @}e| zELeqSFUUPMyXbU2hLT(36Af=Rq!&BL=z)MH#j#ykr?Sb(;b(-dzROt)!uF|haQ@7s zR~G=(W~Kff`YGc_O*vdAq-on$5;S#4XvFU=O~pe1h7E=-w-`OVeMmbdu&U!P%N%2a zf)U913|8~P=GduBVWkh2;ZHawDzPPLwbnDIr(G|&;+5C+QWbc@AW*-RnK?kt!|wM7 zU~=@ *<*&3y3TGg$H+p%#&5Dc`lHu&nCzV_+9g{cpiVntv#DA!zcuH z6yu(tM`@{C+?3v~ye$-{4|v5`yUn^1VH`JM(9Zopmoo8)H$mV8e%t1`6C4>6^vCVt zge@{3T s_C1&Q}aCO!X=i8|k*PpF+hh4K6qV zD8FUnQKV3GxYkL!9$x~Lc1C@%SJ)?@{|^9xKz_f~PFlsepr-j>DL9U@)x*gXOp{08 zEj$jqZ%{US<@x8}fnWVMJoLNYz^N0*As{3kmQPFXAAEf=Z`uh?1$yTF<#e9dvzgIW zS~e(~%`OW>-?e++k%mLZPfq(GwpeYUskUsgKNqq-uMacTc@PRK%(6MFb&cr}Aejl+ zmL-hEoF%L0?Kn-+c*qP^Obq)%;~~Wkq46a29y|)s{vnnRY^+@+AvW@IU6K7DSqzr_ z8v|H31z0a*uI^xnf^3M(1nBodk10ceo4F^Y(Ue*+YRoVYrNSr^V0o!5G6YPZkwid{ z1?Bj&&yCWvBBf5Z1yZDvn5=PaF1heLc*mQ!vWFS>qp$BYW83&|Cr|ZJhWAo2MIDZH z=io#CFu*qazS1L>)UC2HGVwiDst!A@I pB31GFLtR!N}smHU1{H5c&8**pL6(6jk60U;AGS t&zh#B@TEo;fUV@9I&AhzXXt!QC^b&N+FlF1H zz3U?uxW!^HGBUzko-kqlNB?~f#1qLpT{iDb($Cm^Fa@`NrWZc- WMH6yf13 z6|7qf7HixG(v&QAqRDsMJz*QayY~?YsJRb#WX(N;XKvEhF0Ws(O_Ag;p@DaFY!pr& zJHoE9%f@U`Uc%kpaOoAW>9Q-}qHDIY;Oxm`N162@`WCb;=zs-FmNL_rspcGd7k|wS z+OOya#|<+Dfz8vK@Ll1F_q8zPdl$b9!)+IkJ?vgJhXjBftiO6qJGtu(D|^-%U{f z$@0H046I0CdswFZ@x>o3Voyag68~*3TjmZJpe~yk_RK<&GE88tuRUCY4f5uJ-kLCb zP&6$KS}G11`XHd~osP$s&9J4uW(2hemoKbJHr Zr71R z?0)ciIXlIQ%SD}?5Uj0(B%SnB`gbcfY=WlNHm2DkF;V?!fL=49k+^wJ6Y~8`Husr$ zR)?5vbAYxo!wqHj0SmjbA&->3 $*xd78kbIAl`V{z7IJeLw(7ev0XZde- GSCm*v8+LMF(P;GbWdXbl zXT3Tx1Ce&FW?%YFzI5dOtzOXyA9~-r%-;_V4l+iBUJHXmqwve$KP0jargzUg^n4uN z@PU)?uiqaAeFk{D??@V~iY}wIk!Az?abdD?!LCwdg2~1`4?YQgCHn#F9#ZCEpzu9q zVbt2@rT?VJ%9jyrBcr2m?9c&-$D-i%`PmVA>F?W{>cQ`Eft%ibD^{ >C)KCdgV#d`XuW`*Zt) z5UOhgY_W{Mnu$h1r$EGK;Ue!NbE6d^+457TxeHUV89RzdvOTEAKTnnnZv-CXVg&~( zcUf`;{ot>wgFtIDcq!Y!LI_M1OGl!RipE&&x{kTI8Ll@ofVG(b=(=S>W9}{LupU3t ztMT)4nA3}TwU)KOm5|bpui)?Ofc(ji-3fjl$BzWv@BaRNCW|1r{_^(^0vex8VxK!9 zcp2lj569r5cb|ao{&M;rxakamyB~=a)%;7l_omNai!GCmpP;Pv^@H`x0%dEpQmN11 z+NLG{=22Yl_xgMTC Z21E 7>Uty z_d$B(pRxPfO)rdmb~4&ZvRSEIp!F)6$EW0OfApCh`B$Xan%@2(nB|{5aHP;>b)c~U zf)tc+smyX$<8f}30{VnEzQt5+t!Tz=`F~$J*pht4Ej$54hcNmdGFYL hgU(-Aqat?CXV*QF?#TWxhrXzhZ@5FC!3) z-z!3DLS~HTKADLBG@Hq+rRVQQvjeHchk6bGElLJu-5{NT*p2%Sb=98i9Vh|IZ4Wo$ zxt=ltM=f1ahiibOvk)H}r7SPW8$wCK#?XL+iHu| cA`*~_B&aY)1&hJTTrgnL zEV2Sz%F`Pdb89_e%q9r%mLu^LWw3F`(1|0*%ykTp0v^!P!HS%l){y1{FTkCGxC@II zRD~5~WGHB(nGLY?u5$XQnWh5l{qvXFbS)bQz+Zgu-R9q8&TJ$SVF9qwu_*lHSN96i zUB14V&${_ve*GuI@a M z=olRDI@!9s!*$jEX!x-*ZZ1p{LBX{opUI{`?I_(ob9}V-zv7De0Sc5i^qf4g5Wy4k zXED>jjV0WwQ8CGkF}YVQ%gxT5P9);@X40wedAz eBxz0oZQcQ`kPRxCaS<+y z>PtipD!DrzeRk(~Of@Y3fEcZ?%!Y<2juLwDF(4FdYGPoKqz`hME~QOlYT2^8Gh59N zV(afD*;<7Yv-w~tGqPm!eKo#H#P&HN2xc`o;7kwM0}IlL*Rf+^u39onr^23Lo|+K& z=!QRIFRLU4r7S(JbSlByrn8dd9AD}&LvH@zJZ+0lE=D&8{3S9Hmp8z=y`p@QMqL+~ zu+EvBWG19b`CbuZBE;b`3(txGQJ?{4mkHzSefqCH2n!dqvF~yD+1J;{_65fSk3I|i z10z$)5>o@LttgrBB3hjue CZynpa#$HO2V@{ z6QwcOX)^68!G_pX^8E4e6VJg%Kd|t<^xMZ~@ElId(055~+X4FJ3pri;;?dz#H;;~t zy<@0n@GUN{3)~*J<_r4!RhKJGuU&-h_Q`B6dnlL7?a*@ByD2!Q{DB|@Dan~@ke#oL zwvuetm`SHSmIq>2^!5!b-goHuBm`ChTSEiJ2$Aj8w6#&j=ZD1L2*mq`K+C4ATv|dV zUXDuAc!F#qMEN%h15R6T!~|gA=~;>_%2 gQ=<_` zjEu1|UJV0XST&~cOafN;fB+|1xu3kbpn!D38!oB=FVn2inJJx&LmJ &DWx2fCUQ3jt(C^3HLwzOxYS|ai=ZA z0>?g41B^v9_^0m h;@y_IU?ri;POzA(q`eA>_*5azACW z6W{m3PgVqVB(D!zRxE{Zdn-hH`eBGJx3Y-@%NW3lFK+#(@w`vS>rG&?jbfPsCC$bH zNGD0lXDpg!jS(TuQ!r%}H>#VvP6;P2ZU938%i{)jO%MXj_26#^v-6M|ia?UGy(DF^ zT9T*LU_PrP+NSG9CV_#7!c@mv2v9JjY$Q}y2eR7*=~x`1qfu@wPC&>6mfMz;cMeD% zco=LG-(IB?f-B%-uS4L+42Ap_3w-r~rZJ!Y>pzEppU=H07huk;QFi<5KR!IQa!K@Y z*Mv+o13-Sa1AAb^_+2E%&rhi!Yk|2`F_5)4N}TYx>4|>)=@;M~Z-4VG^v805)`*pi zmJJLpcf8=SS%At0oB?BA0j(%fQ0E$Gn?0#EEt9%v=W7RwKS0LP90NOa$=S4YA+)XP z#CBTH{rW+OVRuqI5RZqmJ66M=6NW6}F)7eq%T-y4QAl8W*iA12d$EI{Qn<8MJ#JPg z!HNk)CkR%Qz=B;ao=wo)0HKz83b-CfkHzRQ4O5^Up_507mCQ00%gkOhRw|s=BHd^; zPPk72>mon_J f1Le^jE zdCfUXVX{*JY_W-8V)jaakP_BPVzPK{`!0CrTd#j(tt(SInstws`8<{lw3$rC{ya-` zg7i++n9%{+iI@77WX5H&<5q9-EidiZCu6&e2^3rwK=;z+^vVm?Lql^T?0flj=snWK zOijF@Ab2RSWYQ_fqAQg!gt4p=OUrXDJ$Nx56s+#JoXz0_sHh$aOf{fVFwLg3JTm~7 z`ijiJSN8e9-&6;+3tGWfSHpr_(G&fU=o@0}6T9CswrF%a(CjV7bsNqa8n6tM^FmEi zBh)Qwr=OXFvEDvNjg2xrmm#pM=h+R)q&S1KACm!kif}d?>mO!;I2p#5E*P)rT(W@W z%B8Fj(MS~Td+6zDvBOC_9u!(^ks0a$q_k^Z+6u_FIw<9RZEqKgCt&BR zdtK``U2ro6+Fz6@3*s|gRx`wOCX;8s=%*`_2)%X=(4K*^0rmp(D*BtBduey^B|82` zL9}hna%f+&5Jvh2;Q1FHhYSU!P<;)A8fzgDjYE uXtpstCm+v^5@Lp{`Wc0fa0D`TyrCr(48 zrw=k?5y%RefU!l^R>o#xLU&eH+!VaM6s)} gcedL8j>kRyx4i zkKyU(cfghlHoc90`->Somm_5XZ92Wie$wjeYLgDo&OOkURSDJ^h+W!!>U48gci;Gm zAiPm2ZSn>KjMeUcX%|FJ51?2NO-nkUsjUf49q)n&7B?6zUSM1^EzWI;r8?S~*Noz$ zMnInkBN)turGVG5as|}4w!pFdhaoXA#0tBZK8x+0Ljek~3!r_?GH_GC9XfIf1}HN} zEjE`!5cPt$u9g9*!oW1Zzxsma?^ws$Ddqrw1wxz%;CYjxyR>4ZH?C`e^H(p {hEwHCV~0E5%#;hA`h6@d2qavOQvMQ z(_OigzUt9ulm=)_{s#^ogMq=p#Y@AU^Nz)XyUKhn%K} W z>F~s%1mu_xFHbeY&0Etn@%h#@2DX{R7^GvPkfB>TPPga?`x)B+S;jAg#VlmvnMj`= zz?v_Wq{)^zV6 cAVS0go?CClLvT(KF>_l->VWR$Fl^pE(|H z+p-V>9)6n}IkN~(8U@#9kEUQGF};Ea1Y~!xmTkf2#p795Dgmj;AO+qb`gIsmWBrgE z9iXf@IvLrluuNdQDVed^YB9$A;?CFL?Qg#BYE>d%%Mqy@>nrrBomTV5r=NcQLb@*v zHlW>O!wm;$r!guS2=kZoqQ$=WWd{y-`J=If%}ds(PZ+PI5#xr|>_A6sS@jbksg)f- zim(!5Pp2i5FUswexH0xB l;tjC%}qIP1rT#dUDy+7=Tq5M)uC z#&oXJ5e;5GnXdc;<@H0*yNH7DqP*X0nIt4fDCi>aj`Trd_%sFKfzn*K$`chzmZFGM zMDEaSf=9uGKQK59$BuW`EpGR2J`xYTRHl3|Euf7=qqo>^e6QE@bQN&poB-NN?TZ5C z`_5js =y5qRt%mkefWpx zj|H;X+->#)U9@n)6UL>!^L@9?d!2S(0Bwc!*|I9ZuvLu$xyyIGeyB({+d@`r*R00x zxYg~p;9v9lj~CGjidBZ$b^?Jk*th@!jUC{tZw1xu17{Q;Z{EBBmNZ+fX$;dC9D8~* zaB6Js^Di;;!r#!&w#F6Q;3k(&Kz#5N#QM4*(svA!6o^Yo@3P%$-Prdom>fwuw^y_?2C|-y>MCBxHkan>TM7EWojOEg#GmMmy)SL5DAK z!O^Z$-b6ex-m~5aWD#Pze@ajsc*nQ>Hu7i3(UkG`UcnO06RKyR8f;p~zLpwgKi5ZF zoe!?t)Mox{_{<`k9ZqQQ v@;Q;L{18rF} zFR11&e}+{CS $T+KGd&XX|)xRIX2Fna0`YZG5;#EVFiT(2_5YkT&?)z`LP2IXZRAR!u> z>W{W<+i@q|zjoWN#x6L2<2_ZxkFy$RE43f4a^K4(=@-Ag|ETHzYB_1;8=F`uTBNuI zhpl5ko;pB`N-fJ<6u%;vhTE1wP5Uy+S{IxVDOE%_T6*i_zY@LbZAJ65K=MEAs!fYv z{Sq@cZMLRCpxxgahu4k`=FOT$b_VNxR`_)u>fJ715bBq#XB(b#1l_Uj{V>{nfamy5 z0j^TsoJM9O*zMkT2yWPV)g|=X@0Rg$qr>%tSqrbe_If>Kv!Bgd<+ {2rMxbz_QC|t-cS;#?N|;W z3a}W=ny;*s1FFWm&1x37&e!4hy5P1qt}@U5(9n?SGn>q4@c7>0aq^AXcWi>k-443U zN>UcvJYd7PU*Wb+wk_OpGbDz3DBx1iJ-MHym=#eC#&yJ<$)tGr=n2dpU(w)BHx6Yy zgJnLi6S{Bh+jrpe^ggtg-6mG7T=pNuP6gt~Pk;7nZNA={>RGlAWdUuyJALu1dyX&{ zE@L@r6c8|fS>uM3?WL6Vnjk6fH{5sCE;UG?c>PejU=`FZS_8h?=6T0ZnXMozujSxc zsp_R!yNMJT{_MJSP#@yA00zJ?oeM!0LGjsxqc9kqzKq9!7>(LlNpHSyh;f4=~?ZYe{c(KFEvY+KYYc!2`>jARm6|&!N^% zs9(APf-OtuhbD*tJ?z6Jwlfh_i;cC58{qPF9eI)g7APRlo*GHRj$@GupGLyH9}s{c zod>?m%U5hLN7vk6-^R9%^S3fRckuAbFxGvbLftrQtn=Uz*syWKh4kC|EA_k{KYqeD zI5_+r$Zr5Jyl&l^Z%p!D^E$6_J^*c{PLK>`RF`2V1y$D1JAC|P-V#f))|LeinAIWH zY}`kT@A==lydkJtx)JI-*VFHVb9;6RfK}Jd3|qPBjG)g2AH1HPYn3ZdV`F15Iy%Zg z7RSSTh9IkvSvb`keC_Ah4!Uyzya@hA76VqN4IX|41`h2gs^^w74jnlGs!Yx=^W`2W z;&1lCi#z|3p37zS-}!vLe_g+B_2@juvU7sbmQ|$C?oD=%jz+?RLt_)%sN)_d6MPF} zGFax?wDLlzS+IIegIcVOOfJj%Zp{l|B{sLOao-d3oLWoUi8BwR!p4~Ne>YyX5!&hl z=5iL s+u)y$JAP7h!ZIo9%nV ;Vw0|&Y%!-y%t*Wb_qEo(1@Q0vk;JC~@f>KZrX=IzVp226D$Bf*x9 zP)T7hA9x8YZLNb_uU>Ed8@3F`oLOYEkz^L0c(ofc$*lQY=Vukj%tCTDLD&S|Gzhy$ z-sM78W^d(-$8BUTpsdil=NX9gpD6o!96oje7On`dF9T@74zy1{vu$xC68$#h=R#y! zTbutT7z|8xQ_J(YLQFl2KEJG7I*+WaKYZ+Dz9Z69Z9<3vu ow&CJ Pb8hA1<3m4`ZXe&95m&IsRiL5@>b;>Rb089b8SPI)p z0Ty+yxfo0mK!DB7(mf@B)gC~b596xym%@h57E?07GF!uEc7OL695@x3#v$_T0^OEc zkQdmhGVmhv&!tmrWAcK_lV^fn?Gb8O0;_NQFiQ )di*4)vc9_9=Qfwi zNzZTF{ylo_HWWw(&) HQW#E7=V>Pv%wyj3?Moc%*Oy)OI;A|*m|D%GaAOkVlh@`n@H#2 z{+*|o-|Wo5Ph$-=@w~H})c{@8SEcG*f8(5E`K{u1vx>pl%2>e)w3?2U(0|}X=y~-? z*41LFf%)f(lpnmB&U5>_yYKxXohWZC`2BEa=aP??AQ@DPxH*h=0+5~do!H_{E*cmd zai!B)14}Jwz~14I{;#%u87$a*1FOuLZFvBl|8>?WmQ?w(2z#&?!0PihC6SHWuiXf> zL7p9ink?qb8so{=`(P}QsrYA_lMcNevS_oz+V)fl1lhGur`Y6*X6@L~qM872F?ktU z)?5npOE$oXm+ogQcd{`Si9$3Q4>x&2Edyy!-*i6fp@$#8HIvDHs&LU(QxpEnOE0;w zXAX&*!)S|)vh>-Inp=6K=d=m3q)4$0c7a`R!B(hWyl(axY$gdgWK&g^_j!M e$jKg#L`m4SVOiIaceH8;*xXd^DpjGEyNHb=wqNL#V z%?iUsQnBofx5MzU*Wl##2kC^LobYc?p6Z3x&iduk0ouo(cxG#V|KMlFX$c oD3XpO|t3Vas^gt(LbtMyX<;p&b@q{&sNt!?Su)@S(z+y4nmDnQJba%4>Ld zCX738u+lb-oLL0fR91ugc687B{@?_K8!|zaF7xdTB`b@#K<|q*n-tL^lQ*`k{-|HN zk#&
k@wr@Fhtm`X<&n>- aZC6sIDBLv(K25;FeLLrsr66-!!bjz+PU?Etn2q zq@XfyNqZyQaM5z}XUv(!lrBu?>Kl&1z0bT3IgMDxFN!RD2xhk;iveyb&OR4y4y&cB z8WS^qhB^yg#mLwfUU(xjMe5%1U>+I3_BM)?XJ=S+Y %;$p*+E8Ycli`UL70A=VysaH8w3zxPCvQ-bL zQIOG$fSQrDz`%88%nPs0C-1l(YJ%Ku7=32ZoeQ%Ja6GVWKO|xkmz7%PFRBP)xmbl( zHM2+X*wH^0fe>}vs!h^j@^qtr@hnUz&8seARc6PY{hgWWhlGVbPm?B;Z`-#0!XrnI zf3*n6jx1c*ar*`5ZycIuxN=qiZ6)=TY2U>)u53*rk@UwCN%KKo`v2H_6EI1x>P+;+ zmXZ5b`@VGbqNO)UEwzM%B!m_OVmEkZfZ_Q8HXa*3u$jlhGtc9BgE7xw-gv>Df#J<( z7%)2s0YYLCLI||Aq*k}oTXlEsOIB9ynUNXWyXR(PRaSLvnHiCpRTW3NUu0)hMP@|Y z```bbd(MAueOp~Y7MYuzO ?ELNcfe;?ML}Gw+Px4h4o)nLhs&XQx(jegX*I}}q6*Ap#<_R|GSL~x zXA*S*S%HA-2i|@s_&i0I0ZJdDZx%ro?VFE04b$^6^B#?{+|MNzAfJwznti7z`Hk 1?^i4$in>z;~SfP8Y10B)Ra*sUbX%sM@J<8DnSzV$$mseNeRnb8#` zOS!sXPVe>i(6n?+TyU@&t%yJvF7y2dfBd0^h3H3Dk5Oc@1Z4m8Rkz&uj0IR^yACY6 zAyr)i%jm&WDg%SJyxFoq^EFwaQlPCKpJT?x7rF_M#Wo^RA>{Ya4X~17%q%vHGQdmw z@ 4my|7i5WrOtK6%^$L43 zQwD-cT}D#9`WhOJqloN*SSs7`&<}s|59@$zdf(nXA6^4wcRbMUgv~Ivx)0ZV8P7mn zFBrkEUI_x4NuRTNm%d(h>vj9!U%&pArGG~v5y wJDG)UF<^7Hv)s!#{lc={FY&vipib%CgaGuHOHVBS#LNvzYYRK-)|} zJC{~Fbum!a3$BODz-+^iq y_#ZlaQxB_H3j+?sv`okaEzi(u!4y$Y1M{5z#R&}0>i&|^FFSwpda18G; zBR*I3g+ObNkG7c%{g8MsOzE(7l-R7tbBj!k)3%lg0)O_Fn{WJRe}C_0$q4LD?mxR0 zXd`LeSNAKfW3^e#e4^@7CIE~()DBWAR#%^2Qw Fj$_ZAPl+D28`B$KjU%M~(eBN)q{{DMDM;NVU 5;JAWqb #R*y0)prU-s!d^><^zwU90h0 z@L93>S(qKaxaP(#P9$xuEuXpf-q(B!Y}-+;gY7ej$-q^$LR~?F*PN!O;No>4)5Au! z4zLP tZv?wB`-CCe^uwt;0iOMpq+6}JHEW;$5>B|=&8I7#7isGSv?*aYR z>#w#!b_X)rs?5nVT29vM>VU^VhG0}z7Xs$iGho?rAAw15d1ynkO1-P*@7VzLuGMY` zD@A2C>T{;J3NmS!96bvKX>E6_)9r!Yy;q^SnhLhrKwGkq3z%G;SG_o}6*gCQv27gS z2q^WCNu*T z#JV8MI~*{0)u9z2i#F227V0^UZAM!^Mq8D&dl}uy=^&}~{|bWB4SH5>SV?cXndR~o z1#U0|Oxw|YyuM3y)STrT8@`3E6YOKv80s+0jE%0l;f3Z6grH~7K60HaS0`R453L?X z8_hTL@|%*;?gSsLR^`)>+ufRDJkG&c{U%Ei$A=h&iwD%4|OIOdDKObyGS4F;BMyv1SKGJAL+faZGIW?HgFi_Cg z<@nY*ZJOYc(&6^irIgK97%n#4?9ix;qr6lL%C_|YjiZc?#mEJwIU*G)lXX>I$_82N z-1tR^FU+s|I}XtaJtGIe*ihbC1&jT|tqIqk>}hj-3g#)tyIYBnQX%f
EJ zh0!LGDQC{9#Rb-=E=rC;G8>~tXgt%nEmIsY4!6Hp9=s081+@Y%(DYSU0$&8%A^;bY z50;Y Ug8Ohn|_va-woU4ddsW-QfMIlxkg z5T?x*i}`Jf(NF&8fLn`Q86d11$Kt>B -LAaG^CvyrN-#xjO*{#9BGJLaWF*<}3R$-8JS$2!idCi1;^ySS z%mhSdHg*&6f&d-;!w_g`+tPUjo`XHzAsR2c=Fb^2ZWvvU7Q|{w6Pr1}Y}bK>K&!3= zv~zRwzOk{%A)e=CUKF#Po$ZT0pO>zo6pd;fC~gPCr=;a)BNJ9Dx{AA~*r~1>XoHFQ z1T3bSr;H2LOCSyXofLFQvl9%qIeVq)yO^mbRvn`okIYe(EoBoa&R}Z?0ofrMzO@w# z8=GD{xBmAMISmo6+MQ&@WGt|O)}kAN)NaMvXL52nbm{W=0iNgc0xL)Z1AQ}IucxqT z>dUwtY#=2qV}3rLTLM~ogGlEZ>I%^v)^P&3veG=yvB+|Zn m~zi#d7Hsjfu@=(i{FB_Uo>}J>d3jt@<;v*nR@ALGR{n1@zB?&LnFXzs*SC zwm;B*`77Vh-~Fz4m?bQ;Vn)1lX{?Qa>>-}x^2lcQ?cH<9<8fc{Fm;`Y_(U!+SN7)^ z0t3M-OG;yB^SMQsiKbvao`z;~lj1;SIm|V8trXu@?TpA~a|@UyI*xk^5yD^-(a5HN z-rCa#EuB4E${fRAX%Bj#tHnoMYg;iFry|15Hki@s1XpaJU5C}0@g0_!>V*pzJ1<=t zzmetGyu;yGy!M&{XIw7Vnlq-NGZz9bc4WnS)c>ihxvauY*W2c&0oqdwNr m(obX{nh#B_Jh3N@coSWWsW7HRFfzE+p5FA^JxkW PL5>@PM0%s +U|VhWO({B}TtmB5Pw*hr-< z)%LQ%ck7_KT#Jmew6G&8YoVK9qj*@l>LTEdZh~+}_m kPx*zV52O8^`F> zM|(OOc&bXWWfsudjMmB<^W1YUwoFV;y@hlv*6ns*zUjv6p4bdz(PFYA#xkIIMV4Q& zAtn{mU$?4+gn+xZrv 0xBx`hYcKM?5R}OOIy}6*o6SR1gJ|o2t`eV zdR0zH#iBHlfbJb^w(M`~pn9 esaWo1mZjXyJuCt_l zu*R`bX}efL1_2f$3N~G~`vcTX;B 1PkCMUNMwrLk&Bt%}{#wxm8+JaOIUDxy?c<9p z|16hHR}8cz!;ahC;-f8*kszAP(T%em!3Im|v>Pmwi#i4yYa5jQU3^Xd$^dA6`5c=t z&1JMK9vNl{J&m8QuYCZeW0P4nm4wLD7y;VEroX!tKP(lXA;WC!@&x2E8FF87$Z<6B zg@yx?wrB4?a5}07S|6|AI67VBC7Zdy(X>0g4Fy^Z#d!C--houI;&qs!D9o>(_{|?` znl?xV&(x8_*M1=w3{+h9Q_|R{T0GosS4^{n(IQCHx TKsOBY=FNJot=Yx9ur$Q(0S6YxjbdF zd-v^w16N%IsT%ede1y?v6#j_@GuoyN?P>-_TVk~pquCE0`pMfBMZJaevsia`=NE>D z2XW~#Q0aNbvz~{q_A7tt;20>V`Wo&7uQ@lGE2i~g%M}!e6VQ#NbA(0M;a0mHU?bDx zkdAMzE{Hy2jD^LvR)T{| ~=TDu7v!j#6m`a|9qsOj;d+xr2 zg0)nrZt_Qc0|%?=C$rvPHki>i^+0L{pj}s|U_JZMkAHe&Hk*4F=^#=#6#A!E-*)p@ z*|{pZrj#OJI!!w4;k>iSmCp(@ZOj7N6$63{0#}QV282rpx@n2J7&5s6*n9oE!_Y;5 zv9OzozLZu7s1MuL)3>7XEHYJ(%RyI682`Fa?5m>baQAHlSZ_NDnQRVxUN>+CSfk6J zdba_sst{AE+XzFDt-D<6Zf3Mww&$LEu{9o#e;mQt<#PV>z4yN6`EpMHX%!=*sx#+X zz5LPDKr0bOi}8w_h1E@QaCC;fw4r+;L6&ey0=lVO9%RKX1HRJ?eXk3I!EVI|ivSyF zX{P{NQr8lA7JM!d{2q}4>_++nE7sMz4s(l12>U${@cXDg8?}@&**wHj*{ZL{FUY7H zQmud1%#0tK(VBIG(&-F$?)>PVlRgvRdG41Fyy4#Otl{se7-(}U|7eGwKYD8Vitb5R zZ3?{pP< K9>PSk%8xhrhJIg)6<|c94!rv8CuAq @~3v*;3hc1lWEA*n?L?Fc{dD*NplGKEh}(W_;gn0-$aB!1QKfv}@Ywm(K>W+1wxD z>tHbW>GrnPf)x*NGUvX~ L-rU))^*IVY|`6%cb;7k9_8b>O& zVhFD606?axs^l7Zj-e^k0-0zql&W+@U=;<9rWTK0ybLd&JP(OvYD?!91OfK#+XGh} z*b6R~3wDBq1qt#R_lqk3ykH_Ys?D4c)@+Qn#A;Wd*o!AmhYJPy-;kGDS6AoXS8y)e z;;nd1HlKHXsXL&)_60Tvt2gv Rr=vwjT>#|A% z EKZh0%*p*kTry z%jG2Cx{rdaAPBHijAwKR3NnmleE(mSr^xIkw?VT3EzWW)iW8kZd;Z^&f#?zh{yVq7 z`j$%-KFErJb~5L_*yGA3JN<%xD!#V+z~c)xm2VTXeCjFNx6A<9q82MJP=Hekc?!6k zl7Vorb4LIQP6E@@vvBs@1$x}7C=j{@uD*Id3=a)bP~T}5B5amSb&)D7-r7Lh1dMjc zE?*vZ5$5n-eBIgE@x?0qKWn-ow%|T^qCf1oe=VTJQskLbys22NEGtDNEtA>oCNOJ= zWEncGw74KoT?~0i0zX-L%gXjG5Sh>C33I&+=Lo >|Q{;JU`XU&RZX2!Cf&yV=D z`&|MHIr&Q0PlmGEK-2hYkz`SE>N=0>qS7E^_-r|&v2 3IDg?HjEzl# zy2VPuc<&Kd(f``s-Ud6}M5X{CC+IIFeP5{Z6loK`j -w7H!0yLfau z#qZVdKr04XTn_E=q{jzZg#I(LS5Ca>w?t89U$CVqZWwiA)RoPav05;+Y0HGNMN!;V zVPhyAc=6(8IDdY0%bQzh4u=3Edxl~E{t@tcJ+NCW%qCGA gi?in7WQiHq6u%29} zUx&CX{ G*e8Zt#n-F_ zw3IGqQq)%~IK+nDEKziTlQh&lXb{g?DoNvZxgZb>LL`=Mn$Cp2*75O43b4pxD=8<0 z;aMXi!?17f9&o#NM*M5lOU*(a_WD#ZE*y{4a2hi^MqSwK`~ULM;)lsPgxneo4i1wQ zulG0$GP*WzByG@GB~1iFp=VE?c T>F%lW1L){H=#$8=jH5`rL%)_N}E zfmB?q{&L3inSFlkPM?!y$_qD^TQar)Egd}#zhU8^7iJ@IsJoxmr~y`L1A_yU{WW?c zjB2mWMd0G4%LHVnNQbX%W4g1m9rhA%?I$eOPE#%#D=k7xr=Y!*^#5Izr;tnr$GW)< zuup4ho~+cwb`>0d&oJ8WtoA7qtm=v`L~cwZQh(UhH~0fplmD2!Jyvq-H675B v39m#AurJ)jxGzTFjQhFsaFKr1~A#OvgB7? zeHBeoXq0YlJf0xnItG_W%VsOf@N_yw*t2H{_7Vo`^LfFxveg^u Y?s37Ttot)no<`e_ZUg$oi=-jY-8=YOpU)S_Nm-1wxze>lR!zZB2=cND>2wl! zj`t{v@+6~c{VdDOHY3mm!KgV+2C*62`nZn8O|gn;%0$j{uFENn54Vc_FVC#KS&F4@ zaAPbGZd?o{0>*G(2fTb?qE7AuqjWejS#tfVD#K03j?y&XY|487Y%V8JzbgW4BoeK- zj5{*c;o(6VIpFbFCx0o+1(==~gUH-0q>~9cDG3e-8IUc|)!PTH?H%=Z_f$$lN#EYv z!V#ooUYXB3XKEljX6}&Y>vjG348yJMU-A2c0V$VTdRn5>Nyi-~=uomj0NLT-p(PZ6 z=wh61n3H}c_ 9(u8G%+XdY`VyvRNv~iE4nBx)2JE&keU~pF2OF2YDS;daT0W z^7z0ZIvaM=Iy*uzF|z=vjAZ#|71^vxIv5Jl$l!I0aKo|dsoNlzw}xzBw$>N{*RjhJ zFgG8m7+f(F0h%pk(raL#m%0Z!EKV$lMHk??-~JjdoIA5ZutzVsT4>WD5DdYg>yE*} z>u+pI2~Kp4Y56n^guO7Acm8!Pcx@)hte4xM=n`NL`@H@)P%tIW3|BoO8Rrp0bGWmo zkFr^URZx%>aJpP%l_b!RLDaX Ovld(efjE|M?KLu+SW!%{CXj`h%0gYfHTU$K}aEwfpTfUKtE;k9?)Njp_6l>;*) zyO6m~OisbX_!P{{&Q%PqCD#B-6QaPj)p4&l7@vCLF*teRIdYd!%|-xT6b;&7Y#LI3 zcCjT1%l*~QAAuL1`7PY_`Zq)W(4OXT8IbRaefsKl2L?)C7|(iMuJ$pSywuOv^F9zz z{e98tqI%Q_vbZ7{J^u<^x^SMb*&Our^^?i+M$kBpx>*ox@o^*RqUv~R0sG+}G$YVX zm0pmGJ5CP&&7||91Fx#U*M)-k$vth_=SLUvP*Bz$>^P&P6N?Sa7{hR+YxfPnsdMAj zvssi^l=E=p-~q}KaRbZ@HjUZ>;}Zm2NsB}lDh5}yP$&q)1YC!P`s*f3D3L+; dbu*3=j^jobWwYdna;YiOM@OzXLIw2CzH|bnr^cagU>I`QECpG7 zKbeSA;Pv?f7-D#&8G#o4spxF%RTTBM3l}bV)~OFxao>UBrdY+-d@ A=%9g@P+iQYbBnM@D8T@IFD tE?gG8jH39}o(jxOxmD_) zq@eeeFVnC@RBL-TAr=booB(}8`^aj}LHoe+?>HbCi$azFZ!p|~K-=1^IfN+i-G}4n zg%?l#E& s54lo+L~*S3$%B`mg5Z<_Wk?!{p>N&Dg4z!4C}d(bnG9 zxat?bdh9WXCDKKZH7Z?Dpk>&y^yreyMWgqS6P)Beil7v-prAlefvm6z!~Nx>KY~z8 zEA;daHso5+{SlAOgU`uAf7qc< 1Or~O+FB$)nt_&< zF!%!jx`(jzC389G?i--@GEYbkYCbh9&^|=k+lxyw>4TRqkAHP=u-}Z*7wDA78nP9m z;N`6Mr8Y5t`r2;iHBVp8Zt!3fNG?Vo*xI;M&15DAHyqjvK93t-Jaf5bzv&W_RaLs& zJ#x)396xr5f^1fjA(q@6C{dssHC>Up;!#nmBPJN{iuJYz5nS8b8ZJjTF*XL5#wI~< z`GIpdDafK^B$gDS->vlhjE8{k16Csph?k36zLfPAt5o0}QI$OW@{u3H@BZEg8!}mA z-^ERyLjxXAb@r)g$u(9jMnN&!z{Hszq v5AE(FTg|051vRcvM zTuRs}?~AxGOvRQMO3I?m3bfxP?f)e$KrW!?si&X&7y;V iaDoo{eVK2MP@EcBI|l_BO6ARFp8R{d;<#yCVcoo;VBfWVWilUG&MKZ&3!XOMu&M zJPy4*#YrS96<{I0b~u-!sFbzhCf3Z%98D&u){wbkoNIqyFWuZ~Cau@!pFat_(@U0% zt|eVwN?}$jsxig;$>=QTtiCKQSpsAOgz<()7b0-s<&&`Q+9P$n7ECM0zT4^Nq20%; zr<1<_P$Qc)HKeN%CB+q4ekPkq9rpW!bftk+L6E(oA6De}B{|J2`lPOxyV722R-nbv zi|≫x!Zs@&_J#@W;P>;~QW1hzaM$4iKn@)h^`4NWUxd!$ZB!2Oc|{-mn)XV-dPT z*(fape8vcZ0iO%rboVhhe|Z*OIy1J#4J+M{FVN}6m&fUVg9nD;s(pjB =VaWxwo(l9f#9|D{@M z#ou2Uk)V (*94<{=s0M?nos1wTFKA$p8L^*WdGa zjpxRWfTG|PXPzk Pb8}LG`d_i5U@EVluwY?T%qfO%%@UBlG(H8h=n^2{noOo@?8F>&cC=G) z?dk2JkptVwFv@^i^0QVdzFrQtJONt~INT&t3UsqkV`YfW&p_wEUdyio`zZERw}XWP zog%~wj!)JCiWachT;ray4h~WL-T30dgh&QQXGbs1fE+zP0WY6A1)=a1+ H@o!Ho7XR`$zxDn9=Ycoe`;Shiv)Wm+ j;{_U=Sz#_BV$kK@z0Tc(g zJk6mBg|38>01ac5;?@B-VHRO-et`zv cDo>>@c$H-g -~d^4B{$+P-w>9k*7J#Zs!kP*rHa zi;2+ZZwy86IoRXuJTacz^g%5y%+k%VdJ2fpob^PKfNC6~i;MJ#09$Pw>sp2p0_bb) z?CPLL49D6H=5aeAnKolpYm7!RDrw5DQG*SuRj?LBTVUS)qOtjfcDUDttC~wEV!^M} z$UHM9f7M(gLb}TB3!k`qt+yXG+LmoQImj{x4_^Jovu7{-$9z8j2`Fx4=?0x}%Ch{P z$;s(=fAwqMdPWq*Zx0O(JiNtvV+*8JT_#~H=lS4JSpU{cLg6-ZAz)TeY<`ATWw4^K zBQEtZUNuHq+-QkJqN3u1TLo537U*bir8Ts6Qx({93kG~Nyvsae%A5(LQ}* P3i8>M?+ cV!U8g4%9ix zIn(Bl{_D{`*GFSnWnF>rayAj2pC(}2O^8e7V2jIpT=p-uREmIU@pYkKzIq%kY0(vc z(t_;-SP@{GwSJbAO+z9&3xXg*h)ib7Is?{NXL}2bPc4`zmZmQq-EKGZ_4h+OWgga` z9})W=_CYj^GC17hgt#nxGA27>HJlp#vSxQaiLhA>c8G1qE#KVTci(Y}EPWq%@COgS zlYr` pj13-=4JL zTXI7cNepPGlEH5r3q|j~VZeRx*B3III;j-70E@_M+qNO%P~pBdsM&H?mLyvDt0>?29mZ@+r{tV!*%0AA;-dcoR4+EHl*I z*$NKFs0oEJ^^%`wDV_7^b%*Khb-^ST4>DNnbJ+LL(06#_AnEc9_nR}Rz{5418ZUm) z0ydk49b}AN$I{Tp-t||eoQJSlw*ic}Jm!D)^T&TDmy LCkTMxKxJ!wR?w_#&>N!vVMSvxfLj7i0o~M$6 q!yi3*Gg(5vi?H3-89y&~e(7bSK{wbdndr5CGTHYlimDTk zEB`&F45Y~lnvqB=kd`g}jJ~a+76|Fc^s^j17k7)CD=jHBz#jot-@+iMhl#X=N|0t> zg$bx4xFV=FV`^)~qcRnTu7SOP0?p`J$s}VCotuK>!mKf$TIWI-8tjI#sX2%xs@(@F zProfnDBf}FaqxP*R29t(kc~xVR)B1GK!CmNqBfOt{ks}LR 2E>GE7ie@p;L=7m Y_?$)^qy zrh6+{uHQr$&k-^hTUG(3UIu`A8Q7Npy!<`QaJw+8-lyb*3_cyhBCh~j{NWmCU-95( zSz1&Oiwq(w4fy@!=mj5n-E3*BQ{$K6!r50KIzLO |vU9IqzH{D0C zA)d~GT0>m3Mt!o=AQzThQ3A)n@gWcTWq)-l5&V}LuNr+CW^aILu!ABER& H18xU-lbC#L42I^`sUIm5>2S!Qm za!t~$+-=lcbvm6CG@ULdcnPRt2$hF4Ji1-3reE^svKe^vq3^>40otW&$K|n6n6S02 z9qxPc?_h;dQ$EkZYLJY_jPmDL1ww+o`wvidJ24xx+(p9^HZ71f(~o}fEG)*iB6?-G z3~03l2@dWbfO}qZ3tf?*{A46neKle9_tNMBc^L<>yBr^KL%Yv0^>nP|Z8cslqW7c) zw=rc!x@|M~Xty=c8eoeF2c~R`Kl|(pZPCTW9>RPF1fJh7D@s67l%S%h0Rj*KGKfX= z#}Z)n0%|Vl;9SQgz;GO!3wj(K8sWAIA- d2i<1>RC)_7}3wDGS&vDs;uIcrNy4m^p^K5T=wRzu|@>5yS6< z(q^dBSCbM 5aOJse~xk(7MbvCT_SgrQ!#~+7`q=4WKEQhZd zC0tZgry|Q)6iq3R<4+&@F1+Kt?}u80QE|y0OXeUPa4%(3A!tPtnYvv!N=GilG&p+g z9=MLQOA~XnMWP8vWpXs~#6c$2fY(h0+4m0hKu6nh7fWUHv|2^AAd9uWVv*S^QmOZK zh%nUZP{*^L_tprqXi*D57A*}s*tR{;qE01YwGsfBo%e}8D3{TyGAz;TV%1L^?txEb z3mP+*+}dV|X2d)O!foL4Y_D*uWFi6MlQXn_78OXrbW-vk`XRAOgCa{bmtQF`bhysV zPQ%pLCFmKby|R2Jm#31C2xgkDnGoMvxnVfp%t8`;9w!VBbP+J^-h2f>CWJWZ1{dV2 zKNkgJP`h9?NOuPXxTedg#|n-=tD!7SIjKonaNF{Y(wnW9u{-2CvS9A!eaTRDqo&b{ zl5-iA|2qs054pFV35Ej(i{zn<-FC96sTtr!F9 1m)Ri zvL=wlK7yLEt3kHS%fk)*E=Vc-XKR!`q)U6SCdxnu^EDD|ptXqAYG6$!iDH0lO?E07 z{Hg-{*I%{A0|8fMX}2h2hdwv6l(j7P;}BMfz=}1ru+l4wRbf%onl#?wq(9?m!=F27 zNLDJ51eYl6xWR?MhdyF-U!d?hCLc_Yh5$Ubn4~PWAXiW1G$VYgBz0JBVGjp454$0+ z3tv2)41UW5Fr2HEbgV~`c2cVCPG__TwmAbBtzgSFr{}y74}DH&xE~ XMI zEX+=>2-Rs?UlfAplBOza6dz=ZugQBTYK;I)8)dWt-D!7;4zR5P7X|4H*e6P&-Q^Y} zlld*f9*}kZt0xn|FPiXixU8}w>`F1l?T$Bghh2|V4)sMd81spE_>&CF{T#v8BUX0n zaTgi0owAu!Q$K)U&`-s3t}N|REJRqWCcx2JSqv}G*X^C1RD9gFEzbO;4`5$d9a(_p zcM^~#{YzuG@4b)+{jEu3D!$Fes|~akvsz@dR?U#Obdqa52?5(r@Erfdt4Atlwp3d- zI!}u}HmfV4yR)6JS{~MpA~1AUOAOaI9zJpubkM=J&0Pif?6D856`6oc_BPV5$Yl28 z=i^~BVkt4YAY#$w 6-SkFBtsc*!gpho _#f+}P4pZl Ze9>RoK2@5nVp(C>GF8r-z2OShp<)a z>w>{-Yc|4c|BS4gAH05F8{G_f#_AqI1)bibtWINhe#ek>Ot0JGfR@Q?Zme7<~-c z?;GFvhN32(Q~=x7Ud7-u#%H}A$YOK>x}#Kv|C&i4tDCigThC>%6ZH%>GUhW6KE4F9 zm{mfqKG5CS`6Z{<_f{-Ny^)Ec2;&zo!eT52-TnQT@$)Eo`}bf~dfsYA`?n8YtjD!2 zNhw-jn2pwI#)*yuV;|u`dFRuYvM`sbZY70TWPxxyl?iMX^Lv~ydU*<-df^=8jnE|o z4GsN@Y95YUJp^~$b`#aQ&EyKO5Kn_`t68i>V`Fh#u4i2V0ges0Xmo)|8((Pi7LpY! zO5Ut#AG&Y2X`Urt0$Dm+GE7%@ckk1p%iSx>g-!G6@ppIvwjDjarMIxa&MDGvCV%@1 zG&Uc<LJi9`^kH3zIqKa 17C zP~z|EeFJcq0P5J}Jj_QEH1#$V@W60?*HT@vysW@tV#kM3Rz@eWiUwh^+4RP_0mH2h zIMn0P(<=X26GFI37PAm!71#wav+Dvax(hImzrC~jIjri4B~i8_TEa3ckl&{j0GMT$ zXn_3jvr
_=URdI3x?~Z=G3j162bqu-FOeB zaA0D%k1x~$E_dTgn`5v(GFt@JkyWk)^dO|N5{)HoHrGcZEtgG0Di#GYcGh2pGKO$> zo2V@0#gAUd_?|XvegyNYC6v1(QoHrJ^7znXvb6IDg5U840$sAab+-(rIikW;Hk+lD z19(FZRMU00$Lsl#L*S2TjU7a)F@su#IuT>Cs(D8WGk5x2nfLB(hc9>>toYn`j%E^7 ze8FUZ#uw%wD<;4nY6Za|Hnf8wv&9^KOh^!Tj)DZHspj%B&62XsSREGfkc=&?(2iYm zz;X {! GNU~{sE z;ea;{VhlDn^K#Pv?vx^!<=93y+nj}$nTH*!GrLt|kpa2gp1&4dPEg8rH4!v9GB`_e za~#Jny)M^j#oAZ+vzBle!l4jtZjT!j6>DV4pHk$e2$f4)IGdKh)|9lZMOj>YCf4$R z$0 Q9lXR{TM?FkBS2k8$^2mjd9v6i=( z2(q|2H49)_AhQa)C^2DOMoTdBCQ)?mXUg1|v>b@TLBaOaiRU1;7^RM(!963;H#kI# z2rm1J80t2_BkF+C=pA)wK;zE*n@Rg#gRfIJ{7+W-Yqc_F>oDPD+Ox6nhYkkf?>#>3 z`TaAq5_5JoU-d{p?bCEJ4w-ZkJiY*FL1UF-Tm1o6gG`D%i&TPcdTnOtYPqJ%No#zi z6#j2a-1I6jO)EjR ED&%g3A#A0y>wRM2#_P|TeJqHt) zFM(@Sxs=kz8M+dRfXkM VlWbmc{=tDxr-X5mPN6n%#DR?h zB$4Scs`ykkA=*|K7r`RE_xKF90 BBozobaQHCIU1xb7JYGM{OiV&YcMoN+t9`Zzu! C_a?d;;4}PRjTeaFofNTy-a;NPGpe1eK%Gp<=t^ 2DeTP$!VrzB9++E!$AlPaC0&FS)h+ZUiEyKOT8$)p@) zQwflAm4%HuI0g aC#t3^%lZ*gO-Z*Y+MY*AUrn8BS*c-`nX!ej%hw&F`* z+i50yK9vl9qr)lvY9N&P$95mz`QoHhGrKJr0s=OU7r;$euFLDAo1C^)@X$&B&!tmT zU2836t*x-wLp?4KIClJ8%KHbnF=_$Hm;-BlrW)+xc-eJ &_^3+X(`U=`FzQD+l T^wnCu3zRTAVh5NkxPCen_#V${4;}KyKYsgO?*7S`%$}Z+AX_kh1&075WizzV z4n$Tt2)GEo4u`WT1Z~W^&O$+=po##i$mT@tVPy@}Dd-Les-$t>d1f*6In6rFSKRcf zM@E(%VX|0N|GdPsdY 2IE-$S>8N*FD+3K%WUa^Gn7n?S%eL% YUv(*3fOB(s)BLw wQ~~S=gRKKCv9A&4@kfi%$StDN32u* !lZ?)_<&1U z?@Oe;bB`x={YV@8iQyJU&nN-h(TKGS_lhMr`uho(T~Wc8VW@wXBa=8z a)SN^MIDHgGIt#kC7$SQ`3_ZzK+f=DzS&U2ZJLckdq4FAxzipazZ+l z0$(_^rt5&P4xKRETS>dP9m9agEUlASx}IQ*K#Qe++Q7QfJ8&W6`wdxC{-)QJ9q9`* z|9-H=ad0-NFvxHtDaBU(sKKzCcldbN( S=UDBaYcxl57brDLs1_WH6 zCueyNX{R)UwQNUg0N5&qD* @Q9yeV;K=!f+$Q2NkU|v$R3h44^f@cAPNV+cj1D zP;4>!;Y=ny?DGdGo2BuzI?xTVqEkqxJ~1hmn^sii?*u{ktKu#*Q)0K<_Qo^-Y|#>B zt^|jb9~6@vu~ U8$bCS{n2$w1g{RTUm~{D5H@=nU}CA96su zpC`kG8A~es|9o*V@NgZ!20FZP!>gWN7aL^F1X=@Zfnk}ybvVSoQx)ZH(a8M$iCF9^ zQ53s)fp_sdFA*4>Q&jb=Tqyh`pO?PnaeE~(9KyfbF$s8OVC%CQ_{ywcxDs%a%qsod z74~u}fO^5-YZLPweZI^GI|IV22*~ P{X7-l#v{uziGs%d z@_fqkPZsDAY-FVkuQ=3q`@;s=THQ;HD2!L9a^qVC(=GiT0bB&zdKchAaBpwG=K}h2 z+ePX31XjCARdvsNN}=V@=Lply?E?1#x&<(M3w^KcJ_@cWS!17^kzD_yPQKUGhAW+g zI ^v=yz^hky=W9W zXoN4eWD>@g+oRtG+IoX6CN*Hkch~u&(RYix%eYZi_d4PjU{BhA#@8aNIYzw6H}7fZ zU%R(M-$NF#o_J2BfV-GgAf8oeLCI!@UfeqHiY$cOJhTvSMS#VyEb^T*s?MCtD*R7Q z#C;E$EVf;ZB@I_WBfdwL^!Kbi>TRHH6xe1Bu&p=Xm0~61hC9L0i0jX5Y~ge=h-uX{ zwc5q0&S7`@zWx^V*5OwD0Aai#Rnxhoq(OoJFk!!duMvE6h57<80xG7yBB&ye`dusp z$k9g{$AYTs%pw8S^Er)u@^sSkaGjzBwsf1J{+nIpmPQQ_d$ij?+i0*wAsUQZ#E1l@ z0fTVD`0P-lpCML%IBjgEmEOZmwRTauwcDv4>1Xs20={kJCb=~oSQNTJz(qeVW~gCW za9%AQu@Us6l_PNL06|$Ut0EzA#S)?jpgeiakrxi0p=qvo#N|J}b~#vZ6M)4d%K)As zOF(sA(U}X9$~}KE>wE&0&zi7nDTbS%QGid2DU$we*M_%&wrRjtCSV&k0FP_HS4bKI zG62?Ai>TNld2x=kZ vdI_P$(d;A`)m*8S21A36)rjLNJ(_rZYD(SVb zYfNILpnSw()%bUTfT%?Nog~K?d1GGD*l{uej9yMTUuq(jx{;~IN+kh}OQuu}khS$> zZJ=#BuvH1z;^4rDght3zp$j8s4A7tfxJ|25h-y`&{hGY|wcUG`z%604Muu|82FTjk zDmKtsV BXvRSCfc2WT8-0gG<9h^}9dK=1>N9a@eAKyAa#h#@F*eX{2g?}Dzz2=c z|668ACBXGJn@hnq>Vw5+(+qXBbfeGOn_f21ZaXU&ETvI?+j77yWf1ucz;)P i z05%QHA!tYav0&HtvVnFRTWMnh!@tA^f0t5KQfw|`0`N4DaqlM64PZ?+8Eecp5#ZZE zYg^5OEM+iUZ<7F9&S;#$a_gzzu-jHON#przP1YyVVAuAtfp&*38B2cKW+|RkV%%|q zar+FGYxjlfO))^MS%Iun?OC-Sl?}8z)k-_eZm56i?p7uOYzu~K!E1o7y@9qhaLpJ1 z*3279S) ?uC_Zfh=r~-TD&Cwl} V6cm0@KuK8FFg zqH)|weMmN#YN-{r;rF+Fu{O}!R%WI2OU&`#P9ax?RRF{rpeq`ahGUz!8w#shej6{d z?c@U+Xl>iXO3cX(^%WI2%M@7N7%CZ42Dk{moN?rhR*y+VFZ*tC+3Qjyh`xjRPZoAe z0Vx}3ZL`iaW677>Chml-fLtk}VYM-^tj@)iwUSy_xoQ`?&b=yqhGrZ~N?uyoai?zr z$;RYnZ+6*0Yg?7>1PAQgFe}{#hno9H2DYF7*alkLn$AjoLl^A6oqpTaU-gutL2R>u z);1Fj2bEL?xVA>Y?lZj%U~PQ@8)$8_aG+(4fo21)4Y0P^Kx U(q1 N*j^3TfjCOXl>h+jg?|^5oCq3X7`bmlapN5> PEUfp0FfY!^7 qtD6SPRTs2X@7Z8#Tf^-C7hnLAaq=RYj=>KA0000 diff --git a/assets/404/css/img/404.png b/assets/404/css/img/404.png deleted file mode 100644 index f166e2f2bed13d048ebe9d4eef50900966cf7666..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1584 zcmeAS@N?(olHy`uVBq!ia0vp^pMW@vgAGWw#qx9kDajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_cg49seoArU1JzCKpT`MG+DAT@dwxdlMo3=B5*6$OdO*{LN8 zNvY|XdA3ULckfqH$V{ %1*XSQL?vFu&J;D8jzb> zlBiITo0C^;Rbi_HHrEQs1_|pcDS(xfWZNo192Makpx~Tel&WB=XR4cQU}UIZZmDNz zYHDt7q@!SDU}&OmV5o0stZQg#WnyAwV4wg6N h+i#(Mch>H3D2mX`VkM*2oZx Q#zd*s+860W~8sV9F zDf#8anqWP?zE+-j#U+V($*G<$wn{)#^fEJ3tjt|3oSck}%p8qOT@4Lg&7BO~Oq>jj z%#0je&CLwmEMR(F@{>z*Q}aq-dQ%X3&2j1lC5PMspv^9+MVV!(DQ-pixe8!!TV>*Q ziwREipn6kqyTufzUVWfr^g)q}6xlE#U &;!qEU7?=10OvnPKw?9YSTw1R{jfzD%kEG*REhX%ekj1_PVu12LA)WB>#XH z%dCH^?a(>W|KsJ0KXo5YJo`AK@|?Y2!i+mTZi}@Nf{r;)O^-UJX7Jx#GJaCu({Rb} zS2I)IXD>VZuh_cPRkHcW*Y<-yZyVXE%AP)Nv~QnT=GLgaf8MZ)=j*+(DpY>ID(}?2 z>)D1I{QrMHC)O~5QIXk+t%V1KIV1&)fVfEg%&8l!$82`gefIg_d#S@NKZgB$>9bD) zMhYn)>~NxCf+G-vbhf>|zWc-D{}Xn6`>p+J&g%nr8g=+C?fLlCtnlw`z1BaLKbv=n zW#5&J{mlJ7`O&Y1Tkl3S@1KZl T2qjVAg*FmY=-#f-l|HMV%Zt@`Pc2&c^sXv zul{n;3|Gnh%%9tJZTmeX`5S*WKlpWdT}-g=iPA^E&ZpYEeD{Jayh!f*$?Nx*X 8p_JwmlR{SxlQEtu$hYQ>Vpb)*atg`#r zWmft6xjV`}@49(nb;x#goA ajJrB4Or^|Rpe@}~w zJ)Rvm{deKYc%|1*_Ey&9Udq~9l+F9k4G}@$I8aDgFtuu%g6kK_NB`<%v_4DTe{n0f zPA&Gto|BupY@P4y5w4b-u|MPD&TT(umS7E2i^=s&JPaF)W+(rD)xHK)hI_jDxvXsvg path{ - stroke: #555; -} -.qmsg .animate-turn{ - animation:MessageTurn 1s linear infinite; - -webkit-animation: MessageTurn 1s linear infinite; -} -@keyframes MessageTurn{ - 0%{-webkit-transform:rotate(0deg);} - 25%{-webkit-transform:rotate(90deg);} - 50%{-webkit-transform:rotate(180deg);} - 75%{-webkit-transform:rotate(270deg);} - 100%{-webkit-transform:rotate(360deg);} -} -@-webkit-keyframes MessageTurn{ - 0%{-webkit-transform:rotate(0deg);} - 25%{-webkit-transform:rotate(90deg);} - 50%{-webkit-transform:rotate(180deg);} - 75%{-webkit-transform:rotate(270deg);} - 100%{-webkit-transform:rotate(360deg);} -} - -@-webkit-keyframes MessageMoveOut { - 0% { - max-height: 150px; - padding: 8px; - opacity: 1 - } - - to { - max-height: 0; - padding: 0; - opacity: 0 - } -} - -@keyframes MessageMoveOut { - 0% { - max-height: 150px; - padding: 8px; - opacity: 1 - } - - to { - max-height: 0; - padding: 0; - opacity: 0 - } -} - - -@-webkit-keyframes MessageMoveIn { - - 0% { - transform: translateY(-100%); - transform-origin: 0 0; - opacity: 0 - } - - to { - transform: translateY(0); - transform-origin: 0 0; - opacity: 1 - } -} - -@keyframes MessageMoveIn { - 0% { - transform: translateY(-100%); - transform-origin: 0 0; - opacity: 0 - } - - to { - transform: translateY(0); - transform-origin: 0 0; - opacity: 1 - } -} -@-webkit-keyframes MessageShake { - 0%, - 100% { - transform: translateX(0px); - opacity: 1; - } - - 25%, - 75% { - transform: translateX(-4px); - opacity: 0.75; - } - - 50% { - transform: translateX(4px); - opacity: 0.25; - } - } -@keyframes MessageShake { - 0%, - 100% { - transform: translateX(0px); - opacity: 1; - } - - 25%, - 75% { - transform: translateX(-4px); - opacity: 0.75; - } - - 50% { - transform: translateX(4px); - opacity: 0.25; - } - } \ No newline at end of file diff --git a/assets/Message/index.html b/assets/Message/index.html deleted file mode 100644 index 8c8e675..0000000 --- a/assets/Message/index.html +++ /dev/null @@ -1,106 +0,0 @@ - - - - - - Message.js - - - - --- - - - \ No newline at end of file diff --git a/assets/Message/js/message.js b/assets/Message/js/message.js deleted file mode 100644 index a79910b..0000000 --- a/assets/Message/js/message.js +++ /dev/null @@ -1,407 +0,0 @@ -/** - * gitee地址:https://gitee.com/jesseqin/JavaScript_base - */ -;(function(root,Msg){ - if(typeof exports === 'object' && typeof module !== 'undefined'){ - module.exports = Msg - }else if(typeof define === 'function' && define.amd){ - define([],function () { - return Msg(root); - }); - }else{ - root.Qmsg = Msg(root); - } -})(this,function(global){ - 'use srtict'; - - //assign 兼容处理 - if (typeof Object.assign != 'function') { - Object.assign = function(target) { - if (target == null) { - throw new TypeError('Cannot convert undefined or null to object'); - } - - target = Object(target); - for (var index = 1; index < arguments.length; index++) { - var source = arguments[index]; - if (source != null) { - for (var key in source) { - if (Object.prototype.hasOwnProperty.call(source, key)) { - target[key] = source[key]; - } - } - } - } - return target; - } - }; - - // 'classList' 兼容处理 - var isClsList = 'classList' in HTMLElement.prototype; - if(!isClsList) { - Object.defineProperty(HTMLElement.prototype,'classList',{ - get:function(){ - // add, remove ,contains,toggle - // this - > - var _self = this; - return { - add:function(cls){ - if(!this.contains(cls)){ - _self.className +=' ' + cls; - } - }, - remove:function(cls){ - if(this.contains(cls)){ - var reg= new RegExp(cls); - _self.className = _self.className.replace(reg,''); - } - }, - contains:function(cls){ - var index = _self.className.indexOf(cls); - return index!=-1 ? true : false; - }, - toggle:function(cls){ - if(this.contains(cls)){ - this.remove(cls) - } else { - this.add(cls) - } - } - } - } - }) - } - - /** - * 声明插件名称 - */ - var PLUGIN_NAME = "qmsg"; - - /** - * 命名空间 用于css和事件 - */ - var NAMESPACE = global && global.QMSG_GLOBALS && global.QMSG_GLOBALS.NAMESPACE || PLUGIN_NAME; - - /** - * 状态 & 动画 - * 显示中,显示完成,关闭中 - */ - var STATES = { - opening : 'MessageMoveIn', - done : '', - closing : 'MessageMoveOut' - } - - /** - * 全局默认配置 - * 可在引入js之前通过QMSG_GLOBALS.DEFAULTS进行配置 - * position {String} 位置,仅支持'center','right','left',默认'center' - * type {String} 类型,支持'info','warning','success','error','loading' - * showClose {Boolean} 是否显示关闭图标,默认为false不显示 - * timeout {Number} 多久后自动关闭,单位ms,默认2500 - * autoClose {Boolean} 是否自动关闭,默认true,注意在type为loading的时候自动关闭为false - * content {String} 提示的内容 - * onClose {Function} 关闭的回调函数 - */ - var DEFAULTS = Object.assign({ - position:'center', - type:"info", - showClose:false, - timeout:2500, - animation:true, - autoClose:true, - content:"", - onClose:null, - maxNums:5, - html:false - },global && global.QMSG_GLOBALS && global.QMSG_GLOBALS.DEFAULTS) - - /** - * 设置icon html代码 - */ - var ICONS = { - info:'', - warning:'', - error:'', - success:'', - loading:'', - close:'', - } - - /** - * 是否支持动画属性 - * @type {Boolean} - */ - var CAN_ANIMATION = (function() { - var style = document.createElement('div').style; - return style.animationName !== undefined || - style.WebkitAnimationName !== undefined || - style.MozAnimationName !== undefined || - style.msAnimationName !== undefined || - style.OAnimationName !== undefined; - })(); - - /** - * 生成带插件名的名称 - * @param {...String} - * @returns {String} - */ - function namespacify(){ - var res = NAMESPACE; - for(var i = 0; i < arguments.length; ++i){ - res += '-' + arguments[i]; - } - return res; - } - - /** - * 每条消息的构造函数 - * @param {Objetc} opts 配置参数,参考DEFAULTS - */ - function Msg(opts){ - var oMsg = this; - oMsg.settings = Object.assign({},DEFAULTS,opts||{}); - oMsg.id = Qmsg.instanceCount; - var timeout = oMsg.settings.timeout; - timeout = timeout && parseInt(timeout>=0) & parseInt(timeout)<=Math.NEGATIVE_INFINITY ?parseInt(timeout):DEFAULTS.timeout; - oMsg.timeout = timeout; - oMsg.settings.timeout = timeout; - oMsg.timer = null; - var $elem = document.createElement("div"); - var $svg = ICONS[oMsg.settings.type || 'info']; - var contentClassName = namespacify("content-"+oMsg.settings.type || 'info'); - contentClassName +=oMsg.settings.showClose ?' '+ namespacify('content-with-close'):'' - var content = oMsg.settings.content || ''; - var $closeSvg = ICONS['close']; - var $closeIcon = oMsg.settings.showClose ? ''+$closeSvg+'':''; - var $span = document.createElement("span"); - if(oMsg.settings.html){ - $span.innerHTML = content; - }else{ - $span.innerText = content; - } - $elem.innerHTML = '- - - - - --- - - --- - --- - - - --\ -'; - - $elem.classList.add(namespacify('item')); - $elem.style.textAlign = oMsg.settings.position; - var $wrapper = document.querySelector('.'+NAMESPACE); - if(!$wrapper){ - $wrapper = document.createElement("div"); - $wrapper.classList.add(NAMESPACE,namespacify('wrapper'),namespacify('is-initialized')); - document.body.appendChild($wrapper); - } - $wrapper.appendChild($elem); - oMsg.$wrapper = $wrapper; - oMsg.$elem = $elem; - setState(oMsg,'opening'); - if(oMsg.settings.showClose){ //关闭按钮绑定点击事件 - $elem.querySelector(".qmsg-icon-close").addEventListener('click',function(){ - oMsg.close(); - }.bind($elem)) - } - $elem.addEventListener("animationend", function(e) { // 监听动画完成 - var target = e.target,animationName = e.animationName; - if(animationName == STATES['closing']){ - clearInterval(this.timer); - this.destroy(); - } - target.style.animationName = ''; - target.style.webkitAnimationName = ''; - }.bind(oMsg)) - if(oMsg.settings.autoClose){ // 自动关闭 - var intvMs = 10; // 定时器频率 - oMsg.timer = setInterval(function(){ - this.timeout -= intvMs; - if(this.timeout <= 0){ - clearInterval(this.timer) - this.close(); - } - }.bind(oMsg),intvMs); - oMsg.$elem.addEventListener('mouseover',function(){ - clearInterval(this.timer) - }.bind(oMsg)) - oMsg.$elem.addEventListener('mouseout',function(){ - if(this.state!='closing'){ // 状态为关闭则不重启定时器 - this.timer = setInterval(function(){ - this.timeout -= intvMs; - if(this.timeout <= 0){ - clearInterval(this.timer); - this.close(); - } - }.bind(oMsg),intvMs); - } - }.bind(oMsg)) - } - } - - function setState(inst,state){ - if(!state || !STATES[state]) return; - inst.state = state; - inst.$elem.style.animationName = STATES[state]; - } - - /** - * 直接销毁元素,不会触发关闭回调函数 - */ - Msg.prototype.destroy = function(){ - this.$elem.parentNode && this.$elem.parentNode.removeChild(this.$elem); - clearInterval(this.timer); - Qmsg.remove(this.id); - } - /** - * 关闭,支持动画则会触发动画事件 - */ - Msg.prototype.close = function(){ - setState(this,'closing'); - if(!CAN_ANIMATION){ // 不支持动画 - this.destroy(); - }else{ - Qmsg.remove(this.id); - } - var callback = this.settings.onClose; - if(callback && callback instanceof Function){ - callback.call(this); - } - } - - /** - * 设置消息数量统计 - * @private - */ - function setMsgCount(oMsg){ - var countClassName = namespacify('count'); - var $content = oMsg.$elem.querySelector("."+namespacify('content')), - $count = $content.querySelector('.'+countClassName); - if(!$count){ - $count = document.createElement("span"); - $count.classList.add(countClassName); - $content.appendChild($count); - } - $count.innerHTML = oMsg.count; - $count.style.animationName = ""; - $count.style.animationName = "MessageShake"; - oMsg.timeout = oMsg.settings.timeout || DEFAULTS.timeout; - } - - /** - * 合并参数为配置信息,用于创建Msg实例 - * @param {String} txt 文本内容 - * @param {Object} config 配置 - * @private - */ - function mergeArgs(txt,config){ - var opts = Object.assign({},DEFAULTS); - if(arguments.length===0){ - return opts; - } - if(txt instanceof Object){ - return Object.assign(opts,txt); - }else{ - opts.content = txt.toString(); - } - if(config instanceof Object){ - return Object.assign(opts,config) - } - return opts; - } - - /** - * 通过配置信息 来判断是否为同一条消息,并返回消息实例 - * @param {Object} params 配置项 - * @private - */ - function judgeReMsg(params){ - params = params || {}; - var opt = JSON.stringify(params) - var oInx = -1; - var oMsg ; - for(var i in this.oMsgs){ - var oMsgItem = this.oMsgs[i]; - if(oMsgItem.config == opt) { - oInx = i; - oMsg = oMsgItem.inst; - break; - } - } - if(oInx < 0){ - this.instanceCount ++; - var oItem = {}; - oItem.id = this.instanceCount; - oItem.config = opt; - oMsg = new Msg(params); - oMsg.id = this.instanceCount; - oMsg.count = ''; - oItem.inst = oMsg; - this.oMsgs[this.instanceCount] = oItem; - var len = this.oMsgs.length; - var maxNums = this.maxNums; - /** - * 关闭多余的消息 - */ - if(len > maxNums){ - var oIndex = 0; - var oMsgs = this.oMsgs; - for(oIndex;oIndex\ - '+$svg+''+$span.outerHTML + $closeIcon + - '\ -=99 ? oMsg.count : oMsg.count+1; - setMsgCount(oMsg); - } - oMsg.$elem.setAttribute("data-count",oMsg.count); - return oMsg; - } - - - var Qmsg = { - version:'0.0.1', - instanceCount:0, - oMsgs:[], - maxNums:DEFAULTS.maxNums || 5, - config:function(cfg){ - DEFAULTS = cfg && cfg instanceof Object ? Object.assign(DEFAULTS,cfg):DEFAULTS; - this.maxNums = DEFAULTS.maxNums && DEFAULTS.maxNums > 0 ? parseInt(DEFAULTS.maxNums) : 3; - }, - info:function(txt,config){ - var params = mergeArgs(txt,config); - params.type = 'info'; - return judgeReMsg.call(this,params); - }, - warning:function(txt,config){ - var params = mergeArgs(txt,config); - params.type = 'warning'; - return judgeReMsg.call(this,params); - }, - success:function(txt,config){ - var params = mergeArgs(txt,config); - params.type = 'success'; - return judgeReMsg.call(this,params); - }, - error:function(txt,config){ - var params = mergeArgs(txt,config); - params.type = 'error'; - return judgeReMsg.call(this,params); - }, - loading:function(txt,config){ - var params = mergeArgs(txt,config); - params.type = 'loading'; - params.autoClose = false; - return judgeReMsg.call(this,params); - }, - remove:function(id){ - this.oMsgs[id] && delete this.oMsgs[id]; - }, - closeAll:function(){ - for(var i in this.oMsgs){ - this.oMsgs[i] && this.oMsgs[i].inst.close(); - } - } - } - - return Qmsg; -}) \ No newline at end of file diff --git a/assets/Message/js/message.min.js b/assets/Message/js/message.min.js deleted file mode 100644 index 4777d88..0000000 --- a/assets/Message/js/message.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e:"function"==typeof define&&define.amd?define([],function(){return e(t)}):t.Qmsg=e(t)}(this,function(t){"function"!=typeof Object.assign&&(Object.assign=function(t){if(null==t)throw new TypeError("Cannot convert undefined or null to object");t=Object(t);for(var e=1;e ',warning:'',error:'',success:'',loading:'',close:''},e=void 0!==(t=document.createElement("div").style).animationName||void 0!==t.WebkitAnimationName||void 0!==t.MozAnimationName||void 0!==t.msAnimationName||void 0!==t.OAnimationName;function g(){for(var t=l,e=0;e '+t+"