From 2af6bfdf8322230aa79a867f4266483524d46c75 Mon Sep 17 00:00:00 2001 From: thehrz Date: Tue, 13 Aug 2024 13:34:33 +0800 Subject: [PATCH] Initial commit --- .gitignore | 263 +++ .vscode/settings.json | 45 + LICENSE | 416 +++++ README.md | 5 + chapters/acknowledgements.tex | 9 + chapters/intro.tex | 54 + figures/hfbz-icon.pdf | 1676 ++++++++++++++++++ figures/logo-left.png | Bin 0 -> 29334 bytes main.tex | 13 + setup.tex | 85 + thesis.cls | 3144 +++++++++++++++++++++++++++++++++ 11 files changed, 5710 insertions(+) create mode 100644 .gitignore create mode 100644 .vscode/settings.json create mode 100644 LICENSE create mode 100644 README.md create mode 100644 chapters/acknowledgements.tex create mode 100644 chapters/intro.tex create mode 100755 figures/hfbz-icon.pdf create mode 100755 figures/logo-left.png create mode 100644 main.tex create mode 100644 setup.tex create mode 100644 thesis.cls diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6d23bde --- /dev/null +++ b/.gitignore @@ -0,0 +1,263 @@ +main.pdf +ustcthesis-doc.pdf +*.hd + +## test files: +build/ +test/**/*.pdf + +## Core latex/pdflatex auxiliary files: +*.aux +*.lof +*.log +*.lot +*.fls +*.out +*.toc +*.fmt +*.fot +*.cb +*.cb2 +.*.lb + +## Intermediate documents: +*.dvi +*.xdv +*-converted-to.* +# these rules might exclude image files for figures etc. +# *.ps +# *.eps +# *.pdf + +## Generated if empty string is given at "Please type another file name for output:" +.pdf + +## Bibliography auxiliary files (bibtex/biblatex/biber): +*.bbl +*.bcf +*.blg +*-blx.aux +*-blx.bib +*.run.xml + +## Build tool auxiliary files: +*.fdb_latexmk +*.synctex +*.synctex(busy) +*.synctex.gz +*.synctex.gz(busy) +*.pdfsync + +## Build tool directories for auxiliary files +# latexrun +latex.out/ + +## Auxiliary and intermediate files from other packages: +# algorithms +*.alg +*.loa + +# achemso +acs-*.bib + +# amsthm +*.thm + +# beamer +*.nav +*.pre +*.snm +*.vrb + +# changes +*.soc + +# comment +*.cut + +# cprotect +*.cpt + +# elsarticle (documentclass of Elsevier journals) +*.spl + +# endnotes +*.ent + +# fixme +*.lox + +# feynmf/feynmp +*.mf +*.mp +*.t[1-9] +*.t[1-9][0-9] +*.tfm + +#(r)(e)ledmac/(r)(e)ledpar +*.end +*.?end +*.[1-9] +*.[1-9][0-9] +*.[1-9][0-9][0-9] +*.[1-9]R +*.[1-9][0-9]R +*.[1-9][0-9][0-9]R +*.eledsec[1-9] +*.eledsec[1-9]R +*.eledsec[1-9][0-9] +*.eledsec[1-9][0-9]R +*.eledsec[1-9][0-9][0-9] +*.eledsec[1-9][0-9][0-9]R + +# glossaries +*.acn +*.acr +*.glg +*.glo +*.gls +*.glsdefs + +# gnuplottex +*-gnuplottex-* + +# gregoriotex +*.gaux +*.gtex + +# htlatex +*.4ct +*.4tc +*.idv +*.lg +*.trc +*.xref + +# hyperref +*.brf + +# knitr +*-concordance.tex +# TODO Comment the next line if you want to keep your tikz graphics files +*.tikz +*-tikzDictionary + +# listings +*.lol + +# makeidx +*.idx +*.ilg +*.ind +*.ist + +# minitoc +*.maf +*.mlf +*.mlt +*.mtc[0-9]* +*.slf[0-9]* +*.slt[0-9]* +*.stc[0-9]* + +# minted +_minted* +*.pyg + +# morewrites +*.mw + +# nomencl +*.nlg +*.nlo +*.nls + +# pax +*.pax + +# pdfpcnotes +*.pdfpc + +# sagetex +*.sagetex.sage +*.sagetex.py +*.sagetex.scmd + +# scrwfile +*.wrt + +# sympy +*.sout +*.sympy +sympy-plots-for-*.tex/ + +# pdfcomment +*.upa +*.upb + +# pythontex +*.pytxcode +pythontex-files-*/ + +# tcolorbox +*.listing + +# thmtools +*.loe + +# TikZ & PGF +*.dpth +*.md5 +*.auxlock + +# todonotes +*.tdo + +# easy-todo +*.lod + +# xcolor +*.xcp + +# xmpincl +*.xmpi + +# xindy +*.xdy + +# xypic precompiled matrices +*.xyc + +# endfloat +*.ttt +*.fff + +# Latexian +TSWLatexianTemp* + +## Editors: +# WinEdt +*.bak +*.sav + +# Texpad +.texpadtmp + +# LyX +*.lyx~ + +# Kile +*.backup + +# KBibTeX +*~[0-9]* + +# auto folder when using emacs and auctex +./auto/* +*.el + +# expex forward references with \gathertags +*-tags.tex + +# standalone packages +*.sta diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..e864234 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,45 @@ +{ + "latex-workshop.intellisense.unimathsymbols.enabled": true, + "latex-workshop.latex.recipes": [ + { + "name": "latexmk (xelatex)", + "tools": [ + "xelatexmk" + ] + }, + { + "name": "latexmk (lualatex)", + "tools": [ + "lualatexmk" + ] + } + ], + "latex-workshop.latex.tools": [ + { + "name": "xelatexmk", + "command": "latexmk", + "args": [ + "-synctex=1", + "-interaction=nonstopmode", + "-file-line-error", + "-xelatex", + "-outdir=%OUTDIR%", + "%DOC%" + ], + "env": {} + }, + { + "name": "lualatexmk", + "command": "latexmk", + "args": [ + "-synctex=1", + "-interaction=nonstopmode", + "-file-line-error", + "-lualatex", + "-outdir=%OUTDIR%", + "%DOC%" + ], + "env": {} + }, + ] +} diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..1b57559 --- /dev/null +++ b/LICENSE @@ -0,0 +1,416 @@ +The LaTeX Project Public License +=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- + +LPPL Version 1.3c 2008-05-04 + +Copyright 1999 2002-2008 LaTeX3 Project + Everyone is allowed to distribute verbatim copies of this + license document, but modification of it is not allowed. + + +PREAMBLE +======== + +The LaTeX Project Public License (LPPL) is the primary license under +which the LaTeX kernel and the base LaTeX packages are distributed. + +You may use this license for any work of which you hold the copyright +and which you wish to distribute. This license may be particularly +suitable if your work is TeX-related (such as a LaTeX package), but +it is written in such a way that you can use it even if your work is +unrelated to TeX. + +The section `WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE', +below, gives instructions, examples, and recommendations for authors +who are considering distributing their works under this license. + +This license gives conditions under which a work may be distributed +and modified, as well as conditions under which modified versions of +that work may be distributed. + +We, the LaTeX3 Project, believe that the conditions below give you +the freedom to make and distribute modified versions of your work +that conform with whatever technical specifications you wish while +maintaining the availability, integrity, and reliability of +that work. If you do not see how to achieve your goal while +meeting these conditions, then read the document `cfgguide.tex' +and `modguide.tex' in the base LaTeX distribution for suggestions. + + +DEFINITIONS +=========== + +In this license document the following terms are used: + + `Work' + Any work being distributed under this License. + + `Derived Work' + Any work that under any applicable law is derived from the Work. + + `Modification' + Any procedure that produces a Derived Work under any applicable + law -- for example, the production of a file containing an + original file associated with the Work or a significant portion of + such a file, either verbatim or with modifications and/or + translated into another language. + + `Modify' + To apply any procedure that produces a Derived Work under any + applicable law. + + `Distribution' + Making copies of the Work available from one person to another, in + whole or in part. Distribution includes (but is not limited to) + making any electronic components of the Work accessible by + file transfer protocols such as FTP or HTTP or by shared file + systems such as Sun's Network File System (NFS). + + `Compiled Work' + A version of the Work that has been processed into a form where it + is directly usable on a computer system. This processing may + include using installation facilities provided by the Work, + transformations of the Work, copying of components of the Work, or + other activities. Note that modification of any installation + facilities provided by the Work constitutes modification of the Work. + + `Current Maintainer' + A person or persons nominated as such within the Work. If there is + no such explicit nomination then it is the `Copyright Holder' under + any applicable law. + + `Base Interpreter' + A program or process that is normally needed for running or + interpreting a part or the whole of the Work. + + A Base Interpreter may depend on external components but these + are not considered part of the Base Interpreter provided that each + external component clearly identifies itself whenever it is used + interactively. Unless explicitly specified when applying the + license to the Work, the only applicable Base Interpreter is a + `LaTeX-Format' or in the case of files belonging to the + `LaTeX-format' a program implementing the `TeX language'. + + + +CONDITIONS ON DISTRIBUTION AND MODIFICATION +=========================================== + +1. Activities other than distribution and/or modification of the Work +are not covered by this license; they are outside its scope. In +particular, the act of running the Work is not restricted and no +requirements are made concerning any offers of support for the Work. + +2. You may distribute a complete, unmodified copy of the Work as you +received it. Distribution of only part of the Work is considered +modification of the Work, and no right to distribute such a Derived +Work may be assumed under the terms of this clause. + +3. You may distribute a Compiled Work that has been generated from a +complete, unmodified copy of the Work as distributed under Clause 2 +above, as long as that Compiled Work is distributed in such a way that +the recipients may install the Compiled Work on their system exactly +as it would have been installed if they generated a Compiled Work +directly from the Work. + +4. If you are the Current Maintainer of the Work, you may, without +restriction, modify the Work, thus creating a Derived Work. You may +also distribute the Derived Work without restriction, including +Compiled Works generated from the Derived Work. Derived Works +distributed in this manner by the Current Maintainer are considered to +be updated versions of the Work. + +5. If you are not the Current Maintainer of the Work, you may modify +your copy of the Work, thus creating a Derived Work based on the Work, +and compile this Derived Work, thus creating a Compiled Work based on +the Derived Work. + +6. If you are not the Current Maintainer of the Work, you may +distribute a Derived Work provided the following conditions are met +for every component of the Work unless that component clearly states +in the copyright notice that it is exempt from that condition. Only +the Current Maintainer is allowed to add such statements of exemption +to a component of the Work. + + a. If a component of this Derived Work can be a direct replacement + for a component of the Work when that component is used with the + Base Interpreter, then, wherever this component of the Work + identifies itself to the user when used interactively with that + Base Interpreter, the replacement component of this Derived Work + clearly and unambiguously identifies itself as a modified version + of this component to the user when used interactively with that + Base Interpreter. + + b. Every component of the Derived Work contains prominent notices + detailing the nature of the changes to that component, or a + prominent reference to another file that is distributed as part + of the Derived Work and that contains a complete and accurate log + of the changes. + + c. No information in the Derived Work implies that any persons, + including (but not limited to) the authors of the original version + of the Work, provide any support, including (but not limited to) + the reporting and handling of errors, to recipients of the + Derived Work unless those persons have stated explicitly that + they do provide such support for the Derived Work. + + d. You distribute at least one of the following with the Derived Work: + + 1. A complete, unmodified copy of the Work; + if your distribution of a modified component is made by + offering access to copy the modified component from a + designated place, then offering equivalent access to copy + the Work from the same or some similar place meets this + condition, even though third parties are not compelled to + copy the Work along with the modified component; + + 2. Information that is sufficient to obtain a complete, + unmodified copy of the Work. + +7. If you are not the Current Maintainer of the Work, you may +distribute a Compiled Work generated from a Derived Work, as long as +the Derived Work is distributed to all recipients of the Compiled +Work, and as long as the conditions of Clause 6, above, are met with +regard to the Derived Work. + +8. The conditions above are not intended to prohibit, and hence do not +apply to, the modification, by any method, of any component so that it +becomes identical to an updated version of that component of the Work as +it is distributed by the Current Maintainer under Clause 4, above. + +9. Distribution of the Work or any Derived Work in an alternative +format, where the Work or that Derived Work (in whole or in part) is +then produced by applying some process to that format, does not relax or +nullify any sections of this license as they pertain to the results of +applying that process. + +10. a. A Derived Work may be distributed under a different license + provided that license itself honors the conditions listed in + Clause 6 above, in regard to the Work, though it does not have + to honor the rest of the conditions in this license. + + b. If a Derived Work is distributed under a different license, that + Derived Work must provide sufficient documentation as part of + itself to allow each recipient of that Derived Work to honor the + restrictions in Clause 6 above, concerning changes from the Work. + +11. This license places no restrictions on works that are unrelated to +the Work, nor does this license place any restrictions on aggregating +such works with the Work by any means. + +12. Nothing in this license is intended to, or may be used to, prevent +complete compliance by all parties with all applicable laws. + + +NO WARRANTY +=========== + +There is no warranty for the Work. Except when otherwise stated in +writing, the Copyright Holder provides the Work `as is', without +warranty of any kind, either expressed or implied, including, but not +limited to, the implied warranties of merchantability and fitness for a +particular purpose. The entire risk as to the quality and performance +of the Work is with you. Should the Work prove defective, you assume +the cost of all necessary servicing, repair, or correction. + +In no event unless required by applicable law or agreed to in writing +will The Copyright Holder, or any author named in the components of the +Work, or any other party who may distribute and/or modify the Work as +permitted above, be liable to you for damages, including any general, +special, incidental or consequential damages arising out of any use of +the Work or out of inability to use the Work (including, but not limited +to, loss of data, data being rendered inaccurate, or losses sustained by +anyone as a result of any failure of the Work to operate with any other +programs), even if the Copyright Holder or said author or said other +party has been advised of the possibility of such damages. + + +MAINTENANCE OF THE WORK +======================= + +The Work has the status `author-maintained' if the Copyright Holder +explicitly and prominently states near the primary copyright notice in +the Work that the Work can only be maintained by the Copyright Holder +or simply that it is `author-maintained'. + +The Work has the status `maintained' if there is a Current Maintainer +who has indicated in the Work that they are willing to receive error +reports for the Work (for example, by supplying a valid e-mail +address). It is not required for the Current Maintainer to acknowledge +or act upon these error reports. + +The Work changes from status `maintained' to `unmaintained' if there +is no Current Maintainer, or the person stated to be Current +Maintainer of the work cannot be reached through the indicated means +of communication for a period of six months, and there are no other +significant signs of active maintenance. + +You can become the Current Maintainer of the Work by agreement with +any existing Current Maintainer to take over this role. + +If the Work is unmaintained, you can become the Current Maintainer of +the Work through the following steps: + + 1. Make a reasonable attempt to trace the Current Maintainer (and + the Copyright Holder, if the two differ) through the means of + an Internet or similar search. + + 2. If this search is successful, then enquire whether the Work + is still maintained. + + a. If it is being maintained, then ask the Current Maintainer + to update their communication data within one month. + + b. If the search is unsuccessful or no action to resume active + maintenance is taken by the Current Maintainer, then announce + within the pertinent community your intention to take over + maintenance. (If the Work is a LaTeX work, this could be + done, for example, by posting to comp.text.tex.) + + 3a. If the Current Maintainer is reachable and agrees to pass + maintenance of the Work to you, then this takes effect + immediately upon announcement. + + b. If the Current Maintainer is not reachable and the Copyright + Holder agrees that maintenance of the Work be passed to you, + then this takes effect immediately upon announcement. + + 4. If you make an `intention announcement' as described in 2b. above + and after three months your intention is challenged neither by + the Current Maintainer nor by the Copyright Holder nor by other + people, then you may arrange for the Work to be changed so as + to name you as the (new) Current Maintainer. + + 5. If the previously unreachable Current Maintainer becomes + reachable once more within three months of a change completed + under the terms of 3b) or 4), then that Current Maintainer must + become or remain the Current Maintainer upon request provided + they then update their communication data within one month. + +A change in the Current Maintainer does not, of itself, alter the fact +that the Work is distributed under the LPPL license. + +If you become the Current Maintainer of the Work, you should +immediately provide, within the Work, a prominent and unambiguous +statement of your status as Current Maintainer. You should also +announce your new status to the same pertinent community as +in 2b) above. + + +WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE +====================================================== + +This section contains important instructions, examples, and +recommendations for authors who are considering distributing their +works under this license. These authors are addressed as `you' in +this section. + +Choosing This License or Another License +---------------------------------------- + +If for any part of your work you want or need to use *distribution* +conditions that differ significantly from those in this license, then +do not refer to this license anywhere in your work but, instead, +distribute your work under a different license. You may use the text +of this license as a model for your own license, but your license +should not refer to the LPPL or otherwise give the impression that +your work is distributed under the LPPL. + +The document `modguide.tex' in the base LaTeX distribution explains +the motivation behind the conditions of this license. It explains, +for example, why distributing LaTeX under the GNU General Public +License (GPL) was considered inappropriate. Even if your work is +unrelated to LaTeX, the discussion in `modguide.tex' may still be +relevant, and authors intending to distribute their works under any +license are encouraged to read it. + +A Recommendation on Modification Without Distribution +----------------------------------------------------- + +It is wise never to modify a component of the Work, even for your own +personal use, without also meeting the above conditions for +distributing the modified component. While you might intend that such +modifications will never be distributed, often this will happen by +accident -- you may forget that you have modified that component; or +it may not occur to you when allowing others to access the modified +version that you are thus distributing it and violating the conditions +of this license in ways that could have legal implications and, worse, +cause problems for the community. It is therefore usually in your +best interest to keep your copy of the Work identical with the public +one. Many works provide ways to control the behavior of that work +without altering any of its licensed components. + +How to Use This License +----------------------- + +To use this license, place in each of the components of your work both +an explicit copyright notice including your name and the year the work +was authored and/or last substantially modified. Include also a +statement that the distribution and/or modification of that +component is constrained by the conditions in this license. + +Here is an example of such a notice and statement: + + %% pig.dtx + %% Copyright 2008 M. Y. Name + % + % This work may be distributed and/or modified under the + % conditions of the LaTeX Project Public License, either version 1.3 + % of this license or (at your option) any later version. + % The latest version of this license is in + % https://www.latex-project.org/lppl.txt + % and version 1.3c or later is part of all distributions of LaTeX + % version 2008 or later. + % + % This work has the LPPL maintenance status `maintained'. + % + % The Current Maintainer of this work is M. Y. Name. + % + % This work consists of the files pig.dtx and pig.ins + % and the derived file pig.sty. + +Given such a notice and statement in a file, the conditions +given in this license document would apply, with the `Work' referring +to the three files `pig.dtx', `pig.ins', and `pig.sty' (the last being +generated from `pig.dtx' using `pig.ins'), the `Base Interpreter' +referring to any `LaTeX-Format', and both `Copyright Holder' and +`Current Maintainer' referring to the person `M. Y. Name'. + +If you do not want the Maintenance section of LPPL to apply to your +Work, change `maintained' above into `author-maintained'. +However, we recommend that you use `maintained', as the Maintenance +section was added in order to ensure that your Work remains useful to +the community even when you can no longer maintain and support it +yourself. + +Derived Works That Are Not Replacements +--------------------------------------- + +Several clauses of the LPPL specify means to provide reliability and +stability for the user community. They therefore concern themselves +with the case that a Derived Work is intended to be used as a +(compatible or incompatible) replacement of the original Work. If +this is not the case (e.g., if a few lines of code are reused for a +completely different task), then clauses 6b and 6d shall not apply. + + +Important Recommendations +------------------------- + + Defining What Constitutes the Work + + The LPPL requires that distributions of the Work contain all the + files of the Work. It is therefore important that you provide a + way for the licensee to determine which files constitute the Work. + This could, for example, be achieved by explicitly listing all the + files of the Work near the copyright notice of each file or by + using a line such as: + + % This work consists of all files listed in manifest.txt. + + in that place. In the absence of an unequivocal list it might be + impossible for the licensee to determine what is considered by you + to comprise the Work and, in such a case, the licensee would be + entitled to make reasonable conjectures as to which files comprise + the Work. + diff --git a/README.md b/README.md new file mode 100644 index 0000000..a08e7b4 --- /dev/null +++ b/README.md @@ -0,0 +1,5 @@ +# 合肥市第八中学 LaTeX 论文模板 + +Fork from [ustcthesis](https://github.com/ustctug/ustcthesis). + +本项目是合肥市第八中学论文 LaTeX 模板 ustcthesis,按照 《研究生学位论文撰写手册》(最近在修订中) 和 《中国科学技术大学本科毕业论文(设计)格式》 的要求编写,兼容最新版的 TeX Live、MacTeX 、MiKTeX 发行版,支持跨平台使用。 diff --git a/chapters/acknowledgements.tex b/chapters/acknowledgements.tex new file mode 100644 index 0000000..0bb0dbf --- /dev/null +++ b/chapters/acknowledgements.tex @@ -0,0 +1,9 @@ +% !TeX root = ../main.tex + +\begin{acknowledgements} + 在研究性学习期间,我们有幸得到了户雨老师的教导。户老师不仅耐心地为我指出课题立项中的不足之处,还对课题研究报告提出宝贵的建议,她在整个过程中都给予了我充分的帮助和支持。 + + 感谢董子豪同学,他参与了项目的测试与文字稿的编写工作,还在学校给予了我诸多建议,可以说在本项目中董子豪同学起到了“一个顶俩”的重要作用。 + + 感谢开源软件及自由软件运动,本项目为开源软件,更是基于开源软件。本人深受自由软件运动精神感召,没有开源软件就没有现在的互联网,现代生活的一切可能都会完全不存在了,在此特感谢开源社区中无私奉献的开发者。 +\end{acknowledgements} diff --git a/chapters/intro.tex b/chapters/intro.tex new file mode 100644 index 0000000..3cac43f --- /dev/null +++ b/chapters/intro.tex @@ -0,0 +1,54 @@ +% !TeX root = ../main.tex + +\chapter{简介} + +\section{研究背景} + +部分高中生缺乏成语储量,语言表达能力弱,而传统记背成语方法缺乏枯燥,使得高中生反感成语。 + +我们意识到成语作为中国文化的精华之一,逐渐成为在我们身边却又被忽视的语言资源。 + +\section{研究目的} + +为用户提供成语学习相关资源,提高效率,发挥个人主观能动性。 + +\section{研究意义} + +成语是我国汉语词汇里浓墨重彩的一笔,本应用有利于增添成语学习的趣味性,激发使用者对文学和语言的兴趣,提升使用者对成语典故的理解和运用能力,使其通过成语了解和传承中华民族的民族心理、民族文化和历史走向。 + +整个研发过程让开发者的创造性思维得以展现,从分析研究成语的特点,到开发成语接龙的高效算法,我们注重思维的碰撞,小组成员进行了大量研究。 + +小组成员通过该项活动把日常学习生活中的所思所感融会贯通,展示了自己的想法和风格。 + +\section{关于“一个顶俩”} + +我们选取“一个顶俩”作为项目名,有以下原因: + +\begin{itemize} + \item “一个顶俩”末拼音为“lia”,没有成语以“lia”为首拼音,即“一个顶俩”可以作为成语接龙的“终点”。 + \item “一个顶俩”十分具有震慑力而不失幽默,十分符合本项目组长的气质。 + \item “一个顶俩”意为“一个人做事有效果,一个人能代替两个人”,十分符合小组成员董子豪的能力。 +\end{itemize} + + +\section{技术栈} + +\subsection{后端} + +基于 \href{https://go.dev/}{Golang},使用高性能Web框架Echo开发后端服务器。 + +基于 \href{https://github.com/hashicorp/go-memdb}{go-memdb} 内存数据库项目,我们能够将30895条成语数据在内存数据库中索引并高效查询。 + +\subsection{前端} + +基于 \href{https://cn.vuejs.org/}{Vue.js 3} JavaScript 框架,使用TypeScript语言进行动态内容展示、用户交互体验、数据处理等操作。 + +基于 \href{https://www.naiveui.com/zh-CN/os-theme}{Naive UI} 前端框架,使用部分组件,提高开发效率,美化UI。 + +使用 \href{https://unocss.dev/}{UnoCSS} 原子化 CSS 框架,便于样式调整,提升代码可读性与开发效率。 + +使用 \href{https://cn.vitejs.dev/}{Vite 5} 构建项目,打包前端代码。 + +\subsection{部署} + +基于 \href{https://www.docker.com/}{Docker} 容器化技术,构建前端与后端项目的镜像后,使用 \href{https://github.com/docker/compose}{Docker Compose} 技术管理容器并部署。 \ No newline at end of file diff --git a/figures/hfbz-icon.pdf b/figures/hfbz-icon.pdf new file mode 100755 index 0000000..23a25c4 --- /dev/null +++ b/figures/hfbz-icon.pdf @@ -0,0 +1,1676 @@ +%PDF-1.6 % +1 0 obj <>/OCGs[5 0 R 6 0 R 7 0 R 8 0 R 9 0 R 10 0 R]>>/Pages 3 0 R/Type/Catalog>> endobj 2 0 obj <>stream + + + + + Adobe Illustrator 28.3 (Windows) + 2024-03-22T20:15:56+09:00 + 2024-03-22T20:15:56+08:00 + 2024-03-22T20:15:56+08:00 + + + + 256 + 252 + JPEG + /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgA/AEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7 FXYq7FVk08ECc5pFjXxYgfryMpCPMoJpC/pRZP8AeWCScdnpwT/gnp+GUnUDoCUcV8lN7q9/3ZLB bA9BvI33ngPwymWpPeB9qeGSjczxwhTc3c7BunGiL/yTWv45TPU1zJ/HuT4feVGWfTFt/X4tOleJ rI7mp8Q7ZVLURq+fxT4cVP6zpJtpJ47WJ2ShZHQA7mnU1yHjxq6C8Ee5daT6VdKwFnCjqpYqUXp7 GmMM0ZdAohHudazaPcMESERv2UVT7uJyUM8T0Xw4qsb2bTNDFczxSKacPUY7jwEnIHLI6gXVkfH9 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 dfzi1jWednpHPTdNNQXBpcSj/KYfYH+Sv3nMLJqCdhsGszt53mOwdirsVdirsVdirsVdirsVdirs VTDy9qkmk65YakhINrOkjU7qG+Ndv5lqMlCVG1BfU2savY6PplxqV9J6drbLykbqetAoHcsxAHvm 0lIAWW8l5Q//ADkAw1AmPRwbCtPimpMRX7WylR/q/jmJ+a35MPEep6Fruna5pcGp6e5ktpxUAijK w2ZGHZlOZUZAiwzBtMKHv92SSpXkQltZYyKhlO2Y2sx8eKUfJIeSzxmKaSI/sMV+40zkQWsp0YNK ntEbUdcZzHEsslqqtM0K0H2lUvxA8eIzbY8BnEEzNVyTSU3i2gmrZu8to6q8MsiNGzKyg8uLhWpX pt0zX6jHwToILIfJ5Wa2vbSQ/uzxcexNQT+AzI0m4ILZjRBtrSNuE09WJ+1F8SgDx+ftk+GI5llS bSSxMNNuIfsRziJSdvhcFe/yzY4pD0kd9NWXmCusQraXyc8RKZWZq9AzHevyyEt4/Nlh+lKmt9NL c1uCIa04Uq9f6ZgmMe/ZnsgvNyLb2tjbxsWjrI1T9FOn+tkNWKAAY5Ev0O41u0Lz6fbvPE/wSKI2 kQkCtDx7jlkNNPJDeIsMBbWt3l/OyC6sEsq7jjCY2enizbmlT08clq885gCUeFSVbyfFz1lD2RS3 01GY+njeSI8/2pgmXmz8xdJ8rWLRsRd6rK0jwWamhCs7FXlP7K0p7nt4508cohDz3+9EpU8G8xeZ tZ8w37XuqTmWTcRxjaONT+zGv7I/E96nMaczI2Wom0ryCHYq7FXYq7FXYq7FXYq7FXYq7FXYq4Ak gAVJ6DFX0N+cVpd3PkSZbWsgtpIpbkJU1iSoY7deJIY+A3zPz7x2bZ8nzzmA1PoH8j7C8tfJjSXC lEu7qSe3B7x8ETl9LIcz9MKi2w5PQcyGbsVeWa9F6Wr3Kdg1fvAOcTKNEjuNfJjLmjLOHQLi1tzq F/P9YRWAgRHfgORoFIRgKjNhghCcQJTPuUUl+p/UTcK9i0z20iBle4Vkc9RWjhWptttmPq4CM6BJ 26oKZ+Tip1KaNt1kgYEePxLktH9R9zPHzTKWwWKVklmVBWiHqSPEgdMuOOjuWdJlKIY9I4wuJPqz xuWXcV5gn9eZuKhDboQ15fpXQQGXQ4IlbgGQVY9hyqcExcAPJliHpSn6mvMfv09Nm4o++/0e3vmF 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 + + + + 1 + False + False + + 589.000000 + 589.000000 + Points + + + + Cyan + Magenta + Yellow + Black + + + + + + 默认色板组 + 0 + + + + application/pdf + + + hfbz_icon + + + uuid:b19c4fc0-f20a-4987-9c4f-5f3749a48b09 + xmp.did:6e810b90-83cf-fa41-b83d-1c6a79d3b0b1 + xmp.did:3c725fbe-3087-fd4c-94d2-ec734549269f + proof:pdf + + xmp.iid:1c80a1b9-efd6-1c4a-899e-0cb6201209c8 + xmp.did:1c80a1b9-efd6-1c4a-899e-0cb6201209c8 + xmp.did:3c725fbe-3087-fd4c-94d2-ec734549269f + default + + + + + saved + xmp.iid:7bdfc7c5-c3f6-544a-b709-1ab900b00096 + 2024-03-22T20:13:44+08:00 + Adobe Illustrator 28.3 (Windows) + / + + + saved + xmp.iid:6e810b90-83cf-fa41-b83d-1c6a79d3b0b1 + 2024-03-22T20:15:54+08:00 + Adobe Illustrator 28.3 (Windows) + / + + + + Adobe Illustrator + Adobe PDF library 17.00 + + + + + + + + + + + + + + + + + + + + + + + + + +endstream endobj 3 0 obj <> endobj 12 0 obj <>/Properties<>>>/Thumb 15 0 R/TrimBox[0.0 0.0 589.0 589.0]/Type/Page/PieceInfo<>>> endobj 13 0 obj <>stream +H|W\ Wg(S9f MT$,~o?^_k ?|~9/?>>Oj׏>~jgWufק|3j벻wBӯ=O=h s2kzw²v/Zc87hݯM BFrs_Nq mkm+:qxiúݓ`\^˾ZՇͫį\>>p]G֔z!w =A;6č!^\Փ8"pdwَ𾌆7` e#de/߮)s,HGmKy{Hgk?3J4̹ࡀ%iZi"w`0`;ɤ?ل7YB) .^D  1f0Y5/ʃ\oٱ97u@YDBhs 0V A N%mk6ezAZ;Ϝ|urr_c TS}rĊ@ 8~fQE^nh@FaMb_.zB' `䤥x~"$IdRhU##uU)̑jfHb9Me !`4.oUCMe*e +Fc23xYn+F{2l˧ .05ΞG/4 iTmnbKW(t 7].M~ٙDؔC1SB%ZFn*aA'۳aQ HN\iQ҂:lADؙFL +^?:oquV{7A@wH{ Cgը&ER7$mWjfqW4%*eS/ygt +/㴝 +F4Zd|T ;[JH<6i .]V(5e*l갖ۼ :{!&-3QB V +QvJ:cW#L}rJI^pJsl)dHK0g1k {>DP LryPĽN炌b̬&5ӐTA1TX/6(4aUC\A*녵 wE9p]^ +|{-gbqpإlR|VͻT:7@4$, :n*VO 'Hсte~YH o "FBn]$A.[j /7jO*r*`_ ]3'zxYCpe A6a'͇jZG +4.uR'j?@c' +x-(ë$4 p*4ZՄjt5N%Fh4wCb;jٙ5'lꖉ\]B6TQ2 B +`x @jGXașwk{pkV飙E5̸nX!8G=CҳgD N-}w)Mid*'z&5bI;ྪZћgo0bϥnD %2 8  `ӍEhBJBpVP>AF!5RLiX4R4$^+k$Zk2%k9W]²t,wM.A2g DfQ]wjmHvʱ"6]鹩h +5t=zwrڠfEQkYQ ;BtliJ1]Ba`H=/F&\ gp6xH- uFcb=c'ٟYWM R]LШ%,аw J8H Jgof"O a69ױ}d +ql3?O%k#=uԧdٛ1Y*1C{*L^Fӧa]3POӵ#[T~ EXT,J:0D(X^,f}JӘ/ KbZ!J.fl\:+N|II &ֳ"iu5Re(]l' a۲qK6CpJud@7猧{Jxl| q 8ѱҮ?-an];S\i ϑ*_b:h)2+fHր{sSf2`9wg},c~>od5yۂ hxՊm|(ƳHc}7(=s*#Ojw(B^9_ºWoΏtQ&/St@ A[bJ:v4̏wSD@vh 34/Kx -lRayQ3cy å煙9 cYk1-K9'UuŻĶ.8i!;P!SuB +` =/Vſiٻ脿vv&ǩ +<԰5SvO;-CXst%y LmײޫVHGVW  Ċk\FX4mri&4k`}Ys^qqM!Ot_w =3mĨ GeW%.IƸ$e|]=_{rxxcY;j[#y@-5>!bӃm}=NF=t[.ӑ9.NOeXckYccYۙlLu6T*8r2M]lnьYf@jDxA&U$fS;^J*R9-hꛇkq5DH'9L!샮oykq[ ,3KmDX~ܚG5ļrL*hIRɚ\0No%]lGf渍fׇ} @~Č׀CgTt}˚0Zbx[`8LHijD=J13[}X}!83%QvZ5v[7nms~ Ưe!lLmц܆6"b5_:>rec٣-К-v5kG8Qs.TgEQP2iɗ*h *09Ԗ}0.*ys\w̓g#ܶgt㫩* "~s(m:Ý(`Q]v2l:͡E ֧u +ӼoNI +[wB[Zbw,$/òihc/L!3×uOΞi'MhSZN͓tSNr<xXa"uVKPclƻ߾N'4˹-HnũU6 eUo|-M[qԯ[\ߖ*z4M_G+OgVp h~SϰҰ=tʃlѠEwoH+bmR{ mtuۢ/(޽=IX,}fU^[kv G5GPBаLل1crNj{p۽ {Fin'_ke촙T'_i&v+%0ºĂR|NZzCJߐ5V{vO+u9mДݖL3 +j Ѻ¿^ TͧMj!RF PB^iSX=&(:t'ņ2[_eG +{lH|j!@c=bVU73#qC:4p:ՈC?(=67o9q"}'t AaY43m@?uWkSsS\G\J6 QaZisA,qz:oicDf2Ӯ/Cw kۉ5W7%XL@lf33;V,nYa,Tr߹]  SN}'X/֊JM{ ;4|psӭmU=JãGF aqLw&n@;_ܜ [}L09Ҋ4 +6xm؅>k5 nU $mL7D_v#gB//ft",' !s:(}eHQÛGNi{iQ,gW~hW] 6oDWcV*>guAS88x>gj{xqM7Oi8:]sk?Ik!Wyq(AU|qht1"hs8Jo9&q!5fZix a2NiȞejkKOmQf&K xA]CJUOtf=w13kEik}~Kwm#H1ԐImAEү&M=ad10 PIZc1__Bۚ>sh `bvTzZ4ɤxUx +wgonH-zoxJCVTۺ /.IZ$%k%*&`5=2b)V~=MB6eWݢN@~/r鏥ȲA)jǹo)84=;֎]~ˊh]/mRm7L75NTVr%&uk{i$HG[-)H\&4r&A5#~0P +*ωux聹aRR:Slж͂S *){6mW?߮Py/B{0jC].tD4<Jc pʹcy8o kSm#p4+>eΟ8Mh7hpsR +iZ ڭ`@ՕxC.kC_iboeau0sq/{i3Lxh&fct۵m˗ +2`̀79uv'K/Z@c(zR.ƋR4RV,bqNnu1pX.FPH,;.;@ ªr~8;!nW"^Dr]p` +`Y1ȸ9 Rܥ_+lw=OXBVUE 08 *fj/o/Rp JTc ֌PșEYv1bZy̺,tmX~,H +\[-Hˈq+Y(_ńf7Zjz c{r f0)a`ٟȓY/5ׯq#{(D9#HP:`V6^>rк3fw -LfCyYB8Ygʧ?/^7iO|w3u?ֿͨydűͳgwL/D!OV$Xbјm-/Z)};3q-7sbּ* +Z;.ðJ1ݗN>yo;A(bCa/.Q`g9n#EP] c> b߮0ze7'e ;9m6hyvS[Oj?bH̐oc;_{3ER-{Zv\Lw %sfCsU:Rnx[.m^ oҿIL$|=4n[Q>1" FC +2 T]o6@i; 皤(&dkI>qnu)Ωt"W3tQuڟ}m_UMl|0, UӰ@w2xJ#OKUkaS,ّy +_a y]<Ԟ^^[Tٰ4}>yN?6~>tEolt(V,}6prA9hyѹs-+v(a3Few3藻$ip&V9vW$~ +W͠+٫AoS) q1V_QOeab^/$QV}1ٙWɍ,7^ H?n{9 ތ xv}{ɪV3=>2?L:8o+5I9̤HL%6)S?m>Qn%['VϸM$SVf2bkzYDhM쒔ʣbivN}4sv40F9 ]įwS*afه$ohOwB PnuR,EZ>DHN!muB.MTqYQ/}&|Ti64Lms EcӖ KoU!%Ս?jH7ߦuZIAJə Iiνpӭ =d { +Xk"o1֊BgV si@ok@YcS'-D,f,#:(w| PCx~_QF%~D>O"W$uV8,\*S.ۓҭ UСU4u[5on9Bģ9E<Vu%Ҹ6b33vb4%bd-ѳ!ZٹTv=IPa8FVS}M߼Wk@yd֜#NpXUoĆ㞊elPg+}!ꪰ6[΀2-;(a3[ЌM)S$Y$k.\FdBqi5ՠrщqEȊ _δJy[h6}7'PLܬsz'+p;ElZIry2YTD3OJe=XK^uRx֬85E.%iErx^Vԓ,+4Ci q{\敏3&iY6Ƴƭҋo)|b,N@wᕔgr8A^x?6&n$szY&ksnF ,&H'*v7U\U3Ȇh4`w%h 97 [Nl/>xnW.̫ !9E_=~_.룖'՟?߀@* tBG/O\j;Dvh2`o'f#C2X*ڟr|U:Ft?Q7'妡AevWy-[dP$!O*p6L {܇_ŴNj,,8("1\j%svVt~.½wq*TDeH~]S@P EIxQUhs%T ++cWװU7R ouYJm[i5yea Sxױ:ש٦Gл4=eXbTUpϷVr&Tf2쥣07]ɲX굑j{tAz\@jmnW_.(ow&W߆SLrZ*.5_kF~!Ѷ.!|%˛9C'IlK5Y+J^Pc;eFhV9+6Xi_}8*ol+'u޺W|ǜQ@G2u(b[c+;eUJ{[ ):MMwj쨵Ķ⺕IP_ΨjO$DpWQ,hJr> iP8|APm'dzIJ6AʘFQ+?]:.XB܈Q@'?SL&688 0\RPlrbQiQ߷¨uZS +J%-<)( qcIOZF?JDw=J^@TFpgd!MG'.V'nvF uuQ6K~%Iʆ#+ˉPS&j7k A\JyhEY瘽|N_/-(E^i\ish☼x)Nm (,@ M%fDҵ 6NMhXP? nU +Ʌ-3/Rވ[Z3!Bc>f;Qϐ#2N*QTNv5eL$C C$0tk4e OAjs$]TâH]u!y b usͳ2ͤ} KEØm$WNʖz2 N׃-Iѷl贕` ;7K)87f6@|نCExWU7/-H~ʯ +#r;Qwˍ8 L'Ejd덚\߲^Z|pɵqDBx7ls̸둤p;AX-B-/i\U_6c>lmu7io}#Hhp,[]Q0*ĴV"tNpخh6|PWE]}O\7K":E²$0Cq5Ӗq\ҬH;-XxSւ\g\S=w^hno|{4w(Bɪ#D\3K㽼Õ[_r T bvcv} FaZA.𦊝R!Z(QUbB& +~{.e>i]ZLx=|K&\_НGBQu .5偅GqmK[mK&pXNt]L +_jfIAYbW\뭜4gɤDt|΄3*6& +RzscKdHH`{.QSaS9'W/ibeU"MDlR*/SKyrEgLDṰTODtۘp !|>?[D++a"&[T`Le.,}m7 nAj2=ٕVGh1mh5IܗKu6}Lq٧@'Pf¡,kRo-4}"nqci5&4 +~m3J,i+V +XL+*J3*VZB%IС/i*I˵j]r.gQtxy.Q@]aS-cV7?tT98(LP1$ ++BOG ]Dq'Zh=/sXsf^jdP-]$@!,H(C5\5cR9Ml˜HE$ +Q%Sv< R'sڼ+)\-w=Vd;y[n궅u %Nl-l8ϨNj89 +Y7S[OOÏu_Dj|xQ ^ݭ$= WnI퇲xiRbl@ ܢa Z-Zc,.Ġ>~yvoGP@AuKA@4?d`NEtk +U-V8 ;1Ws QqTmOͶNBQ; R0~{ ͠!+Hܕ[U=VPE{'X ~ŋ)V波^#҈mcU;[DhvI VG:KSNP{ɽ~bۗEۗvGn9m֭M;Z4Tcړ:UmTzA|@̛2ع5ΞHjE>zW]qBpOlrK ux},uŅN2.6qi\9"T6g0\$:5O /Uݦf`^| J 2st &k-ib禛6ˮb:چz)uJ3aWqeL)ЏМWY5P4Ӛۍ]Z-Ǵt:SҳS0xnWnp0 +:ʅp<.[?ݲ&pہ/> ݶYN#[ ,\ɽN?r_5ݦa&vN7D/o†*M1sv[$64G.|X;haqPm'"U6BTpc16煬%d+$u6B}RW02ONrpXATD>MJ'(hBl>ܫ=6q4zKb]P/#mOGΧ.D[CG7!^^٨[ڗnAB'v \;V0WI^hSyiU a +o_U(sw[` @T6O;vsdGᦴ +Jec (^%j`L"3=9'eɝ +nGQoJĤ|~MP$yH)lA(^Ajp(yc+DC~:|d5m訊4s*OCZ, {Bllj9 1Ьԫ**>% xY"ա*Š-WiAkǪ]j$vc627SrXj %4p x%#4ڲW&9&9Ǣ[˧5a2,fI3bMw'ߘюKyݳGiTZtM2*^plF4q#hcU "aO]0x".-t%\~_OVkzdϋL&iӕ=Z;J1 l}Y_骞 'ޡ=XpH+( (nși\6YFfx>aP +pMIZM m i5ҘȚDSt &nfha saeᣈDl[f5ś>4PC1%*Wu^Y?rE*%E`i]µ(Ց8IO5\zP| _gܾHy",Ÿby߰`}=*A4rK?*zSytmy+ݟ %nɇjVGs_#;ytM]y~" Ow+lISFj}LMYy D"m B̆ஙX <;F +`EG#hV|P]"*9LGR,@i])؉n~IܙEVnɈсa3 +ԴZbJ&W>z@F(W qCU9G,6&[Knw1s' î /,T=T6y?*o7ϯ G-N6(;zTAUz,41^{ba<DE#ㆹ Ka8xK#RY@ +/,e|ހ%<bW(1J -DYhV`;杵'l?Y6b|;2 5 a qcd[DN|}jaGde#^Fnt[VxOTjorI7q'H=я3 ޥye'bK94'~fzhĻ@gtjyyдi:/t +v>V~H˅ `׍dlRĽrO-tXuN^ )&vƣיCrޣ\7!&źHwq0=`OΥ3FwbOeiDv–l+ϪSząëI0y (hPbIH>j~ ?SJJj ()ն]W\Tܴy]=1qOμ]+abK:H;s{QqRlA!gRJc?g\t_X2 9e8yMU(ʹ(c +qi=o8S7h/-ĖmCH X녹Á576L4 alÇkq3m `o&HqNpM%dvNNCAk#yN~)M) vֵe֦eېrҷeYCaTx szlt^WqvӵOk«jfGD +\ WC_x7<w\qs 0CM=OUߠ-D_=תפTȩ\M]42R ipꍙ Dķ\X,H՛ C48Cyzr[zb/94W|nq&[<$E!&)];C5.gU"Eԡv</x%$vHZ?~\r$9 Sedn5 IN{'"fn9[ 8%r;RDPD2Nat;û~ψ Siz9~Ubi^bmll[ +sWQK*QfuD\ @A#tڧjfRb٬l@.Z[L)H1܋P>2u°U[wNi{C[Obz#7n-Z FN0i0D!\f'yN/`h] M ?n +M5#p:!E@k̻Ze.ucfr'"&ͥ4)I>T(ZKaqXbx9_W=zJl$>gJ6;"%>~F~r_.Mkm nB5F> ^yX5M QgXn*3`>F_L8`'4_gž^X]J9\NәS~z2l1dm %DɲCފqn J<7uzǻPw3egb)"hY0OɆ>.zc 2h+qw5|AٲQc֌հm%)yXM5ml?T !ڑ:Sp (ȸ*ve_`pʉs%EAƐNȶ@bC|Ҽ(fyx!6vg(BU6gHTF /u}Zyŀ#aڋx͸N.agi]i|[ĭ:Bjة>{_;.^ C+ bԹSd.o^j?Alc4k#q>$5ŽS!QGRE2 D C%:z=W/2?Twp+L٪y- x欉lz):]Dmy|'a*zzfROE(D< 36 ΧߴEW]=:v +AUMDc8}ʶl N`6rT=3!"F`<YO'2Zݲ-e +3VtĜ8k!8S#k%f"u% E۩rZ-bX벬3Z`82Z)ur~.Â:'n\ s@Ơj*G0qjzVugwO$~S33 5J ۉkGwzS-I'0Ӕ tIW4TRgwτ S yL"j]եg#{&sK#v1# +sd"~䐊\Q:[$*x\dJ":J$բ,tCOd +!}}>g4o@#;@9HEMQhԚwlJ7bcOf" +rư"g9V0Hw$Y;;D)Vs?x]x1߈ڪi0Z`nVcGQɷ-mE g1`ZxG8d&Q3eqTduTuW$CZH%"l (JzI~~W"- }Z !fG)k[# y5|\h`!]6*f^(39Q:Ns U?Y~X((Z>)U\KL,o>n!Mvq2,'rIA%KmtZn17@?U9Bcrx0xfifr]>sh(g36Dt.M{kǺ7kgiI9yƑWƖcWңəǩZvg{=d1t3WgXlͻ?#R.|v8 B(-M d/#}m[lTS_ +noZK*2輏U< \xs +S-#[ 1V䎼N +n?; #U%8gJA-xr*% [ B_|;;^ycC~JAkHl)'2) V-M yAUd$] 8.^I%Ӓ4OydU#At`pԸ$re\>q(j55]X4ĺK_7No:qSo֔jS6$8w&ӷY뼣 _OC(wdkR ,pE >$.Zgs#¥=R <X]<:ah'?m|-x_< ǹH^uPxj'4۹E4}s[Rnf +Gq+O6H$g>SY89T5/~YEў_iۨț/,RÉݕةo]Q4GSiR\i}ӓʿ#LL}斕pk1L#LۖڈbAI.pIne9Fj;[x%Oԝ|; +Bj~,,6Z'3)û j+^.>kɾa ʾ^nGy]}g)ff!/ +QOղװH2ӌo)n@s[$U;ON3b]61:I +e1>yجM7V ̾:m֙WX ܭ@s#(JT|.p3|]pf'A-_!ZEtbg (KW&[;&[lɵE'S<}ign?~pJC{TLsů݁GV' +h㡆;3fzgYc*8s|pQW6[Ā`5io60CH.UT9;DRB1\Ȗ5&3,YE6|vQ(:s X^lUrL'$n +MZY͚e.#̏YS'R/A>Vu0b"+.O'S[X)AFFDC͆Nb1by%}T뭑5 !Џ+4V=d!zw xkZtV2[ƥX$bqK>K&,Oc^9f.`S !,eyXN{ ]'Lm_YNuQ"1-M$*;{X5Ժ2z(#v vmV +EEE3m~WWa1_Q]cc/Ŧ3wdx+jSק5ue6_nGJs~UgF}'qb=I]FES–j^"ZibF p&?Bj-h1z;+f7|gT`|Q,j.%HW՞^ ðdՓ݄pH_xtQЮxrWʴux!H\kNw-Px8JMļ8ͷшsW (|X͠RXN]j%;#ƈ}pb!OhNWw~=,RDmMj C)uv{v?b(eX0f(zSm5>- ԓQb.9܇ؠw묒hEL)naX̜˘~]ou +pk8S|yM qe?RҊ-ZqTn _f\17Eޞ&Kd !:l:`t 6NiW;ajIj.V?.QGj޽ +ՓIl iYD{Ų2 `tMc[d^P )Ԥg8Xɳ\|eOJ>rJaco|bP&d"L|O{5-o xk'.7z^hэ`ef^<guu7:xdY!K]0GP[SNG-+]ՋIHfeG4n޻RTd"Mhbntr'[s5ON7;Rt%^>pҧY 2m2)tЦ`pPjbAPøO#)eGr5~C])frH=QhvTx+ׅ: +*ɄTRJ^kp(1,懳s56(mS" +¥_#1,{Tz_fqkwUhhnkՂH@[snC3.^©+XM-< -Ii6,H.#|~*!A1|rjwD,y*V$~O䘳Ѓ{iAדbdP2E16WIbJ^.K#6] +!ZO.`|lx52E LrOX;)Oܻ]z ߶NԱ%4uUAXC^Ɏ[8-W#)NkvG-w"llm-E;*R I}偫fe,C.Lq}af% +M*X*tۓ59̬'k'C:&dKoQ-56#->mLwLt\0Y70IF2X\o0ߡ~-siKlP EzcD +fVuLnV{ZrvO/ +bnN{W2o*vl 1Ab,#Ǵ7 4;L.u>̲+c_0K/Ͼkr4JBK4dtjjVetC\$Kꚕ[ 5Mi,XixjVf,,euhq&H@iXSq4O# ΂W08]Q$xf%?؟XmձZew~{pAJLF~6Ӌ&蹸ܒsB;4,XGǡ(i6%,_Ěb/ +峣IErvȝd `yi% qGJ59LU͖XIŮ{z`[6f>xPi0b>Lw^ ྲzIumHZ,^H9v"F%qŝ{H=qP/٩챢I{9eښDˉO\斉HQC=IvPLUhm.ܾtlS;Ӗb6V˂$dvm=,zZ:?4gBMy&d02\+&Vpmsx3MX)ѱe $Pռ{`gXyT%?3mOC?@0¨H=%.ޢYsCrNy[#\RVY1P̧(OU[-f!R5셔D AAܬw CJCFksȼ~e t>j~? S-mY+rAmOpL,Z <0k`=6Ƹ9s䓴C~y2&Njm/*z;}>d[.7f8{c^l;m%1N<0fGY"xM?,y?:b7ٍ]i ["*<ܡxNT-\_B6@[b;"NjK?*N#mM/GPF^>PJԅ?f7߈|fIU2s[[v90[MD7'bJ1Q~COQI|`!os6*0W26~]B(6c&{" ϱ1,dҦ.JcAj7d0bگs_>9V+WU 옿A]h[ + |e`-tN  B88 "ąA[ SD0>~?lRӨ2y, =$Yu{I|+5`}YLe|3]DΩ8`}Mvxws9u\6*}!v3bE"n[lңuTɠV.zS]:b< _r=Baa7G;-`ms' jwˆlBLX4xf1xvB* B{:ɱ"2aί*oHdGNE[n{Zϐfm m66l 6MZyvCj]|Ja +U_kI_&$P|`[Xm]*txk~M.X>Qsa. '4âr.)YȍYM1BH>q.']-Ԭ .5yȃYVFm^+NۖZQluY'q?ꕖW\+.1l͜&D Y%;6;F7[%y lE94 +,7iEj~`1-jQqdc'`5'qLh.+1ZieWI9+F\E#Sg_ɮ 8|A&%?34z +S+-؜qVF単]E+]Yn9}aوQ ;ݚ~|<6f +dChrtK>MGnQ(a wl?afIio2estD^2ziu3X[|o^>GJ=j䃝 yeg-%6j JzrЧ9)]O/#}v :#>o<Odju*At7"8¡'|DWv9;6YPw(9xncq~D~&n]탋(3Å\ T6m"*}6'|AO' P`RK,-i9Q/]M2%[HWchS?ͷOYd4DZi nm4 +ZF~ @loĨCD%&۞'C݄<(]b c] +J`Kϩ +H1wmTMJ՚R }/]Z(RUץtd|pR:Ӆ67[1Ɛ.YShdsMP +"S*Udg ,Ԓ!jQC\efsh~b+$2L_ckȥ|QL!Jƫ2s +s\Dn[9^h^&BEM(FVSW5hV2(s0vQ-&ec&)˫=SU9 +fUNX?eQshz3wu!`Qp)u> BT|E%YMXNv:xzC@ 1پэi\]yܜ aR`up2"-&sk[.bz#/tΕ+E`Oaa}FgGD א<6Y[dR8]T^G<|spZSJJ#C Q{{[y|dG ؂eer, EIOc0 : +>QbtTWWLSf"@h_ͳH9*Tnpŏܕ5iD9!I!l".yDeQs5ܘ[wBMsa|p+Jf1 q % zܹ0əN- ɉ*{sE kyr>8H9n`'ݖQ7:9Y4yp{c2CF%R1Dj9I#/s.ǜ4{Emxg:ʜA&4HpZ+PF:4L8OrB~7dO"n[LY/rStF%ϸ< +H=,GW]crV +SG8 +"ԢWM6Jft  K?&T4R0 Α. _|qֲVG+ŵO~'Nꀊ-֮C"221dy'Fs3@6Y ;%.~dx3(>Rup+7F.:2%3{= [Vjs_[ex:$ <"8KZBۡ% +&zPJXPj?x7]XZ~C}٦T&WW;+x5..\ -Pl5 L2e*RD?R"|-Эz,J߿K[4hZZpp݄+Y5 WB0Q&,|mv#z|5?hMV$I[z` [MH\t6ʦMbNK0tgW#e$qaq0xWπ؛f7!NDӫ:m[0+Iq~WCXoY伥y61bKSN1ejp4 $-\zc S?̺}woYj#6iY95_>'+dP%Xj?tnRrLy59&/M?.V mQvGFk om:DFF4Y`̀}\dp2yv8O"(^`;Lơ1Qhp=(Y0I8 h8Q5To&-j#u*+3G+vyXU0d/ӵ\z-A5B%z$e@j8RNq"vȉ> +q;ZrV#̵ZKZQ~Pb8.&"q!y-a]]]/5ɯJz2ڷRt)7J +wKȎ4v )XkePh +!l?)y򬀫ҠM`q+u5~]L:t&2g nAzTިF]}K ZH[dL NM`S}z +DNS⽫tqagJMr6LYi0`ZٺT?|þֺ֨ڲIV-^πke &F~Q~l[6c +}U$(7_$5_AOMeZ* +ZtFiϋnm͈9vEO@k1W#j.v}ӫ{)m[?Hc#G-Oy̫>\hdH_Y L_E4!eS煒横p4P3'u3ymSj,T{TA&QxApHIǫسpB}GC"vkǠX̧/x&jboVnMB> +me+mYӄiq}f>a:>js[&NhjQ\+Ρ]_*PM&UяuU[GWȯ3vYU)WW4Cv9{P6?ZKsu̩XbUj[o- 7)nT]dȦKXoBĒJCrwz7u29'N?6tiDzޗ:,OfBS/p=xɕm]SdKCdZU զQ<̥]xvA5lRF˷8N؇XݠͮG*rYi>8n,}7~1xr^,&ѵ+#ﻴIЭz4+ܥw/)J;zmu[4n)؟vKi2jtWV(=o}Rx71/_++ߔ䷢x{=O8 1(~P{d$qbL8HctFcx7D6ؾؘXec8m-Z,zȽrWUclN_~dTXll=J|:-13[ˆ-y UVJW2v]"i{}4mPDG'UGe8jc`|͒& gUE% ^*u!6 `GīO h-6%MJeF%u9C 銃UD!ލ'Xp> +5OkuJ^w:Ǻi9}ʻid.ӋQF6oK..3!z6upPA,^SqT@'=a"G ݳ(&ΌAHЕs'uz5̂/L@؊6<7-\v dĸDUVUusl0/E\b)ِMa#9d]_|ӇCŻ괐T}q~tN%i3qi4Ǟ16fb[bUP]۹w $-dz0~IU%q +0:o- m"nH^gϪ +<&ُCU4}^j1h #@5f"ťx4H'[Y?ǘO;R*T]=ScN'{Fq\(?LM<G64ݢd4dWܖ̈́ʦ-y~ڀ&FiQq;Nl*X(L'*SA$ +Z{Zqˆq#kd,/Y$xCoèlaҩ^CS.sufXUQ'_o&7p۔OBTWn->dot9jC5 ^6- %[PĢm;.֎ʔUU"%Kn_&JԉQxMx3嶐%ok I0)?GvDZ7@z4рq#,P>*3y&L 3 *Ji-GGU'6zQ%hc=l>QF_JPrܲ2?+lf #TVnh{|37p0glhs3GVĤڧ'ć޴AW!!K}ec[\xMޏEZ0`|p<<62]ˢ}ԧ?AjcMgmۙHYN_Nf}V^3[":I7%jSg-١aDL,ƙ6o _]0:-\9)NK= +/!@~MԷ-o[e@9٪[wD׿RǞH`+ܩA32U+s{GA6.20YʧjvidKz]H6QZ*9U޼Vk"KrhQDkַ)v+)/`KLtw ^&øy>0Uxf8?^kYNP P)ZU4xz\ 7{T"$sZAvιguq?(_@1ր AH̕*wyY7Zއ\ TtVDpGYv~F!7I,ـhSvN#g= 5Q` +nMۍnM>j|'|lS¬梞Ȇ*%̌E{E&ƴX:^0(`b,L3xSl"]rnx~Zօ5>E4> 𦑧ljm_dyiWHы:RbXr9VӺBhXV\bjvuZԷT!4=2dTe֐W8x}0Q?xDmJ,ݡd~/j/t-a H +HR@K`UA>-]<,LC:1Fo{0%60)KI/xjTj uST b#W} K$ge9M|ϿŅiym}d+q_M~&H{tX +z lK2;]ڷK3(\5t1.cL(QoB9Jw'YlItCdg5dpƌy(Xt[oBUˢ<@:X0>Kz6Yh{Q'z:yG7oc3 +!GgWMI(r`̏C%ퟌWǁ8Cna]t$= Jq:Azx$#ÆVH[jL<"pfdՂirn`R3J׶`K[ST_+==wT :mUfO'{7=0x"vWeЊ F”y=ga8~~2m ZX^!U5z(&#]x3SJKKd7H.ܒilW.5RLY;rDRJ^2)hj6Tn9b-<ZEP]۰|Ya3 s` +ZQ蒗nu%p"i_&qj29f&m٬Ys"_QS/r?]Av>lwqmo/ZZy0g#lxal/{L +gyyΨvx;d3~juyHd9 +ǟS,:LaZ:;͈S'*?i>7 ocxEUdk~wG4䏖4X6nyX_{g@ݍuNQv,ϤƶeU"Kk2~#qzwΦzTzP.{nZ!yor/|#I†RdX?Q:ne'^?][gs6CJxhʀP.Q㽂7cS.1[#]: g<v'JӟZG+_gLnh?kHu£|*í:Oڨ! FrX4~FVTeGPhZ +: QGqi]W2{:ﺣ~.r\֛1:y\mO +6|܇v߾܉ϛN,`B)Q:NVirKv[/AYx ޿׎" H3{=^C7S}29K OƧWU9Tq5oݪ>>:q{ ?"7wQz$\u^؆S^3FofH0z`Fjݯ`vE?+l ];+YyY:(4}J 'Vl>Z0و1_aAPZ@פІs= +͟u5[+i*ɒƁ:/z8E',nEVGirxGZ wPtZ]YN .9U'G$>vz|>[1/6k/6+@B)R'MKկM+:Ǿ=|Qεh\ά*-a S}:rmOS[q.k uKx!!hTK D-풆aQ@֘Qj$9ӆ!oaxƬq]ޝ[~)pNCÅy"iiM؎l|ar8n~D=K}x)MO>_5W$r}uKK[l$3q~ +[bSҰ./0 y2#M)D~,lV~"%OA;JPCCqO%rdgf;IGED6e9krƤ;|vTHpa {}!J0|lWYCaƥIFM[ +/=4$60bCaq72]p4n(+Shdu-]i獐, *F~a8=d5Vҍ +x,fʵ/wӣo]?n8G.3o:lMAV}xY4xJ]};a+=2ys#|<@Uc3ؖʍq 0t"!oǷ|da@v,e*>,/P9cMGcPwKJ^Nuiy^ek0qnj +RJ#8gB9fɕ_a\Km/&IMry^xgkux~/=F]G̒~Ynrw=>Mw:,[hAةsutнF"]"r&mz%\.UL3]]?1rLp";.$nY|Sx7j+UARǧ߿chj|$J 2i$UwߚZ#.6j@)wOO&* .gqف鉠C:|X];ŕ$ߒ) ,o];aMۊnnbDӄ7fzٴui(uMQEI5H,f*1KyI}  ]ͫ~V-ĉ ѐwpy 6/+%?+UH~mh؇ 8~˩w,a4Đ@{ewlC0 O]ǝ& 063 M(r4":t|y\֏[{gGe7kDzo]<9[;QvW7V`w vC%8pT! 5]~BVeE?SCgx} S(߳?E]++{'<#,Eϼ3l:pZ2"'V7,BBCt{sȚEi&UO[\WSԍE[4lSP?lBUUt[|5R–IP^Ǎmc_.n@Sizsqmn<o^Y DxjX`AV/Y[Ĵ>fޘɇUc%sKD|W3p2_ }>`֭?0_% e `8-)z݉NӞd[Ї.=v]$UVȖ$9ޭDAM }, +ΰXV!"ty&5;h"C̀wMΏpP=+G+V%-}'l">zՔY5ʘsխ5'NZ'S˃%"ˣzG=j%2;׽fh嘯V64͊ٴǵkn Vm7Xk%:DVQ ٔL8_`!jZĺ+@S.LKF[3th4RGڬr¯YZ_ᗝ9( ;\k(th՜xYJx:L/.;ғ]3(ly]Fy.UUH^a2y"aqfVbj 4 wFu>|u~LMYi#1~66!9j5RNt@j~?Q J :QQGӽF{-FǙHO*-#Y~o_=UYkD&qTUE+%\=wyCCÔwJW eRv^SL)f SﻷD;*XO\+D:d?\PkTq_9g~~)PSm;4 4/PVH= qZxpkLXϊd`## ~P8'߮\_@k݇W, }WWVNN6vdz٣!%YY]2 t,xx!-iL&!\OÐG4u&5.w|>LA}5197uT )[+dק +7_ @^z3M~{3.5 F\@?L?rf7w(pϥA|F LG ; kD`U]nMyыwC'ՔE0Gz`|@nC"",tcs0hyswEAcD4q_$d^%R~RղUr[2h (!_>veI`dn}'le'M:G %l>bV$8'R&ݧ>h7yAm_0yŐ_-&3[ES6U#Щk}/fV\0MssByΊSEެH吱]r&V(cj"Y&Ϊ&kǠ?S' xDR )4ڳA/>v>:I+ʃ2]Wk#&ͻ9n~<-N;SNy3=u~)?M؃p&o!ݢ*]5*>cu2'";hDQT~ץw:X:z +6_;w><0KZPb\|mZ.m%8qL(؆;# '\],p4r؉)+۹П!hftg}r{=WcbM(˛  >K8zI'!WD^ZG,dJ)b]L&XJP=p9N7 ++GEF)t|@~f%e ZI=.3DNa B>`XmW>?:wXof=]--e=x}vo;ɏa {, +VIZ=qc's"̏jv4q5=Vyj N8\Xf.ԨĖt" GT=LArLǀ?fBy"xHx{`|u0$su)ZT6K:9N0wSYTF*[%Pkb BWF-yZGK2bZڎm};V$]Pʸct v * -LIy6C8:%KAPaH)<> +O-qF\0EඡYIUZCAPxZzF:$θ˹LiْF~zeNi|mǫ+{- !zy#lk}],"n#㡌5vU g>iiQ/o|G檠= |6Y\N7W8B7*'T j8%^Uw;K$|RqAAKY|ʱtK"יV # +w{DcHq/qT@ 11$TsBL[c,bbl}-FyȴяL|vr{I[\Ҷ\V?_2 䍙%o] , 63o)Kca +]Cş}~"]l%1_4jefFp#uдWzk-՛C V=+" !7ciFy)$jjXfvf:$Uڮl;SL{WCRE+R>@*6j;]\"y+x a oi4sHe|VJ"9 {E*fЀ8fbeVpG=qM2rXvxpU&!(e7 (w\wzXrAzi +VVi>&ŁTIi{B5׶ 5 ?rX{X[ll1R)LjSuG1⌃ucvjÙSww21kә7a&Zb*}rܚ *##WgWvK2J_ ++jd c" Tt!T.Gx6*M $8(m-V:qLLUat_UTɱC]?8ig8ْV"!$8״qnM &azԭ#O&N6?x7I4bb[z)_I'CT'zK!`N -̆ʠcX|j{3 (8OYQ]~{X\sZ64wf؞M1idigfӎ֬1<>٪'<6]ʬX``8|q)>o_>՚" jaITG 8eqT= v^; p6Yb5@ow8V2l)qØJETk`=QX9O'Vƺ]QRze +_Z`,Gb:21&Fywhlw=>vp64QM{9ی{{9MNKaN'F)P)$B&|~}_-I1߬n.nj!z6u{팳jKʁ"qKI[}ϜkZ$M:kÂ՜7 8!CpvhTn~z umWfȨ゛HO7Ͼ=CWb`+FE.}~|ie8<@d-ԃ*vlvo1oLҳ^7h(JY|J5VVMI ?@\(1L{V-w|m3AQy[< +=?Ɨ{$uz.}ߝ"Gva!geIzҷ9dXYB>9w)ODʗ5iEA =,<9E&kW%(Ͱ55 fA˗|=d +v:L7L6.TLv(V(p@J2T@%:8YflH Eq`w47?W3㰛KZݾԾt0NX!]\%C]Z9O6Q-`T?Pw`xR5U'zgAuv/`ѳ-v3hQ3mTgTi\3[4s~*f]?4K.4Jx%FR6mL)3c5)犯kݴu/j-Ü1qR m*7T{O9sϒ-O{KgNОy#*j|u $;urrw.cR[0WKc$y+i=wmK`B׸PuQͩDa`o@6?ἊApbL^Y\o7~|ncÚ[@µӗ(XVӗ>t34A) V)5g6ߙj,urnBQڛnz!osn{1,hPL=ZrܓaH]iў7 .!s!hX<7g*7YJ &-9>mZ.P?M\9Pwԧrm@dҟʥ ATiU3Ndǝ(]gss4Z_: +;tQd1pi.Ja6JnFɃ6KQrPEotSSѶt5嶐$X;Nr7n0nү: t3M>;9ҩ&_'"_3ίM%ƱB8 u{AX =B TgI=tt7jKswE +=PCyQm-qFy2IY:yՆ{pd݈Q&8*n|Scu%HR^zdfch +^TC;߈srR]12:F$<R!0Qvϲ1F}׮\k4]JXolCM[POXCwZjNզܯSJN? +u,V=H:q:8'\#cE8ܷj΄t較Gf8GQJ@Iki<X ^3ybv睟p43cdV $1sݔ..]ȡ#˚;V9 z}e~+N;'p4@8v> +˞LAb.]VO(*" Vw%#qlLwJ7)ٺo q9\-Lؤ@=/7T/\ɔ0KFcX5pyY+Wmd#+&}kڨ r~rK"c"2H¼ZѵʨdQjz:F2}ۧceWfgDj69ޔGkp ̯Ykh~MlTON-l +'NyVFFM\Cgjz">eeOT@t_:Q˪Grf+@'S)j(:a)-NyqiwvՂZGt XrLr~EhF45b!ژ2WC0Om f:0sM+Lf]eࣹ;›`Jʉ' \萚ӟbԫ]6xԭQVz쬂̷',+!hýVt/r8,зL ɵ<GL}/1h\jf$QKKvvo4k #$v؁'c^n-p)Z#^1m;GZ=,=6^p_Yx~~.FCdEJSfiojҮ-83t.Um.Ҹ\D +-IFəMڷ{> P˪}Mu=<IaN);ĘsE=oXWT{:"Ӎ]1gWq%:{#'0e ЅYhrNdcJ'7|rbjb2:\D +PP! ל@ymk + 6[nv?x| cq\+X?R͎En_3JBO^AJz s3|klPm]yz|߄tYj k="BR^+/s?J_ M&dvPs' +怾DȱjX}WK1l((;V7ubi +Ӎ(]jgIw`ݲ8_H\Jt!YX|>cv*}wl Nn~aGA 95#GS/gb9V,TƽE!ִ.8h mc2oUU=Jrw!K3kٹ 2o޴V{|˭wKI&%!?D3]Nw+L}s~{^cOdçXAe8b \-c6* +ȳJ /4?0֧ .EvA;3E*z3.7S)B\5GY턢)43 _9&ӳ43,4jӜz+C?}DGͻ~YATǼ Dz"oq((1NJto#Lkɪ0 +M u@<)Q2c]凌)meJ9gjEÛU(;lgqz0_i{:rOik)%zr%~h5kc9|{Pis8}c QOoz,PÍǷ괰fǹ3J}m: C [W/}c"GޤHP$\*[}O;1Z9uoo k"hQ¤fBL?9i{^=v'jv [\nw}_ְކT5CnZI5\;D3F+reϛ޴[uBGu +D@lmPj^A;e,hY^NTlo-Zղ}dzձ堞8nkia=o+8C4ks TbVǎc96|ܿXgUjdmb-j{BطWft/_x +/0pBK+*<-sjtBP$${o:1L~؟ in7zokc3Zz +8U {8nd&xu&}"ǤE~p`n#KpM511+z|)fvlX&'=YHZq06t=u4왤g(¨ (yܤDI$=˵we%2ܽdx)WvCtԵFizr54?V9GZ~VTmc<_t,m\3G^e5ސ:C,mr:ɷ#z-@7/ح>N%M#&ړ8\=ڶ\.\9&Ɲ=,i-|finKf`[N):fA +kO19gVFoj=2ƮX+tUG'+09`ڬM !KtWoi{jQ$ rC.1q!,RGF3 ]~.֝}_zу۔S*ֆ'$3S\"t/Pm99 ڋG۾E5m'V7u;u` B^C3xz'#cK)tօs䳶Ms'3>hcQTs=f:@؊aqϷe]um$kzl?pCҚ*3VKuE5QB1"n+w?Ѡeblޠe?)? _KrQ>SlWI S^u&ֲ W>ae{׷w YO`x_d@2`߽+˸׫ygI(Q%hq}Z=eqKG+v }IuHqz)sɼ$n9rYQ(^Н<y|Gq +J +4{+CuWZ~zː`\&M&l(V-wo> +ig?*oN*|k@n₂GۚMd(J-^}4yt/9[wO+ +0b%tc_|#c'V5 C-(ؘ~o_` ܁PY1hB/UG %7w(Ĩu)c=;PUT +]9FFR9V.R`OdL4^? o80r Jt3m Yv\BI4[+JU21HL{G= ",H@k ZxV5"-ЊgGQ+@#45gos9M(BmHΈH[ڏ+zkeŲb-13^rRiX~\^1:q] uI-SԳb7ٗxC},>-/iUɦ>O9cM!lP%+-f<:K$HU%EfX,HjTg=[=&P Be-*RyWR'(:u7Sjz:3](,yx e;DbHII~RL0Au㖩.[zj`4%~xzSOI gg>cW9lā$$Ĩ$G=;7j V4]֑u^D0I#gŧh*Њek<߇/MVMU!ʩe=h+ C4Wlb4}6˽; w8eVVzl*$5 +dxͦCzZ2|F?#١8L@IG#fI +Zg,`w1w)|jg h p: NJ$[D6ZA@^R= FcO4H)b pPlQ)1뜁:ᢕ<';8c +^Cq4Qyak057Ew6*P׻w>4Mt\/8fח58Qc3ND)+`-K "$&F9#|fh(:"(; +ӧ [rJq4@~#GDLSu<|xeLIk pv}M"3Me3end։ PP|,R@{rmCK#tNP,T@]TlrkiLxAk,lO1E%ӌxoD'W!1m +[+?n/ d +<^)(ʭ}O-&n6%[xY#ibdXS}j8WeSN?,4֟2/|UA&Wf U>6O YUH9/?Z{Y!y7(:ꍔ|@`9t\ ,=A-A)˓ŀU bQAp˧i*LD jf_[eURaYư1=FՍ-z/jSu :ƪFʿj + +]d\J=YKXz_K™iӑvE,hbx_ǖHDmzp-̒%dt'>aQ 6aBY H@vq' glJ,6zJhs[2)&OJA#niKgQOWKuLcj,LGiTFcN!0 l+m 3WBdo{x /qV M|:jߘof;MU0or9\ik7ԒcEl1X.2f=`u\fAP1m1&%V;iD%YP^"2if2zP&7ϸjKpe)YzlDwZ~"hƾ{ +a:&lqdIQsُoqdu2j~X'KDX" +?a-O1z=o~lw*-db-$eBXs?d}{$UNqGFǢKڎliw tg!omgZLዴja wa#tsmۢӕWFZxtfѸ)gPA8gFw1׮wgO%jWW;1zE@GVfH _L.31fQhmJ+y} > +?Y_vӣ^c["PMD+jެ_GYή'~ҾLϥghO{vv1upa5\n`m1k']\g*;3,ώQWv VT7[8nd͟32FQWgNg~CFIki + *JL-kff, !.4'btubZ 'aU2Fqtl:̧ʀ : _G vsױ[zny6ph)GQ@C ;BU`o QyMh1N373;w qv[7 J"t؂[ Vw0u7W͗e/[_ķȐn:t_n&*(4js6 ~ZY~O<$Φ~k +he |(D s'iIu15nu9=R_u-=4"?ߋD.&E6S볦ތoq;55G Lsua0oiT?gXL +^v2l˲!kRsG;?|r$gz3лe""*E^)؁wdA&Gs,<7\:4xmӿ2fXSZpLUI3 e.1%B9\qSAU{4NwX~M\V>]ۀSF8\fɍm)H/nlE[$]Q.TrK;6gD.@';j@`RHmE7c4t|ĴaW^uRK;. ΅[7mn0{vk1{ Z\tZ#c`!`x&UhwƋ}-@7UX!g=qq+gq5Sڀ\zF+TOF@s]U +ZA o~$-b;.+r$p_|3)Y@`;8uygfđ; 4ߨitxTz{ 3kBŦ3uawHmcv/ʉ6mvXg#Lh+V\+vfbE,̕_l!@+Ax/R{ Eɪn|}έPVQ1/~deDtNv/fK8?wD:FMߟG jQAi ?r xA䷪}r{..9~?3 )~VdrͬXEs FݸAneڿC4+ui50-21yY|W{ݚ74l<<[G &2lt__D]ݞI?à!:`bKZMI傋qeMz",e?Hp&KEKqN'݂0hγsl#BˍAm(^fti~o\85naXXKCa+L>7~6kfhR;3ZĮ\x vEG ޭx[ C=V_"~Ucv&I3"ό5ܝtaoe bs5NůO0sjq6AKnw㼷ybfpTgI`g4gfn5j1ܟ@Mae@pNxJu?HP0g{ggn .}d=Dcpl;ɡ˘O-ꬁ߀w-\7H梺 PHǨ?P$0vw& ާ!iJ:?ŏےJg: BTċ`Mvnq蠘L*Iyձ?.%+9 & T[bg|)i.`4(F!CE+*vkƙ7jL$,65KVld%aǮ\'7u$հݾPP3pnD釠d^^,L+ \tyT8Xgb)7GФRW 'v {20A2ŦywwZa6pDA*GbmuzC W +xI{YU0#U=/ukRlݷ'6*-|%y୑9t4پ])z%Pi^V˰D|>d +>28E_hMcr'@X42;-brf S7708w&2l~xp}t@lX.XSr\1,Hs !,*>ԫMLajj920\ql(8)_{Ǝ%f^4mvŏTĈEMVH4BQvp˱t+ЅׁIn )oQ)'WuYFw":F|(FγL̡KITBQ̾A_mCtdž3cDȵB P̵+S=mqrn4r/aAX_ͧW&E.8 ʏ{o< }Yo4{)[uԱɶc6 ?Cv!@"M[oa`[Nw[e 9 %$=!&.S`9b^,tyh&QBGҕb7AoOuY 5i6~HJwX?+e:;j'skZ F2y7hZM!~ELֳȬ1z]YNvvMp]% `ffb^:'tT J1Qn<}B_qA-{Zvw=f3 ] Nki|}}3!(bl_I#X1h 8VZ_Ob.:FiԌrmY;_)Yo YVNvY(W) M4bK|0m@%,-_UyˊQ/qWL}?4q:xeYfU[b='ͧxIȦ16HK~hx#7]<$n=9F-%ۣט_b+"DzD/0/eInѽO >yƋ`HE)+I/u!=?;+VH)g knTAbt8:TYI9 +|hϗǻ7C!/^=3t1E?ֲ_iWk]/9mgZj(oBJHFC,?a-Wl!9R Uwiym_agҧMXu(/&V׃CY$7Lc|h!o͸[Hrэ~=!Kw=cX*5oaꧯ'7}j:.=vtl]CLӱhJS[rخ.~"8FTO.cpyMfYst^<^SuR*sӽnǫ|q_QO r~C2;ې9E*"b +2;*!Y,2%W+衈 + :}0#iۉs2ɹ(yn|NzZ;]7 q&`?+`.: -ӣ#kdH~LSVafsej Xsf~񅑁p\jӬL#5ç3 [OI0upyn)Ⱥߋ/LskQ>RVY3ė2PKAV%ئѝi̵\e)=`BXÔKqMAeaq*)V:$|F 4L=xfkϮYtxqӲ9{2fU3ݜgl,-Icz2_x<5I}|\"WBpnTxݮy,SM;R&hyfk])YHotp" -NY$2q!%.Eu p%o\Yރ:E)^,JNʩf24Σ]дBOΟ:t'; s9L:@R;ɐ|A+b+`V8jnFYir@2DT#nIߏ%H0H5>N:I{8Uf0Pqnh=o*D#% +X ۮ' [#Q֎'N:v*p߭wM+cv ېiLM=vCkDF +ykv&^4jK5nZtuM*¬8rkBd^Νy3,hw6s|~ixD0Hd%x`|k bE_*=Xh_am rmX9{f{;ԛ`C~tJyj`/ ڧaX>sI†Ɵ|$s&7.A |8!Chvh^ucޞ,dIt9_/ϬM0s`ԙAn L uv@3"0 t0ACwno{fuz<*ǩeݷ^f|a +XjOMq _\?rfy i)Kv][SJ7M{ʖiזR`>'ë`GIg]6*(/R|p4 "!QS/2 ޺(L\*E yʅyѤ3|W?Y2ԫ+EJ_B Arj*mo·}%5@|sV(_JNJ.w@'=<'圾__xp*8|+6?-H~x@9M+Fz~O*g(_c+T-bR% |W_NHWgFb+/AwoVDHp vdEݯxEQmkK ^xYwH26]EJ|sH;,ey?`+4ajnkE)sj9mHS%qOJ[ViO J%jxymI]QxyOa7G]zdzfHz_sѰVU>ț}:C9]-)~H,]LavtJS^U~/>rm5r:WQ=r6Iv ="gQSc:ް\Ov|e)!"uVqBJŮ #HlCi\ƾ'ϋy[պ9d6ʸ7uˋgs;Gu~Z]qݤm{gt={&`OKT#K:3r;n$YbZ!Ĩ'90<@66٬lN=5$4S8d ;j%Yx)^Q"w 3 +9]SyoG85U*\𢦿X*}$},:(L]D IFݿ@h ^;M!$jNq-,=Ek-w~$ ܍O4](B؀iC\J< ]Xk;@u[i>j[Oiع -\Qu +QV`Hѫ$!XE!ou0&t +B?ImTk1C+E* \#%(Qgu8EfrYqaueЪ-keCp3ծ5![kBZ:͆ķb0D޼>26]ʇ3a5K F 5\NntgglzuceW ch|<#u4X+]6 +4FNeB$#UBp#؍;?Ze(ZI撙-nO7*b:&QtAbǨ !֞E_ϖ޲ E>Vʦmpc _.bi\9nhg\[sS=e;5j+yȔ +?.9tUVf:A]ٮ*42UZ<:*J{S2*ѵŖvWyMF#Q欉1[X3eEmqmn$g+mҊF0ĬnG/O4]]n*zWN~aebẽdxWlFGLJQ0-sae g_d X xw÷|asd3^b :ٚ-=*ӲC9Y'uiu< +7L^Zɇ{;iQ{nEuڛbXjyeӼlOpnZafFI.:ui}Δhh϶(.vS=DՃBQ(k%?ՈX qM9 YZ} R%NIb) -(m.`(/q/7Tck}rxpo,ԭ|+xy%Rc0!\o?)YJu+8&<uTD|ڶg 5W%).ePIqonVpS a+}Fݨ*7w5@24Id VP%垀/13S? P,HVROuLӮ|bU85\〖?4ljB(p(0sOl%D+!Rr< ;휴aqSv +]O9KCW!fXେ{S(x4'cqs? zאs.rFA\Ro5TBE'#q]`6U6q;䜥Xv{ ~։31WϚAՙjl-yIGa$%߿N){kikxtm[O>~5w=>{mB + lJE"CYp 7Q?-<\D#`bgj#✶}?LH#SeQ*SZBnv\3w 4E,W Qg:nX<91IzЬcoxrQ_n{]mPj2>[CoJ4bL3D2kpChYǷRE > :8c:6̈7u@eXT9 +@x~'4Gwh gZ0x4+x[Ghpq ֪T|بi7w{C/])ZC/fVM^y_BbC+0\ݡ-X$TP`jA%9LiLER :JFN$2wБi..UIF%BHH3:cqQ#l>!&AX] + yD(N]O8hgQwKj^w-yc̱8 j_#C2h?"{8(̠*+3'w8a&(pp}% RXűib ɱ!)+ΧBK]C˳}4,JWX,WQ pDQu ^++NB*n( H^$V[m"`ӧ,ByEa^l5E3-klumDC>Z,_H5.9 +(k!+fC>)0JT,:]*HPe,X8Su&c;XrO:47'V83`AG>4&LKu8n!GX>= +zagi踟vC(o6k/c>ׇ( 7w1)vm;YVeH0Mg+t3bf⩸@- Q=\g; %픓).(\:򀟌 0`Br)IfǓk\9渐.1)y]"~{d6җJ_KjeX4B= +^GEoIE mփiC})Ly/hM4dfbϛ D5BxЖ"Z[^NO'9*aT$?p3ܧ_dQ+P-xG:0҂rNb+sò5EGZhi15Kw{w%AHEF \Y3ń)Ӑ Eu:W>4ȉ(f&9Og4B0wZʥӤf3,lM([ط%~$zN| A}uҷBe^ĬJI_~y0>ZGvt5zL#ݐ>QB1H?r3Pf& r\p*Sm 4,tԪiFqQ*4-~ʕmCzh˪ba QѨCe.R(]CQCTH |zpG'0& #K՛*&K +1,v5f SA麖[]H GN4ΦѺI--M(&>"ϙHHزnzW?WeE8C@"|(SbI}Mc~]zHֺB1k ,_[6bv;DQn9PDg鯸/%EQRV-@m>8eb^y Cߎ狯2B_Vs4+9:RC5'F֥F pG_*(W ?ܖGb25(@.Vdf[=>=5akmD6\uA=IJ]9'UtMy%OJ}J㕥Ph=7CԝH=gГWYN[/ş&-ݐHb*>jhTCފ %GU QblEӕ6FY)'M;c=Ƃܢ{2SN<{^+@Q00!M kd?F ΀|*E5{J.&no7Y}ibW_F=w_8dd< `Θ7<%աzOaqZݩ|hF0 +] D VJsɏGî"S5a%p11GKڪշWs?ڃ|+4 < T&j'^=WOeSno*Z0J݆G`6n$d#[)|v#x"Z[w1j¼&-=7l;˭- W !Ico+)BetQ&B)q$2)uYaٖز>3gyiŋ§ɛ^pPRA`<-577g̬JA|Z+:䳣81pʆ-4ʖJ))f188K&иuaOi;JL4U[6Sݖ3:dsSwL%^F>$[{gF7 uOZ13FUپHp,ƫ 6}ѽ4e). +]b)ai F7T/tx+."MG=TC=Ircw3lS×Zc; ;ti<$_oQڃ#"—g(AMY9 +f"f83ߒ!+̫FSD *ΧT`#ȄͨVqHە_&͎[7z2yx}p@]3HڸRI$PAa͉z@w+IUj~愋*ApjF) +U\X5ب| kF: hfʞUt;.pW @LY]wbp+k^I#' ?dSo1˸& \s u$:Nѓ5Daآ5:-0)i*.CI̎vWzs+jy^#zvdH ZYHC\grƥp+GGĎQ7mjdktCQw\{XH&]ɓQ)Dɟ)z3.잦,ZC(y0iz#]S{5j|Ia1< +b3RvVt{y_i,׎gAj*<)mc`[,c[]Q!PWˁ5(9Yߝ _@WRD(_7,]!eM!\6ViZKIqDRFۧLhՊT],b}UOVw6 +qW;aĺaOeQAܪ_gcxkƒ('5FI%^}lJ5ggowyބ= +,Sk}}M +":7Dʯ4!N 52Xɲ64h`{W.B+QE')VVA'N%:8G]#@?=Ii\]O2k/H^5yUF[AzlTv#bλ(t+uE EJTg$sOjO<D4}8ô퓦 VkSuX:U&!)==(,bV!C.OɱSϖƝ1]EVm,aWxJn^;!_} !yDˁ۝_('5GIJ\/] }ȯ3jrƾ4pj$]Gxa!\R+P׻Qj:SU&~@v+4?Б-ƒnwl*COO3l'x t&(Ϭ`!sƒ%#YkPHW5tDu~i':OVw#+ +gq +هp/j~[[OX4T cW&c>1FM"u>e>@i\l{yqL.:ռ~CU6əFS]iS\n9! g wa*).xgT vċT[{iBx(؋RF/B6W^FOe]*d0i-9~lNU:Jb"i"!qشp(# F*lp[;So> ,Qӕ8La7!PA0J#]$܋85,#(I8j/]\vz^%wW!ľM9- bQerzZ`əNaL*)v +%m~[dj|o+ԙRtwRfNW#sj:L@leݍXr[~o腧4ٸMsJ/Kmu(OmӸq-*<ʑdJ:n/?]bK2(Q6R 31 v e9A^/q9֩KM2#b+r@p^HUD0;r48}eJ'atU𚅤/Q]ǫzXb8n5Scalw`z W&sWc^QB,8df-쌹YMa"Ռr3ו7M^v{h9Up! ħynZoo,;ZmBAS[PTbW_3v=8S1ya78Luo棰*#&Mwo,_8>LT=F*VbOHK}-[-ex}4EXkyJjKlzGݯ:oL F*xI[SͶw;X_1eXK<'#׷xJ% x:TCVԄ\_31-, &|GT6wjZ37LR2dIe ԠEE P;f™c9$Zv׍*vgI8t;EC$㈪5 ıG,_G|֒9!Z/OgĬAcp8?iGF߃QdDx?%ioxVb.C?5;I:nv~&S盋ng =!ΐW~G_K' փe3F#{~pA ubza3L6\֚.zqlY?`6=l8ڳ:(U_0%Ր5sRU&;L$'n1ܡFs{$k'ihxA38I"Bk?@*r2MȆ(A3M:Ub9N1dWB351Nef4V;B*o@ ݲ|XĖk-<{bvpgf򛑿,#y}5s|hJpރnjl喱/ g94ggcL#fHoœrP,̤cn5nԂj^ŦC BOQ }.s#>7f.^<8ǟ: +(-fw.\xqu nF]l;WF#G7VntD -$mWק! O=?$2#톥W,=L#-`i5)3NiGQ`~^+N#82!]BfixZx ;NS}%M B8*_6<5cAY xlv;Be1SձE&S9z+{q?h%ٹthlٌ݂Y9d* J5=1W?Py>%Qz}wZكiJu⃔l'A0!L I8P%O \!Å~p»'3J3ДH28+^\1uasRv-W>e/Lm?va'T{VgEa:unRRِ懡5遺\k-֦-7 ,ʀ1Rwns5BmRrCy?J+Vl5<ҹU@ޖ0)?8!PRշܪZ F9=hb|k{J?z;z+u֤ +0tBY >'Wâ6nr9,fёu]0A#HHg}6ܚBۦ kE +fU?trLc)GY{WفREUjw$$m$9-QoIYO`~6j`ڊ{G ɀp0fh9ނ9k[(g71pg^e΢qZ=GCbX7,J6}QNu$g\/WcAz7$.;I?Ve*;?10IM{ Pk-ko"$(Ba21bN&L~ ++-zN׵Xn[gqm_H3Xfƽ,OȶU!JHۥ2ɦkŞ@^ui5}NMW?i_KEǙ]㣚.zP_Klhn2*w*z"@>J\B(A>lE T?ԓQ< $ 5񊥬gNoLVR7t&g,=F>$7#:9l&y.R9]V +DkszY_\U=5 Udق(7GuPڈ6&mZ񱼌lbW͏L( OeYo'2aop\V^9HOe@^HXt1XH +Rg C9dUvuJl +_N tgm{A 4Ls/yk|5)\ By3+5DΟ/p}!DH x#̡w8ov/ٗ#8,F +6cwF Hi[KyvjI<=M(C1;*;x)Ƴ,/.(^S-D\z0*#Ɍ#%wTKRrb5]׫9MZ>_3gϖa?vY3@m3kܹk(f0M\Mzk#~x?Nf3]iO9'҄bh ^1I+,\ P:H޶ z7RJbQV?{(j[=?E5crUe_=xvx &kug=3H&^;z+zVnu1`pJ&+t)TsU1Za꽒=+:S]}egg{y_K1g )4*' eD1XHO/`=wڝn@eU.UaK +v`5ݖ}˴u^ڤYvȺE:H.M0fm)MCdT57L'LwNgehB A7m7znAExoc8Ԫ~ MLحQJq۱ +!16ԄzPK0,%`ashΓNݽی?ïN,:=熴nێh/jL {-΀)2["&1# 9{ޙ.N2A˺ ,`0d,kU tCeqb)s~%YyDBR@t mg);ǝn)5FiHjP3ܺjx?> AQ%vH~n+o?jS$q@`'!NE_K0Ы*ۑ7EoRڕnEDTf2U2Ƶ(Μu[+ 9fuy/sXT߇lZe"'`k@Z&WM8-Ȋ}[&yZexxeHԣp>Яb\/JY35+הmR62v>znrۇMyfzcT S9Ri {]me5[w+IM`Ž֫У+ah[HBoh;>%i +@kn߮bf2 +] h0اvJxqqzّ#: 3 `Әwsp2٦Q\!y)VJʠTZVj] ³͔e]xv3͑.fK|ITƙ/>ipp_Ã=a>iP r0{ռVBO'2.`BvYU{>٥afEi^Р4Z~xiPռVҞPWXX߮:ƭm,ЈrGzK]k y; Į_H=-F];/-MO#A2i9aKHuWr#\yo~ӑ{u>V`iYhqSVgPóqJl\5;vhzΧkvP 뿘tV?8$F݇OZ5``<^STm2bľgiiX0͏fԂW'* +徐J5*H3!BqE+gԋ8NN:}&?7\n<*;^!! Q亳 .%]a%eJ +)=;)?U;9 +$zr|}/qQqΌ[9aA< L^d!̉#!~*/B'Y86p=NQDAOg0ZF*}+k=7>un !tJ^)Bwt!yKHȓ3X&2&*20x6tt UZ9h*V o>+-֧0NQ̯c+Y}  +=AL p>EXs3@@H5ɢ>C  +ǃcq.ťܢ3łXFDl#,Y_d}{l тY_{}`E)4Zse$aRm)fBA\yU$Ʈ6E5>qu +aH>_.:nöAƋ}y`ٶ䅪mf5sfPM|0rV'fX@ӷ&AS@%IkAq(/6@ _ie*vϞe&X{s?͛B1"e}WgC&퓆ms |֡Tف߄ GP䗮&k:n?UDp'\4j2.[LY6O'bWm&y-9]Sy8</Q$an#JVVǮ I [k#5{I=p ;8LOG>^`˔-=4(lӤ%1ʸ3)!k_?//`OvuGz~"Wa%܇selT륦\kY:rJ;){k{WQ)ey(^z6C5Sk:枷smSv3Uj# +:RWjMctovhL&8ݍW|[h]E!-a[HU*ؘ>bTjǦNvn !fawsrbЩƲpxDW]?1~pտ:{<ǜe)!'D_O=y8Ra# .?2r,4}6B"Z|*͔l5>˨+Y51+g\f.з>q'Yl54YMs"^j 3nx>rʼn_3K@*ܦ1Gmnҋna$RrƀFĀm&G`A^vV/ qd_QsFu"Y>6#/Zv 쎹L-[.yk _R{5b9 $6[9.rkU61g89>~j"5#E$tnKu@6cf*Ya'y觿yAX]<ʦ{6HFJUԤ.)B8"r-dZT20P(n~1r_ +Aq9 +[:Eofנ6tᦎ3=rbE͞дbMxL^oQJ/0-U .t'l^fqBe#w\1):I`tɮ<Ё6xQ]zn(DƽW?0W)o_{Gp bŐdJ>NV2q[q^һm*6迍*MRXӋŽτzѿMt\H}qNUꨢBf_I"gʸ~nA?O+ +a9X + `O[8 [̬}xlҦVI7$)>Ȗ۰vW {tQ(azB%1z_NHawh/NerH!* +"NՏv*57{X"2a2b+L[VH2]`^RR\in=-W.xxw: +j$`s67^icz[ܽV +*#Z]>n-t/qΌ9 Gy\o<Ӹed(y:5LTʤqN?R]mgе7wRbJ@*k)]|8[X>F^x \/wpQSeBmK%^l6vځհU<Eu-2y竼5.f3QE|{`UV|-޴iۓ¦a܈Fy‹"r?.^$ʡϒ8eEe\F< +wB*'ײ@ŸE<<*Y{WYWg%80C⢪ " - 9f+2ض?SP߈7lu˘(TQV0ݶ47(j%T{7@6閊!)9B6@1Yv1Aޔ:ja ;n.GM@0K)  +t$*(5B2jk rtob,79<8E~lۏ0M᠅> L/Za;k87a<\6a-KEC鸆l\9X#{0E3Ihr'ͧx EI +}ѳ}Lo\X>Kw^}i{9M%B4ꂼ[Af!!djs'鞛F?%_"p:?ۨD1{8\I \Eϯ{ݴJz6$ϋ" \c!:\CX}f.'G9K +0׍ aH}f%#N9' u.^ 5VCK>lBtNU~պ?N|'l4N7<1Iu9N3L}. _,r.*I3UզѤ?d_Q2;- +8S~ 9p4dGg'sA8Ckxy9XG}YWy[k`K1L ]㿛"܉YҌי,2&b%dT fV7)<'A/iLAEzyj[<\F` ˔ea77 dy AffF̊99aۦ`rHԽ̏DzhXh̼Ӈ3ZZ?tZރ꼆B~u0˽Ż<00asY*@آf|>w9wUG+)E ҋc+a H/a04m5xH5/,]`9Z_i >cUPƙ _93ȉ<NJSBPQ2"`}AqG^f Av뉿Z`{!,/9}q3F R/t 2!{KE&}Ҵ3a^ o''xEד,r"_RW68yT̡L j( eNƅ߿/<O7ktJdthp4?lY/O +F-oq6&AWO뚛JCA ;Nrnۂw9I^X72:ρ9Z-?uY=,]YN:eh $3HޚOn_Me>0`U`6`I-Az-(w$v +mk \&JV.ǝ⊮(n(;=ޟ׋.t4{t̬܀wZg;f/u^a$vxg:&˼,K~l~h>N _52]QP+bl3եWuSWǾ$لVEKSDOHb"-Sܟb%ĆUcRzao +ڶ6]akywln׽yCc^PĖKTaㅣ ڠG}^W~Mؾbcb+lP+}ڌ*=u{aDZ +•yeWWnJ%~x٢A^|~Wi=Tq*/];g{T(DG}?C&ܷEsMw)/BjF!`mXe2j߅CmWk.ksQ ͕057 Vw G*Ynb-}ǭfwk \=d9L Y?߱|X^An܊;g<6:^n:i'm"ie2weM)ǹ::)WZ;:U*iKPY'iRի il[ŇfNRp`JBfԀ2*B4 y?lY ۺcS#z1{:;pmnju ~b!K:MT1Vea.BbSD1w޲?M`CoJx]`e"{'P+'/LQEu.Ɛg&.]B1\^4OI+-I +Uz14*a:e izBs +S2Yx4Mu( +L?`vwΤqu6h •XejE1\bF:b)M>n_X +BES ҜCyg9K tivώZGcnv~-*"O1"WA o\GB;Gk:"6,aV҆*6zb56h۩'<ޜedv΄)٭T^en3+eɑA>5^ U] 㙒x_2'VבԑWC2"pIJϛq4 ׵6cCu]ɲ0Qt}DꙓT>_3쒪$@ol8EM)al9.WȈ[hp^1 wp+QIMR,OY;qo2"$iXIoekL8=dADvko U2^}X 6.q=ɉ#BΣ{K[{NվR{֞sb]͎||& W+NO~81G +lxRr7%a8 +Ua}(;N߮Go~+OLswYIabקb!+< aHnKf͍\~5Wh 2K f3:V?SоB'] qJUGqnjpa[MRE:T tY/s,g:.N#qzwXHX@׋Vu! e/NQuC޹U/a)g1}Ę`j +KF,X[h߷P fP1ٜoѿ|VP?]*CjK89x10(?S =. +U˰3 +yw |]UJgeŸ*%Ʉ{*qN|Vc~F4-[mJV9lQUps".:8)EI!㵌\y<* G~¨xddb#BQALƴڅi^l)A:B4tOxI+h5h>wTq$£ xI H~('=?T,LdA0>T͢z\K|] pʁBm]guCb|( V[&'$ eZGNs)kڪ}hc.EҔ<`p:Eʼ`mbv|Z aU% gRŪWXxhmd> dZj3VN KH 9_5zZUs4QDDTX:"~`=:bwAI7o@%–f:L.ܞE%Ik" J6 Jӫ};ՕZUP~k$lڵwqܓYSS5 Ctj7֩q 0>[*\}Bšs96yξJݬkL\UstO=XByou1)NQRɸ[>(qtA'3=nqo0/w/Ed9^29Zo] 3 q~S,EG.Pɤcl +O4o|a(dSE<ɛ#NؙJE+ OXoamA̛*T nigߕӊhutL1qؤ8x"jdUga3c1l @י`ҩ.^?kiSCs]ڶR;V@:Bp_!$r EŖ N_km@eP%6zR}b +]sg+ń[;Qi(k8p&ya(B5ҏƵztE^dbp:;9 +ey{U{vV^b/vʃ~q- |%][8Q?MQ6XI!BdFkYϵKD*s +e)Y,EN[{2ѸRZwܥZ|+0~iP|{xjq Z+xNa'׋G`=N_4:IMKk7KAjCXYRE ɩISF.' \Zyk塩%=Y܁ݸ +ו% Se/g&ǜ&T>M$Yٲ%%\]ѝ4;bȋYxK+7=uyefe#J@,MRG=MW("Ixk +=X9zlK30KN3]mDUoe4b&=VѨJЬccV.ݵƣ]!dղ8Uw#{֣1r4!^vW< ADX~JWDi eǮ9F*R{~޹ktޟr@d7]:Fm/Pxw iyJԾ7X]Pt$dvEP^&7JwACI`W Kiv"'ҎŜ7 +p[ZA'W/%iÆlwWS%~{0 M陈&}p s6OqGeU*8O"D:B#z$f2FSщݒL{#D):O1P'B+ٚfx`&`MfIB:+P4ZQPT3rP/q;st! + 0 i(OTK;}*!㲈w1zLe;HF@_r}MNWgMcr\qܽXQewI'\iIu5)*xhȕ}JUQxrgcfaO +^< L #("U D)('Qg܃>ImܱɅ>IiA=?GY(* +"3kԑ%ZT;s!)6"i#:j)Ade2>W=z\utGY +,?=B@ddMDO_w<ފɻ|*uw&X OHLϛ</j 1G +ijr^h]V<+qyjrgtՒat-!K@ s'qO, ԂNUob +k"'М!BhMG '+O`d'Sw}Yp8gL@{F1Il]juy_7ex_~hNc.v_qGUͰIWJ`z*1DnNh(tLa/ѵN咠]q"5uuh[V|M_I1eM +9E~? + yٝSW⇱!/qJTTlytjڡ!臭C}ߛ9dnK_Bd^فZK ++-IsʼnRvLO^^TCqm +ՃYYa |d cqdɑ )YEn8œR 3=sfᣄmUwMӌp?5D[ F +.ijܨu1jΤ#{\~WB]5L6qHu s^+!Ah^r01Ng$mm<%yZ#$EtTQj,̽oX.6O0*i!y?o#*W.g}jk-5/O'9z;* +߮'f(}$_ .}n!pTq1ha˻K{ 8Ñx͚]zkoƕ'nM6J3ְ˶wDuf  q0Y=ť?=")?{hᐊZtclsZϫK~FigM£'؀l|^OLϡQ~{wB9];\Y~|ra:P kߎ\&\N*Le5RjѽtcXjH.1Q.kJ{huG2CA9_\lтdP=tj˾v8Ξܓ隸ehsm$DKsV $'q!$%}hFJ>2sA@ܗy?ZI=1q.QCK(zΰk>|Ox/j( +endstream endobj 15 0 obj <>stream +8;Z]"4*'@8%#44\=1Lu29mi;+=m7Q5$h5K;@0"n^n0&G&91`aDli\:TZ5sSPnL"SS +rS%9aG!4RRI@/!Tgl]+cj)91KL8,kXBb\j@`VAg9nH05E%,IZ:s0R/bN1L:VUTu51fbVt5<;rIf5Q%r\L7eEKoLOmbHmc(a:(1afROq2T +SWVoVE&10tH/Fo_pU"%*UR7!WZ"ZZ21l-uGd\W^bck^E!cc6`AG)-rC04Nq;e'TMG +,d3J,A(*Ae+;K"Kel1'oIW+8<@eQ7:@ded,#Dm(LCe1?abnd/+WqgD@nHXaT@*ig4`?6q'683M\2ojZ<[SoMck$I9]&iem,uP>W +jKc$7`7fJcHUZ%j8`h2aDe\6Ou8*hGM^4q5;O*@h+W$nXQYF3&PN]\=DuR2X'MioK.(N#5Fa1l6MCN +NZYL7lgS_sUN>:9mR'3i6)HAO6V!7?4=5Rg+h12WNX(%,7,gND\@b!jdU@"+Ek`[1 +#EE2IrHM!<<'!!!*'! +!rrS2BP@~> +endstream endobj 16 0 obj <> endobj 18 0 obj <> endobj 19 0 obj <>stream +%!PS-Adobe-3.0 +%%Creator: Adobe Illustrator(R) 24.0 +%%AI8_CreatorVersion: 28.3.0 +%%For: (Ruizhe He) () +%%Title: (hfbz_icon.svg) +%%CreationDate: 3/22/2024 8:15 PM +%%Canvassize: 16383 +%%BoundingBox: 44 46 542 537 +%%HiResBoundingBox: 44.0810811650736 46.1777532695323 541.16419076125 536.026428885742 +%%DocumentProcessColors: Cyan Magenta Yellow Black +%AI5_FileFormat 14.0 +%AI12_BuildNumber: 94 +%AI3_ColorUsage: Color +%AI7_ImageSettings: 0 +%%RGBProcessColor: 0 0 0 ([套版色]) +%AI3_Cropmarks: 0 0 589 589 +%AI3_TemplateBox: 294.5 294.5 294.5 294.5 +%AI3_TileBox: -11.5 -101.5 600.5 690.5 +%AI3_DocumentPreview: None +%AI5_ArtSize: 14400 14400 +%AI5_RulerUnits: 2 +%AI24_LargeCanvasScale: 1 +%AI9_ColorModel: 1 +%AI5_ArtFlags: 0 0 0 1 0 0 1 0 0 +%AI5_TargetResolution: 800 +%AI5_NumLayers: 6 +%AI17_Begin_Content_if_version_gt:24 4 +%AI10_OpenToVie: -583.967741935484 726.258064516129 1.29166666666667 0 7935.48387096774 8129.41935483871 1616 940 18 0 0 46 87 0 0 0 1 1 0 1 1 0 1 +%AI17_Alternate_Content +%AI9_OpenToView: -583.967741935484 726.258064516129 1.29166666666667 1616 940 18 0 0 46 87 0 0 0 1 1 0 1 1 0 1 +%AI17_End_Versioned_Content +%AI5_OpenViewLayers: 777777 +%AI17_Begin_Content_if_version_gt:24 4 +%AI17_Alternate_Content +%AI17_End_Versioned_Content +%%PageOrigin:-665 -246 +%AI7_GridSettings: 72 8 72 8 1 0 0.800000011920929 0.800000011920929 0.800000011920929 0.899999976158142 0.899999976158142 0.899999976158142 +%AI9_Flatten: 1 +%AI12_CMSettings: 00.MS +%%EndComments + +endstream endobj 20 0 obj <>stream +%AI24_ZStandard_Data(/XJM3LP˜PRg!>نFR$EB!a:`|N"IRB˒R|  + +79z=b/Cj5lVUvmU],x5%ͭowN #`78@B(A l qmlfƪxaڵڥm٭ܠ/=YfnP,V՛/}][Dn8U;~k=gܙKv=۶Aa!t^(4# 3}{nhmȖ`1]Kii'y3|,[.QQz7<7lϠ<ߐY$WUjJ(߰yVX{Vܘᕳ{Ư(v H$x7-s"K[,?o40 +l@plzƪYufnvp Ԯ< +l [h&KfQmؓ +J*{ō[]Xo}JX>[*6q6@(m|[j1X.4\pL|7 p YhM`;B[t(Kfti NQBno\ƭo~{ҋ4MR;EGsbEЛd-cɿCӛSTw!I^r<*_9[x.fG{վv>=Kozԧ^g}/O>aa!!!/("))b**b+.4>я GqGr,GsDtTudvd'=ɐɑ$ɒ4ILI\IlI^җ KK,2-r-ٲ-Mo~34Es4I4M5SS5W5[GCTDGDKDQ4EUtEYEO{ӟ)i隲ir^jꨒj***_׿+.r5WtMWu]WvmWvֳ YY-YEٔUٕeٖmo}۰۱%۲5[M[][m[UMUT-U)O}S]5QңeKsl˵LK$˰*$):B+؊ih$ٯ~֫}?ՅVU\ڮj j M-SBKGMra~B,gu~TE5B3Þ#z\ͅh~5K\Iub)Յf%Yzէ}Z׮Sb?ʪlʢɖ,ɎȆg=Yr]Z뺪k++븎k~k_VmUV]UUUUUTMUTEUS5R-ՅFJ*_WծvmڦlʦkjihfjeZd:c*b?OZOyڢ-ʢ+)(j%J#*!яzmM\MDM,MM ovmɖjhʒ,R,%/[r%U2%Q$K$GR$Cd;:#:c98G>"+BSTDR$Q Pb؆lifHc8b>!?/?/?_h_}Qoғ~o;՞d{w[&'C_h + Mbo|[h @ @d`D H l@ffuFN^A +k1f񬊁 mp'7<m˒vAE+?YVv= mW/m/$C+O.8]UEOG4ɽ;/r$ 3(2MNJE]p\PGz$X2ޮ\wvưmc:Y8Y2oȱpѓ[X7{HRl&#Po.Tg%î7E},vzb3ųU#ݸ_1fycw%z]Aog!Pt(J|ax7|į^įJ _hvc:RRaZ2  + A"7K m%^۠\Csԯ*6c`,EAvznnQlǯisouMvAP7]k-j^n˲7~q}Inp_/"Im$KKotB#Pp d%/7 ضdn)sz*ϰՁ +F@zE6$I^BRJY뗄*7h-4~"|mxmzݷVnmW5Њu1D-?`3nKWN4.>SZ$ϡqWAiBT;CJ?ŻV/8 o9M>X|peؕCnq,4(VtcE'}D/ڬKix/p %(u m,>!qHED!? $ tT_Dy6ML4[(*շUn:/*Q Є 5P0:4l$"8` +S\ ̦a C?Pz$fzǃ{a+fFb%˗M7(D>=TTgӣP,"J-ALD6b|n13凥a5jJgܥeC/5'H"&8O{!v aDрrLKM! +-&;&W7. cxQLhp,‘-4C(+kh=;y x8UVe\0RRig5Fl#nXU,^8) olD߸\0YELq5PGuWnv[jh`, +aмكҰS)wG+\Gws 3]ރ6S +7x1|1`$lXxp{p[zp, …MHru*ecVݾtef"eZOẅ>Zeqi*^N6! + ?}9ELd޷N,g0,xB$*'uR +)̃ +L}e9jmXKUvjB#˻Kb^hz/n؇&F3 ןR`$$/4ym,ċ RB׏\ֆC*=}*Oh_hxzWp"VJ½3#$p /^ch<& Jx2hM_P`HzfpC5!3ÀLoLTE!"6F/_И'F`3p axz␏rPExdJ<5U,7Ue[h s e;d[2$jfHQ$5CR$j@łc_R"o~A x0^Kʰg޶Y Cr$a!uXE5XtT>mo{:^_4nkO>\1w`sڍc+ڍݰS7|௦WnxUlzn+qe-v}rg*W~~y@תZuꋭjV lR0#D:耿,3֧+x:^J>fM=*jۯ|q`/oU-Ϸ<>5bw˭iGncիzb.Z5[nծ >?_G*LȎ zϦϦ]Y +l 2/ e╼}[-,ϟpVn5hgu\V<U +.^kjɛyD'Ab +" ؀hh  D@(&P6*o  0@&0A@A  7@Dh@ r ܠ1(0 d` $ " ` @#7(@FXD@D@@D@%a0* vp 4/LRұY k% Է î^vW~3֙v?zCz![q +Y'ף.0n ޯjԶߚ#:3ޕ~Mcxvy#{00.ajWPyIDF +^%oT3g{Y[qvٍU4 x^} AG .|&o8F7;}\u6%̟7_+X/Wo >SzU#*@>Xg$h&i{,ZAew`o{row}c:ږa+Y^j{͊'صʖ9}`߯U.\tvY +۽MererAu)Ji$"{`&be㱫:ᚮfZa[o1W +y^"r,ydߛhv ,y .nM 띌=ǯ:_n%;òzV{a^Twݏ^ǯoQ +\gS±+npr[&~e&$K1 QB2T 3taMԥqBDŽsEL0-AӠaEJԬNOv u];D>))[% + +PMp%GH>[ $zoFqwbbxL sWN- +,g'f:~81H8/c0,ƻ2{o6UJħJƅ*^% e-; dN:tr tg3`Y-40FkPڕG?P:Fi)<gWEa]H3r2 fC)u4 Ɣ=IBXȡ9*l^8IX "-4 EFt4F,Q(Dhp=3vVYECiP"bLڠB}Q)a@#T rj>%~jj*Ud'Iv@T ["IѝBZ)iS6J2HOd0BOʜ(#(ʜtߡ3<\C7{t'gNN:f6~S[cw(^׸2Y +v=VL`)&b:zIjUlP$Ź iʈCftdP!@ +-Þ%"y"%Sm ̧Oh oyfuI$T˩)CH#+xV{*2eԼ0yUy+L[G 7![-R#@!fnjC' \V٪]JʀRlMQJ}TJ=ƈF/;eN҃D"J*%dMꉝ'Cx:C/IDD'Ѩ4*I$) P$IJU(sJ! rbt? ' -91#bq|Nl{^5ruS!y˦bn=5r Qk\UҐފ?.ww5H,@2L(k4XԬ0 //f:g +~"c{ȅ2aTY,J|jk\(0y:iBY)e\nUJƞS[hydQڔ9=BE1P a2Pr^f KUYh/4 1*s:4dZ{t F.^+((1+֝UU p;MYK?$ ,Lʜ@>:ψt,E(CNz8HǞt6ễ| 2CmLXT 0u"?@04{41 'No4ԭ L9tyz aU"cn5bEbi:^=kO!$ +A'tSJJ,1ʱEJwTp`) )EɄv˰'La(|,h l_Hj(Th$qF"搝Wn<,QPBsB +^2S( +^,tjB]J 4-jJ q] +h50=N U(&SqP-[Y=CB ' Xu@2=AzD~gSG<=ZABOڡ}Ҧ` eє +Ħx^E@&RÖg')'&$YM8rVip\vq +*w?ڵ'?L*g຅ .FJk'p`9XD +2"MBE9Lgb0˔v8~6 ?SB K\GR= +nu*OnSyA(c(Z0(b߃3i]ʑv\c̈Tz2g&!Ȏ\\=E +QxQ8V8ɩp m?{թ ;8{| +P6˞/ +Kyz xz +xz"& pYr#ޥ99A. -@|sҝJNJ.;ӋtjӋ(2шIԟ("JBrp~L01` `)!pb +GI\bvh!1K6X=?yud'psR?~GBjS + +5R>ZTbyIm+)U5RC8!^<E L' &3  Ĥ(cX3e뀭?)#*B<1lϩ!ӛ!I&T!@@ayY}8>OX,옉PW1y[L< +FSUm:B8 %`._W +_48rO\Vxz}PN XQ3!9u@ BR[X]-X$^KXKPPCf[ +/t6ͩ8^ a*>7L0̆}@MmqL{{ӟyL҅WfQkI~P|bpc0Tޣ秌$ a]sa&ix;=F1QN/~!}*#ЂDhdr*\ 8 E08L$B+-.X~Oj|PGC%Tn=ngNڪNo6^&#[h-D ڹ #J!XQ?+Y|@lan lBw^J IK>]-T(z [h[h/bZgJrHԵӔ> +w~‰ZO8Y$>-p + AY0DC$9&WEHZOoqo|Itb"K Ja6a;ih5w Mv]$^L_HBS(-.^& =Vb!䷞d,UUz[hs\~RצZ3cd% -GIxpz-4OE규dpp1'QY$^]JvjHq V*T5@ZԨA!^l3emV(BBKU ̄=1uw(P^ys>FL$jo2Xg?C5ʜLiz o;5Yp)(< .pƙ(`5R0BM! e2Ʀ\3cNlEqzFJϐBtS#ɬIq&\"X-4e-ҐZNc}_`_taC1cvz ?^ 6+ +2LA6$`čj!oFAT rub^ VA\42D(6߄4B_ڍl^8) OGphAmCkxz*P #ԣj@ +ګaLF l~Z3-[u?\ T_J9]M3B=ƣZЛBX-04Ri0jP8jP ?SPp)JD + L +1B 0b/e/QA) A8x/dq1L҄b0j<-fx3 }Z;ʔ$Up: :aˁ`-4\g<. +5Qy"|@BqY}Du艰Ϥw uJ7 >pCN5Wٴ Nlxx +{z50Å(KUXs3=!Ix9xu 8Q2KxD2["e01Pr!Y +V B-4F= /(#V?Z5p SPy9. YwTHB F8@4$Nb~@r/gn^W ,I gBgG/@\UQw,'HHG MS/EmR#j0ȠUͣ%3;л {ܪ \V5k|6" x."攽v粷+ h1Azbka า0Bzm&N]yANMP(Dƥá wʎZT;d{7zgEIw(>5,D,K;& bpae1ŻH@uEp]I`2UxdAD"p j5ay%%œP XuuIv P}A`s;#C +,_s̄dP5õVQEMIf5Yt-'j,ya6HD=}2fSQ-D!۲wDmn)expQʱ~.s9Je@zOmXD?;aΆ_aQ1!%0U=9͐QBV.DҫCXMRç9Tr{H23 dR\X'iO0:ZpWj^^­p]*)v^5[fO:Q6| h@ȓpĆ%FɓT3~ho;woF38a +ECmmqFT48yV!Ǻ#HK +QtIx:-ױor{yјA>Ti+F{P-)QvkH)J-;9:ɨuf$&lx\CB$#zM \MЫAUr{FyE[+DUԂf ւ hI4*VfzPl<#-Q`DD=\4oH +$'RR=4їBb#J~:Tx_RD\cYPx8^ލ :. +N:"Pϻfpg2ٱ]-|޴\$Bl›MݭWr +=H +kД )v* ސ4ym#RAcz^~rn' e0\HK\])O +V<>\Ye-p5nC/"*ůk3)z>&eӁVobUu򒾃&_=Je5Fԟ+ }GB$AxiZ 2 d[-'n7\"R =HsԨ?djX/Jc12FP{w>4TP45\͹u\PD mN9e"nTnf"kL+;M^X(/cr .wPY'2]#l:O5lzv즌[b+n:vWs⨹/dQ+FvუS&{& 40"#]OsdPb[65IA4!# ,GDҝ}*R(P X Xz%}0*5$^'.!Dakڍ0aMqLWd.3Zz}E!s zĐ#1CQ@h%psЛds`olg4왋:a\ؖ3?F;gGj`JC? WUGl4(/ Q|CeJI2;,6]^4*ʾ37jwCv .pt/׃&JB3V1@g82_`窳CL[9w3-pWA*٠(aQv {5}ClZ(,SO7\X%PnnjZ?3'e%, (z-r:DPXc#O![Š4ۆQX86)YoIЃ@a)VIݡMi: P @a +͉²uq(,YX¢0+LɈ޻| +ʙ +5%VI !eʀUY %,$gBa9TlC"7dgL'VQM 0fFCiu A-<Z9B]E ]š,<P1PX{"@9U"CaC|T'@9f==.#8\薮.K^qEa,Ȭ fl@p§Ix,uMќ(C2T;lPrFQ칝}#yșWmWp<Ə PyƁ0) S⻧cGh/ 5]Es=<ȗY]8_NUA =qMAprѝt(x8?F?%s֖s4"omV5Y3<]aj&=[o(X'N2}!cxjdyJlacec. BUy+iY6/p,PO/pefŌ1[583oaYMVh,ZUʭA|TSbFjf,[*\B,EdiԲ#W"-)) ؄^W(48ժ40yjEK O/r1YǮa_dmn PeC͸g@n6TBJc6Tϐ&81v xلc~0\0 PPYOmmyw1k[VQTIMS:,zHmwos(߉B(((X$<5ϬR>O\Ⅸ"x<~Wmh?..цǼ+8 ^SoqH}ݽ߃ftFls1|*AҀ`gD0k`5Di/NY,fƥ }6/U e5u +N BNNCGZBq3i +pKn$g\ix2,eVa$J1n(.(.3[.hdVLOq Gn" +Hwi9c?' ''b!PO&n}MO4DZUKռ RH8TDŽvQZ?% @R&KYh[*J(ivbA8Kְϲ fkn3$@lȶ<)s5HjVBqmָz5AJb9ӹN85)ѕh򧏢AJh ., sȲ|!+n27rp5aJS,=d%e\}y&)rlGN&`Y50u(P"9C%I$:p %' +yh {ґe)u $볩uU$A +C*ݴRg7IzL"Ɂ$@JvSŋ],hw[pG4vd +k%Sd AE*FGLb8f>?) "ޮ*ek]HJ8'#P ߹N/\kELO6G7-x\x %$x! (ӄE7jQ%V| {W `vw!։^ے-u119 E*!v7 Q,!(Z b@t>v_w.f{m%:N*%Ύ9h3^ 8-ؾH%hK wjҡ{o%~,3jrXpܧs J %|oH'QeU3` +!;lᇭ;(.1E㝊h%avԘdk=(JE ?y[p[v}AѸ_!ha{Oe߷Lp*aFsC /2:Ts/i'n+ ?^HhW)]B + Fl;'UQ)@":Xʀ֥PغP%<6>] + |u^8l¡(!w<ȍADR ++y +֊'j(/og;{6L ͦ՛>v)"cUf%-xl(2O7[0$W?çzJxykݜWT&Zlw g~磨رf5_W) fpHGG5AvWMB\)O/R(&@Lw8`E +dꤎmAsSYPnԔ20]RM +fh>7re0\aw#"F6&gM +l0i|"0RS!1Ӝ-S7_A>BPkVuO+*'N>eH㛴 +ǣ`>+Ij~K54wgYwDZ#% sq8yiPW-PF <X34r-K<D#Y @\QD0,Fs/"Zj%ɯ<` Oµͯᓿ1 d w]К1#EFNFWE Kh8&`ZIHZZʂ`Ա)tU8}.ߊbJ +_Ёϊϖ;Ї"R`-" X]cN_v SmdF_r1yvʞ7xﮭV4J6V/oEɨ*CN*QܐulXv++Xa8U%G}dӲ.ś]lEΌAvi8@& n|D6XֱL丁 HIv%9C2*|5 AJDvU-$D EW!~Dw{ˏlpXָXgjx~ !c&EǰfBExL"U֭f  eiQ}}hOl6 (CrJ{F'Ejug=;H׳_D!9kVR '55 [}['j%YgC!\TzV'W#xl&k)&%8]|*\ӻ`uƻNE1881M_9:qU VDyq_=C (U&>?8p$c&NW"6rcphwmZȝRPAW^O˕Q#\XkFO%krw?ÈG$?'ռGNfV3"~.83[F͸?Z |>7}W~ہ?lj\rs6]_kGoGW .>ܔ/v0VwNҠM̠g 4%<\BNCig \"g%Ɔy 5,`e纹e_FZ8Va]\<+:(RU DJr4~{*x8;Avt/EJr C!*P.M<ɘ+N skf9XL-2jYkxCp(8> kȰFੲ4bL^%R'}ZC@It߬ ԧ{L@ $p,qRl2F-@GvJ'tTَB̶4+ah(?W"u'$tb#WS XDU{N%#lqnW>z ɿ~iEyl^@RTe?H~YĴ)]f, >P0FvxZmR2Bܭr=PQx"a'yrgd|d)+*7C2F!U`8es^dNFXqe`'; +y;s6>~Tv"!Jm{ɲh[j)/I>!,ߞ`dӞPYhO%P$CJBFfwts{" *lL"4,AEkz$'ȑnڟ[ͼKh9WKy +|'I J1f6%է +X+j).^n?kvϺ[0ԧdO߼^"Q@PP8$*8y@B%z+M"S4e.l`:VpMfrx&Ү\-_ ЩP:v Ngw4YzEFB??{H蜛Ƭ6rИ>Ξv3umTp g|,uf;< 3PUqᵚ洏cItis3+C,% {TQOԅC|OʍHI@bpǑ=n߹x\ʚŞAE9ФC3mq\R$!` +p uIȩL/Rq^?GDژfژ0m-\#7ipqUl@UyV;nf<9`){"D)"=¥wA9v#Qtn +=|[ls GT*p'̐ڢ<Ԩ=x`8L=ڨn8Q+ɧfr.$ Ȋژ-|8W3 &,O!⢠Lj8&b8$Zӥ& դ); M _hU #ݪk%^?ߍ +6BuXBp^?\,` T8cy^K* o۳xDD&g$d!!ϥYzɱFkV+ϫ nǘ6مh)=B!giIm/<\dzyx¯Esx96j;3j@Ӱ@+iE "?[&Xb8Umuqޥf&IJT@ +T?|)Q3_Zd|˭W >'V +) 8Uf$mq92ZJ);tj cFo8wpM@:|(wKgI$i})zbq~7=o*@iJ*uכ_மBYq2AHp3t{j}Ӥ,u; 󑡋P`f8"mEsn\Fߩ[=9~uD +J'kg\ :V"-mXb2` %pZiyrQ>%|rz~A!LI?;˰Qai`,nqC &0@ڑXJ6"ax1iAƞrJg&8A}@NG,c$t B(þF 9lք}Rq^7%%LocJ͌/Bѷ>9`D{$S0N&S&+U4aShG>`eJdt]*`O%Zk@a%\఩G&!RpBMX6T$/>M +ԓFa 3nc X!J鹺dc(R"n,`J/>EqW/II"$`!=SZ-Hs@2﷛Wp%^>Dxf7MLUd)tur)ŭV ;,n֘aY?&;]j5cb[CC1Ue=9 Ƞ6 澯6Wxp +}ʙ5{爁myvaЄJ'5f2_V/08RR0*0E!jgE q(/etpᇣ\TmE  wbs5`@ZٷEAw\qhHQNpa/Ė&1 #r;UP&4 +t3CY,.1-_ n@USZN,%~z@RuD;)"Fc-@F4 +]sWvmߜvf2Yh;\`}L! Fa`NXB6m1 y:R1u\r;POXP6V&t_L~xv{6?kRGbQI/ψa4k^g*R北C ֪\j~_ǘTdx}S˫?ֶ0JCV*4.B ]mUr}  X143 J܍HJ%s{R0xf{ Iϙb붞LZ%/\u +R*Wkor~H(M2F@*nn{&! ۇ=_MH]6J; zl; FH9/ȬfR s\Iɫ(@k$l0v*D#hFZE.hV6M8lљ-ۈ7 j^`;iȏz$\I}w/%lpWZ2 C#N?L [ja%(;1()zc ZEE`cyN$ؚ}c0UäyQFډ$lD# IDLvuPj_H'#^>\D4Jq#_M:R([0mI&&~i + ]214w6}>됼pZ ]1<1I,}rN^@J^zE1$~Nq9ͮ )qF,S\r"JaN5O\ެCZsEްޢtDU|.rEmD̍7BK.(g݊Mb_437AɠEضQڟ "^Wf QC(% W\%G*/ol=Jٛ>0[ :oXRW 0j}$g}0SS0y2ؓQ\(J#*pv{@?0\LC;:ÓوS?rx@Ǣ{X?>lFk)h@E;/Fr +0XB4q!?5\oMv +| + qn*P>zGVbYe?zvMiߣxԵ +ޗ*VQ ý +| r?x !D RʃKo[0=ǀơ1~)X-`cy ]QG/j>;0ȁQ#ob?I7m''=; {ay=ƌI08DWApGeqNƫ3?1̕b8>|yÁdAQp᪷OE$w P8$4~iUzEi̺WğvC=\p)q/$&v>yNY h,%mX^eta#XрYF'䎒 =dif.̼N댊`JQTp\y(D~~O ҞP@ MYAOC A.-]aü8ugU1WEB4E ~a}ژ8alemAEۭx{Rl|KT<OĤxa B*=G49569^FM)6DKчu!۰Vi]=Ai3zz_\~8X2vT΁I6w2& T ` g(( 1@W?IRJ)SJ6=]|I Y*#dYD6wL,w,S~1&6qGd,nNmz[[eZeb:5l0:9 +y( y!v)LBngcVe2<(-r !EfG7<9Qʽ52`{D=ݬQ}hrUd$wyuRG:M85WD\}I3;ϭV60QfnȓOy(C)7q-㄃ CgZˬh>7^Z:kF>#NvcLk1xO+TZ=IS9Fґ{~bÝeImϦS5ՍEuDl7gx߇lncFr"nç#وk&Gcq營j'fGun~a >;ǖ猦J֏NG35|: =.xvY{/+({n~2 C6IjԴ,dFÆg#y{7l 12Sa&*+|6{ӋjCbײ6p0{:JDˣ6TcD?0ZC:nFAP,*֐U\4:5݈w#^YMjމRݴ5$34?eEdi8k"}maE@f38t;;L|3W'w䱔 AŇ]7&8SI)^\|7G^\=j<$ngƎVFҥ]G4}I| ׃;   R?)&!%td)3Qۯ6&Fl;Ezq~hx܋~URb73WOXRXYQMv%*Z\]EW%z(v6׼ "̑$_̟_򍽨h+!;[TEwwƏ8;Kh(&GF<<?:#U]o\x^G'|a`U}2gz'#GA dhX=\*HUP*,dΈ*4IukӕP}'AσUIjdT֙T¦#!~#DZ-IUXn#X$V:{)Mc/DQ,6֨wJ"ndaL}O:5gvwƾsXNB! +$3jmĚ!ۍڴ\ɌqwIJY82QX_h*S! ++^3sJ5Ոx y jIBz,SL|m"XTPhȈF]؝'>F=L|gf扢̓6}Gt-S٣HEt=ڕgTGί57AЙa+d\GN_|0lzQ`nUjW|YTe$ rQ-"!:mBH) y0-톊8Lf'Py'%z푌=5԰ÔĊGx2einNnΊza(g )vu7?i#H :mqs&+C.U~bHy$oHQ@?xjU`+*_sTw&<[|7/4| z9qÇgjYM=\9"26bwC۩VR|Kuۢg! ]?He7t#rcא'OF3>Is~PsrfsFŴXQ~6C٫ルB%w,{"? +:>j2sw~+CiznUZrYd7D*Pz''/@䱲e1Ҏ- IA0z`M#"I$QD8 ٩MD03w^&+Oٛ9w԰a4COdaG6d1gq4ɱ\Rgܯ-Quj;UVuםJWO(4]O^[aJ(ֿLTM얹[ut=LfvqRP$ KDdb +q@2$baÝ)yj1k^E(R<%3ܤv8r| #Īnԝ ZRM|X4rs83CzaM"4&2*Ѱ^НF4"S0brS7J2B!R.Qz(ޯP~QέDy۔ +ɭBX$r *O(#ڝyc ^Cgyߦ2V1!pҳ]SiaEbڅ[2\k"sG7ۺygUjָl"Biv2t-ȹj~9*=ҔGJqpĚ=8p㐘?BǠac.O֨3pj!VEiZEH"q[ؐꕥlWo?B峑IXÐ3m_ԲgDv6%&b7{;Il  @0X0+XB@4`A+8  +2`.@PPB   ʠT & AR8` +B@t +` -l `:@Z@ w %@M` 8@ X@$@ÆgnͥHUY<V:9itEqU$J-#Eͩ5d3=P2ijI9EDnj'b/fF.IY 'FGG&%4-&W~7<;Kܝ{3R`^CPB6H =uH}(z}|6GZeft4S ;r@(}>Hy>!:j?9IY4"^roZH74"nXM,ԣ+ 2TjE^͉BKg>roZk8-hhf<: VNfCw<3Zjs93'E|Ub:e'#a,FӂЉ] TJ Fgu E2a$JD띾+2A43q:F>X81jaŴ6[*c]]gDC|W>VG>p*yޚ(ep{ͥ~UuYS| y8HbUnh-^1L!ߵHˉpKB$ߒFs"`*U%9Y$OB2t+ g&~q"fVuvzTH~?>w +}wt aJ~>du}9|6YQעi'V "jB3(}RY%Α24i!Zt|Qt$שbZ |@~3}0 QeAN' cl~,#$ +5.{ CF V,i#.($Fe&sCAMnQ|2Yn>]!-6-))z:t!4N3D$‹J_sh} 89+rQC5H䥍F8W =#? Ifk&݌f||$ǐ\:&}&+3Ή:wbcɽ^ZrL0vmHC kM9˦꼆Z31q.e>OY7$bg.$Rul+eX̧ʈdbʵ%Re&5NnxLsE<պyMUugT:VZ!neIʕ(I:qLc-3eqeV}9aȄh!U)w'?|hIIhtHLJu 9컨:ؑ\H/?͸Ȉ+[y:H7_w Ct/ I^①GCvkKD V-Q}$JHC>ǘm+ Ǩu3.|`On7K*?)uӎcn-U$PڭR,ݕ-54=T:LoD-z~͑VB +WU/21;/Ti:E3kX"RRhxk'K(qjE"u O4QF2%(%d~r3?kٕ. +!YI^sV; +R+heʧ1zjb`i57d'\5~uiY鏹QV(%1@ '׍jnO򝑸*3,Rq=nH"(@ MӫFƧR?jK ʿT5ϵUU2]d*Ӈo5٨RFH|:1OWG*FB[<&ьyQhUbjnZZTM2m U䢳xvReuc|GcV˨T+sDD^jLr%bZR塌#,˾޸ìGB>#}oB~Uqj1)jTsՂC26W= +QHj#!>Pd8򏜃83i3sǩEVQfdz̄h5_,yjk{+7fFr%3D2—a@Dlbhl6bWRH܇a["0fSԩ;5d܃JF$䤪{[ +I>2ՇIΧC'Zg5Vjj;0窆 +5l؁4lh$'# V.d!1U7PgeeZ䮑5A3kyFBRM1["eQşYJMskܡ'X?sC!ЁN6Pݙ5cK!]ZyܙRC4#hS˴w(V;"vWU;s}݈GSBlT3˾taTK*3*;:a h-Ur!N mWѰa!iR(MM5m4"WI\ܬߺM£Q|v!2SWvf7&LbgW}6 NW&ۙ`PyXߎuan3,<ꭒrc})hCGeUhwauLSQEV%(9ʫx-ËI@c5l| aXpڠ8dz'pw9$~' IPǏC`#S)@w dc&5-Vg'f>G/ЌʼnzulVsX?vRƦgjwE5ݙky,sg"oR?ؕP%fӴLQSؔF䡤t13U876 +ҫ~fE'Rd'$t2q.NM'gcvXսH"o`1))BaweTW^P` dx=t՞h1VnĦQ`BCUG2UBΌGq:3>)_CCۋKw7X?NLLJ?-WBFrjen$~Hݦ5{8S'elN5D:B[IӸaNfNX=IztG#,~" {dG\BGsň ݽb'&L)x,E?Քwon,,~my4U=(ld0aC2J@Uی"tLzq͍!~q?mA]+LHW4ɺaU`HʤgD,:apZob\6t,:)۸=9gޥB]ͽ18egyp5e{EL\XӢ2쾛K>JvUV(c~+ߔZMEΚv"G׫ޓ*ţް䝦UtVש\6[\y3$ݝǥn}8VPQdU4Ъ'v 8$bjKLD6c ۃdj:~x6ZjdxB5cGfۦuҹHNu2\IuinYb79 {u3d2#kc=GB+y3dPXp^f"iGFL+31oNU zj<ے(ݫ.5v#_Y'TkJ7T;wqxQ@ri1*]km,?gWz\DH,f^=TJ78C\JDfȹ"WZ}* )an%C$ak{orD sthQRұLT(F2MuKհ65qB_*=C31R]bC'#_zU}lZ.1#ۋVY 6q/*\lc#Ifsdٍf~zb1Jz[cQX%UUsR4Z~F:GDƕVI*橡'ČHY}XK|"3MfÞ{qhL,$rUZNPMLΘ63zNĎ'nQ<.s*]XX6il%eS7/4&}}쯪0V319rh"Ԉ&LĶ +ܩNʽ2mI.&cG33:ّb>\ :KG zq${9;cQITq;8ttNɅRI>RgYA;bSc{ozUtLMMO]L9B2քvngsta5Juhveel"3;b̈DΑ9ҝhurD$qDgg'Tʕc+'R?mrŲ;A7q$2#* ʡ)UuzCu7lScv4r+LԘ];dT$S!nIlUF/?ՎO)USحήGf|sJ8 *($^E+Ր Ϸ\*L5V oօ=f._lȵG{J(gshX +UƊ5ے+?<hD6P뇱 U SzQUd!X,5ak93ztCuΓ'8+ޯkG"12'%>ԈXnmz WRrÈsjհV<Ŏ<;+[dO1X21{2aejFD6t(u̙Wk& 2r09&uV3|8:9fzWӺbgˡD3tY$D7SY7e$&WeXvǨc i2yl>4rDȥ3uiK:S568n.<Ux:LQGT|Tf\fƊH6e[.>r>49% wn_l_Lڣh(\b=wd[JG8e2+OnFc:c qJu~K[?/F@>8눼WԘLjg˲'dQ;;uN3ɐk#s?)3v^/b%a6\͊*6=x_"ڑKizgoyINayBy&#t KڦEvGȳnnE$vS9gbcw;yvF;MTR2ˌh%W2 +2 ҈/' ыDdY t{ʵ/ʝxG:X5K]e8T:ڌb/N]H[/,2; :]VFC1ϕ1݄tEʌ$qZU i>/!su>BaI1ӕ2YelR4lPO) +YUr*i$c/WT먦ʵJ!G;HKN#zSMsU6CUއy ڸ}踌i\$Д ֽ߇#{dڕ>*mĩ'~2.~.c~ko~xE]W 86 {5lPIaf.DC}?ջ.C"2R@'Cwhذ! J ȁQON;ȑpm9%wV9םEnl#!O=%ebi+#24[bii,?xHwÊۜo,!3se8tTnIdS9wr5wD~,SǙ+v+~ b *1ּU|^&1ȇzϊ~:ZR:cFܛ; DE%s:J^$W,"jgVCw~_Y:Sdv竔NJ[H!:3WEA2;*;̇ÅQk,ӝlZ窊G<1&]Oy:HrԴkT42b$!҇˴=&ġ0[_19m_w滓[y5b2~ٌĻۄ$ry)흙ZHc! t؏튃49btx9T>y)3uh񊭰ybjVKUt2oN]v\_%D?OgΪ/i Et Tq(,?!44EQ/IN*rX#Ԫk=*Ha3LץlrgɌW(2*ŘgjOcD(1O Ψ@cWUt}I*ܺ[Ho7<|Ic(H} #N@*E1Vҫ2vKyYC>POM]LJđbLec̍oVFd.'$T~(#ZŢdl@ # jC,Re! ;ITYxJ'1rU k76)Eɢ +)ΪgFpt$U%ōE! :{Mf^"w]K1cE.+8D*f6]dYYG(V4e8_KXK MNeUf~\7.3+ 7"b˛VHnwwEJz9VǍ|N#Q:f>k2Rl2<92996M֐Fa-))qOue#Jͩ4ԒbXYBOWDsf:7vR֯5}GU304)]ϥHu,3Ub=H֋GnF^ŜDLdK>#Mg]DŽ!iLQC껛ʨEdyп;"޵u+BKԢT=x㞅E}d27W$z.WT:/l6 ݍ&HW4BRͫBl-UeggJTAͼHݽjfUV;byr"s&3W!b42qƎ%mrGrlJhVZԔt&̞Uq3y5:aCĸy Qܻr͚  ]˜֫Xp|GákhLehn"ve41Ob'T2|BȈ.Ix8p&l|KfOenAGv:Ē\ZDBg~,꓅K-:Ļl^$HUYgJOZrXB\wtwki*dx|,,R47$֠{Ea.J}ijXgINq6cɝ9=OOLsу˥"w7Uɹ\:H_\c$! [ǿ45/C"_rf.GUWAp2GQg4B\1"wb3[n^ 38|"g>i\^Ix&)S㡡OVE'q+PQ%ZT,\5g~%y"ɨb](ӧ.o*Ctu;r-XX'GH':}`34FropP77GweQ gYwf\:rEtIxn5SU?ϔlv"%~vMqyԓvСGKn!or2C )s_矑3 ]H"UeRacx3N]vPϑsE౥OW33v"-M:)Xlz!:F¨mvC<ȍ)|{e#/dT.d6ۜU|!y\Ib*.i:_z#՗̉ɝ3-탇m#:zv"!OF:YcxdNj$S7NHEW*rI vzZ#s Uj"=2:Q]dLe2) 4sߜΆh)",1fd*"SvڳȦitfq>su4ࣕkW,N7C1K֐,HlTvDd#`KB[C k"DeYX&$2NҢv#&iFg?䘗g ]t'](_ԙmQ݅O|*Ijz/6u0K_vi(Q¡C)q!CJflZwD:F&ˎoxgChּdyx].u2u"q+q}f3nZkut&市=*St +"674o/"gg۔mL!Rّdiܕⰿ*D_T +믤&KCZ#M_6v'63^M̙:<|읛4S +%y0M.}"U+ِ3#gFs`4$'F9DL4GDPk4b|q:,I]fəEeqEHb|n6r4'jCEUM+KX6mHU GtymZ棒\Io" M#B&tMSep iE]y dp?PVK9NJ7=L٣sCN)$JEDrc:~7kU*1]3&:"裫hhsw9i8u2r +CXtZL}}E yf&*{3Xߪu}*Rspj7"U"/˱-㶤||3dWeEd}U*sfWPfc桚ynHnHkP"Jy*yWsB3JNWO~]t_Y|Rce(&$5gED*.slEkyt.L̗l*])W%ՈZWv4hskFSx%M_ X*C^ͺ#։'r-y1uROȪ2=L&oYGnfWwVj"T +1=Љ|E]>_.# _br*HmƄ2*s_W)[yRD'\Ŭ*-3R7]GT9KSc5{n%鸌t1"uT;X {USo(fatB:(4]JZYC5J%7:S3JV^DOPŢtUh:ɜ鯤c$25*jyFGl̵}xd; +ЙMxjEs۔hn(C:C>;1? K Uv ]˖E)W24l`U']jfXeCRE+y08g(T6?gjȔ8qLjlJ=]}EFyѧOz&vqH2;eYqBD6vtrqYXi:wg.ɨlwh2D#zJhW5D?sxC6<δa =%zC f7^tVGGZG4{1jK~sԍXZ.8EYtꮚ2K;D2qE:qh# :VTb=qLf :VC&;s&u7yMc4WۄcpoJߌ;dۭ7y/kJNΣa-e#ѳ]T~Ul #+HmqJtqRv=Dx$7߬3&QLMUR-Թ6-#t +4\NvB%2$&qM\ oh4cV+W4r;z +2=xSXE %nn喪X}hG\%E1QaC)l;؜;Tz?cnܝiQFWLXD%x5m|ރYH +mή2l&\G!U +2Zf k5ΝobZ9"E;׼lVw)3В +kQ6s ]Y硍-:Utkh%gyFD/]9J$&r*U\fr" 2P30],!N=cZħ*:t ]1{kl;Oj8thCzҺs,Umu*ۭw"$Cs?e\M$A5jf\kHDu8ʨ8_ݺQY?cxK(|k{1TMR"" .ȋ=mZ, t&_Z .M+Ј}] 7hbi+Db$Zϒv(0Uҁr1 m޴0gMϥH2b0;o,Un,䅻+JRƀ_P~0|0;/U[}eZ/xO"t; }4RDŽ-#*$mr?AﮞaHf5x:|hRBە<8?bBZN mTUCK~ߺM1c\Ç,ݳ[ڧ4ʒ#UzICѯ8ja"R;*] 6ꨪ1 X9o#b"Ku4˲ cvN+?vpc9:Ŋc[ȷZ+l:6QQ̽)I>LR5K*$!uΎ(Eo#7`>XIQ)}5^{:b b/UKw-O|, +t]nα}^U6+&Lk*v +z[6g $.&ZrK/Gݭgy(lASEr>z܀ %FsRi4\(׆49kᶺݚR6 =n>xdI) Δ)欣M_LuAt+{rZY;<۫a -ԥtd&)eє)c^Ly[͍U'c5ߵNxa=Y@C\djIj)2Zv7!A$I-bYpfr /F2Džv:xBo6L3z~uȎpJ&) P_2uKE˽ k _jg'1u:N# 7[W8~# CMEzC]'9B 4Ч~;x9Snf14nU3V{z[y'Z*5|zd6ESLu7.mSig+Hca5x`/_ Ě\<슀'_FCmA13~S֠"363Ԟܺ +-:ѡmbLT»xTI(>B g4ܐf.*ci.kk*]˿t,dtH/K6,3IWbpe{a7a!^4 {Ze-0cr2\P%V.g7̮V\Bt`lK<(Z6CQL7˭NqWm:ޅm@Kzq:4]{%95!!NrFmg~zQ|NAW]!y +!\y;Ai3/?nO]JˡHm랰jl@Qe(5?3ֶbC]|+ gPQJN`< LDkH4\r + 8*`:dWSMXV-?jZ5Shp5S`xMEmۛ 5L>m7ZI#z3&Mqĕ +2̼4.Ty,?l=- Kvs5}A{]XJ!WR( Ws>Ҵ?KFvAnW:Jy")Ew+]32;~NP=nR( e&AX)+Z +rh.@S-ZFG:9xu+tt +"1jg#"[.9e tOToW߂4DJŵf\hʯ]eolk+OYROZ7?6!њ =,F*Xp!2B@F)+ +`k@(*y5AӰBG}^Ye]+Tʥ}YQt&npZ F]> 5\O֩CW-: ce㐊BчupdE{u 4'aZs.g=LsvF ݀>8aM^l>EBDYN闿 +=iձ80KаaƒW!~T$33T +w[4Sr ݈}# RF)!XTuBM͓ >c+9Ehw?ﻔcɢz`eq{V3 Li~#uPV sC'v?揔q^T*qΛCQjRxpצZ&yb  +S6jMJ0^('j6᩶(2=!s>=t'*$^rl5.u^*OT=}BJ~md AIaaG֦\&`fX̀Tk䒔nŰއ5n5rC*YhKrQi<7V,CkS2.]%O0hTi괥̂s=88HK6p-;;ȤȰ[S zd 1VQ$.g߼/󃰙@r-jR1]䍌x1ޅ +(Ad;)#kYUInT#~%::hyRR4)W(q⒰׻N #og++חty2d=-ÐHԁe>΅0,f r*"`+SY~iB9W`-s([Xqˣ=ƯA hdXiRZQ0HFq+1zCA !WyȌSLVmM3Yd4p{DpPvbV6Ǿ[j]w{$jnj_H $?WhRqD<6{Oz wŵhTFLaS,=Z!^LIS8#GvBbyHF<{J߂X!kCԛu UŸvpP+uG{ӊGtRX϶#s<9E'd.(^hgg=da-?<")Z(Q"/uq*Ds t3t]YAZ0ʫUY|0/j7YF,N%A+ٕz#X|wK;l5۱ut^C cߌJBzD]tt|jkwd$i^!?B"f/#ig:Z%:Ũsn!"#],y$ +6l}(Uw^ +(TИL4̼R7D@ HE fI!$@hL2Ǚ_d}u .%r +%l^) lZ0Cs|@2ZjWh8u$@:CENkY E3ιFϷ?uЧ_. {kwChTr*Y7- +qt^+QF)iJHDP`/Fq,f|R.>F 2ˡf}]=d%O:tI)}kѫW^A4=ќ. v?2 BCzu'  )H [[M׻~7#*I5%I|9:LL]~V@jysx +bXt}e7C q}`G y8aaNvoi`Ѯ4 5}c'ZXYD\rGw>B$q5L?Z2h>EOD7vx[w,\;)ш&лqE$SS_ۉL R8$g5Ո;%qqC_cnuoSOJR $a.XmT$}gI^f*©ӡ?ta.tQCe'fuwq*&'C/LJ2w4)]HM jj\U`ɑO*mBdW/PEs*ˊC#@ A৺5F8QG^M_`' H:mC@Y VٹyQpe>hW4R,~"c,X=մuΌ~XQpɠ+B'hJڤ=p.7gOp+ oi`GKF&~Iy/շc( "n G@Z][ӑX~ w :ol5hpK,}6>FEz J/3N=4هqq}Z?GCA!ҬEȜ*q|E9K^݉n:y@NH7ٱ+ݭL0 kaE#YG'chdJH2pSy A`6BP6ŭڪ`%Z.bwJ7Hwޟڅ:?L1eܫy.%,N]}O"pҫĎ d?6;l[2EEDnc$, {NT/r~&P'҂?N܊BLw1B6`t +1٩/" \$ NCE} F#6AG#w=k ƥv!R)e,R,P=S(iI0Ȣ|ˑn7Y[h+Qq*?rȉ`hTtJ j#["XI1ĥ|SqM=jBLKNB4r ;|b)/D1T1.#w*-k[KN<~kwM Ոe9Srn HuR4P䍽 +_ 1Dnl2 Hd;CX#aV +!xB>a] +̱lA/4ϓTuyc횢 T_M) *oXGU3 jAu3oIn^>XkE +b-BN$z15þ1XT@9ۏzrj`BNѯh"@+5 ?([XPJ04ǻ#WV}c3 \ycKX˟"bx·iSn7W B>YDþlqNd;ַ ?F;H0S +Z;M8& ,f'I"4ɾ%A2;FXC_X") 6#io+1ˈFU Ƀ`i:k{kGlpZ7R0kj]jh͓X0+6֚ +e9׈SɿiP$9SC3+!?8Yk(q4,|$[`gXg +fόS]j3#)Z9P\۹eSYkO2r,±I<ܢR\QNQcT~q{f\& fRۑa>ܔO Fs ytMoTR..u-p*b PB4ޘ*k>J#SS-P>-tIr 5D0Cd'8ƮOdXi>Ss+$N nd'ZXs-$ Zs rze|7ŊhEZTAPXrt`;&M48AZJ1e3pK{Bx'pdoD/w̯gPiL{g* g딇 KTl/᱇FOۋ{kYNfycʵdq+TfNSɣtSck8u8EoMWҚeȝd Zx?A$qjN + +ӭws)ai*&|^FZu7B&`G $+@ZDj[za5RWtl58,rM *eIpƦfC;ӌ oC% P5QZ(X`oFE ͸㳰kPt@ֹ9 6x9#ma-L>@ƎL8],$-Fo Xm@Eu_Ҁ]?8(4 j|;v+z3aZL[jj?Xd$yJnC4 S11 (SAѶrb?TQjWj"dJ,=GvZT9AvN}Q^E* |P1-e.(a ZDdP.fj >y u; 9-#iPNG l3N X= RpU:3n)dys!/>YP$ ʞ(Q.>ƂpV\}+dϑeB+}Rswy֓׮Q="%# 5 A2.rv D dkKr/m3wzs^hh?7c*|CQyOEo(P{ՖbU+LexC7. +1=Yurw}@ZzVl s%;OJi )CZW3̙\RɋO&՗W69 Ӄ8:ggle9EzIpSz/%@\U0w&>jdۖvk#b$-r\Vr?t(Mj@vJwKZFQԈ3^6j6:MZ} cqwl [썸ӕa(aqdt3'-C4Ac2n&2ħGdo'vtL#Ʊ'繤Wh8ێ@y=IeH͎KYFY`1ŝ"Hg8"fzjv5D4="`ϻy Y)bNŴ +$fH >؅H*T!t,EC6˅j@ d};"xrT-q-F. +g8 +s/`Yisi"<_*|";.-$Q5]P^VّM +0&ÑrB%`p o,Feoƒv-^+G#P%g&/b!5~$:aUO[:>hLޓ6.8r "!ӑtz(’P|M$i ǧ+pA!ڢxPhZF?e1q%-2T#vT8@J2xI_9ZM#h5P% +Q;c@ߣ| kW1 +!UQD8;dUQv޳+Cʼn#R ?: Od%uıч-$; :bhJ:wI:pu8ۦXcvb ~2&;JY bp;h(w/oQ*c& ]`@jsp32 ˯ } !;eƂ3(|3IƊߑ_X D 8q:g[ 2pM6 +E.i*~>*\.G;kD(4{soz( sxEiQվXSX'NW(9UHA]+Y/#Њ QG;.+z!?KPjhD3R; M8g5Lj qhFB:q#/ԇGL]"rml.`@(HdPp.񦒈2sW-#QSYRHQ_^ĞRd>]~IXv./3T=9Q.luހ0gwNm,DҒ)54c "o! p*e,(.sz0g5!#v's} 5u~:7xe2 +(qJ~IGV^9i*F%ԃ̠}"/x14HLwn'y ŞmfDc *NN YV"N"oauWR8UXh|K ҄PץT$Ϊov1~ | +q<͵p0=HH;u;[5Yu#,@e{?KQdb<`RB-Hyƛ.8`7Zo ;sUB]8ԁS5<bpZ3i, +'=pNiXSI,9TL +T{Ԕc'%aK^9HTQdlm|"^yG8 s t}r e#Pgtɹ>Z~gj3#ˡcA7]3%I; g.Ve[ 6 pϩ`LKI1'ǥ+"L`}}Z6ʬpUSR=<]x_CnWPan%<|G?:N)Vhˬ:P% a%h8aJŬZ|d l Q<ژG}&S\k([^^=8w޷海x|{`BjP/|gԋv9TEО&qDQ8 ;/SL:熆 H<-GU[PȨl 8nF67g69KPݼ^X'X;9anUVv yT~tsZ + +p'U;Z8g +5i7˂Q׾WƼiݭ,`_U;Mc0 Q Ak$1umFOXa nDŽy}_*\2X>u +~9.߹ÅQ-zNxe:=,-߭q(1ɧxeAC(=}8GUM:̲*۹&^4JXg3-2/-N-^ + lAP4 OSٟ@1Bh_BJ?KØT`D^xΪ7@2F{E4fa<SoaP<55h1'O|Q\Vm}2xHhua +tTB!/Eh@Ptyq]D}4!\I+ v}x boq.#糖*H7:RJt΍~T//B PnC=ӘT׃ji?KdG yd/ޣ8_w$=R!zvokoqEf)`\,|J.l,?!@H/_9;h׿]wǨƑQ< ?e|* A`pm#JEt(|`k"hlt L7/W4ei&=Oa ;@U1(OKN<$!,pM-u?4'BbV\"3V2 s:˔Vi)e%:(\b`$jw[v $E)lM@дicZAAqFEIwt]WmqjaQ_lP}!ϲ7}V޻(OWAK ֱ i~_![ `Bb ew=iԬHLNѮUz(^$8t62FIˆ>0VSzثB`A{kbtQ *„=B0sB ]{m^O7\d'r-TE#+iov"Y ~%4 {n&Fk*_vGÑa½ %RܰTFG-ߛfއLܤt"PCie|PVvjDZLCtXq_Pv@pP-ww2ub2dƲ㚬NÒ9T}!*t!m+23B/|`U~(5x0U}Bm &´JX ˭N& t6EvwxuڬѕlV/XMw,{LK%ܬ M%j?q]=؁R$&#`WyFYJ/Գ^;]*uJ_z>6aW!ȶh<<}lξ%Qƺ5bTx3B] D9t\4;ś%̫D*xAɨ̹̊/4 PZٹ¢ v(T 9G1`!>k86qcAAqK!eKR/ Z+Vr.XFDGJm +:bwBqSzfk,[\_z؊]W0 8[  + +Yu54_ }t?/n@J2ˬli{!jn2e$~ +2މTeԑ]G| +i^pq nDLB1XvI?繆zٜJm82qX9e\m5xYvN`p\,WY)]?2N37>Mכ,ŭ"M}8y"wDlx/S?)P*G p?]c,=kEfiY8wGe!" {IVf͌cZK@=j4uCJI.aY@+D${ˆ){6e-ݎEq]7u |uS6sinD])YcC* 0'{5 ꆨtqL*GXQmϢ1J)2 JԳ}ʼnm>Th0Zd]MvT95b ݩ5te[f1NngYf!`q`Ncsc']!frm" h &g@´L_!\MQF0x31Z"=9bGMQK~h7ZoӡP k,7xNs @JMJjm||a! W L;:Mgz18)#!Q#49MR(V XJ($+hPޒ-nS龵bY΍4$2 Qq92d=b0W%Y1tFc4M^mlm\5#$fx+ab{΅Zew(,ά]'$j'2-~e%i\NuTW'5È\j0Z4X`a@ ^_i%6$R}XJ-J-`;@禕r;09ث" :>{}SDnI!7RWmQ{6q–aBU ~z;&\i⏕7vpC@כ4Ms7^<]XV ڛ"yN6SZȟƀ K@ڇ듴guJmI\`% L^=#eT j sԠIVρ);?R7#~ʋN#*CnkRT2#kYaB d$WBt|чYҀ0JL0 *Q#8Q-[x)YRdcR2nQ`X53:b\xr {ՙt%=J7F36#5j +ܼY>' F/UUz5J3q83Щ_uσ$Ը13@{7_oZءq799#%B,L7x?>5-='R0gyAe9JJج2)zν0_5QKp2ۏ o%ؼhDRy L?z;y4 E\nhü9uwM]0T6DXɖ#Š/H8&ooK^4 F%߷uϣm`S +A e/zcr ;|%IJFiVT/QN"O3N >BΣ{v ȣ@/U@hn ;65g\Og]zpG|~cMѝ@ˣOB2t| YsE0{G|dM3z(b,>Sj9MB' q;TY^L@LnO +2 @F'v2dWf8otNT}/nЄ"6h) +<% +ڴJK<#9yMk +%] x#q %gjTCqo7RƓ 8r`.z$"O!'/ؒh GA2tbXX"d4qY"sQ7I627~DEae0o41@%_ff5EO嗟j!-/-(B5AUw\K,MфXs z0ŝ J4*䍥 _h2@k7tBC0VؼMmKt% <?]е3D)z 1nL|#ρT(<,\{5D +bcX=wx .>LN&}!Ch9t_rpC~XuʒNyн #e0ŋhg)AL>b>bn_@Gc(9 +ڦD$1J,ЃQ9$ kAK<]bSKsM#n 52 sPkwJ_4j*? .}!,-jeq1ʬ]tPwe5ER9ERzN"HkqЅ#+d]u!SLQQ ǀ;)O l.TmÍ/49Khm F$V~4Y\MAKl0lAIu' R\2jf%K2O݂7pXEFWd?rI`_Q3}#8AzQOg^;9"cҝWB5``(\B6`1$Ý +)3tE3:]Cf"NL6V=WQ(륐m2X*hJ>nAx8rz#SE Vc9ޜKư [)| Jߵ2̗zQ!HPNO#pDV9 ˆfݦ7;-tgY'eQc蛄a)tzZRKU3 %Lō~$lAWCz_kgF C^&N4@(5d}ֽJ\;R%jn#J\9Q/dd&xA gCf;VfjBdחV,(V$/Ys5 =pM_LSd˃{ɤh֌\]QC^Acޗ?zFhϚ{vǜ^8`h$DM!}TCLlNJ$u . /J|@8Q`D"#GM݌]`aJWaT|Pee 6\De&OU V{\sx^Hkt).鐡̟1@fO3#H15A B6{.JBHtgS v5'gɶ)2Uqy,U$:] 8p4$k_/>G4;CxR~ͤowe$6ۚ^S*45xF4yX`xY,Q*V3 y .EKPR$#tv~A/G;@#X%')! x ӏ“uU ]P'34xMŤ~FlDuS[HF#+փJEFJWIH$&)VBk=V(yQZ+xȉ^ڌ}LAe탤Z^,:NbQ_O%hB Ex16VNk=2za#/ð/Z[y0pkx%_%D*Rm ' ؋֛K ?tmG)x:3v;T:y;I RJs #5eLưr#-pcv+xL# ֹ4Nj0{~:~4Zΰ[gN; N\|G#1; Ȇ&=k{?|w_u˙&^R&"H1YVaէ3;\dIĒYb(B>}^]ZnX$|s:RM;>?#d +EH[ê!߰`~(.!kLFlf%u$Rl@M1jP;37:)wYׄC(|/@ 1'a@CG$4^Y1j(rbAqUM56fOX |^.~x|U>,E9Nb,=_+" FZ's71g %‡YLAO)Noއ|2Lj ;thm!xgMϾ'Cι-.Guvk!7eP Jp8/Ip8+HǿuN)MԽme\D2_eN}4ޭ,XBKuYAYD{0U23>ߥJi3PF8|.c8=Si 8BG*^fQzPpS;tǀ{19П'lm FI+, +:?RBU 'M|S⸩cZ#5-JB􌧌 *KV*MofTͻH +OAItb)6lEç(۹S!Kg6-xo,kȗb.Ҷ,RRvbP[gBQlDyDc~GAl)a?3橿b |6d*r}Xk<Ւ#WCbb0Gk'_x?v@<0\? +a|L>ϼ2U]9HcR0Du[!g>7 ڃ8ѿ㍒V`X[gD,;h˜[><~m|X4ѣ/УA1ȦŨ>G+URX4ٵO^u/vHC҉\ZS)5&J Kzgbq^y~d 2M|)͍. +endstream endobj 21 0 obj <>stream +/P+/e8{ɀGY?F,^GPz)ja4N z-M(lPK, LnjtJ@O;tC)nw 0F7IwQR+&oq#*઩GnnVYؕTYh_c#-rz-\־>(ɺA.Lq𹋮D +o. ` SK 케#b7=wŮw>'9ȟ[)Pti]31 +*t7,hGdU`8HDnp@HnjݟT !^#( 0,[M- jzUA0F e番6ԼwGH JzטA(͞<%2J9%;KTt!ui H=w}ql!0?'HRni}$"`8L{dv(qmKvk:RiZF +ݾk|!g X440 ؘeAjz|Oe\Kk#lߦvSH^Q=NhRFTA&M8L}U^r`#- &8Q=|<8, n(4Ual{ ?CV~+(Hud4W11Ub\={f-'./8/ćB&me-z* BC\nɄ^},o(,h#EG`J3B-p tG 2s ÚNff %Cai<5zV<Ȋ#FgI\I5~@* [u1\ gdWMfγ_p.ڸ'+Ac{#Ns@K}Ȋx&M@E=ٞ2a]~w 66vx">fͿ a<}}+XWV!0t!.[%ɡ1dC[̨5RhhFTbwh/!q-鞵l ` +5<7X$"D09:>88= X +I!yT =L+V\l1#r┣G|ٽ {GgbtbJvgiF^Ply;2YYPllȑGA@GoYK _ 6b&wʗCVE8 +rw:Q.1ygA( 2VwoÄ$]ȅZ+@ECiy k1qbY,YU5Atfo_xCBr( &cʂaAl wO6ٺ,2$֞a˶"iF!"L!#@yg‛vld1K"ZI@ykZ51rGE)MZMp~b禣!o3 V' H\!HI(# 9P΀枡 $(L>l`4qR8Gzގ(r1|Gl"زʩS| +Oua(I(ޤ6s_;Up +=K{XEht z\oʸhkv +T{wiH_֥q{v\ݚ %枇oʩT=$(7!Cͺhͩ:ɘygGT +$RLƶ5qnFtd\͈MWv$@10dZ!z'?[$vhzsP[.p,]EFS=FUV +OR3"q*(F@qҙᶌx{BJZhk:8.ve`/ bܮـImCFq/`x.rL^ gۚeV2Ά ),)!U(rB+S=cF? s+{P1Pu&o\(r>bs͍gi%adԲ(1"|b_*0Sw F[V>Ðm 8e7wR(F8UTr5ҺwҊl`gin{|.̖`q+uT!h_?)Nu6ΩSgQYb + +`]$q/ RhZ_2[JZk72١8:^&nU{De *BLT>:p+[y9r@?Vz2_LT2ҏ-ŵ=}]Iˣm& 'h殱s}rMqEHDxxl\`Uth-m9Z]Gt葰 ƨ $7gk@CS[:kQ (se1]جԤF֩e(S +gklea(.+\TZ̗\T6: pz"7 +DW1%Q/;NÁF=WQ f#TVS^4ɏ bsJKCD{Oe/=8zXame %Q>/GJ`!k#V{ݴ-n;7 xZ$2ԗ@U8!o5«}.<Ĵe LE Z(Ǒ緡Pmt_OƜ-o9~u]lQ"NO=ɕ"eKy{B+Avxk:{-DPP +ĕ& +މ:&4쑙7$\ reuxxFdX +c8IBL/a†&07AFF8Bㅥ {ymQN|NE0/Ot+ZIjVEQ*m]FO,!]>:o'd_droD0~Yw%8 jT +^^9 k4P*PB1rv="g&b0(fpU:g`;sg݀d FXq=Ϣh-b{S=!ޛѝYsO'>V 1슦7 -! +eT)㒘!H*@ԕ뢚pŝH% O}ڴÃ#8VXnTE(#$FF#I+#{зyM/(&4⃪ v<ɵ^@L&w%=+tJ8:5yK5@8İi2 =3$_¨R$0> : f9IObBҭX:(Wt G7&mlp&%WqNdY@K˵رyYܫwDY. jn$m0.䀓m)梎Y_^)'G&L}]A~Q$'=DlSpw3wQP25ZfZTMPΑb!y)L?[Lq[QHI'DQAx5sj+pIɲP(<^']T9Sc O°gf NZJ m PQܿˏ_jsjlwP'iP?즱0+ojs#&WfE?hn07!)彊M0qp[m`>e/!mU%qiz7hgЌp((6{ג&L&Rt$(YUtEÉU'FoyomW:Cۑg7XԠ!j' + IFj'#:A,yhqԳq)+YzSC'c:9x42H7Aflpj5C¢W(n&1% +G=7i|>ȭ#C`)Bsi1dPAkAt4?na!#۽6a@hSo!8`4oN2$*w\X_+%+mWKGK1=#Q;˕;ZYi[֡}tR&~.oW(8C$'tcIb\.:R5O~?:g\'T F-XD"TNQU*3h _J|j_rAjD ^*Lz kS³)(`n aDG?_38},n,"!$jS[cq+[TN@Ryfb} +Gk|GP/"pTk`80/ +5L(MCQuiEJو5i٘>&Tc!0YT}YDs6M$ z*}{# hP6 0Up5tqy +L>:̰o2OQ~)^#$U[ 8AOF8Ù!DHv + ΒҊR\tok!MwDP|$/E)ErA +bM!Hɫ.qnSq2,T΁/vTC| }z0gjklLj%mu^9uuFCjI:yw;& +ߦBmjE#O%͙ ol':6ELQӘ#8"x:xWI_ 'ǟ4Ǚ1-_ZHm> +;e|SJRsi9\_ڍKTr%n+Q IQّ*9J Gn³U'l}J3?|B +N 96fk̛C^~ 8c@uGd>A+Q'8'ksBϙz1-}ImCsmN+ʁHsuYp`=ېlY+9>F6n) )ecX!bS0A+lUHŚ "$d;yΠrvI2Id+ Qԭ4ΫJaF$xڜa'|,6v*jHQDVIB7j0YpEKš64) m5m콺Dq+́guSR +O]'Q:YpɥCi'*\re:g2FH]V`0ZFL )Ҹ9"H7}giC%qd.cA^iv!\!͓Ho-W(ş!}xWl@+qR (D&j+5 ,՜Af:t,0B"H$e3E6(ct[AJp¼\Dќ,F4"4 PБ1CCbe[SrDP~feˆFϾsDDix,T\ +#!EU ,¥ +?(\NCsjT:1@VJN&! +uLI-)jHX~f A:K3TΈʛfp5>yTT>q2Ç3 y#e0Dq5΋c j%兲HPe[SB Be6X2")q(!*v2G_{nRZK.yE U:3L 8ܻ,#h~dTCZl1+Qcja>/U>qi2QD(z:S)1!6c\Q +ɨ!H& 2HBoՐu^'+<@e-jKwi@@܂H'b5c`C]HnHE=DHʦrhC܄YrN Ԙ=Jҿ 3J d|Eb0iV!#FKVNJQidU(ʈ3 #\%RF}J|U6L;3s%MSM"!r  )t +{oSOE?M=b*CV|_1QE=3uojsDVrQ'0x + JdA'+O +Y\Q$|#1օ~ +c~ -xƮVGSg/qxSDf Ai>f\dDGbS4a%b|'$E,h_FBHQAL}aB# 8,T4xmBe5PhFI+uOcvX\. Q,Y{|h"bC72)i+t +ؙɥ`Q̅<=0 Fa>L Sa6U5̠lũ$Dȷ)Qœ;uسx" tŘN_qy,zÛ#' +ްAgDf4.&z-4:PtjE壢0§"ceh cdڱ2V4hg8Fl95k>E ~$ZVPIGS$$( UpfP!bn1&uOzT A]dT_:-tThǐYiTS\j\HFT'P fxQӰaKᚥo[J@%:56y>ps|*-" A\)DPH(X  @%:_D럋B.FZ |x&4_sQ|0ki(艚>QB)C[ˬ~UrL/3-A%E^衑_h#0(  +^ZeRI(A!Ld|w*v\rh aYVxreF:2 ED$hzCU S_Og UHJWF^fD"EUӫu;ç4nvd!7'v2޸d$WH+cȞQ*衊ste$􇕻WG w]E) IKYZR{&YW2V"oơ[k&ȕM"b(JhSUd"h|b'fbh,2ZAjL(JaoaIsju"Gm^dSe,w,U"@#aôB.}g&I.G]m%H72 rфa9f 46ENQk*dFZ%TE(ċhdY+J9x^O)Nt*f};*;$a ;ȍR¸ROcՙH+: G‡3pWҪ ( +AF6Fp*1>e@Fv#1t~ZH yᗥYP1tvR6rA-5}RQl@3PC[WA\F(hmpm]bEhrh䪫acƳ01%b) GVؐ>d Aoxl϶:ф Mf1F7prPb(SR5`G3?+GIY2|H`E!cHȎI2^3WԴsq XI=%+CbB ZU\)3TU:Sub>ܩ %S^  d Dx2 +j 'yyT}}*DlT~z{w=vcaM{XR0䅌]2P,bz%wILAtK eQl +TEs + +AdfY!q +ۈ`kWHS~1^T%gh 73VSpAaYX;NȌ6EF! +Aߐz(-1^Q$S-M}."P\ +Z 9Iߢ4|` Wȍ1$ei +J3 % BOЦbNSƇ`\ ~jMU"V{h^3 NdNL*٣R2 +msb['OB1R,ѢcR1ohF-[$j6WEmTP<8kq:V|X+V M}r& +g7QlŞx@ʉw…n(ҕ`vW'VnR;f`ޚNL\h:C=9advVB0]SQA̺q%e[5INrLr˃Ca Rޤi G*Pq4T^iB=R3@ËOf +h&)ŪH IVEcepY%G)٪S+\B'N|E]J[hUMC,|1yHa i^ +$2!%Q $jؐ&03q9'XTؐKk,-&~j:3ŞP+~ܧD&B0 +"DwVR;Tq60ATPt4 +Q_iB2yT,)(ƨ׌Pf!dQ1 +M}hZHϺht !s +ob^ 4Q4Y04Ǟ#J9G΋|/sH9q@B)a-D­^K3!F.qT(Gq76s[|fmhA<3 +奡EhPvy$Ȣ}! +5pK҇o$r V(&(!iP'bBFHSQFd|e$@I]ZJU!U &3uPGNB*9te 'd$qjFĀ%ddZ 9J_8(j>qH}ZE%:x$aNK^yoPc!FHkŘ-TU)Dmx* +ԗ\*HL BFP-aU.8 /\$-U1SY: +􉑬*FdJE;H#mB*ԈCp ZeDd#GSsE!T#%SE‡ ђj4C"n8 +[5T4RQ]y9/>F)?(FHT\D%x:(N8^E hI18W]*ʰBD@@{&hVBRFTL_P?Ӊ.Π쿂Bp/w4wp}U=UP'l|ZB5!˦h[OV(7N6V~h. +ng.mOiTmddMɄ Kf;ZD+VEԤ6v0eA1RDEnQžj(ZEUc'CDv'OTІf6t%# yC`ݙP2~6qX1NI\:^x +K2ukdK-{'VnM)*9UM<5H{O2t-U)U{HUʁV] +QKLeLL8@SC!2hW"U + =T'q[ {Hɰ$! taP7*paNl4heD5% +BP8#D7Hjș܈fA@'!g )p]M +&JvVH︛^Ks_L|S3Km rM EC'&J" &*ܭ y]Yz' "aɴX]Kv7DcόQ 2N$$ڧOPxb?=9+8U-׷tZ%"iU<Ƌ"eC6 +#|PJ0a."5a2/MuRpBR"B>VJ1^R.TW0>Z1v.S0)qh&(LybfՑzٵOxJZSD@HDˏP9ij<00ËB`f^/ ?c"HQ2:O0I +w(REyLhm Ų|[0uUU + + ̐XB + pA1LOfZ VWA ̹ߛUTIR fx:>yMK'ga eQE/|L#!o`l%G)Kx{! + +)Fj%~=!yiajجhU#DPֲR"&DYsBD"M#yM| +ܓJ+51%iѷ*8CSs߸d_$b%dF +dR} 1DCЬ>$7JU\_w U G<}"^oUW>4jD8) *|8D(,m#KMc= If)c1.>фCI% =z`ACm`዆jP-5)nBDx}rвvS\GK(khypŁ; 7M +-`.ƃQ=ꗇۙ+ EjhGic Uו]*f")7j4TCr$,leөͳɐ7O0PvF,^CPI1I0 cRx!fHߵ>,st%V\`_D3$@,.<5_T;Dl,>1Q2(za XP!u7l0Ǵ`gǖ[;B-"VTBZ^5ZU{ ijLK{^Ao0JL@SJ K@-|rPgB+K2T{(+&PRD៘*dJ,JRy~ F*{HWbr + ɳh/ab [iu }lݦf6J23c6@A5E\ E"=A6J7zI@bi>7ȌN* ;;9d]D#4(M%hu!Ož$0<8qQ->2l0(8!n*uOIjE}e¡bHW8qH8ਨ*ʘiMZ*ZYx\Bjê@!3m[+b13ޭ OR = 4Lņ 3b>'cx= KTBa3Ab#Iʯ>VXpD4gP#c@mU܁YȌ4␙y(*8V:?8B/҂/׳/ᆡ.(%&WrT,XJYT 䄆ϘAbE`5WBԈ: cXDeF+($YIL `ټ6 +fY{u٠6԰Ar:مV!!Ģ7t!ΦF9>q& ={,TD:Qq%O# wSEhg\YP_}=*>vQ&P.Rx$t@Dz}Wy\|42jlD&MisQ?KQբ)gͦ!UD(/3x$Ѕ2S\f*q8<)D2g?!Z"2٧ʚ4OɅ)\!0SӇx .) RiApaxD"7+mp9H ᨴG&G! H  Edb~6" (e P0|! +1N@ga oÃerӶvm=ebp;w[v3,N>;Aby Rn"=@ k!ڍ*XU4?mG3+ +Ko P޲z躡ͳabWIs8E1[//ydLDNh1[:hj+\*Dz> .6Kp3e]}Ezs,/Wdp`,gΘ\{-}މB+<#"%12>MB\.gSM,"J )׋y t(!OeJ;M6CD+< @M؂ǧOngic_hwh>mN5.춵_]˧:A1/0`Y+bH$MES>o|i5 B8Z[o-(:ūP"YJ2ݫCҝ:cDPrB- ꮵlnns?J1Sj0Qf'/wJ~^&aҪl\a^5o6*qY_X(q0 ".^=Rcυ^R>@OS_~y+eLQ2f_ŤsTs׹#lNs0Ѻ &4+d( ?pI2|3kvUvIQ5hP{HpkP̢ {LعۍjLMIv.d )*ƥ̀9ŧNFR"gj;-[:cFoRaC}Dt 1CrNp} *m$Tv2nq945n쏸IR&D3}b"6ߌoؒ|S -YSxSvZj$`3A?Uݻ!g *`95v`;t3^᫘ T0G>u B.6Ǣ|;?p Ϟo"y zA9S'"dan0@<61@Y9 ѳSk:٥4wŏ4I~u UCOvƭJށκ$X3:XF| mLy"Hhl8T=CNW V ݮnу R>ʀ'C5-W %X +` 3:0S"ArmR}zDpu{vÜ=m:_6D]7#9"c~6f(w$p;h[ ؀ }𣜡5Lf5}BsxUƧO'RwH$$I=Mn/@G.DUlW(ԉMBZf{;y lL{yY2P +^ (B7(%A] >I~EBpt\_SipCN0rzߊ?5 +%#d#GN- GZbp' 0Dh'yRTR>ARg5?. +:e <;iF0zBqP2,QA/\|&#=aE`?lxG*Y'Q4I.j6L!k]5 R5 ԁעiu1BaIs4g[W&;3:yyok.P}Qx@*Df!ŋ,e Y#\JʮlΜp +}iӕ>+\J`M3YcedL2U22 7.`(oq,9v'xzy:楦zЋj؅N|%Dqeyx:$8~+ B7:1l L̉ b57?*6Jcz,3TwAM*dĪ3̡N82D/K5&Akڄܨ7#?B)ЕdEM\_ Bl)A=pӌ"cΑ}Sʃ=+`Qe:2QқJ:K+*q@/nN0>j̬%݃Ǧ>k l'Vi$Ue$2z =O`6y(CZ=B<ԛGF,2wz"*vv'eD9[KsqApe\: :_˼,ŝp"kOx}|[ +oQ-E;ۻVptqqZ͘Z'IA;̆o-kfOC̾sz5ۋu(_d҂u-(Ͳ*/\j)|٭X7B8Qb-mS1 O05ZI2\'gVia "R) +T<ϓI>-)RN +9foLUJsv4i.MϺB vq38ӨMzC;7ReO(lupm5y]jZHyV'?3r%9BK%,Ƚԭ(=j1WH볕T",q PqIi +e魓&a}74_"@,A"]oCԘp" hviWxb8mG[x#9W1^"D;'pFA%8 *yi;Z>V 5Xh$yN2@a9Z֎lpK﹞3#$kI|Q ^Z&A5SHi$9Z,OK[֐6הץI,G7Q_~'!{m.!bt*0-]R]-%u5%5Ҡ㯩EW#UwVU:ŏj}}ߣȬ[0m@IJX;oYH9" )Ԩ*o@LX@T=0t(.Juڒο%=&`軼ZB[+ˈSq| ra!U/Dmby3*Ӌ^mU'vhE\#H r_Y8"UG7qy^x^ q=y3ny uf;Wm#ފm:4DaL\z6<`+ +1FN|C0~V$]' +^wLxD  ؙ#L4 X$"p`<`xY[l> Ɓ +Ao}ʅ`u2<%Óh70\Y򢁠6c=Ӄ֌,-T +۽ 4N :@.k\53 Bi؀#-ɡeq$|:N`FQ}el!zS'y/'Anx:,bZTXgub| +7'nR:^R~VoԌ. .^.Kc/4@4mDrTvg.T+hkxB#6.@(!WG)>Kz|1 Q 8cOXL"9#!UZ7~$ڏWP +UĽOme+x!/z1mQ++L5x1gS25pV\n o~~ +m]$=ďCIvY bOO-|)zb8G(W"k?#*$e~nh7Cng3#g}*I*ݴh_z,#+م9]l6Y (X@J\Im,b5A\ps q^uZ/電Lr+/'<@n#_)7RES wU1sm=X/0ͥ $"M-d>h–TݒԸӜX+oH7YH&g۞>$^b7p}eSC:L^8=I[ 0IG=8bQ˿ +AZ?p5wlz!_jE' Z]<=}tE;r#UFie`Zޠ [ڑly3s3@le=*[:x}P% AdV ؗ@#^EXpr#u3z5Q#rl>#-011{`$zv=]EҠ!rl+ z/+׆y +3z`XRp qY>qRhTJJ&Ba+91mW rw <7WfhHVS"T{UJ>$whBwZ J旋gES.OOҬ"i;7 DZbHŶƐ%tEFFMiUP?h&솯.xMs\<'WZ0u:g_9\ [;&-*ԙMF`AEj!=H;D'wD=7'b.|o0!:`SIY/"SMlkc/4FrcAbխ:=^Jt|?-m0iH[pӂ/Fq^& v7%'͊tzN}:xUGf$Y-UfILVHAQlT2SQ"C5qTi֋MY_ BʲݕQ+JqcU7&r_ӉMY#5=kRF]7vC[]*,HaxB<ҍYT8,/n'r,Z-18C_EM@i$b$1f{_PA8&$| +baYc^G. L}Ư0в'j 'kAiaYD czгV¾mKwt5\>J]4Mǻ01;pX&qSalYJ}c@4>"A6)oK ; +pȇ5+cH E^;]ӒW7,7&>uiÓRx}4w&~%c!83ys=ɴQ Q k-I_-1͠0t#{1I*Ի)2F`v '619"h[PV~Jv,Y0D,{졖pb$_uWCPFA[hhRWؔ><T>jQؒ4RUt!Nংz"X[-8,#h_TQqŘ!Ɏ$v.!0H E;ҠpdvDG鿬Zxdi{{IWV):6 AVB4?/s?Wv UESVPtIa &,T7E@@+̓#R j%9y + kơHL ?~f|IHD 4 < ހ5jdTqq&l;1mB9 4gm_3>j_\I:>lԁWE*#EQ:qLyTN>7ٿ[ib xc(ڲa!W<+A ^jex: ZPvK =E0@d8`-=S$Sd8\Yź*KïzA=C(.aP4k`e3E Eli{"FG?J(ki=X^#>jirlPHTi=~ 6mpkpv?1?wXngսC4̂0Ign=c: ?3FѓT4]f[M>?!5T!`ƆDg  $ޱD[F M8%T^z %x2~b3KBr}_h4e`WKQPSlϡ3I;Dgv +A@c.ְ`cAf ^>ca<r/&a%\@K"}1* ZdiܐmR7\؀sU9h?>tpy-h?]8\)%-kG%'ֶ86SKo#-*[x޲[cvDתY*zޤZsT*lR#,r9;I EJ5w"vmɇI%E[Ɉ"9g8$A~jI"Hkb!R6` +!Sl>F=#tXL8ؾr82(]`lEtM`h, ZSxJWz褵I>w"0C5ѽCŝ*;!A*^̻75%`~uWG(gj3_n98ye!XYs}%#N!Oe$LxO?\`,~\  1([#0@>{!,sa +m+0ՀQ$]PXZmCmÀ .ڂW/LOBz\oUX?&%r)y͕2A]]udצ&ղ<"-$Z!syDM+@]*=îKet|`e b:l[=VAi ڹz jY,܄놷9`Cߪ4:W7eoࡳ1B:u"YB|=r#ZY]4H- %v3j!qyª{X^zOJ'3$,%M%+:I8xO#[.\y +[8qhS +FJ:6.`لv{2piL)E܇GƖ9K\NwP E֚G{<٢wC|\UGf~h92_;4j%{YndR:07$jD)8Y{L(o/a.b=RP_֙jedUdQX膆rY>UQ鹒 `bj1YUU +"#IsǀnXϔ'nv }2W}TʽRg|So6̜ð '{bM\aG=NV'Eݲ¹bpSӐ <^^Y{|?_9@>ЦJH7Ml h,& L@B:lUc !965[QqQ[I2Q 2p8nW? Q5or] /TT^{lu$7}wCPU({bCr"87pf\r[pJr;A@2%׫?DkfzsF2φ`L +3fR$7iCHF Vhwj88'X=QA9I]RCRpqR%)oY S/o,;5rbٮ8)+_m'Q(ӽZU?ݨ# 5N-V];޽,,VSq2tqz2KPw '3snj COY6L u +[@uȅv ұ-<2_m"KCTQ>ʉi&OU!#Vd2p$ `\W]i!%:YrcY$Sk`c%^͝K<]vx"8 $KP/9,C5.sQ4 rg5-V74{]Y P5w2nZJ] Aus$ɇ[\OY{čGq,Ͼ){|pc~ެ 1wY̍.-C_GHC|olp&%cj_q (?@f!? SrDMDj;rAٺ$͞Q?Hw-Mؾۑ~Xċs#(XM@) X"TX(oCyKy\ntOabr^?gҹ +RE +;\gsN:a cKzV9VQ +[Yi%Gy#RX/pT3ce*U{J26z)xWEZ33ϧi?tILKP;0NM̼-!=rA帆3GyLhE7T mz.!?gWx#plO񂈇ٰ}& {m18 k<89/#D*]ì~ |ȐuֆoUK^._9KTk1Nź1cb"P[x!#QC?7sx90][V,Yn`{H4,`=ᦩP> PCbݽ!՟f\u?؆k Np0*P1AAn+-Z5兗(rUrDª,O\wCCcAkyۊ <]2 Ox@Mf A& , ,c8Uuo䖸G:cE(\Ցe!b;ߐDFGZg)~9J6ڡ`U/pD?s#Ů/j-4"y4ϡ0"IE< ]G@@,|<њI-;r~ =h=8q0,\w9W-'؄4*aY^Ph챴 f7 |$|K`8y#nL"d e=aפw P}131v~6)@,qbglQ vg TEV^fkSo#5is$N{36aX=I&׸_0D)4RLɨlU#={ +YC }KD!T_͊7}w;GYBr]y} ,>id)Vfn+871o +7cX͐ʬ'UP9A`9fTpv^Ssz|ݤu}P28[Y7b=⑒W>h*qaNo('aqo2 ChYÆ J I~z<^y5h'纕!Btz!2{(7XcIDuggCl`H4'R-MBژm]VQXi"瘒iy$7P?D'4Dk P.CCj!tBP85tuYGF|0Hu=s<>p=ƊU@iI(tфj Zo-sjn3K&xhd|rL[:'Er׌nD6jb$ 8s, }sٗDBFļ!>dN5Zn[͜ {9nmJ&F&%Yq)o78o I槹Ynj(ܐX!*[y"6)mIԱD//"8["v EoX>N;?޼Ժ2@%11:\' 84^ڲnu^@kL PPH " a<+C/17sÚ`TF([H#PcXQo7_EHNY /Swl mhT hiW= A&=LUQށC\:iLY4cMd"ۑq:rtB>o@ +2AxI +RӔ2*ST۳ܴeY42' 3G FpѷlM/8oVRiH(' ͡ѝ2߲,3e|(jr(W%HB&"SlSC7l ?D*&]S:N.M =g/İng<0zrp]H/qXׂwoP]VMZfbj8L!MK,BX;63#T*o? ~u(J' $S,'uB_gl'Ey_IN'WWۺL[Ud -(ZY6iCFe/˶ʞӫ$j Gv.%h78?HY"~7Y/_A@3D'!M[-4fY@BcWU _:q' G_ߌQYZT՘6Kk<\R1lclLWj(rx}JJO]pLTh~nщ7#1 2t0NZ>+S"c;e,_<2AnGz+ṡ N)4Zi㬛ü1t!N>ˣ#H'Y$Sd=,\@GWEI>xBffT$zܯo6cGQ6g,ŽLN~]z$-%p/cX,DmʅEs +y^I˞Et+" +JEHd:rhb|`vDCѤPֆNf%;Sbj_< 0*$>yk +JT\7Mbri6">ۼ` \`"nC:cz841H(tdjx*G<ϖ=&&Nl,*=R[=]8EBz& +Dl:?uTtwx]B'|hT[)gߘ˓KĴY[_CD8<8]1-{ :Lꎪ gs3k!{[*I["b7BB:v.CX6L}jZcHcMtNc"P~i'=5MZPk&ha0g|B>|UlB"ˊJ#Mv{!@I3tٺvbZ m@8FȪlweSȸl3EAGyo.-4XgoR"v[q$&+<;WᒘT+Q 1V :7,~WaC}jfC/0H_vɞv/#㟨+}U(W[)(s\"L*ieRdLߵWI:s\V>%`s`IGH{qN9't-y}cer'Z6MpuRyi銜$:}|ld107既~kSB{+P N;-̂RB qVk+ W~݄X7<uh?LH޲:őŒ㝨 $"x,V"WFhHZ/&h1z&V. +t#F "V\3f=~2r5N@6]M9^,jGhܕ $Qڣ|w.A^725:WEl,k0STF9yE '>mRviV,LSvY$7*{;-BDŘQu_T9oĸ^&qj fXge  yYyc8q`TJU aX;/c*ΗW֒'G*kGgx0jRA]BM6:1A\tJ +YPUTĮqmk,MAp#D@]J˒ؚZ +&} ndB[PfK~c..d[550o %\% +~iۘ^GE^D?ȥ\uK6Z%-#;99Ĺ⃘{ZF +8OKKnBɳgKhdUCDr&V +ֶ"AJҢ1Mr$Eaa`k($`%;$ +m[<VdIX$%U$в ۟CTh3 iĪPF|;bꋣ<>xpEq@Y=5eMv+(%3hy<3_xS>tLt o=xCa[]:$F9eC+ .1k˚z|g9E$3_[n7'm ~+\X6 X54X_` OaHXG![{Tԝ˝!0;UYǥ$H}U/M06\Ձi=-VjϏ>f+{X= 9#pT[ Bl}i<9"Qy@Y5}W|m 0HO}i=c؛FȄS!hQ]TGzx\wm 4w B& +!.<>)7ԮXBofk o4\-i )ɳ;@Th{"O"0s_'vc/k!tK,Q*EO0ڗҋ.bWf0qMGi]or7 [d{xŠ!&0d,Jv3VሲC-Ľ +Y"J᰿*q/}= Θcĕ\?Ir7D~ 'Ƃwh۞F 7;߼3O#c4Hb8MկTeޜhXbAħM lhI~Ɏ-+7wVKʿ0U.tUU1R;渓MU5@('{ >Y%JУa d*Xy"jXhÀuS!Etd+d } T`ЋzHK' 2)vsZH"ꐩhOILYޫC +r9ƍ8Rvf:[!mg)@!*` +JAjZ 6U=ॷœÎCyjJw/g|˂0Fd jezs ApCt/7I$|pp|Sۙ$_|PMGq!N$Ecq/H_}PX:3,_Y,\~V\ +n$[QN(g!K9Q,L>la-'6'O;̺ǹF7IccbHoGb1)Ex=ㅘcfT_j ;͏oЅMZdgwo+fu ?>שM!Ulxf. +N!k /ٹ'^'L ac&rjSLdk_C IuK55[#Gb9Z@btaf+> "LK_G#PZnqE,Pg7؉.vE(a*Կ_K_tB.:'4ؤT}5]I`T/YB6>ZѰ¦nd`a^*rk"k5wz P2K NA1ؤDVS{ DjĄ)<>Kd:ŕd!b>Jǎyo6@~Kt;?%~U4"K9 R Omx'굥B8ׁ1>*1&ҳ@ `omA5W\M"(e$o&i_m}du=W MUe+3gPX2N`v,x5:.=밈j#0ioXHMQ Ԇ] ᳎;]>Lm$Yg;)Ev82 _!WTT&}%̶&rn7BCI$B+K(Cx*[Q}J7)(R x \Bٵt @y fͬÛ.Hz$a!>Jע 'p ԇ+⏅Ю[YmI HAji&|ҭ%j: fHޭf>(.8lLvW +Xy1K%{bY`kYSNHT:ŵ'=3Ye+wQ1ow8R0LBi# %ۺ wH04%Ite%~;SRm ix0= RU) kgV>fb o~>ɪ؉ Bx5q"ظyo^M.H׺^6M^KGX.ߢ$Z1Ă@LuV:āxEcyXmy`D DhF"VsWoH@)L7 )Bэ$9)0Ә66AԤ@PQ$|?MW]RsgJx+sN坑<QFLΑ[7+/ÍGxtYW]Q KLuH ""d.- +p[ ߚtcܪ{tŔv[s ή\౜ƫ?ٝy"l,K#n!վb |(,(ǏC$^%_`qlJ_;ؒ'9l 3U$f}A DG/30fWa@1D*J`u*vq bi٠Y +ִ,`&ÝbQ op<'F&W` 9U ؝QzpPEXk(a#KHUl2$(n&Nb腵,y! N⽐(=D̈kcq;Ѧ=$r v)A3`KnY CO5'j!LJh.id]p3*9.Ody. IrQܱ jcd` gtdHғ?f+y2gХi2u TW$E&mi'+7&Ud&b? BHg3(sT.Al4-*c(Lm_ +>Tuvҟ_D  +\k‘ Yˠ$"ӁXuSIǟi9VAgF.md[Pvv sPY619[M3ڮR4*c 5,:]oz29bnnw'H}!OAG.Kʸ p됬6aVP_!<;Ȃ,ޗLoyd̯TMgCfj@@s*3-vO7TSw mh9i=e? e f:KzSֱ̨> B\}4]`w d +gۏf2X+SKm XQ)1*R~f]9Y&1 +څ(sxrQ\IeyÄaJ2̓,게YX:IH(3 v; GdI52Z=ͺ5L 1y+~FGFGW12gJ%vϕ2!TӮs$&? ؈Ԗ2KGkb W+h3c5Khw/%` +DQK"b:{~q܆=?210wF=5Ơd#u 2=#!`?be>s/ +M 3DA w}N]׮>iDg΃kZaMvO5}&з L[Rj#wpBRY4 BGQ1w qcn%9MJ5~RNNQ½en_ +&{ŗEbH,[FuL#;6HX.PAָhͼFĖEUǢk1gW# "ܶ){,:V4My\P6"ʹ c,<'@)+])60i4r(GqR&M+P +³˻ZmG?KݞpKuNBCť]p9h%Sb5Pg${5NܘEW{ 3!Ȳ(%`E]Q+R{K30Yh+JDF~#E,ߙԓ{HTSy&- +; Cr# W&7:pHI&VB$qLQD>ۈ}r8 Ns: l`yaҲƒx[_ɕDnu,*lHD!q}Pb5; `.`H7HRӲA p򉐅=_] ^qYçg &# ͛L׶Yt@DOfX:\c +買7Fύn%[Fі1f"੸ہBAMes9gPU-">XR~KOnD\>VנZzK;C h-W G6 'be5̥)#Ô$#r޹$QEas] 7NJ& +^!q xFV́>ydb=̻PBpXM"~4B.YTd|M/k`D&1/Ym>'4vha>*1pWߌGAzÃ?FP;uz^=)'Mo/mj!]Egb=Gar>XJ=}!rbIjS% +jT]9X׵O1 $X tpt_NoA2I %0GįA݀0$L~ӛ!'}u DPCio~m @Hַ˰Mz +=JȑoU2?K)W8i A-U{Zҧ/{L;*r>1Ue@S_#ڊ0 !weScs|-Nd~[=Ma5GUNX%/(ҹ^, +=א:[Ք?Јh&b}شBr + Ffcxk&k9egH;*mk!e`-|4C!1W\VmEIKN~5ѠO?EStcpUN 1 gbHC>{1G~ ڤxy?VЏ&o; Mé>!sSKrS/*I@ Ӷj߮vwqityF7' no޸ y2VN +h OrE6fO $|B21<!}"F"1g^]R(|d$% VnŌn ?IwPT1+zKOT0L!s|v](& +}ڀQHXrpa f5 0r,_fw:dU)3CGcc8K*g+s j5(B ^g#ڽ$kr B hKC3G`̑mJIu全 `ֺ__y{z#GPڧSpňԲE0Bp9[HhǕ2%LY,v JXr ff>Ogq +h4NAНr1"z(?>IuKF&wqB ( &84~ '˟YH1``R5 7Ɩ+:"$J,=(qu3U~<u#|nWoIb\@3ih@rEОfa8=Ej0s)ug,D&D$'3`-D<)y\B':'Έ@׀=<)BpPr Z$%̥$'!pr#ֆqW42JqPzep ?,誑WɯEŝ"mm(G8qoCTj(@]ŵH +Q wنe.Ux2g %&!FVkO'F|z|^=/3T2ΈZm}Ֆ meK?ڠn{QTo#f]c Iz?4T8Àmҷ n-!5є1h`e *ΏG(kDQש}Et eM'33a5)|٧션s0`b`l Qo()}14Lv,ܫ6aHG̒>/U6 tm(7Jfu%Љ|YAqʂk_ґf'Cί>RxW2NU:E|=_zaEaJºȗ? +}!%R3Hۄ\2/\1L,54r (0C\-ހP?[ |@q#·ӓGcb %OZe9:u(BKqR;:>!ZG/a#|xkMo4_v&8K2jKev~D5 {`%ԍ Kk!K,Ne-'Sụ@DEȫNjBM- n|]̰\n /M*i"Naf!(kq/¸]jȘ le3ܢjt16W'FCw1xiU +y!_^t3lX8̽^/*N [&Ii'FVg9yr `>B0`϶mYFQZ7ݸI7Eɘ^ jZw'u(_@4sZSM +.kv,X|#> -\6YPZLnFA A9סk9RPE\*6TM)]O*7mJ/PぷQMÔg'F\ASU?do(Dt|U# -T4k C)[Jb'{Bn)AB,mHIChE3 4P2VcK#jc(2q:(%`FMmr}̧rDNcvY;ۨ4@粚tpܥDeb6J&[`>Y8u +PPǜ{wns䇔aI~#"&( +BGs/dgwE-)܏K־B\!sS7[B-OГ 10ASlL1aM/µKcPͱOʖD Zd]܁7z+Q1!b?_dC#1LxNz_to:'jJ)[W6z3g1H#4D93NC6ezϕf0l+o|vV?^Aإ hJEOtD,ǀ}@O}O7c_ Rc -bCi~ع6'ץnQ})</N3gD qU -(U,]3B90AěAN8N4ա\=~Ё98A`$|n!sϩ82=.#{ҞU@%nW\IRN |LvT*cNj޵HEX==YBnWrFZ Pl^TY5]7TxȎ[+ ˋcM/# sM[ W E 417/b,SpG¿b{WS27hmik|7)Up ت l҂w4F[ +Hp;f|,XUs*I(LD!iNe*.5- Ca,_>p)f~솕GDq>-d+)"!zbʹÒƴDà~ b;εQ RM\+Ԟ8j ʶU2@_ 6K +T|b! + t蜎m]~EA?g @Af2YxIZ()u#KYBErLDzbv1& wLBۗR|>#hF".C՝Ȯa{\ VICb_Ѐ V=e]R䍸Mvwa_3=Z!|T +S$ei5x i!M'w_rNlo$yn ]*Y4h {ԔiEv }"4('\}8a}xc9T5+$7ۮGBku7,^N)qZ TP|B!,[σka_TPkp=KwшKdiTNlmHL2P/wboG>1{#(~xn)$`ovl//8H'ք ffry$%΃+{Wq?"ύM3 za ǖdN%JkJ`zzfCghg.6nǗj} '~,v +Y[<7/ +a->pQ|kP'^w6?-6l9.|eBѻI"^MPf"j$E*0/V򺧪xV6(|^~|z|% g <ʟt3v*kDO:+͞j$h17̉Yǝ8"t5㢘?{tW{ЩM!)ڋ|S >琧^;69LFGDŻY4387ns_Z_ɠm%C$^.ѽq4=b@ϐ/hl6fc{|llȡB~phɅc +?kka9fk8SMO>5!sW HO>ؿT o^#fr91(E%Tn.V +8ah?~տxVDг"PJ26h6 S4xHBxKS@X򍿡M% +\e+/ަBKBlcE~l_tsÕ&W$'" +s`ƕ K.5`G2wC%.K6[GR>f!]T9{B#% &c??HHeH dZQВEh"]uI @L 0yxfbqF/$4'5StJZԑk7uMYtZ\7澱6\H3ʕxtM1!tdGT~e4-׿p\s\Nww,ϖpjBi_ [ Ǎk/Lە4eOf(AMg }1j%/Mr7byDnb1|-"W\ .HȄ{ڃ:lj'/RJpy0B=4hyiHIAs+k4 +{+d-Pvlj 6]m ۋB#}e-w CajaYޟs$ͨOJw(#/bYlZi{ +^6  K"c<2^ }y %}g1%ָM촴UO1 Ned:lРɍD R^ +XS^P6;"wϝ?DI׺YԪLl@и}X܁h(}3r>/bm۪8sJcn'k@uSrAf%7BP)ꭝ.,(⥮ZꀈRa&^ +TPՐ-^sM˹Vw>%Gj&>3czJ*ŞHA\iy65^Ɉ2KCPyGoao`PuMf$18,U?o$;>Ȕ1&2ڼ~Ug7M(*LE'Vd>W+Z8Jbye~ZJ}=XHj(@e_GtFY.Pq_q*c !q +SzT.<\q욧&wW.ǥXm7@OӔ\%aiśN}Ηe'~{m^⟉ *;z쿠0} CfC zño ߢ/y6Uh7o+vg+ Y껲_&Նd Di3˨V*YIcҽRr_TYP}wE݇IK`L机Ǎ

Qfj0k2*wmkΐ[olI~$}*H2"%Pˇ*) m* +GB; ZnKoa!(O/v[C(ɥ; uuj zgK'^)# 5vS)X8hGLɫLm*?Yҍ\<`=˨w믖ۄ"cLlPXTc)V +1,pja^ $T/7fC~LP(iI5O0r޶`!kpU(&}]Oh'bG[t|moY9:[dh!hd[*L-x@ EI>XOpkUz ״{ 0hJC|A8<2ZdRbi9#zB "&QL^ zn@ٹUÀ턞&U|PUTr;RחAUcŸ+N^۫^PȚw +hN> ?\Ġ/T"+o {gw&ݫ(9\uhYC=kO&/3p/-³!XD! ~Nawc9)k#3?SɈO5e 4(]@yT)57  *"gifo*n z~S:|/x{ucm`R>+UF~lU1uo +X@tf~Y9e&#ϲ^mIR4 ANH񷐈%*cعhZ9&+"qwf?AM,nw +3p@Ty 9J㗧Qy-#N9*eF.!@ Yc)uwlSךDni*4[jRH-RSYe_Ns~G7ݲ8# Ԕ<~6%1sra4J|UK/`}ak\`u` ².sjUNGr=5~={DW{i G{z#R<'E"L$.^ASOXdG r3G5qMB"t)'VB!ޒ6 U r + +yX1Ldq[0]1Nx%ZX4C#5"kP< 8U*Ijme֙E߀H%d#r@fC 7IRF_jÆb1&I*1uGN@(в3=-ب6gTg"#&eY lvxYQzk* _$1@13*ϠEF<0Cr{0L$(W?-KDŵ3^#:tJ=Iuc64"1&0P ڭW=R]bTbHi?Hi% +I4c(8>u9 +:9p78sv9G}^U}3^18{W8!YؼN/ +$چB B:eUE;ݏ[[j=X obq#zA>!Aݹ& \t F/J!KUfU:t,JNNE|uXY;};p@S+cbBMCbU:lE[#b)#2V '<Mta_ q7!"硑u}NQ +Kי.uެ]3,ԇnh+U۟\Y#a,`e`w`}`j6چFF`aBz;'S^V$Y;eX_э;Ș(K֐64N3dR͏9Wk-1@W9¾ud#ey62*r.ήAa|eۍңeoh#t󔞥m3kXAbDv# ߩ$8p͘v83 u]l||3AS 𪀖EAeؤ>ךKB=T /7h8ȝ=Da7#t%RW-QJ*QN`au +O 2+f~qh_F{I;E(]__ ڼ-~ی4ˈLdjQ: rj X_{Oj?>Č+Aͩ[$j +^x r~8Xu;)E!{0O?CS^ k%G]9>wRzZ^["9'ͷUl]BSM56řgf.n=.Tw^ԈI `!kϔء;Os,D;3*G @18B`.OMu;+| x?-7Jn?I`W+o:sJ߁oٝ/8 5MI*|3OP6K_P,At4ist"!RVûxK)ȜUň'աaӰnv mXSOxocx@ Vnwxp; ^o-Q#{Yw`q8Q%oC +0*\BCu]^!b$j<[SINgX0+-ʋMcJ +$RPd. ./,N邩nEZZ\u3e~<ċ[CJI`SxXDt +u8 4B|F1,Kɰ(-)f +A"3+&DP Jj+Q!1wbwqS)F㹼1Ez4H];#[dːTK^uz%-hFᰗw;`.SwmS؅K*RgPXh%%/N1` T E|V#[R%CW(jaQ411O B!- )7,a8PqFMJT4rap(%*W+8bSbć?ͪ%)w2SqP"8D)&U!F40F$p{P-BuTc[ + qDȲ}#y↩ה¸衐eo^WQ" +OPgz=wU8ѕ*6~sq}?g=6vırme\'Ӛ{\L ~̻3l0-R&eP GH^W i%c+\#3@;bOXEo*0NK3% +q-'#YREc%,Xf넒؄7Hczӂ|*Zc?B&:1z?FTQx>i62ANHyq:\huj+IA BD}٘$c!%ybC4V#DT+ PJU_,"iQ'R"1}SCHh1>nȋ34%W>D"#&Jaץ5 j^"rb )yiNF@yB)8!ܨZ0:O|ػW~YDD bP|vҙuc'<ϳMW0 A5%$b(1@7r GFr~fǸurdL"ӎZiw(!PD}ljUQ]JV ƝRofKj7݉gxTn|'TؿD3/OK)Yʘ0tDh[XxU+)S]&Ww< b ̈́gҢd0JII1β!$#t.e9(el(Ɠ/OP +"@[ld0cL![*woNẻ($JO 0UC6(%-te i% Z`FbȖIjNJR B,OY@ L'ЬD\8Ϳ3GH Z!as3a%jY\OI[s &v@x4`6L 74 +$p4!j.PL-Z򌄘N%Q8G5@0( +~bEQT"LQ%@d +'K1\Gz| ͂$̏YF2Q% ;"jFb'D +~Q3EhV3Z*~_a^Î^]tC'ְ,i1T0לMVMP=)+0ULL +/.Rp+@2` "!R:d_D@Q_T0 vnEX`KX>A aM7'.INM)lPaB\HSSNwZ_#SqTf EҦ$‰nCf^GwgB;D90ԊhxH":g= c#.AԖSKP^.RD&j}~qyp.Bx-pMH* +:CI#ayLDx5xcDfs/ĒkuM/LqßbsؽS21U IdCboEx"81ED#3B +3&>(&FG&Z9] C3J/R )OL%AB3TS )@p_t1w7_>Z%0c4 m/E' S|>E3,6|uB#ᖪo( + +O{7ePEi圍 OV B_ OZWrWGRH*da4ր>bB)vb5c +5_L:0X-jt6!`&/W&D D<c( +qU1ӆhjb.g]|aVy4T@L3!Yp/U XP|Z3żPOgD˔BC"Ŧ `m hوq\)iD3qM^0f:*^Hb"x@|pHh+Uߕ';@ ~(GqC&aAPOg3ZB^I*u|BEFUZ0@X+rQ%T4M%Z'")bj҇Ẇ( ';L⪈Т ++HIT?U"ޟba'njXS7XXNI %xW&Z Z+Կzs^;EYNC>#F%G+JC124jivu0:jGF3CTœb@jL@1⡊b0{9 Y:V"$Xl^;GM'-(+VhL`fE1jc^lP6PdQ,䑅V`<1ť~w!;p*JFKj$J+ 31 +d,V '^n2aQR]wE}!>R+vsI`b0xZR?OSY1) }}yP"V!.˲XO~VHS#Uaj#+2M1] \#jޒ@%RS :K6kZYO8&wUp5@ɐC+Q4r@s*nltS4!bȈA_m&`U0 8· .` ^hcIg,m'BV*P!TTKx:*ɸ ȬN3 }Sc |%2z=ЬvT%Ѫ"TūtsZMcQ9¨܇U ,NtpS~*O6 e35s~?qTNTC"sɩ(ؓ;@vvԥ`NHC2A## Atv$r}W3;D-.$$9|%Ʉo a +AcU6e iEE !F$]-֔s5\}n^i<`,-}Ahӽ=:͐)WD)6XxF4WM-SGG'&e +6HH^ "b9^ پ:QƆCK,MnR\EgX9*c)2REB*D"cy}bb jp! +"tB*+1" f7Njig.\D &4a6Hxɭvއ R >Rѵ'JBhaHQ];JF?D%ScGp F1JTS^؅HV3(jp#!``!/Ym z'Zo% Qb ^ƂBCV~&N-V_*Z! 1QC1b\ȉT 6a!А  eP ULiw;q3qDS=A4ǖWHIxc +HHA94(LXOk<zL QscJVab ;TƣTdfb)<ȓ0p@(4sB*$.@ +- +]0Ij4Dpɶ0[Ȥp 1`G8CJ!$Q`rH +`0g'~aub*gI0TX+C$ܿN9*N*.`g.gpFÐ~5 e&3@ \S";!NH5M j bqx"]z= T3K]TKdQI2?tz0w-A.CT̉4͋=Lp Eʆ(+S$a +h1ٟ[[bYѾ`jxkh5%B=Y"nPD X`=2d-'YwSr!b6ADɲP%QWC:NpBk$TrZ0^(#08bEZaQ1쉾rj*H]WV& p 1ِb7$1G, *hkn4!C#'ɳ8%UƳ+|I(h0kA1'olg#iB# +To5B񘹜~=+l8ۜj3RKcݮG/@x7IySYL+L@`70|ȏ%Hb(F)F iv +̼8RqjFI Ō9хd胧g]0y+GDa?!عt "f4u85lYր,IjtY˲Q#+ۋo5+4MvG^CmY85WA6;iP`Q&C"A2 6뺽2buPO^~C:'iGs*c@Oϩ;nw6<E+?V9ݷN㫴7b I 7(f^ٸ$Ee6Lٸ |DA'VO~5"O"q*ԯS8QGAĝEŕ#ḍdtIfEqWb=:Kjoi^mmP8t(W+򛲵x2^+Bp{t:t%[9ұT@qG:rEMSby/JhBfv:qL~]/j8"SytS6ød +Iݝc5Ȳ]f@Q_0,IǰEG&o @fH3#oYl<8 &p8V{ꥒOlpځZu0͜]3s83jf t_yhXC!d?GY${PxpѿK x#&&WQG_W? +\KqYiX%8*4w:A#&o@ß z5uYPG]gݚ9/uK'E&f2nINΰz3E+|a=?EѬ{>=-qhE?S,jU 9+1;kQI}QȈoґqsTŖsJ9] XFʌ V-bu)YFq͸!qpoe E,㛋PS 9cՌуS&F6}) +fw?ʥZ#iugc4SӔ``xZc?6:ӧȴ7Bw(XQ"bp`ډg3>shZvƦ?m&]U`L Qyܦr=6ʥRYD9$l$luƊQ=,v:NbDmChp>?rkv>b c 󁈀\ӣGc/yԢ}ѿlS73CƽDm5LG"ObC6ؖȞ2B~q%G8E(սvT64u;*@WE)/vݟQE:N4`rXQ=JSspq\jZo;dƯMe~lT:/' `o +;6U +%{'&hJI 4vgNQ9R$(f餁1.T(/բG<s^-,uA8Ύ^qyxE?b+ס <{~wjQ|W #:--;+k[2R9ي;$]|)3񄠾cAb*h[75H&ݛsb.@ U"@PG  Dz%BIE|zBB߿d^ׯ%;lm+]~| +ockm5=/m;ӹeaQ?oDB4B |6mUnuqBrT +3傚Eh`oeU}n/LX=o9y!W8\e6H*r~sPKS lc(i;;.V!^\vTZؙ֗069Z1E2Tbq֘5ﱈ?9yd F,#P)J Ŵ=z}v>rK˨v*9J!Gc(LQ1zzKU6 +G'yE6Hks +Xxnud>S T7nc%JdmgPH^Z]Cɑđ ԰ݩ %q;J2fmEb3EtDQG)Cs?vTKSŁ){R +/!nyLjS-J:M!n?B~^J>Q !bt_Ijipd?s8V=R1`UV[BV;pE\9xE!%C"ŻA'FUi^C9:u{WbX%4Z1$+gZ(ִR[=,z[O5e.C9AVQF6u{(U%^ ^-xOk}K6S +`DER؝\cPҐs&z6Zzç(HSZ LxWoRx<1j4IǤ4<=g +hR-t58wf?w5;0bg6wPC`B=iYCu X,`N,HbǙ#= Gf2^[L5·}o=aR&49ї{l‹($ 0A&:5eF%WMQR;Je\+{xH:zȰsvT3kTXvC kAI*_贐Ue^*oW8)+aeɆM7(C +mH8/d7*2dcv0ײgI[by?QĐ6Wݰ~{RG`2 ~D=˒qPokǾ + rei8pl`qMX=j XobށJ?{J}o0!6*rЀy)BKS4$>{N"؅,Y@}]ޭlXz)dUBE.ߏ;wR=UED~"{ǍE)e3V^>MPfAכ󎑧ċvMDaHz2-Mp"ʰ%(A)d0sKص HGq+TB/KrxՓͽt=GI <~JwDvG`QHԊeAy?b6FkL6RC 7 t%<8a0/\sRh:T&❘TOj*\&_Lx0%WsJ& +Ųc\ڎ Z䱕WvIbBIG]A ~fΚlAQ$q-osKu·1:ܤi; nQĄR:lQPT{(wmyƤRLwz]Oª# 1 cKş37(53#pY/9Q@Bp5Yʥy}sǕw4ՌEG.NBdj&V |H4rttC.|+6FW;Š4{V8?u32\1a?DP~ ӊWvT!Hn}DvvSɭF>Kq<}E&`1vA'"8ÐO0QD2+퀂>stream +O.)V. n~"NrMi|mI{ + +CCҧԳRJ[#et޷F2h;#)]gF7ӝÒfFb*C8ꚴV8++'iRtU%@tlB)u4',Rr,i؍3V"\gx|G23D֟ȘgHd_aP= y O\1(>]gbt$DQ7ОH¶}_7پxk:@y70Pp:ϾG[b2L-(97۱ϧ/zm2[P9m sFyK5o.Z_}v% n $_DCjn2! NɎә+Cpӓqn/*e/#B9 d"RDŨih W#Rb3̰u~K;le##^1H <\^9FF+?uCl}~`U:X2",jq0-`@Bj֔71mjG˅,f˹VfR!hF2D{V~[=@W|!HƁ' +7`~ cc͓c~ScFDg^,!`*7zgqG8Bvt.aK-^sfĽ1[gibGX,9pK)D%Xg@*ջp*{(L5H!|ߒu!jJdCܩ2`W$;-lLs (wʋMmR łR!qt4D!+!M?xA&!O"vk*4]Ť!pZӬ+W wjrEr?xӮ nleq M,Fh:GƢ1d{Ol/50Հ&2-~"@D0HIDxjSk+(A<)RV-Խ>>&4Xܭ#a0xmg! Rٸ(h6:oYz1c 9lV^ yi]3óKhc,ꈭzD]bFcxe$nG_łiKKڏR1ă_ +|8, 0KiSٷ|O#1M4T19IddjLM2Æm>ΘuPn)*ަ;"w"עO]Nu8cBװ`kwWlk;NrGiՒieTMtN8!(mQ)&/oT +.Y iIK^> VaZ,YT֠"_B<=äU=RϺ\vD~&SP;ɚҵ혼"(6b-I@xvP #jʬ35Yjz 1㢇F´=xXk Կ#),][jiO]),1kۼa,]zte{! keG"T3\E$gO)WHU*@Ӫ"<Y|Olh5jٵw"L`u5Ǵ؟yN!bdU-jr*kz;>'.0n-? FEd*'0$%ޞsBcob yM")E5?trܛJ<1#WnF#U"n8&J']GSLtr@+Qn38])Mtf}4@`=w7oV=:]H4 -+47:-+CACXe&eJ`j3Y^J +U)bw1I/#~i/Eig,m.)H6 +P'8Ԡ|^V>y0b4LeQO?ךN-tc]9FQhfq +=x(sڷY*y H& E5M;lO[QLgn=\Lˋ;$T)5[j1"+x݊D!Vժ_Nd;=/*s:O*e׻3%TM˻/iniK,D>+O,n{yK`y٤;^_:R2j>XZ"NjfXfվ:#`~Bf)=x~]")580aŶJ'?KlGŽTΨI VrTHRuA* +9֕|E4r}o6O94j(DҊ vEo]H~ ÞO1:~=sBTӳ7P>. Hx2e2;hNXʗHRˌ.8ѷvfc8kQ^ƽQl7gԟ^r+K96"ZY/ap+zϳe r*_GoRvЅJeߣ19@KGS4u2YN8- ΂J"oo|t|PA5 1dHC?>VR@$> +kvl?*C9A󣘑]Gs3 P0#iNKV-`rH ]ښլM8} Q -ҏpdxW0x.bNEMS&$p [yNZql 52FxfJtR[7ܯXoL/rè9!HwgimNQUP; :=AŽE*%&Mf `H]f{ ȇ$| ȝb_f]0oԈ=΃ez{m/q(m淵fc'Ղy(Pn`br]m/'̚壠-mgDn)x\Ru!F𷊮 9COI-K+9Gy҆BG )$9F\r,JK V('FR:|lsO["$&BHkH~i\mڃ#Ũ/\uepQAytd{8gzlw&Ģ +XHMa!Ո +43iJ=m,-MןDI^>nr]]|pЂI_ 'dX + {Z& p&b~bOE"9\Si΄w8Op}ELZ!Fd M}/i^,&G{؈4*Ya +%w*|T%u:SL)RKknpZއ2)THլ^Lkj(㚨CԔV]U+1;)4pnb;cG{Y %\trV ]Ar\t.b>7i0• 1YB LFyS+ܝF=6;9U]=+viFQPUzh;Irj/lp$xzM22]f:*Y1ij*F JQ(9f(Gj>w v/Ԕ 0Yi&ʮm-.4cg$tB'  $G0|N#a(8tN$jSvYKDvHNp*dPO M9:gMG䐦fALO\` yR*շFg E-md_B1U[GcETP,mGP uIYK9 ==N Xa=y9AJ{/lt_ڗItT p4n:`0EGJTIH?bj캬.N-;R(c lZJx/]er.Kv +K QvIڕ63 }ރWT 9+giB9+ 4R?`!l6,)Vؒ[N%֬ +PɆ!4!6H =o݉twoE)3PqHEA3w/;mP6lre]B0"m&oYNyNx@+W מwЮD%HP&)O2NCzEc~$pN dVSJ$ x(d5. $O?iàƜxo;Z70xcQq((Q!-mVd*CEtLI + +ZBgXHbhxb%(b ?9nluTv^ +%'Ǿ +qҺ`ay#].jy-~Il8Q*WxʯVR;U" X\'eEoᩇ1vD$ {2Qg5$ +@r wCq BC6 ,!Oy?ۼw01jRT2Ǖ@.ׄHCvWqZ,AA]ǹ'qӈzDdmSTL.oc)Ab\fZMk;Z7Ι~D;D_)^M\E Ih%ڱ:&}cz*wP,MZ]4/@ب# nj9k1(;ظUmѧcg`TvK)-tyӜe~yɊOmLZPԷZm7o6I:m.'\+fI2W2S*bfp+qg;p+ȇvԠ#V]۠ro|TTktmX4ۭkeoHSDÌN WLU^K Ut(6/Z2ݱϏʓ.FSe1[*(WH b͜1AP "@sB/cU!!UEuUګtH i F?2Fs?y3GI +}@q[dp\^}*dS-vQg (lyvJoTq56ʺˊE`J+صB6z7Mc}V Ď ˾L{eV  {N2mFj[P`$ P) uhd{tוL _ӊGs%(XhZD,jS8=fd,cw@c?x;^˭Ryg6 |3>@"P5H, r^i" @_Wm5 T9滃bdfQf|5t 13VY!{\mmrcآtYסZups;%Pr~1r=VO㐵R%1jkєd"r E'TBHoF8lOLra$qn`J^a q{uqS¹%6TO_Qx4qr#8a[l}/K5.[eB*h%E*~4cuP^M<}Vp^R2dQ^(fN&O&XvBM"V{!TC6h-R1Xa Udq8詎J]6jjVxDzJˋS?Ʋjh#di*5k\/\i@y.}*%dmp"$ |ٌDB8QLJObnMp9Vjl^wIJ:llɕH.)+5՚r.;߃tǪ4J[9ڋwG7K宙Cԃw~~#blC# %3!" i\QjFwPF?G,2hM!Y*okR@ԠoxLg)`L)Lj#8XKΌJQf<ϕGᐊ |cb!P-Uz94C^,,da&5U|ZwAO0W΁%`"4vwo|Nlo%-šP[%NbJMJoAYdZؕ<4P+h8֝FTvHrŧxRI=) 3d?S} Lq6k\G[cITvLx"Rs4V2K]Hǿ9b,F,28R<(%OJ*֑"02Uu@j` f\z8!*72{&jxQ_·qʪ(P/=VH5so)CŎɗer_1ݓ@ ݹ*Dd{.'UBV>3Ry8R^{Ӎrx@AJ zOִb +^0LaJv:~wzԧ_^4I Z:2q>uЭm7KOfK˽AK}Pm+my^Y|`I҂!eyx4ϙ#^x+YE6ڕ+ :с/L~R]QLЏnAi$UtHI Uy-J5a}͠rm(00F3'a*0rφY=]Zԧ-S`pZZVW7mʚ5@53+')ظ,wٌomD)+&\]K 7GQĠم>3ǵ?s0kb˝-qrq-˂l՞/QwpSp-l ïI+&ACji^˜ô/!>bBPr8t7jJ@gJ)cc檜C pPpAc(:BYA2.;V?(I>].t+lmNPx/&RET +t+} 힃U%tgGԭ$,7ŬqB^w~:ìMw^5s m[BK| T{zLf?K94R/0*`]m8oL`AGd F+LGeR-ȄiqX6_ +iQO(+&C6-* +ΌXRtx #p-.I8^z"U+q]փMmE%v%P"=g&?@7T}_-ۙ9Ԁk%`N_| +}\ e9-e@#1Qz]m) "h˶#HO^.6ia&ֱ0G^N bԭ_S53ЭDa'dSI,J.laq2LŚi2;h'w}J%O,hRSp9dr,<'Ǐ];MKi!MP^+W26e[miF4Cw5i6FwMfH]>T/ǃbrr_vMP1RYY7 Zm 7k3+,QE "ĺ0p!֩&](ב!-u@-/j@ , VZ_ìf`ئ* 5hDT`NUHbv"R,z8mFxB_FehH\eh"`Leg.@zOⱻp N4*=(׿0q9σ?a 3gp +9s P.glNms08#|/6չ#G5xI66jvϫ*j]rAu6>k| 7c=L+jwaW8X+~0lS lvVqi+gyYŊ bץG>BVz^y(XK"ܴShx.@29ಮ=s)S(`uRDDx{W &7:R ˖Y"EA".U)tCw*0B5$kgr9#s@i<s77gǓoUo#xeٵ$6SVop 84zOTyIv+hx`KOn+G[ mGUW+>utLJq(BO}'ϡT7ى߾=J ԯFl)1A9R7RC@oZ@־dޘuTF&j`R]{:ANA +>naRHJ!VW0"lw+42`̯Ga?m_J[WywŠ#CC:K eR@BIYP^2x˥w{RA8HC04qxN-\]CzIWs) ۅ0*)jiYKtP rY&~.)>g Xh Mu)>K@F\P^A2`w6{8{ٻ;>L F1kp qm *k Xeƀ 2{LY +c:lj$s6շ%+8 Qk2\:=$+ 5jMmMzKΨ3d\L`T٥ltVp.`VlqJ[a8䎙[ݜ-tS"Hdhl3cRMUCk`Ժn!k5C[)P"'^ȘmÒ#ۖRnL}FwMbW l?wN48X0b43^:yGZq&Up QL O&E-hD2zeZXYu6: c)fo)~K*d[Z\c<ؚutXze=a֡W jwr๥gHQ߆cb͔ #Iҳ[1ݳVt9Vw\S[k8b'@Ca%nD-ʗDˆ Դ[\iҟNH_ +BH +l m^Š3(ESͅ024\d!f_b6 +sؤs]0<\Ӥ2ӳ)yaP̠B|)OU7{ªnچ}n7SSݍ-Pzw C{KjPOW RFb)*9qȏI0ߴpUpnx)fzh՝#Ǫj3 1foQ;~>[㬏f5WLD `9F)< 3XwYoI~6`6VƕY#e.3cs=H&̫ 5+mx!OF7z7|TxD%s-pd./4% +pV+| tټϺ_auT.:m;hW_AD2;fF:COqA +UuBe8]/%BQ7&j1 +wmHfaA:oK(l4Jl}+zhօPk(NA>FTRWQw9ɒqR8QUR#ҟj*bnR,76H'J3S(DI[փܪ4HԌ؜ Q[DO@v +6.1ɹ+ƃۘcz4Unʝx<)(e'!~ $ POsۘJP/~% .dk䙐[< XZ˖zމ>X+=|$WȮ;:CCہ&4TK݅oGT` +|LvtDށszq"scZ6Wdm04j="kEn%36=[AO +m,Ĝ \NH'5\ o0'j(|D%ÖX1qm`xJl&-C_v  աS=p(PV+ aB?0DPy"3` R_(=Z7W7;JK`~,fD!f|@nFƠdpk7~l,xq=k8uw3V; _"+JεpU#Oux&t~Lx8%cƳFJ:կ|)uya%"0c +Ӆ";_2_ ::L[zii(Vh5q'_WO庱0zFX-+(?3sF%qN\*fwB vt*q_ɔ/=:H~Quà VuH}r +3vT"!| +gK|hԚ'hds4uUD9E'W4OlN, b70,Ae%D.D-':LFt܃#WXvν%xQT*?9W#r?qG$P9u ⰒHd?$%a- '?%Xm׵pؤTw{Wh#=sIw#f'Dn CTkSZ\Y~2 Jv1~fhE ("E8>QHi׵JtDzA#|fjG!<KH?hIVs^Mtp? @B@"+t"P58ƥpX$c~8!UwV1pD( al[u`B uO-A +>Hx!I@I3Omegz4XlFƋPGWkH1 1Ls7r_@Yӛ$@ka;RX( ig6^2 BVGja~);C+su1k("4 bVk:`BQaHH6耹6L }f]LV^f +_~r"5 %;' +Y~iF@8ҳsbe4˃5J+@B%XF2g!L!펟7밀2%˙LßVaD?.1do.c! )JoUrXa]c1\N^)vN/1򚤵.ezz^%@ ,JIiӁV}?{e*LNX^@5׍.0gʧck0fIbȌT$\0h쨧EZ%vT#pJ~ -f d &J >g\EӢ`ic|a2,/!m#pjY7:)ˤq + NUV36yXQIutł0$'TV xm;z c^W ';J. M& ib]GJrGSr_9 d%Xб˸=FK"BBE%wn Ē.qK,GI*DS@N:{eHGI{EJRR@T;_v,It@AҲaE9նv8,pec) $QU$?"&M#| j4ϜR`5 yiVfO܇! R𢯸TDQr=S kP^O1nH֌E|TI%e竷l|8R +vBۖjN$:BNІˣ?)EZ `H4zBaiPւKGTS+7x>wyO*%. qfH P-['ϧk)f|n\CL)CKbS/Ʉ)[ V͸9tCdz:JnXGؑ?PM8F=K?Dt)r1%i/XӚZ~N&.3!  u@n0rHo0-t~vڣr t$yb<5 +NL%yA# +y[y +|!键@Ã7Gp`Cv_x ;AHq3[)Eu66ޫ-e8]1wS}w?K21Iş@]XSٚ%#|/W@p}ߢ66[ E:C"o(͐+NbC5f0B2 !L4=p{Ю\7qOR:W& n[ųJoXpWA)DLsv\*K3,rU+@og=2l)FP>!VmqTjVچ̈>Q3O "c +&Tx+} +x9TH~Lp#+[ +Y0sksrx旃0U(6뷤Z7+6@[jPf@n4F^:"Ȑ;գ5a En"5jQrWۤp6#5~nyb+B_gߍS4]FQ}K<]+a:ɚĥ~ŕm%`ibAXAW`9QF[ӂneO0ן10Vۦry nκC AjepR=p6 ! cMFRw*",DTHDCwD hbsI'@y~?ÃPBb}QQ*4.6^m:/LT2;:]$]mF$Κa<1Ac - !('4ּn0d +/U_Ze5RBCv0†z?@9Nr@ҷS +eQ>-Ҍz XZx:rN#B!7RR`+gӹ +qQmGt) >I4 GFLijGn.Zdt%νSk^ +ec#ӽuNbxZ$`yJax*ڶ uI1j̤  "}c*Y( |!bHy&3 /0%R:6]_dQbb7gG `bh\]ܘA|, OF4 x R /PWReqѨVqmҭl96,k֝ce\= l 6oۖ?"wR9D1yk Tn.R)s$X'9$4s6ۥɘ[)f۫G?6 G~h5Ν= ~( C2bq|EZ#$2 ZJN\jA|z'6 +2PHmsJI1ti>c^g3Ml#ͤ5zpP;n(V.=R)G-Q*?Mp٧kB ȨO==GhQȢL*=$Dů#eg?1\`- #xݲ3&1 =NMWɀ +yo'q|w;W;&A` e-Nxtֻq !ĺ9lVU=J -m>(/hXG۪>{q1*RbWqf2y!ۥ0&>=<8$ŝdd@H2w튉#zDCآD]w*i!ؽ-'Ŝ\96Tno4VN?ɹsmBerд`+83 \r9kfn5ˆi _ɣpBD$Wj kߌv~\fkT9ı >xvFsu:z~"hXha2s"7F$)LFgv" ϿBѩ~#4ΆR&[z1f/<}4[>٥KL,=CCKxYXvڋ6eDJj1 0YK@:)2QEO0);f'q\d 5 AAMaI^_S}[X2O WPQbh=oAe"H "cR1'V\3Ӷjyjכhz d# *=((ϣ,7)ך dC&Wql#cQty)pFT :2Z,E$gեXmcґd@sxc̦\_O^&*̍+D Ii hͅ%v 2&i,Q 06+(S(^[L v'ܜ'F9b9sJs{q1ÈwU 0 EqLHMnx/1eK~ +i A} m%F'0( *گ]+vVIJ'2LDh;{E8IFVnE5npIJNg(Iuv@6Z` Kg'\+=ɵa, +S  b$6U49CExҙPׄqK CE FJgŤgS"*{81hw8>QV+0rJ0)SLiP2bϢ`\F0kKImؕTMzz"aZJ e -+sGb0=Co ھ/Qo6 {].|G 4k{PQZ.뱎e s€t@S)<}G+ += =̔_őنF,r) W{У0̋ܖT~ʤދij[~4<hUU];WoWnhB"K>۩hYzQ ȿ}Ũ}o pk$$-qеVD6@%@i|A4:zSm;aR\/0PÂoZxA=A?T= ¼k,R.ÕE +EkׅXu\-7@ICfYUL3JXʪdc-„-exNwhB&Y1K QpSЏ-҃T,6 Q<̹G1ŹҐO0&3՜ءs +ƱT̀ιu0l\فfL锎T9бtv/ZAe";4k`xNʫsjR⫮tHo5dT.S {g*~{4~犗,e[JԛΌQt4L%hÛ MKF PaO9rDY=ؘ7q$oy 2,{4d[&ZjLGt5&r4(MT">.#yP8+4pR^&7 Ԕ`w<*.!=x6mP.~SKY ٪.~8JȝYOu{?!B֩$Vy{pd4&8ԉAa-S2|ک:zDZ +NEȦL-?"13a{ Ug T}"@57 {n[ōNOΖWO |k 2A=A -W%\oJcc))T"?J]8uޏ' 5P@m OlB!:#ԔһcSYG'UXq_ FB|5L{DoѪՄ|sPewEz <j]ջzh:D{Ռ!TA#B4n8rEPT8uSٵ4p#ulxGt֤MCɶլh0Is;ޅ w[w U+ +[ +%;*0lzX&o\(c2QzϬ^+Htv\ +Pf_7+]-) hdʒ`|{$W} )7"Z5 +:fj^ff}{f`n-𕠘$1I]$u@+l¸zGw;%T#cV*_L: OV0b R!*NSnzqyx5LNQ`ˀ+86赧G +tNZ +> Adt4/"I_-vpH鴶n/I>6d[F"Pu|W}k "K߆CGG;/nLD#ȴR$Nb _c5yۙj3WV(h?͎ |y쏑p%m臿9D>]΀*FPgxP΄IA #ytAS)@Lޘpn\.\aTȨVDgcv^xq`u<!Ozv-oNeC^]Ԯq? oӛ~zʎR|"Y>>͵c͌0$$~`\Lu=e6Şzg"agHZ\߉-}dzq]?|#XI\v_3T(a=꽴ptӵS-d?zQzg%VI #yu|a8۳Υ7( A эOE=&--D{!RZX0 y$֬FңQP W=M.lu\bXTE RvCF*%=CfU"t_0`|ި9oӶEl_CSȚ9 rRx =5x.B=|t CFe(G:oeoEZKȟ-HF| [PL-N@?;zt4Zw`.w +[pGElIOxù'N}'Nt_(~u¿e =hX2|jvh0( ~l=3(Q؃to -AP>a1-Z$S| j+n:M!2pD\_ˆ''vS(#C +Q$u{ꊴ8<p!-}knTo 'V 9$} +k,xm&Zl]^wݘz j ݃fi5:H] ͡1&yjľNr,G[ d6GIVɪL2a{, )z",pAX!>Am \?6a%f79u-VxSϭF׋8K*B~%bOA.mS@m*k(ۄ k3otPrpjl(/^ŪtXo ;i]QYq;C,ܽvyj_fU_z[8 "D"`tCqjEɤW䁄pXX/#5GOi*g8,V?9wY*\y!#ov xR18 +Ŝ``Be_Oɇ?쓭 ]b<,<`.@U:Ͻ+,3_3e`hĸ@b,mV6gHDS҇*UZmQ<Yt?x0TsWVPs"R5urV}EͺtgۅNW3Z٥2.$>;=Vx$.Q0W%"iU ZvatYqq4n_S/ךѵ2&{~ )td9Rܤ{Un֗0eH|pY̺XXфJawB0ZڴY4>x1$>@rEJd^SP74+ybqSgʸA`oawG(|VU27g:,lDGSE8YFOSNeUuh/: dbz^AQ $\E.jtE]Q(OrɃR:ZF%3l?ӳF2qF-Vjo,! x#a +ijgiF7܏C*H@+f6r ob2X-Pp!,;E:?[J]TLr;0%بJR[,o9[҂e`x*uC(L?lI1eF\]ћ09P&..J&~f|u C.b-x vs?wӗ A~Jgepb01A)=VToߖdE ?:|f|30L.|R[? n$H0+)1ld`g.7G:Uc4D "wTMN`a0&S豍6d20m:$ύ~#[]^Fٹ5E26Շ@8Zr:G#E}kEkIOw @ѫ'NQTQH\󣐗|$5$Od`쒳J&- +T"SzJC!r Wn~\P6%S"+6:hk1Ob?"dqZLv@FSj2+a +BݞZXy ^^d+nԮ2=ҍ|T ttHLE;G90NVrg+,Ŵ۟-/6&a5>["B-:hX8qg0K~wayа.s)o:gnAy9)9ik؅ uFVf2Ea@k($ .P6urH]U~LβNpD9UńqKo9Omg6!Y^{kl3Bm밙.JajpeƝ&NO@ݍ^w٤ +lf)^ҸPkZUS2xdEMx$}$j+@@E>ʮ CFE1O"5MY# b: +s;&GL}ZH#0)?5/*c1N#;k0Ms {eȳr7A-3 4=Eg;'TWՆ"{kʤ.hT5G5 +W.U)Z7FP,nxw+*T +Ƚ| 0!EI1" P\'y,G/u=.8\)D<)|$P!<%vO$ Dm?@}AWT&Q\XF51AnT<1kLہqp˶)oq3ueX$_&@D|% 5`-8MZJB^HJdۡ/e2G|1Ҏ_lpUl +N0K 7}u YîxtsؚS>= lX$?]wW:2}SIVJXp9Uۂ<捪x`rw~)vWa^2yTB_N3y@@qny.ĕ#SnPԄJ( Qt=8싥,ۨ +F8wn؀z/D$Ct]:J6sKln,aInxi5 ie3jF, ␱ Fraf +x]88y#-,VS$tJge$'bMn#< jACVnX$teσIzo;sp'I6ydc CC#qaFBų~8S `W*Z)|U^DfQƒVر@DУ%4 CC闯\l}~'p~nwH.A!mՋG-8y!g86:`ѣ% RNxѽ- +UN['\DqkεSK:- +fV)MHoeةfolE/>>2WĪG g8?BM@>*Kk-"ߟ^f$ꗇ`+A9ύTHĝ$Un-y#DO2q]'2H-@3F@/e/0}q~cvF{& +^=Q^X)ؘw];/`/Ȭi3i +V0ſZˆ2uYv1d[*ϊVn(c,~|8zEAd +8jI1%kww'}qs@h^Y^8fv0ճԐe,XۙDi.G9c~}TZ6JUAN#!cRE#?`_ *V[0gQ-7fsT|ݹ f=1wpY?u!7"Sֵa_,SD xig64>?i:u9 +K71JND ,NKtL5l ptwV٥ƣb!TkeѰo{gX6iBu$=4*UՎiH=ϤL>OaEJ䄿eLq׵1?#rh2eD}/D!~gA33RI)seЕ.*91wPv'\NO^2-/\D)bh0лZ KyJBG8?ߢ<ҚV@"ЄQ1v&SVwcG;V0߶g^y(6qZ^k9!e72m)&JM9YO LbMbȵ?Zױ(!U(GåT{~)wDŽw +P\Һ–B+^?HBʹ+ gAQ?drc'8R#%5Lam@+!v!Q%E9p[׆0xsP,G6 ;?q@Fj W!S>U=lʈnbL qzĊC޻ }] =8ɥ~׃upL}(Rʔd`0g)떫V7Ŵ*b䚾%wQ?:p:$+-[zHv39{ɖ`]Ywo@Phs,P= +#CPޱD=nNP9O+E& !82),f (17gϭF޴KW_#40I=gJMzԩk*| 3Tܟrc!)1O+$i+DI>#ѴU7O2ܐ@`H'Qv6`Ggo5cTPgrg.Bk`K@A>s$zǽu\605Ǭt.|"8+|r~iĔf'ATGuDu-U!g|xCQ{n7X#Rx(Qj4zK1=Cy +xatv ~}Q\E??lJ.Π-S!ӧs1K*n_v4CI]:JrެRd>]IiPhEJk)o J( Ӽ&h0MKX+Fg.W$<~u6 %H_Wi v 5,( _9H^PRƴᛉTf:uhK& BbбP{KoaЫè=qU$0g8{ArLʑAiIT:ǧ-[2DO8K*s`, +`Be/AP~E.*>Dk~'C. vM=gU(A ߵI( K.E*r?94 r)3X5!,2{4)bZtO370I' phk uy͐T lf.vq.`лH-A>շŲT;sNSpaa&_ 0WvaJqS'5KzQ /}S$e ~U\1~wX=uI{z|}Cx bZY#ic-cH5uBҷZ[UQﭿ%[xaP{INY:+r-Evo'A%w*9ҋ[[\VW bȫ"h&r0Q(x.  wI@6Ղx8"S,/xG>:őȉ&+fa*hwüb!6g\Tv9X'}BAXhN NԒ7:­#[[Pr +6*H8;uS\\R$U] Jx,ԉU{8! 0bCIBp \JJ8[Ja$,W79KY/QR[€LMZj 0NJܝ3Ҽ9P-]EnEG3şBWX 6U?8 +T32 +(KLsn]TCɼ<+^ Fl>0ed>yA@SR>(=ŃuZRuK ^;RdlQ Grj|5t\dஊ,y^C,t*)GGlVH˽Dѳ㊠BYp 4?=3%\[#M`_..~4rpb捈vI`q[eyEqatëau@p D58QPayyl|ٚ +%OA"ۚV#?^z=5פ;4o{08 e\l3Hѹec,7囤Epa"Gj W1aKs/amrNa\%cIG 1XS98܆^ @4\H||Ӷ5yjx@RkXYuTƵGqh`O_-G}K8-; J_g :om 7H:f#vi_g؉*:˾0%դ(2TBC}BçAQы$?Y4#\tk='ˠ |82jsFH-uW_= "h4'+q#OJTms?ц[w;BPB+G2yHV2[*9}) Lʘ`x%j!epG?f RUzxouݾi ,*6J=xljBR'-_l8(UK#9hۨ4!6JމQ0 zҶųGnG#+\RF~^Dȓm1.oMїzbdKZJȑy+h kx(9jLA吊uoRD^U(<9j 9GMO\,& WtjW O܅QNΙl} vm߰B7i/RoAh<ْԲ6cZF]pu=گiLS!" V6+6tU2<71j,m{ /;F +3Iva &]ewiQ/ iou1J4$¼pl+ [ӄ1_`yI"&kyw,5І5z`)ޫUk$T|T>T͔cfejnHA2ʔN>tƨw]GNxA@co3P׬nf^8hE Z5،olx]MYT+Zz/)!b;^}6J bkvEbhI? +i]'q7|J=3z{H:ts>FڧK" a YiLFH򘥻>R:Q:XTu7@6!@'8&~4ٰa̵gDI,ʵl*JO7x ||%3R({E\$2Trx+ީ&h^BG8͂`]L@s-:?pO ׹7nZl&ċҚ:H;L'׼Tdٽ +I \T99km1'ە-Jpmk XW<]K6Ad57 rdL'D ѲD7+mV¦4 6 vU?;)Rif;y愥ce3}w ,lX5WFQ[tsdN2` Ue@m";&H.lKw91>4J +'ݗ±l8AAr){ F)ez=dˀ16ᐴ<&-x0/0j@ +i(x@QR5EMm.B'"aw ʾ9ZA fGc*W-{HdG2sg bQ9 %C L6ZvTaxebYkk7hcFw୮˧y n2+!|+V“YvD BSAKf>~LOMlq  >f0 L󙪨,?޺7Q?vy1CȫϵzymGa4JMGf?5Jx$Ra +ٌ~t]R+ []&~&]40*tn^q@)D M= <[Qae@r> 3l-f|l,U$/&)w߿~1n12эzLpCj{YBneACܗv4׌ q-Y׮Z.=`R;SN-m;(萼!^>"M#Lû+09M=HqxbA?ņQ !$gP>S M., / +`dȭ6G6@C~jE\]#!v$jFҘ,?fE.%]~Y)[j귦0 +&A]AQԞgZ8_'i>BsUDHX2A홻4 C!ʸs|t~T G/LR&F%ֽy2@2׻&*#& #@ztz6P 䇳)l-,Ga{CH^) ):uVRyҽ7ҡ,u"8@` +6 IЬD*31@QHv5T +ȯ33QRlFa)PмTBScM]Gl@eQaD@Jf45يhj($&%@):2D]$#+͋Yùc.$h)m1sDR} ^4ɡRy 8z{!UEVP`U]ztT'h5 q/e5m-J(8F&jpdUUMKE.*Z]+e"p|BgъѿӞ(دd/ +ԎGp~Np1*v@S}oL|E(<hG0BD Kؾ`n @`pȖfP71aH=Pgr,Ձ# #3y AFG + +x @#؎3WIjR|c(Jg b&8(v + 4 Ts&_D#Z#`g_ bgbNLIj:`b⡢Z8=#zSEUQS͸.>^Ja^Vz(LHu)"LCc釉$11h._Wr\OgEbM\-=r\if(iڢgDgvC<2 +U37|YB.$FE,|AkJ5"#`\f:J#xpXھ .eɳ˒ +:6`52gMiijοXarkx"(>g*h5Zf R37C 1Q;j%#o !*EH:ۑ936#Lj _W'h8#hx4Pl$DchBcA>.3bQp3W m>/EBP@Qq"7; 0;\g!JD&#1r\*U)$ $f1#bTC (`+hG6yVBUM"ii{+ j ϏnтGgH8R"UBKSbJ ֶ@ڔHk:@ uI)hA4 0.]OpC:P:J<zLg +~oI.Q=tE +li804 MDd-&fτM yp5?~^E5`Qmr4"V/f-m&ʘS">*xp\!|,[;GH9<Ǎ|HZH ޑ;b( Xy +z#xVp*ѦBYV!:bQT& +P@M +"?"F q`Sd\XO &hp]p\”dbT%SS! k%%ˉhKP?Ern4ų? U9n +Ñ +P#7]4 VzCE1fo>=Jņ%ME!>a/>3TjJ"<3l^38aϹԆ^4KB\RbɔorHyK 0H/a,V" M\"HkjZ?##Klx2(MpX>C]ސԚVJ$Aj O$'+CEsS"/JTy}l7HV$$jJ9dp|* $$EcTQMBED#C .g^{墠S2hxpnE82:]3'KSRR9M/u j *3f5Y4TQx}:cy5bLLc0T/.D".D3_9": Nw4AhS!SzT}%Fz].3R*raUjGU6!:"L`'bD *?(F^ဆȶEEd8uթmC*Pna}^~ajŪ?P͟=S$VCՠl{{ix}y`D4mHNcbHǃuj +Z*N(>40)aV\R6R@qphSLQD]aDvnjP'NMQ-dJv[TdY:Td +) +щȳJZg*_z"]SAsNBIUdSZԐЌ^ [z0}2!J8`Eޝ; aeK UG߰3 @DXL Ĭ]nG̕h|')?j+I_F?"6IW"MsD*4ސZDcT񊢤Dfd5^eoԄ)_ZH%*[hNkVJ&-!&S?ʆ0fXhji%"</TAHSQ)0ڊZxTShIIhBFT ) JE!!k#Ȝ-DԐV+P@oo!Dp{"& $LJ*+⏸ .!*$,Q!è)U"C,E(mZ%EP^(2%A0CbKϜ$ᔅH(*p~ZU*NZ KSsC!Sio=$URESGqH]LE %Hq3Ĕ2M4{r[#"XtSv0nApFjn AO:]r&ʬds4$WEjl%QcnjB)Տ-M! ꌇDx 6S3L| Qyg`*a~2*ƒکz6r1d9U5F{yb$"=%HqiXs!`=kɈsn9%U6@.QOcE<:]UIe "J D37İNNT)+s]#S5yMGV {<f~/xtK],&OMAkq Z>NiFZ1 *-iB*"1D ,1A;%eV #i"ע9HNNf(R@FϞ^^ٯ>a"T ئs&=*, xB8$t-Vzxe &$/hW)U[5Hfhȗ<*ӏNT/#ɪNȆܗKd_yMA҂3䐽>gьoՋQQ.~i- ]j#.8Lۓo4B# +!ymWwa2,BSM\Z$J̛D$HFΔxxo鐼]f h-a'GZTy("b(4 4&4 + Sz 4)P O$ړOԼ8zIlPR~"Mb9r1BH(vl,|bԧVra1eԸ6/tI=%"R1AqB15.ZdD&b4<3 x D>#D(RPz,מNP( %laUrV!#g{-J4>c|Ȫ RߧFW2 W^֚,53g)֦aa8wKsݚKb#SbyT-aPPԛ8RCYXQmťV[qaÜs汼x(cvF$kV!,l#\&[VBj7_RՏlU1DZEnjdQ47yQTO eF|B&z#JDDT9V)IzzF.5٭?Jd'lR0/<2QRVmZ26lTp#B-qA#Dh{+bW',)RAH崱E. rid6P]]ÛH)ᙉ!䥊:"dQT 5EUDs)-(xɰԉbh:V%J} SATg:fLv*2{1U# ˯peT`A*ً׫l&|Sq+j8d.N+LSQƾՄ#d mU6 +J+qQ&"ӨQ2H{ţ3!E 2DLyUǢFZ5l9(D9!_zDIE> 56sLX-`@5rW4BqT!t֐ ͌aYC74VvˬD2c 1K`BFջ1,~^*0͖O_UT"C䏵Fhf Wyީ*䋨̲L)64`VfEI 1, +yM+dނ,™5cQ]fB:QET ;2A}BDuD(BbGD*eDH,4`@04l8|ۧ%daX!13QfM8tLT\h #n$R-s>Dİ.kD#<W&$E"]J``9ڶwMjRS)T- [ԤU";K`00D~*%Ԫ'-K%^mVxÒRz{L*bљGti!B~C"$-eKC2XٚO y>l"!z &*ljҩ'l00+ǰCrGdD'D  v(Ա6{@V'm_'̋Q˯1.COpD +S.% 5|MX,ⓨZ(ڑr3hV! 䉙?g:ר/ G* 2@#;b1 < ъp$%i"T Jg +bSYh4Dlz5qɩۉ~Ţ,[=,<$ i\'*!%F2OfNJ Ҋ㧊v:Bېmڐp) gd;Ygq:-kT!O$S\bQvg-~joFV8$|b0@dMsA'(1sxtdJHK/v1xM:A!j1F5TQt2*ǻZeGHzDUs0=~"W@G-b'(Q|PQJ:l UiC)~ wa1QU(⊄*bH`6?7X*˼Vh^U1&&h`D["y @ UQ*!8L I-!3UQI|U_]È!MU˟.rqUQoLι(J>ܛNY*_U.΋$R p-7 =-GS L5X&8q 捂l ;2qE׈KgH'1dȢ)FrH1KU\4k_U^Bu?TqPگuhK_"RE8- +, G̑Zf&D#&A Ԫc(Cט&KdKœi<%1#uuC,E4t'Dp$86w(U1Ԕ@",g+Z-iժI#h_CCl;*S$rf HQ!S3$Y<_Gh'A93DX`q_" f +/:e +<]x(kJ0D o:U愎O&WP8cg@*Cj\R#S.tTtIItϯhDCF$6Lt~ZƄCVRȎm ``1 %tzl၈ELiU}@@[eSE"ēXL 0*J:S:ƴ(m ;b +AȅBub'"^1  +bv2gw{Q"c%j*|ԼFTNZDvVX!*Ra:a‚pٞ,-Lدc>MY&T+ _I9_u~ 9€%yU]CϢ_砖:)Q0b3TzGKxd5ڎ@dtU_:" 8yrUr0A.$tǭ.vKH@)u1 a)mL= /H'uS>\0pmZ9VC8H8!ST(8TC30M;V?)?:c3êfr%F,43 +y|hP]*L ʊU6HF;tqf@[|dћۤ{p!/:&Kh;J*{@"v=uncI*a +9xZ";c~E8nLCqtr ITHad`%20h6g%wG|fc8<ގAъ~ e:e_^B(>hBJ)SufIA3jL&2N&3!lVD e.3ʤIEG`ȴ1;(%pC zP %fg~ꨂN?TJ7M;aWƤW8^CRuq\Jq8B/c%aHsíHX-^#$Ƅdž}e (/FQKm$R5 ;(چmb?Wx d[Bc9P>TB۱=77r@W`g u9Fcc}IUTLϫI[yf +vg`Xu8Sra}!(@wRT{25C񾛟)ts6LZMեSŽ?8>L3䈋b7mЂ mx%L*?-:9 Sq'3G_7vlk%g͝ŎhLgH+"+bi6=dM9n2+ >yT;-B+ZPY3_)ZdmCMoPJ~OqsK~d ޳+oַ}%>|*Xږa耤>SO.B[EFof7 M '[~ӌ2T3__4~*:l}EVz3 8 )c2)dJ&cKϰK͟0{ؑj8s  C#b1}̴b:?qfX҇`,uH +_ڕQ]8/#, +ɵWzBƎPZ*±#T{ZP +FbvY c|ޛƥ3W /svT4Iڲ\0GeS.Yoq\|5AnxdkNWp/.f?vLJD  ٝ+ӣ"( N`xPPBbzm&LyT | N6۾Ya{\ntXԄpiė"~YV (C4zDЧÌ&3׌4 l'aU; ^>%"q!\Wq l)a#Ӄ>ݳGȲp?^4 Ìgz0u;EVIh +^^3c׬iz C<{31+o%>=ͼˠ&E^!^Lhv*P=2 ++KlZ`D[.h +gSk_Ny4D/qY66/8&bN +MpIƮVt(/7uۀ=TܳgM8/횾p8yd"u0j`@r{]D<2o1% !t]AM _jS=CN<cC]!JORSaJ4gxY  boGu@L|3Vg2WVPI@ky :%r+dsd'$=Pξ.q`I.?ʃ@j8~#g((-ַ&]M"[] HZ3م Ba_$A4?ņV쯝/Nȹ! >D`t~"Y8ES߂& Whk FX_W;Kǒ2Dx{'|bjB0 `7"sg(xBFqW%mg7+LЍ!9:`9Ib5LCأeu>.+|+?]tF*K-9=N=JV8PۧGj̢3#о%l~}K+.)R8G*OvD mHT`<>[D`ժ5c9;3Z\63d2ʔiL빘)?ԍ p)]_Q`03Df&G^69Ov5r +{=w^2GGZl&Ow O~$1PD)2GUicSlζX Jшm0{N=?u9i| |&DCMR4ω=ʤeK]7LfbZ.%r:rօ4׭`q#>ɳe}-#LsdECxO^SN\%^6/8E LؾQ+gw)ʬr;kFvL0hǞ~z'"qWNțjHwj$"`#hOӒ/-BA܎hڟ$3@g In#ҌNIh"$b0$-&oCfU3p"RA8!.кS'Z1* p"^-1 ,d:h#-E +5ž'ޒ<\2XmGr<8ibf]&dɁB8!bl^'+W^C}&DCB0DfV8lIVz,XK[TH!=R2ƔY]Ѵ Ur\}r$P M9LUZQQ=Æƀ+EoSk ]:&"߫?ZS6J?~!"6=\M7}2I.)#z.>OINw9%yGD Vu I#ŊXn0M$#lgÄc`o*cȷ| xF~N'uYKٌ}H_X9>i;^P @oxsr[5*rJ*-A$vX9[E)nx2iҜ8:Y:RN Ėmd-h(Bq Y抙&̈́`LkUU _X#lLiZyvl2\[4cV p৊J£Td\;%XʳgiCc @kԨ/,M}K6 +t>*{;679yP Sf| bh]HIwUZ2n`G5XYnOj>>ӯeu ~C,L#o[io A__ <)eh + aPa_A8zm +?YT V .%j^Em˷HZep*V3 D"W (9EMY+F:P2 NFH)p_}R#^q8*I*i8<4RO2/iDk ٙRq>xߓj, k-X137@!na$DLDNv"B*'4{B{4`f12*-85Д  ʚ:IƎo#ƣ8&wjWF|('_9ɉŻj60YFɊ;/2F=. 3AR%O>BUUl=;L݋Hmqskw͕KJ6Ne@'o ْha̩gܱY`5q,se:<" Lv/h?͎K6ld_]g] 0*Eʺ-kpJ M:%Z1%p:RBdb|fnCeЫ`],orZGۯesӣ*MI+S#C {A8 +4KeEsiPf3p*MSi9 HQz`}~}q+?QIzYk7`FN>E3Xq + 5C0b֦֬ߗ ᲛFhiDdp +PvsO(ߕ[8= .F j~AZc., z|CU]~޾A:f8P'\Nk -Шk$/.cJsC.գEO(X TSY+ =:r1b)LkYk=A0oaGZl[3&!crҷH^@Jyꂁ ;gqk̑Sjѯϴw>D*2.[5t SP@װg҇8u5">{ + Jb¦olхxwz"is2O8HO¢ +.rޔ}q/|c~ հ—%MTٛNG' T4`[aN7ɪAd=DdhWi)&t4>Mg`ҁ P?x#^r|]9GXp8zTE?0+1F7*G=3saRz.u zaV^ϰ1p-Kl%vஏ,|&1#)Qi`SyiwJ:%QID׺$"G7K/a-Ǩrhݍt}zsùtJr*AVTtz3xwJx|ȥ/5#,A9=`M\zpn-@:ܭP5jx n6Q" <[s%0=zWn΀`ǴŞ=ȑp0? m8"䄟4;llRfe_,IwaV -㸜]p\UVx&ŷRN,">Cș~9sphY +=V3b9ӐOJv>!_ jQ徭 &*UmXr_N1N/P (SCHsʮ'^`"ns)X{6Z*{$a™qlV{QiAo|/w@v?\?. Y:;-Ꮷ_U0m=O>u3iцyA稗G,JŜciD);SYRT"喳 #_T$Ax6-{XtZD;HͤH}yt?+;z[%te0Nj G 3<5jhpv/Ա/24@*PǟM F)A^[hީoCD%Ż?i+'g`|`aR_<~7UȠ9 FOͱ0%RFRyVq0̸!_2,/| +BԾL CY)UFy#ɸJpΗc"`D_HLc hR[71LF98u{U; VxH\B2UH#e zd^eQ_5ukW^o Y"vOy)OV^cAǕ 7\re1#UR#- Toc9`4Qj wv*WA^ +"w1+is̒jb#/~., RZl{ո3ӊ(zȧTQ¿)x- }>wL`RivKC|딮#-qe*#: @tMv*vN A;׎8tNuTT^ tP;,0wþ/>Eˠ%*c/qC="BxLC. `)XX2]t#jn HTFᏔ]fȨU3y 8U`yQ?&oUn{t8+`"ZH˶#祫W}a V:D;NNw 874h +Kb %S TŠ\cCI_ͅ~bb_>@d F8BJw*Je"kಽzOCؕ/܄DiHE:#<@qJ?>Sϫ[tj@GX6ߋ! 3ARD[!>mn[hq9x`?]/` wntsAgR  +x}뭥 +&r-$<=%)"NN]wi}ceԛUhgm9hTu~cJ$_8} 1g&|b`bb%3* + f7 ÀX/_\kDJwwPqCKe'4~1c:_gPCj'I QqWѶT!AhD pAEq^_R~>wHllR+Hbd 7#{r4)LYjy$쩅(Kn$CnKr3XA~WפH7 M*OnY?ڿx9Ey0>,DAa7h)AYTΎH +0 CUcr^)e>`WڒK/UksqSO2'T amG =5=" +SKr=gbqP޳"~_\ξ,,ANGHUEpx;g4o]m^PJH}rRtc%ߖkN=(*jxḧ{FRzJu~Э'Wl ̚ăvOCi=$RL?NM@Y ws;, Yߑ Lʜ{LYR'q6e +w) J iJ(M6vՓ4th)3tKt0pȜ4oNH2n[-R=EW,xz@aU Z9+ةii1|nJ.= BA/]-Т~XWOCmp9ȟloO$-H~6]g$5v\h$B K֮5CJ) ה>[mx7,va\k0ZLdr߬{tAU\.;$ ,0yGpyF˝7 cj#̩f<wBwk}XfQWm|hYa^]T +OHBxj`}qxSĺ yWB>fy'Q ϱ L4~P !]izY5jfPjlS0FZzM&c*?yÃK6gp%'@, +'>>* a|,:Wn>55`b r>u3^s|p@Qcs-с#%BCA^4V4a{L{Qf*@l4<[h:Gt)H'6&f]ͳQlB%zdCJ>W{IүX9zoS@eruUAqz1Ҝ 8|-e1Ze7"wq+zmP-lC5& .(:F_P,U[OcYXR$4)B">Ur`C`(m`f7nlGѲ>dPN1K`R+CcZzyW K3ާ#EryrrZpUm ڲ6I@SNdSXHf?uג ,?H`{~R3) { *{G cJa̰&MGQ7 pօ+Jr >Gǐ$fo:u) WNwT7m/ҔthF;hX}$Y:&ؔe⪡ʹ_7ii:܊イa>S1c(BXVM{}j@*˳W5`b +4p UPf5LT8RJ#)B80sMZV&=:ޔy_G/=1lmy}hOou Vk.׽oCyxԩB~4Orwp|5KKM!|cG b{ky%\5C:q] }j1Ag{h o#1R7}Cc(CܤF) f~fVvXKt6f'wퟹH n==>bZ +ӆ"#XVLJu +|8%(KoЁo[MzuT+Й,$w].8NT<&g#v!m 9/^c_~RfɌ$u+J.Ƶ1!K$ A<qlz<6M]njoĈÞR2^vy\}YCk[(huMbf"Z! /0ܰ9"Qq+3Zn𤜎K8=y=Ȫm|X!IŒBNVJ%Uxb%: 1si$>- ^CCg1/ qC7.Roڔu?Brpu ۍ)yK K7J 90l\ ꘁz_FFĩӵ/"{0,dr\P"s;3Ϸ_-q%n³8|;FrXψV=)9 5pap 9դ&';ªyg5z\6P!Y' M0;T}r"~@wbtC^s٤ kE'5ai/F#x0,^^Q]PDfͰl)\##oKOEy鴽Ll^d~ra؊V`3a'XcP~0T"$ͺfOqQp%]dH [ a41έF$]`d++Y >z*uJyO)pPU9 'X4ʝCQTNz% +sJ IOg 2I kҴ\8Đs!=rTy+ 3{&5A{K~:0/hnWG`ųb W+P ֈ}Rn[YS  j+:^~DӜHvQݏYwW‘n墄4j)đ~ +󺺓ړ X2ȪM<??E~mAS` `} Q.~ +ԈV۔8=3:$~W0V?%{Qp1vWۻKPQ"Ȕ<ϵŵbiZ+0$nqch9 Jjo"ʴaAia.Vu.8ԻB>R"|GKxI_gJvKopp y}\0,Aci =Ia(zP|yʳK;2 Yi 4mP4YLNG=HhQtgMU5ti=L;/+%er4R-cM̭a!ر,\ +]b-i &]!|^Cۨ7?朳݅Ȍ K'Yg̭59/OH[x%^O9dbr k .[w5PY57.q({xN&?$%bUؼV]$BEXq 6| +7Z5;$u] +ӝ 29̍|!n2s[7k|'RC6q=Z.*k֙_`"%inʆJl$n-,8 If +ƏAI]qс|xcQJ(ةP.6D&UFUg cumJ:(# *ɺuJ[?A}ﱹNΆuj6`6 2@RoB7ziVEğs,-zo۠ B)Ts'2[/'牖7>3Ɣ`MOQI=ޠ%W2CqM|O}AG2` yOfFKx%fқgBh4P +SҥMh(@5{7yeJD!'- sWCwffP1-߷|ZHXâ4Ns8*8TB$놄.ٝTgoR͸C}9V %jܻwVtAsI{2*/&V+M{x qUB3(iҶ: PkG㉨]݌ꑉ &|MTʂ$Rװ`B/_lQ΍˘YFᖃ>+4R"FR5}D&rr`jֳg. /;:;{ע8jʓGlYآG 6a2xƨ6贄7|hJ(+w{'l2zZ'䉠(126`k}#Nܛ{H`Dy_~3#Xq|Ze%c̲ҜC565X'-ȺM'Maqt4'*C7(C܀Rk7^#Nd_LBN95Ϙ_r:a@d|9 BF!O}{yLKcBD#phٲQ"@qRLjpN2ڍϖMLq!K(]$!s=́}q4=9FaeUIH |GW:~p 1ħp')%jĀDL}{;W mPbc)JX8Ew ЕEʗ͔E씝I6i7 T G'v = K5&V_բ(@Xj?Rj J^ABJچyË\dI+3)1Sڝ'"EVn81 @UDJDr 1Y_|ONP4Fxgd^SDq5dyOM&$3Jv!\e94,Ux+]St=KKc-O&(m.6r  <@ CW0$P™4fdYxl8-JzpsNFg3MY$+R϶ x5_Y͝WUJ(b<7߆tW +]r.gD-*0!:'+K>P3;_S9žmF,_bEisRp38藳 +eq 0jwR\iӜҥ' ?Y+dm^|;Pࡼ%9b(.¸`^ 5,AMώyg4e⎙BlҳQ?{7"ݶm(UY~EFWArhc49&-\tRV2͹'fr )1 +x5UP%d%TMQؤ!Ĕ, ;-Ab_4=^(eax\)oQ]5tZ蕑/&@=_@dH?1~ ]\^u_ʟ:dD8 )lŸViZx|ơ`w!)dtA.&XU(X`ؚ !X%=.dTyb4ĚmZCR'|w`ni/:|u%g0|crV4A'ވmBFzDL0ldV\:xN pZ ж7ZHx`9oSi*c ^ZDô)s!aIA~RUܯ4HgRH)+!Hꤴ.fRd+.(DLm+>t8%X_yƬ +iw׌ drǑ|Q +HU DGRA[S=DW ,z2O_Rȸ^]B/yzϮߖ.jŸQ-y-YHrK 366m-aP!~?YP|R@Z=FSuO(wֱ./{"gyuNcQE E@ 12:BO20Ch.M#8xB8t̊eQ^2p+VF7QP +'ri&cbƅ<9]Jp4QanLj$,7_F^LnQH`g2t w뢰x#9Zߧ@Qи[8\JD#rPq}F`*N#q;G+ h4y˰Ua@D]6kAWwVhF9Txrx$\.7|ǥC, BDۘ1H?C=Z9&:&\#*̏-u2$Jk}(ν:J`]4} p +,)B8Et&̊ ӵVQ- ,RNp}ȝOOG:Ws9d8Qwp'w=qΔs:?a13(hG(I,Ҹ)6X:\95 +B>r-ϐCQ/Bﶇơ`IEP)?G+Wy69 aSDC yhϤ4[%ґA(#Tس|6wa@x&+r$E(8=i +2[֑v4gYE6tC-YagZuOykbxOJN3 auOnt"m8+JRT[Z@5oo +@/C%NgvN)8#\pqd~@#Bz챏9EG}'W mJ4~|H"tBW_Heoޛ^eїG_!9C ,x/b9]F¿PҡGsY cG{Z!VBDQ;@NKLRerGvD@. Qd I2fLGG0{6}LĦju(\C t(gFu'YRpI*Z0i@deiT|NP=^[@&7cScQ^qSH0xXƇkX1IN"/w Qo1 +?thCCWO},(,+H0T)S1#]i!g2ԛ1*^9 C<`Li:^`IRMReRGP'fRVE`,)Sw 0~^=[)p44ošj" C@%:PcharFMQ/n[lZtm âl ֆIƙ +endstream endobj 23 0 obj <>stream +҉ڮ.;;>s=2Ku׺&^ͽpң6_S$*mNX$mQ塤ϥ/Nf~ +ꂃ92g#,]V0^0_GIʀ.O;6x5 +Q6 8&BmS[fK]0 +m ++"u(v &&Mf-No5x0˰{9r5v{|QCxͯE X$bIf=Կ`逳餐aUR^zG+*>\݌djF]j'hEk3cfKc5z)(`Q!34,fٷ6er1:iMCXF` iX'pM2sU9ҟ 췱-O9_f*. z#Af;]DIJ7eNIƚD['MEhk>q긆?Qb 撬t/USv=Ƶ;|XgU@q,}\^[I8۵`3([ˁ# xbr܄.Ey 8t$%}*UewE6ڥ1NEI@x>%r8DvӴW5 L4'Pa*R6kHqy@9!EaǩBE.ȄYt^~8dpr^ ܂7 +pWYVj* B*AyxP| m} }0[en wf !^5GtP+`dzsq:ψ6Gӡ g[b6H ~^Tas7FRn@R#d^+uN}3&Ƈrb?_h,ew(FuC* |p*Wn2 B僪bE|&Zi:1i{W | +\8QJ f[S07E~B$)6Pq @N)@A,L2=UBI9oE0t?oc$ ޭ$ԛYq#Il 2WyEڃMmҰ>AF`CƱ(%vlޥ6I7]e5bB|y$Ci!f\NYD&uzh֤l~B2rtA >|:G 84<$t}*Za1,GX^H̭`=hhh fG5[¯ɃmIaM nP#G̈?8ߐ=؆pF7~U*gHn>[J2)9^1po`(*M찺pO7>b8R0kJ\\rHЕt'/ L۝9gکU:/t{ۛHg =~}c ^Šd5N +%)V3\іK0#:ͤFEFK(8N<1+Mwle}gډ8IhrWy xՃ&^>QfD)I1@?eHmKLǐVۈⷾ@sN_xh~D~ԔXh?}F!sDy!ԬwYo.&"xnJu"%iL$U|T#uK+C`čT8:jVM%sj*ER?wB^mzj?G`CZƋB+^v\# +rҚ(=fkjI 5c ǡn Q*{A@r]t#tX!=u&~")v!yc#is[Ҭhc`Х]h}3kn1ďoބK哥d?Ilw>Ԋa+.">wBS+Z)dJ +X%^|bwcp&KC#7%G{!0mF "g &W$$4?{?WD0H+1@\*j+BR_5(J-~B;"O4Jhyy乢2l~@i {뀝&jTO]9 5H [/Ik <:؈`%hĊ<6֙F|a+zglpy}\A,)(d %)F;,XI{#xKNYTGы8sGUo[! +dyՔ;LH3m;o4\7=z+.P4gY,Q5ݭO"HH=m*MDuk 7XY-W% .USfCp$ 6R1}YP7GXͯ ~xZTgΆYrTjՉzin +0ƦSn2\f% yBвـNDq +Nk +Mzg3鸃u".JA@=YӾ-ӌSBQb. >ן ҅VytܙSM +1c7vh()o-%,=+S}aXXbU Р鷔LƓ8 +s'[!Χ&Xu +R $\$b,x8&$v6QGy7{GSڳlvwl,̀<)+)n =tքQ7rr^rFk19n\<,k@)PB>w +ޠ3frmp)kMY녧Eʆlw1f=:>c%=M\ +;- ͛3# +Wȼ/z+UWB蕃.%s~)ZSx5k4,,TwN9Ϛ0rz? + u3E0kbo:@2;8 .^|A0Un5.^ns(V򂼟2~M;Îӥ+SGV؋ P½2LD^C`х^fxuy +"7Uy .=Ȁє/DDlj?l"Cgۃ'Pp;Zi5HwHDf z?̗lV40= 82R^D/!^A<``@ȱ4D8nqSttkMFOm T>CR] 1wInA5Pğs+D6Of:0gqM,M|f'xE;))ܰDue/괱>J0ςѹ&kSPl6aQ E +j**u!ܚ̍) !+@މU EhM[+':Y(jg`uq'.zCRk`MlW]GӘı1$zIh#kV:Ї[,| _.&b#BQ".ϟI&D)%KdJ,|ތֽ`&+~e}f~-H$3d!D"zAqGQ{wq$#z"E$Mfcu*3]!A_=k*ؾMB`{O^Q`iϥ N)&Gغ֘["?ʦ~SE\4LgCj#"ڣ=QOȂIoYB"M oq??lQ/!Z?"hxxis/Da\cᙯmQnR4& '{qdpS4q U%05 0S8?'QK{/ !Q>?,nʸ&Aν@'Ta ,N#LNRJYi +zӶo® +BwA[ F`r:SDž|2sPTO;"1%]6Ȝ!zZg1ow 59cWX8TIgA;'$ 3 5xum_!op:m̫hMqz(H8gL߾Z_ЯE pVG;" c! D읁U瑩J +J%FgiyQ_^`|m1cOz: T[-z}|kعТx#@".㝆R2{~Xvڴf`}T彤Fr8*ƹ 3v PP/2(~E1':p}. *M}Jm@Cؑ^B.+L̽"<}4fHDb3g=7czzE=Ox50 413`Gti ѻ9\rΈKw-maSHpc qB\,F0‰(z NχLciL~:g(a ^a,<̅P{Xv=!_E0 u +'3%(Q]I;SģOʮa@w@҄fy؃dΆrGdNci7Ey}i^ilQAx+x-Ȭ3HPoCB^I!)qtaRGeOj )Jہ栢7BbrmEӎ*Y =5~]BQuuɘZXn9xtK7q +_T5[ؗ]nw9\ל`s+ǝ=F5'%a$@hNyyBݥuCbn[꒽P)(t0F%DHy +gq HS7:(z8x} dN]W{@s̋3|y9Lw +ģ(ې-Р8j H,բ?( OZ@H!*3ѱU ]QRl oҶmC؏nAip}+h3d?%2@)Y0{MZg +dZ Fou4٨Fapl/8S (Q)(;łJ4- tLT<3..RlT,=Sv3E.Gח|sl8B^#O"(ey!rxŷ!4ѳ$޾n7#DԀgKHM-FB@CsR#2YHa7!G\9rvoNwTCes +<`gAXIr^I/Xeb/;K'jG3>- P&vdgBD_DǒsU_AJg\}O8uF?3*QJ6^c,j-(e}>IMG5WHUF$%IY&kAYkoam*HcKlRC +Pc@ZV"e0nsDqdQ"XMT8h]0p]#B x$`a%Z!D8T伾(L.qa΄KYM)?RK#;G%}Ƌ)3L3XǬ{]Pl|IY V'ԨgT g&-4;azTю Cdm9-ΤGeS5w.`j~J=H^_7J?F-X%H`V|mi]ȉM\t̀ `c="'bpn SI$Z.D.KO;\b|f?ƒBP5a~pqG}I9P8d +lj"=KJG`{٭ZucG #+UM&˧- 1u~T) Oo@_  [αͮ-=Cgu!)£(lu'C\|Z+?[ht]0ǭ^65x4 >$m_BRqx +>WB~H%%`z~|Փd -@ >YEl)]}כrZ.Š΃`mŵ#m\=zNqR%WYi+aȬnl9&YRMSd{ڄbIָYg)^<[[Kyb:P̖h(&s5v J+@xZ D(eզ1v"aoٴR0ao6"M@;!orts\')kӷN/)F!$H:n +qN27Cjf _qbmhP$:qИQP~`A^^U;E3)0D}vsSp{7 O%q9E"\`3/2TFi$N1vs{o[M٦^6i +KG$TM?Dž$ޖ~G!"&OEMr׵=֥S78 #wW6(i`Ӏ3 ;"@(>kq.Cr;`6OUL&8|T+IrI2u>sk벝.?]chB,xܣ J^< nkS(Y3t*:~-:h(exLa0kF_7];wFU1T BwKxǃT(pqZ-(hTW@7<]z?Sζe}/)z}k4(ma`PUZhՁ]tGL|<*TI6Z1R XWӝ3 {lm@hwLib[ +BC)g2SF3 6%U{>0`66N_P='38pF +)vx~E %N *5:;"KP-sbnxjA`&G32x< 8[?\}Q]&u](P Z!Bʃ38<@\eH镗!]WYrhˊ[ +@8:tDNZWV(T$j:fX'uQ25`:{x6c(.Ocp;^w(Q~LIx\d\cTe.HB@a9cW*gQVUFg'5,ܔTT2p]Z$8l09H F*bPS(L>ч&g;_>k-g'cڂnaKGp?8 4Ra.GlAB(ҟ9ӕ0:)bm6y-h_Cz]]Ci|uFeD.f@>ۤtUTa>Zb_ێE'8:5C}-H_+ Y +x%+6g֗Wl +$,.n VaCX7>f]SۢM"5)Y1u +wD5 I?3qJSBmql{,(*Ǭ)~L/[7H:1LZ[c> *9_gT序fPL9/`fDRW„aLSUB3KJzolrZU Wz; =r +;?$AM_ہDHAj ceyZQLP*ĆE5`OB<:G JG5#VKu=ܿu&j8S&C + za{s'8jFE0ҷS-.tvJC/1]]ŔMHbI] hEÔloTn- (mO|GMnEy+MM Q\#`ͪ/ +3< `56 flh$g+Z"%,$/`|S*i]"@sBtя/7. kPK7=C]1[5}K̀;B8RbMY뾘3Ǘ:3&Z9or{R.XH>&͎nRWErm,0,sF)eI.]&?r)0b!qt[ Tl渍=b +>@W-(P@nfgINʙD뭗{|ӃpXXV +*,~MQ'zH(aCOQB;=RsR}%>7gj"afW-tAB=̞|RByq1g)s٥TmX'g +o D C?7,ޏZ2<gq2vX0WW!W]>1T% 2 _ !Ew)~OP̪D[q\#&6Qu\MV*c?/@ 32f}$)'s{EP@#K!RƏn.Ipg>+u B;K|=M4ܭXT8& be1`](\}{^%[ \( ^pJYǻlI$ +! "vՙH'txh{V_ק 7RƉ&b=᳨Zo6BX;Ykr~=ojٵݛǽ .@݈S]髢vItPF^NJ|R_[11D9mEo2|ɟ :;AJ|PU4{9O=-}WEA@Ol//``[-JčQ":$hmg%,BGuѥ]>tΗB8 lw`@l)[.K#8?k{ 3"-La8v1Bޔ*V}הR#pG)P2i<c^ +`eF]:Y]53vW&O6?4u5Q&Sn#>͙ft[s'qeU9S$SFmWvY-36A\)!rb<@!~SN43IG vc tmӔL^{9ǢI:[7aD2Vz Q%PiQt5WXF* ^+"ȧɖsTX/p`Nt?WpmMBnfF+C@K'؈pN/Kb'40;2j]>tCGdDė'n6Eq,X5r]iNscjHX|c6pI70}*\ V?%Sګ 0XJPk}W\hJ H(r5܇i;B( 3h>߇Ph>v5]* i n֞n*aZڢ0ߟS\j" +RGVoы.b M5+]KY+Io5Z85iY$H)@=ԥ| yew3|+Wxf&=%ǹdB:Ab4Av/ o0]ؼZ#:J2 eCz(>IApQRL +W?3XM)/OP%iCJ E!Ef :'"q+w}$sĥI2"BЈ!x"),ZM2Q{O#f_4Gޘh%9חvR̨|o<^k!VΛ[7.wB%OeQPE@֩.~t`˜W!W"NGuFcp"PTef&cLc8LaߌޮbD!1rIZњ5V*b6΢qy>M;.6BG)5; Z9,FëAsp_ClYeHJCu:먎RuRI޶/jޝ/Vf/Y6}*,,1u$ǹGٳBC7ٛj#Roq/iZD/, Y檥ۛ2 "? 29%֘%Ta/gJu%5{>[Ø<  w<5ϐ,~du)OB=VlZpz5g<& y +ň2嫚9YvY`h6v`foBvjzlZ.0eE3鐦*K}T_Q_Hd՘Ɂ.~]*/N[:s:|ТG9g#__mYEICr4-z" {o E MC56$[C?"$\f/C-Rwx*yFtjB(kd%Z[s$k|Jg{ ΞxLQi +8٣t汥gc`#7J-*Lw [=r7I" ^:l3JPj8 dQ @V@NXI|oqB8@GRlȨ7x=3`CKbɊ=9¹CƟ{ꆵ 8x*LMU}jJga*<|̰U09&X D!*sGKu$(/MB"!Ĭ`H0EҚK|N|$4 +uVI}q"YLmqzCX&$>QBj[EǗqϩ3cYe2:'L}S9²)NCT5U3%IvN*xčB*+&"nS1HIq&$`p\3*W2F8ܐt (pɟX;{NZ# VXT1J ̈́z~Cu"*b%(EqKpA1$¡PHd 1v%>+-h䥞ꩬ:I6Rդ?\1ߧg2bb처Ɇ[M(V -a "DP䩢y eAXLTA +v ^!*lhH+V 3BU +RT =F +p`hA +Oäh+-V2K&;[Zk$ >UbQ#ZLjFqAaHnRiaQ4UͶ} +ABYD$I <[3Bbo|r ap&vX6%ZQuҡQ3,;uzs]Lo ,6H<QϫQ mNfX$xԡG QxRDʌ .j X4Up#:GA'q`/EiQ7` 6MpJX@ 8@PP_TfHs115Aj>wʹ2_=:]#LMݙ-BEӠUJAYxE1oNgTz `@tp)QLTU>#wBQHi%H*Ϥ +A` 8m{KehSj"+G<q̩͊`>2Ðz EP ǫLJ&iLD&ClOC&E)#q͐TQ m /CHF*HT}|+p_(4XR>em\o'--N&U%KRdT %8 _ܴhS,2 F41m& +ATqK"^S"tt(J1Ԑ{07ׅc wc%U1@UJCl +cΩ.ap4#UՐ'>-u6P#vH85*J:1FjZÑ3HR^"W<4$0饱{%%2ʚBNgDeQGER WP"W^iE!hPuBu9A!"h@tzR2A\K*3$ 'zWiX/lO刻hrI@xL4^ȇh m!耮F5 bZ[ {g*I(xq l*T6)mD󄟭W0|/!BA-TTJ$DvS?<^[2AA'FP?P|An@XQTLXuhZE3bxE Y4&v͈CWAd/} Ē + + w%iC5!)B(+AE,QxZ`,fiL̐!&ƥ]b=:Ɉ<`&~G-pOÔP}ZaOS1|t#^+*3lLZ\X_}BFD "Du$vnvL,|Rdy("T AIma` \5& ё\A**E/m \5ۭ'ADXtY4H($نmc ^Y$(6Dp; p2S慍eFU`cNPh=jrd$CC? +継ك0c8 W5k`̃ą<[|(blY"@b-֘aYBCIS1LT!HB"DƯC%fRwlyj3)dKW;"PT;E| &NE8DE {F" 8Vǃq l 'T 44z- 6ϊ4b~8$0$dPSejlgt#G=HUKH>3JPPC>:H<=.l&Q]ŸfR[c܋Wh!/S(ohOBp,fOw\ԖƠEBccԈ`&OEK"%A| 0d +sU[(|I_UQrT]1$1J>Rj eR +%W$F3p9U--ܖvc6IPY BRߓ[R Uy|:%"E="h@zeo!U=4>R2{U5T#% y",˘hA D0VN3VGNL0š k\1AYlB%]UYt +Emǚ*c+!$a^,L:A5FJmŀm}.AT>3Yn*WK:E<iyc!aM\ƅH JB:(*3.~QjiLT%F]nKmiFK zpZ<ˌPh1"OY5}" W3& +'pՏDӼXE%(2 @P& D $@08 @ DH +ܛg؍3xŘ\L*:xE2p`5CDfALp)bN#9<#0F?5 +Aٹ䢗E"*j#[/^HHѸ]8 d4'C!t-^*edHOyXB0AIĈ<*44af:IJF/ 6 Aw<-AGL  :۠, &X4,0*zcfCY*;u]B8 0p`q#<͔Z!-tL˟pTC\{ q$ZR0IU#\tN*{ >{"z1? s5H1®"Q4$ԡDS49[tj̈́u3;Xj2h@qf72*d`A>54SJTo+C/SE=Sga3h!ojM`V">LqzP(VќeɱatA_?c4 MUR+¡y+qH ӿKc Är Ӫʔ)<°FH=H|㺜BG 5S,xTJRz%\ F(\k +^"S"E_^V`) G7#ȆF[*2UŃti0H"BRKxW3VKQ()mL 8.0o(ܩ*Z%%W%"e{bzT5|&17H H񨪠>̑ D*zPOއ! YP yS|A*'DG"a)-E"݄(Zhy;EhHDA5{V"e!㋴)HCE+KZ0R +"ez)CzņRiQUtrQB-U##ܬ!TqͷPFNy\LQ!2D3_vjKig6ol&[hABJK7B匨f ɾѪkѢgbP" Km e1iJ04j :L3Un/1E@E/=ɕD<ƨdM72"z( p\LYL (e`Fia(BQJyzˏ zg⎨/bâ(4U9fMRvd3O+nb7L$%QS76" 5P8]d2QF̲1XhP9V;q%n>kmBdU9<*kԻZRG~Wb4p32RvpkP4JvfpܲbGHޅ;٨t^lsK`C& W5G**w+1C7έ+z9&*&!{ʹW6V=rB4CIR ?$b5!/LrYJ O#0 E-="}0Ot udt M#5CvƖpUhΒD)Z1ֈO*7 M@Sʣ~;?aH  <΋CP5I  ϳ17\#HjETpS0 )"[p jQ. xa}Q)1 [r{oZ@{z^EӚaQq}@@&[ LTe#"!`B<}KH Bk$k|{ꌟٟ;cbS\rzoyPoM+Mm^mԦp*UhaQ0[K@ІIMjRMZnr5 q IzxR@BrD8ݠtwiE{pի;!֨<5aEaY-sɐsmZWB^H6jnriryD} +< (%6^ 3;?IhJIД3(q, <Qo3"y3d$5'Gud-2-˟zw7qfhPUAtS_$F; k 6pi >3Ƴ[֯ӌ $LciVUcU,Z%AQ->=_o//m$Eqǟ9yE&xD(u6ZӾ1l܁W:4 69IXm;3) جxǚHR"uZ ""H>2ȧu:LR ٯrD +08RPKX1=lh06sDDae·FNO9ats %_X7ޙ&3BO+b Y[(r}$Q0HM ^Q6%Wu;8' TwԪGo%z`M g=Yz87[Ҍt&h?zN"9֜V m_y:@zCe'VS@-rzԷplYE<, gb,w2{ Ѕ +q2eGBi i +(ԛAdM7 +gp 1m}"s}iwbHs=u#%Z ~1gR+`x\):TCө]Ln +nV_S&%K(L0RHKJ/o<5!pʳ)]blg4]瞈p uK8d[7=\A,p dS'%4&nC}A&FMBt[RZ+*5׊W] zE[L D,۬Ā8'eJj(6^T(#M}HV}'5(|ުZ}*ksg9Vh푼, W+a?C*_7>vuQLw܏z j\Zmdw'KZY&Yre#5z2/}v dD I 4|1t:wY7=18 +aUZ 2 ⊈z; + A\"N*l ;'<{D.E=*p&0SIve4QS:(<\ߤY|Va,.OEQ:0<|#;:FBbN͙js8Rvض8gcEx]"oxYw_gM1.oÞ :Nww6&P&zGQiʼ-6Dwi+lFSt#qr 2I#ʣ2bE\tzi? F#]FFIvi[IR)6$;ՠl!tj'8AN\@Yx8FA5$x>%QS.dh$8G'E8 y\q#6DHY/!t 7 GQ:3\13(. #\8KL>ZCbpWTㅝ]B.b$B^_D.t@0>R6k}#a4ϡ=M/p~LlBMAlĀ̃ >bB23P Pf8Ex,.袁A1߫n7 \Je [oGFaGG2{-c!gExts/VFl3='rT$SX0Qk~[hH"_]x`wXȇXiITQ7Y:(C y:YR%eIs`雋HGEPlv#4Ad wep%G TFqpGs9j U%LYX{U3%K ^#RB|+B?;\qarX^[RA}|D>־>KO!5$rCR,i35^?,#FTg +]uQLhfB啟pQӁ;KWɑQr3ZuqfRX34szFNZcb $.k:k˯pg!-RyNPWxwnp#*ŭQ%V D  +fz8@0WYXR k&gQEws$3qي6gb'f:[*9&:R.]AT;sϻ?qS//w H] "c85\$sP4x +:4˺xJ5fq9Pp#*sX0=T 0b'jX5އ-U3XՁ{숙P%9ZB8 9 +yD*OÊ-D; |+ j>MIK8 3Ema.r ~)zrOt؆MÊq߅1T x!eNy@rB +Ct;uCNBuawoqZVZQ&q\_i`A*DKFG?:#|Zg<.lz"{%Zaxk)]#H7 "/sf[ +/OU\^b k9]#F9qPwBT%S~n@LCs䤸t ]ܮ5ÊRRw._#UH0D`2ڦ1$ (6BdpQS`~_#I@$f@TwկiK}@V9st2O3{NSx n*CL /婟_PB}G!RT=K ^jjFA5\b/$6AVPK]b Zm.`dd;3u5DGyTMڼd)i1q> 4;>}, ,gؒA!595`8RxCUs};z߃ a;}I#)z3#F˹d@clLn@0גQmPxE.+zH@/j VYy#1 +iDh['{eꙿܐWqkǶnCb'[őf=Ǭ> y::ԧ&*js+ZxOk=x.Es鐌hÛJDJRގ5Ǚ, ll˹ +soV mP_:-V#̸Ȋa9䷴!vN-{_#1NFPk9~./%< 7"'c0ejJt֡*֟@k*jh%U נdi\T(ps0D#\ +NNmQVpftr 9li +uN=kWگ .5E(gF0{])1Zv9G˖z<ʇ԰ҹҎ:!o=W.#,ةk:,?- XvqNjwͥBmÌ])-fCeÅֳ T̤|U/eh+7{*z"QRxόPggFz؆3XiEro)@ya+CN"9 X>Ӎx F'g✷1@ܫR,y +Jo7 . G4m)fw_8|i 4 81uL~87ʄhk,9\[@lsT:e7۠0ePIEUGb 2kb+R59` 2'VÃj="4D&i|Gz^QDPE+|bd u#lAɸ65hfHW"Oh ӆdWjgU CoȣV6xjp6*Xv3 ߱f|19 + ƽL=GD\Q -YTN [61j ,B*IQ-CC&_J,:zmhZΑH%8트rL P;-S0`NI qt=Տ;-)|!'wM / kG 3 {>6 -L pTVGS76/CO 06j5<]cWc:ΗbFԧJr+ғP,{]/e#:'y漏.lGiT +-͙04!1k]!-y/Gjz!Ô#I +IHywלRӘa6dAGVPٸyldmoZ؍d"=ƪH"n%^Q|H{ߔfTzt 4jIJ V=%q + Eggg垞5qy!t2q 1PJc[9-KO'Ѝ0;hym«9{͒Rh[A{ zC* p}:fbJ= +MxO|z^=߿NEXOF:T^86v1HHROݑ@/RJ] >Zh\eCPmOLVe%qb3t@=A`I0D$ +KssF)))jfck(ظ/H E$Vڮ ht.7 p<\}eg Twst=NZys4bJF\1Dbr%|GE8\%ՠ+Ѐ7ӤGIP]7>^]qKtJLr:p +fx]@;m4ex/6gxԂr_ tn;:8ôٷʤVtގO XԀA33Fj4 Ϳfc"m!;5nn#Ǵ*Zbi:2`F[ 829\1{*Ϥ`} yzF)  EK:\8?% B`V]hmEӰhn/Rg]QQ;wR[@6g&GfO-Yk?|+1l;*S pA֙t7DS"yaN- +x!ʱ3}'uѻ̫"Z9d̓85Da6_0<Q!^ uu+W 86῝ d蔉@ kW=6hBO}c+6rwfFqk( wGVed02.[pK >?1xɔњ3&bC 0c()\hX}j;xJy*Ok_:a1MSՇ&#!&p$6:HT2v7Sq5w%3J|[t]ЊJ׆?[3E!f!uq>Ir+^*$#Lt8, zS7t|hdEpdP yP9³. +bn&} 2 +`14Ack^H*GW!g8삵w$( Rʆ4Oz&QЗ⻗fo_8Ε,OEQIxtԱ26P,pk~hNE~<z 7,yT1U؊8ؘv{#6;+T Վ#,%Nc+JJ4,aJ3$ R@BvZ%Vl΄v֤8H{|&M%瓌>_gn{r=f_:T#nP(vd)j+](A*3\.tVO@5I; +MӖV у+1:{wm~PS'HuGh +\^ڮpdE}]&gA9r ๐^۽z]K(7ݢT,I[,Wjzc$'D >A܉ 79og3yzL,L@#BnOͧ##m6Ln+WP*?]y:&6 tݣ^%U2͢{58%\|5yŅ;R-!Sb#kr@h4rg}Hт_C "DS*]N K_G ]y},(=P:KS=!;o@VlqZMN z\(xHHa/ِTDH;wω"@J԰ eo>gdYhw;ww!bdsp +aW _ n%-zbFsӃL(}ÐuG8˺;+uU5JӾ^ u[QA/ @~4G|"wȎ̫(":Y@s;N$Lrpj˛Bw66~LFMeᑹ<'q6\܄h1Zk :IͩyE\Ti=(M{"8+Y4qԳk lۺ]{&״b B.VX A5>ҩ'7%NyD!GKEt'2)C=|mf {yǻr%]=Rm]H3H7_0x,&r6蹀 ww @uB;mVOb([9Ū:H5΢~,>y20<]ʎJM;tx?ǪJC9# ,Foi)ܜqm$;IZԻ u@$Sԁ#^u)Й  9}҇oxǩp$m$IX~P]K"VA'MET8K$p5N3>m !%i ʟL`2o&@ҡO5[ٴɹŽdU1=둌S-6 o.0-!8ƝpԢvr9IքU[A觃KVd9WFQ>|qQJ}(RrwY?4ns0-C~rcv'wW6k{&LP#-KSXFswx<!ἓj5\KWJ>W 0oPjCwoN&_D'1Ɋ&m@C<$u; +jAi>SZKL)S&D"=  =27ho/9`|q{.ƾw.wh? DC┸p+:I%/}Y[X[8-{d +dcecq1 I͠; 6;Gݘ䗥5d^uRYl  ~0NrEBJ<>2y$<)tnQ}wXT"UΟYp~K@޶?oX $Q*~|vJ!dYetTՅ_]J@-٠P~f9i*"$Wp:QV_2+4RRϟۖfUTqZ H_ ]eĒ}9ѐԠѨ+r `-K ' sx7znErn T+R=e"5B;?9P{}D@GB)m$ĵ d͆/9Zb*Ƭ?pcSPcj* +M4nıO%U 1$zD ;o@&s{px0wd$|Y_8&t,zXxѡ]'Đљc)Rv8EE]LkFM|sl%}u`0;ܘ ic|s`&6 FADs;"(='hmEIG@|2j*6>a|cf ǿWDW'l` H>W(- W@s[$&8e QP !e*%aQM%WPd)ᗬ~8 &pۇvgW)?N MHR4REΥ=,CVBU5fZ)@d*PdҔ-㔔,EYg +(YqQ/˪_ nYbó/VT#{N{׸yJ+/%Y -j<=;&EHNȕ/jj'Ofi 4~$LgeS R/|' P\3F$Gt`%&xult7NI[6U#ziAwſw51y4I *ɦE'\/ 3E15,Bp/Xv3U{D0dDeN53_(V(ӷܚK +r@uZwC.WX|z3EǸeG}.æ̾['8EtҩլWg̃/i$U2I a6oܬl|p&kÀ 3)sST\V/36s{Du0Ae}@}3>Zx/Y<wgFJRo 0  !$&I˴y&sV<<7P 2t}FJ0m3UVU~ы3﷌C,NsoKG\pOU^c, )(mK1c;/uc#D#C򳴤 cvCW_c6yפ؈ +i^_ +a@uhntOYmW`kM-\f%!>_Xpě|#4g\pfYSa`1#¢c:qh0ѫ_>+U]x{T!t4ǂhsAp0kdg@h%4g<;R^rY@CwG{[|k+͜sh:& d@3p wOTt =q+'Ӯ%*ή>' Cȕf +P+jVS6GD礚c8ʪZ0:,m`e. Ϊ8G|8DJX6Oj#_3\al0o j֥;BY4I&&>pc&!7}Pmޢ@_#ƄtC\}V$3ond´Vl*iv\J2DdU(Jޜ^x532Ο }@;< ՘Dq+#v ӴGf 3Oo:Kbgɩ.D518eh>e2l;p#x>"USqG}sduf4 +YOnz +4vnWsB[U4w?YbP~"I} )Keh0z\KTjک:kGcLtmR `g؋鑞A]Xz,Y'Rz{.~=8waۼ%k d~Uss$3z/z[ ̂E0m|^$÷=xֹYCL4ݥ{о9 8qY=2@]qZ4 D!)@1x96P'VnY>''ɹ#$7 +9.r:O4FAWrx ۲A׽ B&n*i%#t߃j%R;{!=S4=ڼw}q66}"/|$778)g.Q,HY޼[~|DLyw`ҳl1dm`[TϘ^vV9Fe㖈rJ6BWq걧)}> 80aRRk/g,JrfZkI.f+[u1,0N8 {γJW0 T0DȘ``yH:= ^cH)H 1:OP.scHι 6\8) zd} Lmp8 +Z+ {SXKwkEx› ׎U8`)*Z11YҘ?~M>vqAe(Ic_A,TMQ^^Aj[R}@hYZ7sH*ȔA"mKOi|$o,AIZμJm +W:䚓4pȼ]82͠m#@ӹi{L$hKq)+Sر!."8"jV g! +#Kraed!#ځQN\)tTXw.ꚳpfsUESVvna<^$`P)[%CE_Ah\frتf% 79BR uzwskbʐcm E׸ (52RX_~ĆlpMz;JdCՈيw(y5(2 j43;t0ZILBfJxR2m X⮄;J83@^?K $CCxǯ^7Lb1'\0)PD`|{Uhn5'n;M, t*]\0K1z^XBdߝҞ譐SLH۬/ |y g勏h(NM3Ϋs2GFֈC1c\8 *%.-Kִ&hK FM#Ig?M/"KGt|%j99!w {^? 2'-@m2H(wN|, 1೪'ICa@z]S>4Te9dAE:NLd\y@9}WfI%ВLuw`KT<Ȥ +Ű;@X!e +-(MWBfs:HޠTqi\RçEE 챇3jot(ub$4]70>vur\8&ߢ&_]w)[s}n2 MQeTJORH׾@Ju?L(V FfUW.}@u$xIҿIΜL~ +3>ׯzm]%i u;RM--(DZqwr(ߌ}OH 9DQw[PfIUc̯|fD6?lLN6e?16)3dW>.蒕o}孵wM2V[Kk,|4T>&1CJvNZlw-~υ\\#4*5웝: ї`sOa2P5t|M/Db +@t HAJHv%WbYZQtv<x = 8Vpj4҇Y70)rqtbT){&( ,jPuxb|9wXG>ʽ%$Nq}wE&H]zpDn1lA=;y޹X&np-BH6e0,Vh CŻ&fA!k@y; 6ZӲuP4+@2_ Jm K@y`%(lO_w9$ yP;XwCj]n^*7&SHRR|TR2HYkQWdԚh>j/wXݽ+3TV*f(իPw؈oNYݘ> N#sLEN~, _5+oo/UO+r8/ Tr䵴}onEEhʞטRm7_Xg xx~haC!1ﭬA^W?~ 5Ču8CGmKIzp$\aj}2rŰ.Y54mVؗ\iuV5 VvNHЖ鬹 WHaG)0&)a"xqH i[R[ tN|,f%Z*C|S-aU*ॠQ%{g(D+qx;8*P>#y +ČM6dVbgi'¨ScMd_> [ E}¦`bG%@kV#1+'paO(# K5F(G>F?q?r[1g ,25gB-\6ioߟ[7DoBP?ZN[3w=Ĭ8tq&v@yn%UTV0@?Bȅu h`axһЎ6"^'ّq,4g* O)'Tvگ&#*NH|U=7SƔʣiy…ڱcX] JT#Afi0\[6J疶MD̜ߜ efPrm\AbIiuht' IxD:[qp~$\V𖜭S(9QJ׵&d3UdМIlNLvqi"( +)jQoGPfq!jP_֡3-ݰݙ^T/'#ZyHӿ?V+s3קe/:#d2z$hKiT^q Z"'7v~ +BP7/ߺ&gQQ`hB1oQ9]f687NB/-Q>m8 ;e>eyI,QSMb)S\;)*UpI(++VwA]dDeZʑU[ddH},}v*nn=ґ-T聨N$pÕ3NpɒOL1h=#Rc wQEF-'r,!GӅ)Մ|pPAU%x=Md˯ lFxf6KȮl\GpUzXc'ۅ=zUoOlb3T`@WhN%"5!lȓffuߟdSp$ )jM(uvㄇkr}+ k=6A)I(\4\2 +y2NQOf5oLDjsu +ܰ4GG eHqƣ\} m|z8,^o-2ʘwBoT˫53 );IϣXuto%ĥwvIЋj +FVleC+]=Kn0J +[#AЌB$ያټ #܁n v?d6ӑҎJA%|5p{ +$#cy!8΁$!SDFr&5WǮ( BC=qFڥMr;`3dTH&#/j'ˍkn QI;DsDfaaW޺ɴ@ތkf 3cIKDi < |4 nkXP~ 49NdWVXKo +fZ p"{2OQ3oK9xROFRwka$LWw**MC +endstream endobj 17 0 obj [/Indexed/DeviceRGB 255 24 0 R] endobj 24 0 obj <>stream +8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0 +b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup` +E1r!/,*0[*9.aFIR2&b-C#soRZ7Dl%MLY\.?d>Mn +6%Q2oYfNRF$$+ON<+]RUJmC0InDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j$XKrcYp0n+Xl_nU*O( +l[$6Nn+Z_Nq0]s7hs]`XX$6Ra!<<'!!!*'!!rrmPX()~> +endstream endobj 5 0 obj <> endobj 6 0 obj <> endobj 7 0 obj <> endobj 8 0 obj <> endobj 9 0 obj <> endobj 10 0 obj <> endobj 35 0 obj [/View/Design] endobj 36 0 obj <>>> endobj 33 0 obj [/View/Design] endobj 34 0 obj <>>> endobj 31 0 obj [/View/Design] endobj 32 0 obj <>>> endobj 29 0 obj [/View/Design] endobj 30 0 obj <>>> endobj 27 0 obj [/View/Design] endobj 28 0 obj <>>> endobj 25 0 obj [/View/Design] endobj 26 0 obj <>>> endobj 14 0 obj <> endobj 11 0 obj [10 0 R 9 0 R 8 0 R 7 0 R 6 0 R 5 0 R] endobj 37 0 obj <> endobj xref +0 38 +0000000000 65535 f +0000000016 00000 n +0000000207 00000 n +0000035436 00000 n +0000000000 00000 f +0000377163 00000 n +0000377230 00000 n +0000377299 00000 n +0000377373 00000 n +0000377442 00000 n +0000377515 00000 n +0000378398 00000 n +0000035488 00000 n +0000035905 00000 n +0000378285 00000 n +0000127121 00000 n +0000128396 00000 n +0000376588 00000 n +0000128470 00000 n +0000128700 00000 n +0000130259 00000 n +0000195848 00000 n +0000261437 00000 n +0000327026 00000 n +0000376636 00000 n +0000378169 00000 n +0000378200 00000 n +0000378053 00000 n +0000378084 00000 n +0000377937 00000 n +0000377968 00000 n +0000377821 00000 n +0000377852 00000 n +0000377705 00000 n +0000377736 00000 n +0000377589 00000 n +0000377620 00000 n +0000378453 00000 n +trailer +<]>> +startxref +378640 +%%EOF diff --git a/figures/logo-left.png b/figures/logo-left.png new file mode 100755 index 0000000000000000000000000000000000000000..89be975cb3fde1d0f258ada731c7c58223a8758b GIT binary patch literal 29334 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𝔱08D52g;EA zJz(_ewbnX@L{AS5T!Oqp5cYI=37_uULWZT^1a?{*4kL1*WXa4 z-r076S2ZlNN*Nn=_IUK2_gXwm`3#7Dd*F)j&4DXcZw}wce{Ci}=LR>p!HpLg{|n#! VTAv#fYn1>1002ovPDHLkV1l1^hiCu* literal 0 HcmV?d00001 diff --git a/main.tex b/main.tex new file mode 100644 index 0000000..074e917 --- /dev/null +++ b/main.tex @@ -0,0 +1,13 @@ +\documentclass{thesis} +\input{setup.tex} + +\begin{document} +\maketitle +\tableofcontents + +\mainmatter +\input{chapters/intro.tex} + +\backmatter +\input{chapters/acknowledgements.tex} +\end{document} \ No newline at end of file diff --git a/setup.tex b/setup.tex new file mode 100644 index 0000000..29b1e3c --- /dev/null +++ b/setup.tex @@ -0,0 +1,85 @@ +% !TeX root = ./main.tex + +\ustcsetup{ + title = {合肥市第八中学 LaTeX 论文模板}, + class = {高二(26)班}, + author = {何锐哲}, + supervisor = {户雨}, + date = {2024-08-01}, + math-font = xits, +} + +% 加载宏包 +\usepackage{float} + +\usepackage{xcolor} + +\usepackage{listings} + +\usepackage{markdown} + + +% 定理类环境宏包 +\usepackage{amsthm} + +% 插图 +\usepackage{graphicx} + +% 三线表 +\usepackage{booktabs} + +% 跨页表格 +\usepackage{longtable} + +% 算法 +\usepackage[ruled,linesnumbered]{algorithm2e} + +% SI 量和单位 +\usepackage{siunitx} + +% 参考文献使用 BibTeX + natbib 宏包 +% 顺序编码制 +\usepackage[sort]{natbib} +\bibliographystyle{ustcthesis-numerical} + +% 著者-出版年制 +% \usepackage{natbib} +% \bibliographystyle{ustcthesis-authoryear} + +% 本科生参考文献的著录格式 +% \usepackage[sort]{natbib} +% \bibliographystyle{ustcthesis-bachelor} + +% 参考文献使用 BibLaTeX 宏包 +% \usepackage[style=ustcthesis-numeric]{biblatex} +% \usepackage[bibstyle=ustcthesis-numeric,citestyle=ustcthesis-inline]{biblatex} +% \usepackage[style=ustcthesis-authoryear]{biblatex} +% \usepackage[style=ustcthesis-bachelor]{biblatex} +% 声明 BibLaTeX 的数据库 +% \addbibresource{bib/ustc.bib} + +% 配置图片的默认目录 +\graphicspath{{figures/}} + +% 数学命令 +\makeatletter +\newcommand\dif{% % 微分符号 + \mathop{}\!% + \ifustc@math@style@TeX + d% + \else + \mathrm{d}% + \fi +} +\makeatother +\newcommand\eu{{\symup{e}}} +\newcommand\iu{{\symup{i}}} + +% 用于写文档的命令 +\DeclareRobustCommand\cs[1]{\texttt{\char`\\#1}} +\DeclareRobustCommand\env[1]{\texttt{#1}} +\DeclareRobustCommand\pkg[1]{\textsf{#1}} +\DeclareRobustCommand\file[1]{\nolinkurl{#1}} + +% hyperref 宏包在最后调用 +\usepackage{hyperref} diff --git a/thesis.cls b/thesis.cls new file mode 100644 index 0000000..a11ed39 --- /dev/null +++ b/thesis.cls @@ -0,0 +1,3144 @@ +% +% Copyright (C) 2015-2023 by USTC TeX Users Group +% +% This file may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.3c +% of this license or (at your option) any later version. +% The latest version of this license is in +% https://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2008 or later. +% + +\NeedsTeXFormat{LaTeX2e}[2017/04/15] +\newcommand\ustcthesisversion{3.3.4} +\ProvidesClass{thesis}[2023/05/10 {\ustcthesisversion} USTC thesis template] + +% 报错和警告 +\newcommand\ustc@error[1]{% + \ClassError{thesis}{#1}{}% +} +\newcommand\ustc@warning[1]{% + \ClassWarning{thesis}{#1}% +} + +% 检查 \LaTeXe{} kernel 版本 +\@ifl@t@r\fmtversion{2017/04/15}{}{ + \ustc@error{% + TeX Live 2017 or later version is required to compile this document% + } +} + +% 检查编译引擎,要求使用 XeLaTeX 或 LuaLaTeX。 +\RequirePackage{iftex} +\ifXeTeX\else + \ifLuaTeX\else + \ustc@error{XeLaTeX or LuaLaTeX is required to compile this document} + \fi +\fi + + +% \subsection{处理选项} + +\RequirePackage{kvdefinekeys} +\RequirePackage{kvsetkeys} +\RequirePackage{kvoptions} + +% 提供一个 \cs{ustcsetup} 命令支持 \emph{key-value} 的方式来设置。 +\let\ustc@setup@hook\@empty +\newcommand\ustcsetup[1]{% + \let\ustc@setup@hook\@empty + \kvsetkeys{ustc}{#1}% + \ustc@setup@hook +} + +% 同时用 \emph{key-value} 的方式来定义这些接口: +% \begin{latex} +% \ustc@define@key{ +% = { +% name = , +% choices = { +% , +% , +% }, +% default = , +% code = , +% }, +% } +% \end{latex} + +% 其中 |choices| 设置允许使用的值,默认为第一个(或者 \meta{default}); +% \meta{code} 是相应的内容被设置时执行的代码。 + +\newcommand\ustc@define@key[1]{% + \kvsetkeys{ustc@key}{#1}% +} +\kv@set@family@handler{ustc@key}{% +% +% \cs{ustcsetup} 会将 \meta{value} 存到 \cs{ustc@\meta{key}}, +% 但是宏的名字包含 “-” 这样的特殊字符时不方便直接调用,比如 |key = math-style|, +% 这时可以用 |name| 设置 \meta{key} 的别称,比如 |key = math@style|, +% 这样就可以通过 \cs{ustc@math@style} 来引用。 +% |default| 是定义该 \meta{key} 时默认的值,缺省为空。 +% + \@namedef{ustc@#1@@name}{#1}% + \def\ustc@@default{}% + \def\ustc@@choices{}% + \kv@define@key{ustc@value}{name}{% + \@namedef{ustc@#1@@name}{##1}% + }% + % + % 由于在定义接口时,\cs{ustc@\meta{key}@@code} 不一定有定义, + % 而且在文档类/宏包中还有可能对该 |key| 的 |code| 进行添加。 + % 所以 \cs{ustc@\meta{key}@@code} 会检查如果在定义文档类/宏包时则推迟执行,否则立即执行。 + % + \@namedef{ustc@#1@@check}{}% + \@namedef{ustc@#1@@code}{}% + % + % 保存下 |choices = {}| 定义的内容,在定义 \cs{ustc@\meta{name}} 后再执行。 + % + \kv@define@key{ustc@value}{choices}{% + \def\ustc@@choices{##1}% + \@namedef{ustc@#1@@reset}{}% + % + % \cs{ustc@\meta{key}@check} 检查 |value| 是否有效, + % 并设置 \cs{ifustc@\meta{name}@\meta{value}}。 + % + \@namedef{ustc@#1@@check}{% + \@ifundefined{% + ifustc@\@nameuse{ustc@#1@@name}@\@nameuse{ustc@\@nameuse{ustc@#1@@name}}% + }{% + \ustc@error{Invalid value "#1 = \@nameuse{ustc@\@nameuse{ustc@#1@@name}}"}% + }% + \@nameuse{ustc@#1@@reset}% + \@nameuse{ustc@\@nameuse{ustc@#1@@name}@\@nameuse{ustc@\@nameuse{ustc@#1@@name}}true}% + }% + }% + \kv@define@key{ustc@value}{default}{% + \def\ustc@@default{##1}% + }% + \kvsetkeys{ustc@value}{#2}% + \@namedef{ustc@\@nameuse{ustc@#1@@name}}{}% + % + % 第一个 \meta{choice} 设为 \meta{default}, + % 并且对每个 \meta{choice} 定义 \cs{ifustc@\meta{name}@\meta{choice}}。 + % + \kv@set@family@handler{ustc@choice}{% + \ifx\ustc@@default\@empty + \def\ustc@@default{##1}% + \fi + \expandafter\newif\csname ifustc@\@nameuse{ustc@#1@@name}@##1\endcsname + \expandafter\g@addto@macro\csname ustc@#1@@reset\endcsname{% + \@nameuse{ustc@\@nameuse{ustc@#1@@name}@##1false}% + }% + }% + \kvsetkeys@expandafter{ustc@choice}{\ustc@@choices}% + % + % 将 \meta{default} 赋值到 \cs{ustc@\meta{name}},如果非空则执行相应的代码。 + % + \expandafter\let\csname ustc@\@nameuse{ustc@#1@@name}\endcsname\ustc@@default + \expandafter\ifx\csname ustc@\@nameuse{ustc@#1@@name}\endcsname\@empty\else + \@nameuse{ustc@#1@@check}% + \fi + % + % 定义 \cs{ustcsetup} 接口。 + % + \kv@define@key{ustc}{#1}{% + \@namedef{ustc@\@nameuse{ustc@#1@@name}}{##1}% + \@nameuse{ustc@#1@@check}% + \@nameuse{ustc@#1@@code}% + }% +} + +% 定义接口向 |key| 添加 |code|: + +\newcommand\ustc@option@hook[2]{% + \expandafter\g@addto@macro\csname ustc@#1@@code\endcsname{#2}% +} + +\ustc@define@key{ + degree = { + choices = { + doctor, + master, + bachelor, + }, + default = doctor, + }, + degree-type = { + name = degree@type, + choices = { + academic, + professional, + }, + default = academic, + }, + main-language = { + name = main@language, + choices = { + chinese, + english, + }, + default = chinese, + }, + language = { + choices = { + chinese, + english, + }, + default = chinese, + }, + system = { + choices = { + auto, + mac, + unix, + windows, + }, + default = auto, + }, + fontset = { + choices = { + auto, + windows, + mac, + ubuntu, + fandol, + none, + }, + default = auto, + }, + font = { + choices = { + auto, + times, + termes, + stix, + xits, + libertinus, + newcm, + lm, + newtx, + none, + }, + default = auto, + }, + cjk-font = { + name = cjk@font, + choices = { + auto, + windows, + mac, + noto, + fandol, + none, + }, + default = auto, + }, + math-font = { + name = math@font, + choices = { + auto, + stix, + xits, + libertinus, + newcm, + cm, + lm, + newtx, + none, + }, + default = auto, + }, + math-style = { + name = math@style, + choices = { + GB, + ISO, + TeX, + }, + }, + uppercase-greek = { + name = uppercase@greek, + choices = { + italic, + upright, + }, + }, + less-than-or-equal = { + name = leq, + choices = { + slanted, + horizontal, + }, + }, + integral = { + choices = { + upright, + slanted, + }, + }, + integral-limits = { + name = integral@limits, + choices = { + true, + false, + }, + }, + partial = { + choices = { + upright, + italic, + }, + }, + math-ellipsis = { + name = math@ellipsis, + choices = { + centered, + lower, + AMS, + }, + }, + real-part = { + name = real@part, + choices = { + roman, + fraktur, + }, + }, + cite-style = { + name = cite@style, + choices = { + super, + inline, + authoryear, + }, + }, + output = { + choices = { + print, + electronic, + }, + default = print, + }, + section-style = { + name = section@style, + choices = { + chinese, + arabic, + }, + default = chinese, + }, + badge-color = { + name = badge@color, + choices = { + blue, + black, + }, + default = blue, + }, + reviewer = { + choices = { + true, + false, + }, + default = false, + }, +} + +% 将 \ustc@cite@style 置空方便后续进行判断。 +\def\ustc@cite@style{} + +\newif\ifustc@degree@graduate +\newcommand\ustc@set@graduate{% + \ifustc@degree@bachelor + \ustc@degree@graduatefalse + \else + \ustc@degree@graduatetrue + \fi +} +\ustc@set@graduate +\ustc@option@hook{degree}{% + \ustc@set@graduate +} + +% 使用 \pkg{kvoptions} 提供的 key-value 接口, +\SetupKeyvalOptions{ + family = ustc, + prefix = ustc@, + setkeys = \kvsetkeys, +} + +% 设置默认 \option{openany}。 +\DeclareBoolOption[false]{openright} +\DeclareComplementaryOption{openany}{openright} + +% 兼容旧版本的文档类选项。 +% Reserved for compatibility until 2020-07-01. +\DeclareVoidOption{doctor}{\ustcsetup{degree=doctor}} +\DeclareVoidOption{master}{\ustcsetup{degree=master}} +\DeclareVoidOption{bachelor}{\ustcsetup{degree=bachelor}} +\DeclareVoidOption{chinese}{\ustcsetup{language=chinese}} +\DeclareVoidOption{english}{\ustcsetup{language=english}} +\DeclareVoidOption{academic}{\ustcsetup{degree-type=academic}} +\DeclareVoidOption{professional}{\ustcsetup{degree-type=professional}} +\DeclareVoidOption{print}{\ustcsetup{output=print}} +\DeclareVoidOption{pdf}{\ustcsetup{output=electronic}} +\newif\ifustc@legacy@cite@style +\DeclareVoidOption{super}{\ustcsetup{cite-style=super}\ustc@legacy@cite@styletrue} +\DeclareVoidOption{numbers}{\ustcsetup{cite-style=inline}\ustc@legacy@cite@styletrue} +\DeclareVoidOption{authoryear}{\ustcsetup{cite-style=authoryear}\ustc@legacy@cite@styletrue} +\DeclareVoidOption{arabic}{\ustcsetup{section-style=arabic}} +\DeclareVoidOption{colorlogo}{\ustcsetup{badge-color=blue}} +\DeclareVoidOption{bwlogo}{\ustcsetup{badge-color=black}} + +% 载入 \cls{ctexbook}。 +\DeclareDefaultOption{\PassOptionsToClass{\CurrentOption}{ctexbook}} +\ProcessKeyvalOptions* + + +% \subsection{加载文档类和宏包} + +\ifustc@openright + \PassOptionsToClass{openright}{book} +\else + \PassOptionsToClass{openany}{book} +\fi + +\ifustc@output@electronic + \PassOptionsToClass{oneside}{book} +\fi +\PassOptionsToPackage{no-math}{fontspec} + +% 载入 \cls{ctexbook} 文档类,注意要求为 2.4.9 或更高的版本。 +\LoadClass[UTF8,a4paper,scheme=plain,zihao=-4,fontset=none]{ctexbook}[2017/04/01] + +% 建议在模板开始处载入全部宏包,不要轻易改变加载顺序。 +% \pkg{hyperref} 一般在最后加载。 +\RequirePackage{etoolbox} +\RequirePackage{amsmath} +\RequirePackage{fontspec}[2017/03/31] +\RequirePackage{geometry} +\RequirePackage{graphicx} +\RequirePackage{fancyhdr} +\RequirePackage{color} +\RequirePackage{titletoc} +\RequirePackage{caption} +\RequirePackage[perpage]{footmisc} +\RequirePackage{url} +\RequirePackage{notoccite} +\RequirePackage{multirow} + +% 如果用户在导言区未调用 \pkg{biblatex},则自动调用 \pkg{natbib}。 +\AtEndPreamble{ + \@ifpackageloaded{biblatex}{}{ + \RequirePackage{natbib} + } +} + +% 对冲突的宏包报错。 +\RequirePackage{filehook} +\newcommand\ustc@package@conflict[2]{ + \AtEndOfPackageFile*{#1}{% + \AtBeginOfPackageFile*{#2}{% + \ustc@error{The "#2" package is incompatible with "#1"}% + }% + }% +} + +\ustc@package@conflict{biblatex}{bibunits} +\ustc@package@conflict{biblatex}{chapterbib} +\ustc@package@conflict{biblatex}{cite} +\ustc@package@conflict{biblatex}{multibib} +\ustc@package@conflict{biblatex}{natbib} + +\ustc@package@conflict{bibunits}{biblatex} +\ustc@package@conflict{bibunits}{chapterbib} +\ustc@package@conflict{bibunits}{multibib} + +\ustc@package@conflict{unicode-math}{amscd} +\ustc@package@conflict{unicode-math}{amsfonts} +\ustc@package@conflict{unicode-math}{amssymb} +\ustc@package@conflict{unicode-math}{bbm} +\ustc@package@conflict{unicode-math}{bm} +\ustc@package@conflict{unicode-math}{eucal} +\ustc@package@conflict{unicode-math}{eufrak} +\ustc@package@conflict{unicode-math}{mathrsfs} +\ustc@package@conflict{unicode-math}{newtxmath} +\ustc@package@conflict{unicode-math}{upgreek} + +\ustc@package@conflict{natbib}{biblatex} +\ustc@package@conflict{natbib}{cite} + +\ustc@package@conflict{newtxmath}{amsfonts} +\ustc@package@conflict{newtxmath}{amssymb} +\ustc@package@conflict{newtxmath}{unicode-math} +\ustc@package@conflict{newtxmath}{upgreek} + + +% \pkg{amsthm} 需要在 \pkg{newtx} 前载入,参考 \pkg{newtx} 的文档。 +\AtBeginOfPackageFile*{amsthm}{ + \@ifpackageloaded{newtxmath}{ + \ustc@error{The "amsthm" package should be loaded before setting "newtxmath"} + }{} +}% + + + +% \subsection{处理语言} + +% 定义 \cs{ustc@main@language},当在导言区修改 \option{language} 时, +% 保存为论文的主要语言; +% \cs{ustc@reset@main@language} 则用于正文中恢复为主要语言。 +% \begin{macrocode} +\ustcsetup{main-language=\ustc@language}% +\let\ustc@main@language\ustc@language + +\ustc@option@hook{language}{% + \ifx\@begindocumenthook\@undefined\else + \ustcsetup{main-language=\ustc@language}% + \let\ustc@main@language\ustc@language + \fi +} +\newcommand\ustc@reset@main@language{% + \ustcsetup{language = \ustc@main@language}% + \let\ustc@language\ustc@main@language +} + +% 带圈数字和星号使用中文字体。 +\ifLuaTeX + % ctex 将带圈数字 U+2460–U+24FF 归入字符范围 3(ALchar),这里改回范围 6(JAchar) + \ltjdefcharrange{3}{% + "2000-"243F, "2500-"27BF, "2900-"29FF, "2B00-"2BFF} + \ltjdefcharrange{6}{% + "2460-"24FF, "2E80-"2EFF, "3000-"30FF, "3190-"319F, "31F0-"4DBF, + "4E00-"9FFF, "F900-"FAFF, "FE10-"FE1F, "FE30-"FE6F, "FF00-"FFEF, + "1B000-"1B16F, "1F100-"1F2FF, "20000-"3FFFF, "E0100-"E01EF} +\else + \ifXeTeX + \xeCJKDeclareCharClass{CJK}{"2460 -> "2473} + \xeCJKDeclareCharClass{CJK}{"2605} + \fi +\fi + +% 由于 Unicode 的一些标点符号是中西文混用的: +% U+00B7、U+2013、U+2014、U+2018、U+2019、 +% U+201C、U+201D、U+2025、U+2026、U+2E3A, +% 所以要根据语言设置正确的字体。 +% https://github.com/CTeX-org/ctex-kit/issues/389 +\newcommand\ustc@set@punctuations{% + \ifustc@language@chinese + \ifLuaTeX + \ltjsetparameter{jacharrange={+9}} + \else + \ifXeTeX + \xeCJKDeclareCharClass{FullLeft}{"2018, "201C}% + \xeCJKDeclareCharClass{FullRight}{ + "00B7, "2019, "201D, "2013, "2014, "2025, "2026, "2E3A, + }% + \fi + \fi + \else + \ifLuaTeX + \ltjsetparameter{jacharrange={-9}} + \else + \ifXeTeX + \xeCJKDeclareCharClass{HalfLeft}{"2018, "201C}% + \xeCJKDeclareCharClass{HalfRight}{ + "00B7, "2019, "201D, "2013, "2014, "2025, "2026, "2E3A, + }% + \fi + \fi + \fi +} +\ustc@set@punctuations +\ustc@option@hook{language}{\ustc@set@punctuations} + +% 根据语言设置各章节的名称,只有在导言区设置 \option{language} 时会修改, +% 而在正文局部切换语言时则不变。 + +% 由于《撰写手册》中的“speciality”一词使用的是英式拼法, +% 所以“acknowledgements”也保持一致。 +\newcommand\ustc@set@chapter@names{% + \ifustc@main@language@chinese + \def\contentsname{目录}% + \def\listfigurename{插图清单}% + \def\listtablename{表格清单}% + \ctexset{ + chapter/name = {第,章}, + }% + \def\bibname{参考文献}% + \def\appendixname{附录}% + \def\ustc@acknowledgements@name{致谢}% + \def\ustc@publication@name{在读期间发表的学术论文与取得的研究成果}% + \newcommand\ustc@notation@name{符号说明}% + \else + \def\contentsname{Contents}% + \def\listfigurename{List of Figures}% + \def\listtablename{List of Tables}% + \ctexset{ + chapter/name = {\chaptername\space}, + }% + \def\bibname{Bibliography}% + \def\appendixname{Appendix}% + \def\ustc@acknowledgements@name{Acknowledgements}% + \def\ustc@publication@name{Publications}% + \def\ustc@notation@name{Notation}% + \fi +} +\ustc@set@chapter@names +\ustc@option@hook{main-language}{\ustc@set@chapter@names} + +% 这部分名称在正文中局部地修改语言时会发生变化。 +\newcommand\ustc@set@names{% + \ifustc@language@chinese + \def\figurename{图}% + \def\tablename{表}% + \else + \def\figurename{Figure}% + \def\tablename{Table}% + \fi +} +\ustc@set@names +\ustc@option@hook{language}{\ustc@set@names} + + +% \subsection{字体} + +% 字号 + +% 正文字号12bp,研究生行距20bp,本科生行距22bp; +% 其他命令的行距按照相同的的比例设置,如表~\ref{tab:fontsize}。 +% \begin{table}[htb] +% \centering +% \caption{标准字体命令与字号、行距的对应} +% \label{tab:fontsize} +% \begin{tabular}{lllll} +% \toprule +% 字体命令 & 字号 & bp & 研究生行距 & 本科生行距 \\ +% \midrule +% \cs{tiny} & 小六 & 6.5 & 10.83 & 11.92 \\ +% \cs{scriptsize} & 六号 & 7.5 & 12.5 & 13.75 \\ +% \cs{footnotesize} & 小五 & 9 & 15 & 16.5 \\ +% \cs{small} & 五号 & 10.5 & 17.5 & 19.25 \\ +% \cs{normalsize} & 小四 & 12 & 20 & 22 \\ +% \cs{large} & 小三 & 15 & 25 & 27.5 \\ +% \cs{Large} & 小二 & 18 & 30 & 33 \\ +% \cs{LARGE} & 二号 & 22 & 36.67 & 40.33 \\ +% \cs{huge} & 小一 & 24 & 40 & 44 \\ +% \cs{Huge} & 一号 & 26 & 43.33 & 47.67 \\ +% \bottomrule +% \end{tabular} +% \end{table} +% +% 注意重定义 \normalsize 应在 \pkg{unicode-math} 的 \cs{setmathfont} 前。 +\newcommand\ustc@set@font@size{% + \ifustc@degree@graduate + \renewcommand\normalsize{% + \@setfontsize\normalsize{12bp}{20bp}% + \abovedisplayskip 12bp \@plus3bp \@minus7bp% + \abovedisplayshortskip \z@ \@plus3bp% + \belowdisplayshortskip 6.5bp \@plus3.5bp \@minus3bp% + \belowdisplayskip \abovedisplayskip + \let\@listi\@listI}% + % + % 注意第~\ref{sec:list} 节去掉了列表的间距,所以不再修改 \cs{@listi}。 + \else + \renewcommand\normalsize{% + \@setfontsize\normalsize{12bp}{22bp}% + \abovedisplayskip 12bp \@plus3bp \@minus7bp% + \abovedisplayshortskip \z@ \@plus3bp% + \belowdisplayshortskip 6.5bp \@plus3.5bp \@minus3bp% + \belowdisplayskip \abovedisplayskip + \let\@listi\@listI}% + \fi + \normalsize + \ifx\MakeRobust\@undefined \else + \MakeRobust\normalsize + \fi +} +\ustc@set@font@size +\ustc@option@hook{degree}{\ustc@set@font@size} + +% 设置行距的倍数为 1。 +\linespread{1}\selectfont + + +% 检测系统 +\ifustc@system@auto + \IfFileExists{/System/Library/Fonts/Menlo.ttc}{ + \ustcsetup{system = mac} + }{ + \IfFileExists{/dev/null}{ + \IfFileExists{null:}{ + \ustcsetup{system = windows} + }{ + \ustcsetup{system = unix} + } + }{ + \ustcsetup{system = windows} + } + } +\fi + +% 处理 \opt{fontset} +\ifustc@fontset@auto + \ifustc@system@windows + \ustcsetup{fontset = windows} + \else + \ifustc@system@mac + \ustcsetup{fontset = mac} + \else + \IfFontExistsTF{Noto Serif CJK SC}{ + \ustcsetup{fontset = ubuntu} + }{ + \ustcsetup{fontset = fandol} + } + \fi + \fi +\fi + +% 《撰写手册》要求西文字体使用 Times New Roman 和 Arial, +% 但是在 Linux 下没有这两个字体,所以使用它们的克隆版 TeX Gyre Termes 和 +% TeX Gyre Heros。 +\ifustc@font@auto + \ifustc@fontset@windows + \ustcsetup{font=times} + \else + \ifustc@fontset@mac + \ustcsetup{font=times} + \else + \ustcsetup{font=termes} + \fi + \fi +\fi + +% Times New Roman + Arial +\newcommand\ustc@set@font@times{% + \setmainfont{Times New Roman}% + \setsansfont{Arial}% + \ifustc@system@mac + \setmonofont{Menlo}[Scale = MatchLowercase]% + \else + \setmonofont{Courier New}[Scale = MatchLowercase]% + \fi +} + +% TeX Gyre Termes +\newcommand\ustc@set@font@termes{% + \setmainfont{texgyretermes}[ + Extension = .otf, + UprightFont = *-regular, + BoldFont = *-bold, + ItalicFont = *-italic, + BoldItalicFont = *-bolditalic, + ]% + \ustc@set@texgyre@sans@mono +} + +\newcommand\ustc@set@texgyre@sans@mono{% + \setsansfont{texgyreheros}[ + Extension = .otf, + UprightFont = *-regular, + BoldFont = *-bold, + ItalicFont = *-italic, + BoldItalicFont = *-bolditalic, + ]% + \setmonofont{texgyrecursor}[ + Extension = .otf, + UprightFont = *-regular, + BoldFont = *-bold, + ItalicFont = *-italic, + BoldItalicFont = *-bolditalic, + Scale = MatchLowercase, + Ligatures = CommonOff, + ]% +} + +% STIX Two 字体。 +% STIX 文件名在 v2.10 2020-12-19 从 +% \file{STIX2Text-Regular.otf}、\file{STIX2Math.otf} 分别改为 +% \file{STIXTwoText-Regular.otf}、\file{STIXTwoMath-Regular.otf}。 +\let\ustc@font@family@stix\@empty +\newcommand\ustc@set@stix@names{% + \ifx\ustc@font@family@stix\@empty + \IfFontExistsTF{STIXTwoText-Regular.otf}{% + \gdef\ustc@font@family@stix{STIXTwoText}% + \gdef\ustc@font@name@stix@math{STIXTwoMath-Regular}% + }{% + \gdef\ustc@font@family@stix{STIX2Text}% + \gdef\ustc@font@name@stix@math{STIX2Math}% + }% + \fi +} + +\newcommand\ustc@set@font@stix{% + \ustc@set@stix@names + \setmainfont{\ustc@font@family@stix}[ + Extension = .otf, + UprightFont = *-Regular, + BoldFont = *-Bold, + ItalicFont = *-Italic, + BoldItalicFont = *-BoldItalic, + ]% + \ustc@set@texgyre@sans@mono +} + +% XITS 字体。 +% XITS 的文件名在 v1.109 2018-09-30 +% 从 \file{xits-regular.otf}、\file{xits-math.otf} 分别改为 +% \file{XITS-Regular.otf}、\file{XITSMath-Regular.otf}。 +\let\ustc@font@family@xits\@empty +\newcommand\ustc@set@xits@names{% + \ifx\ustc@font@family@xits\@empty + \IfFontExistsTF{XITSMath-Regular.otf}{% + \gdef\ustc@font@family@xits{XITS}% + \gdef\ustc@font@style@xits@rm{Regular}% + \gdef\ustc@font@style@xits@bf{Bold}% + \gdef\ustc@font@style@xits@it{Italic}% + \gdef\ustc@font@style@xits@bfit{BoldItalic}% + \gdef\ustc@font@name@xits@math{XITSMath-Regular}% + }{% + \gdef\ustc@font@family@xits{xits}% + \gdef\ustc@font@style@xits@rm{regular}% + \gdef\ustc@font@style@xits@bf{bold}% + \gdef\ustc@font@style@xits@it{italic}% + \gdef\ustc@font@style@xits@bfit{bolditalic}% + \gdef\ustc@font@name@xits@math{xits-math}% + }% + \fi +} + +\newcommand\ustc@set@font@xits{% + \ustc@set@xits@names + \setmainfont{\ustc@font@family@xits}[ + Extension = .otf, + UprightFont = *-\ustc@font@style@xits@rm, + BoldFont = *-\ustc@font@style@xits@bf, + ItalicFont = *-\ustc@font@style@xits@it, + BoldItalicFont = *-\ustc@font@style@xits@bfit, + ]% + \ustc@set@texgyre@sans@mono +} + +% Libertinus 的文件名在 v6.7 2019-04-03 从小写改为驼峰式, +% 在大小写敏感的平台上需要进行判断。 +\let\ustc@font@family@libertinus\@empty +\newcommand\ustc@set@libertinus@names{% + \ifx\ustc@font@family@libertinus\@empty + \IfFontExistsTF{LibertinusSerif-Regular.otf}{% + \gdef\ustc@font@family@libertinus@serif{LibertinusSerif}% + \gdef\ustc@font@family@libertinus@sans{LibertinusSans}% + \gdef\ustc@font@name@libertinus@math{LibertinusMath-Regular}% + \gdef\ustc@font@style@libertinus@rm{Regular}% + \gdef\ustc@font@style@libertinus@bf{Bold}% + \gdef\ustc@font@style@libertinus@it{Italic}% + \gdef\ustc@font@style@libertinus@bfit{BoldItalic}% + }{% + \gdef\ustc@font@family@libertinus@serif{libertinusserif}% + \gdef\ustc@font@family@libertinus@sans{libertinussans}% + \gdef\ustc@font@name@libertinus@math{libertinusmath-regular}% + \gdef\ustc@font@style@libertinus@rm{regular}% + \gdef\ustc@font@style@libertinus@bf{bold}% + \gdef\ustc@font@style@libertinus@it{italic}% + \gdef\ustc@font@style@libertinus@bfit{bolditalic}% + }% + \fi +} + +\newcommand\ustc@set@font@libertinus{% + \ustc@set@libertinus@names + \setmainfont{\ustc@font@family@libertinus@serif}[ + Extension = .otf, + UprightFont = *-\ustc@font@style@libertinus@rm, + BoldFont = *-\ustc@font@style@libertinus@bf, + ItalicFont = *-\ustc@font@style@libertinus@it, + BoldItalicFont = *-\ustc@font@style@libertinus@bfit, + ]% + \setsansfont{\ustc@font@family@libertinus@sans}[ + Extension = .otf, + UprightFont = *-\ustc@font@style@libertinus@rm, + BoldFont = *-\ustc@font@style@libertinus@bf, + ItalicFont = *-\ustc@font@style@libertinus@it, + ]% + \setmonofont{lmmonolt10}[ + Extension = .otf, + UprightFont = *-regular, + BoldFont = *-bold, + ItalicFont = *-oblique, + BoldItalicFont = *-boldoblique, + ]% +} + +% New Computer Modern +\newcommand\ustc@set@font@newcm{% + \setmainfont{NewCM10}[ + Extension = .otf, + UprightFont = *-Book, + BoldFont = *-Bold, + ItalicFont = *-BookItalic, + BoldItalicFont = *-BoldItalic, + ]% + \setsansfont{NewCMSans10}[ + Extension = .otf, + UprightFont = *-Book, + BoldFont = *-Bold, + ItalicFont = *-BookOblique, + BoldItalicFont = *-BoldOblique, + ]% + \setmonofont{NewCMMono10}[ + Extension = .otf, + UprightFont = *-Book, + ItalicFont = *-BookItalic, + BoldFont = *-Bold, + BoldItalicFont = *-BoldOblique, + ]% +} + +% Latin Modern +\newcommand\ustc@set@font@lm{% + \setmainfont{lmroman10}[ + Extension = .otf, + UprightFont = *-regular, + BoldFont = *-bold, + ItalicFont = *-italic, + BoldItalicFont = *-bolditalic, + ]% + \setsansfont{lmsans10}[ + Extension = .otf, + UprightFont = *-regular, + BoldFont = *-bold, + ItalicFont = *-oblique, + BoldItalicFont = *-boldoblique, + ]% + \setmonofont{lmmonolt10}[ + Extension = .otf, + UprightFont = *-regular, + BoldFont = *-bold, + ItalicFont = *-oblique, + BoldItalicFont = *-boldoblique, + ]% +} + +\newcommand\ustc@set@font@newtx{% + \RequirePackage{newtxtext}% +} + +\newcommand\ustc@set@font{% + \@nameuse{ustc@set@font@\ustc@font}% +} +\ustc@set@font +\ustc@option@hook{font}{\ustc@set@font} + +% 中文字体 +\ifustc@cjk@font@auto + \ifustc@fontset@mac + \ustcsetup{cjk-font = mac} + \else + \ifustc@fontset@windows + \ustcsetup{cjk-font = windows} + \else + \ifustc@fontset@ubuntu + \ustcsetup{cjk-font = noto} + \else + \ustcsetup{cjk-font = fandol} + \fi + \fi + \fi +\fi + +% Windows 的中易字体。 +\newcommand\ustc@set@cjk@font@windows{% + \setCJKmainfont{SimSun}[ + AutoFakeBold = 3, + ItalicFont = KaiTi, + ]% + \setCJKsansfont{SimHei}[AutoFakeBold = 3]% + \setCJKmonofont{FangSong}% + \setCJKfamilyfont{zhsong}{SimSun}[AutoFakeBold = 3]% + \setCJKfamilyfont{zhhei}{SimHei}[AutoFakeBold = 3]% + \setCJKfamilyfont{zhkai}{KaiTi}% + \setCJKfamilyfont{zhfs}{FangSong}% +} + +% macOS 的华文字体。 +\newcommand\ustc@set@cjk@font@mac{% + \defaultCJKfontfeatures{}% + \setCJKmainfont{Songti SC}[ + UprightFont = * Light, + BoldFont = * Bold, + ItalicFont = Kaiti SC Regular, + BoldItalicFont = Kaiti SC Bold, + ]% + \setCJKsansfont{Heiti SC}[ + UprightFont = * Light, + BoldFont = * Medium, + ]% + \setCJKmonofont{STFangsong} + \setCJKfamilyfont{zhsong}{Songti SC}[ + UprightFont = * Light, + BoldFont = * Bold, + ]% + \setCJKfamilyfont{zhhei}{Heiti SC}[ + UprightFont = * Light, + BoldFont = * Medium, + ]% + \setCJKfamilyfont{zhfs}{STFangsong}% + \setCJKfamilyfont{zhkai}{Kaiti SC}[ + UprightFont = * Regular, + BoldFont = * Bold, + ]% + \setCJKfamilyfont{zhli}{Baoli SC}% + \setCJKfamilyfont{zhyuan}{Yuanyi SC}[ + UprightFont = * Light, + BoldFont = * Bold, + ]% +} + +% 思源字体。 +% 注意 Noto CJK 的 regular 字重名字不带“Regular”。 +\newcommand\ustc@set@cjk@font@noto{% + \defaultCJKfontfeatures{}% + \setCJKmainfont{Noto Serif CJK SC}[ + UprightFont = * Light, + BoldFont = * Bold, + ItalicFont = FandolKai-Regular, + ItalicFeatures = {Extension = .otf}, + Script = CJK, + ]% + \setCJKsansfont{Noto Sans CJK SC}[ + BoldFont = * Medium, + Script = CJK, + ]% + \setCJKmonofont{Noto Sans Mono CJK SC}[ + Script = CJK, + ]% + \setCJKfamilyfont{zhsong}{Noto Serif CJK SC}[ + UprightFont = * Light, + UprightFont = * Bold, + Script = CJK, + ]% + \setCJKfamilyfont{zhhei}{Noto Sans CJK SC}[ + BoldFont = * Medium, + Script = CJK, + ]% + \setCJKfamilyfont{zhfs}{FandolFang}[ + Extension = .otf, + UprightFont = *-Regular, + ]% + \setCJKfamilyfont{zhkai}{FandolKai}[ + Extension = .otf, + UprightFont = *-Regular, + ]% +} + +% Fandol 字体。 +\newcommand\ustc@set@cjk@font@fandol{% + \defaultCJKfontfeatures{}% + \setCJKmainfont{FandolSong}[ + Extension = .otf, + UprightFont = *-Regular, + BoldFont = *-Bold, + ItalicFont = FandolKai-Regular, + ItalicFeatures = {Extension = .otf}, + ]% + \setCJKsansfont{FandolHei}[ + Extension = .otf, + UprightFont = *-Regular, + BoldFont = *-Bold, + ]% + \setCJKmonofont{FandolFang}[ + Extension = .otf, + UprightFont = *-Regular, + ]% + \setCJKfamilyfont{zhsong}{FandolSong}[ + Extension = .otf, + UprightFont = *-Regular, + BoldFont = *-Bold, + ]% + \setCJKfamilyfont{zhhei}{FandolHei}[ + Extension = .otf, + UprightFont = *-Regular, + BoldFont = *-Bold, + ]% + \setCJKfamilyfont{zhfs}{FandolFang}[ + Extension = .otf, + UprightFont = *-Regular, + ]% + \setCJKfamilyfont{zhkai}{FandolKai}[ + Extension = .otf, + UprightFont = *-Regular, + ]% +} + +\ifustc@cjk@font@none\else + \providecommand\songti{\CJKfamily{zhsong}} + \providecommand\heiti{\CJKfamily{zhhei}} + \providecommand\fangsong{\CJKfamily{zhfs}} + \providecommand\kaishu{\CJKfamily{zhkai}} +\fi + +\newcommand\ustc@set@cjk@font{% + \@nameuse{ustc@set@cjk@font@\ustc@cjk@font}% +} +\ustc@set@cjk@font +\ustc@option@hook{cjk-font}{\ustc@set@cjk@font} + +% 数学字体 + +% 设置数学符号风格。 +\newcommand\ustc@set@math@style{% + \ifustc@math@style@TeX + \ustcsetup{ + uppercase-greek = upright, + less-than-or-equal = horizontal, + integral = slanted, + integral-limits = false, + partial = italic, + math-ellipsis = AMS, + real-part = fraktur, + }% + \else + \ustcsetup{ + uppercase-greek = italic, + integral = upright, + partial = upright, + real-part = roman, + }% + \ifustc@math@style@ISO + \ustcsetup{ + less-than-or-equal = horizontal, + integral-limits = true, + math-ellipsis = lower, + }% + \else + \ifustc@math@style@GB + \ustcsetup{ + less-than-or-equal = slanted, + integral-limits = false, + math-ellipsis = centered, + }% + \fi + \fi + \fi +} + +\ifustc@main@language@chinese + \ustcsetup{math-style = GB}% +\else + \ustcsetup{math-style = TeX}% +\fi + +\ustc@set@math@style +\ustc@option@hook{math-style}{\ustc@set@math@style} +\ustc@option@hook{main-language}{% + \ifustc@main@language@chinese + \ustcsetup{math-style = GB}% + \else + \ustcsetup{math-style = TeX}% + \fi +} + +% 针对 \pkg{unicode-math} 逐项配置数学符号。 + +\newcommand\ustc@set@unimath@leq{% + \ifustc@leq@horizontal + \ifx\@begindocumenthook\@undefined + \let\le\ustc@save@leq + \let\ge\ustc@save@geq + \let\leq\ustc@save@leq + \let\geq\ustc@save@geq + \else + \AtBeginDocument{% + \let\le\ustc@save@leq + \let\ge\ustc@save@geq + \let\leq\ustc@save@leq + \let\geq\ustc@save@geq + }% + \fi + \else + \ifustc@leq@slanted + \ifx\@begindocumenthook\@undefined + \let\le\leqslant + \let\ge\geqslant + \let\leq\leqslant + \let\geq\geqslant + \else + \AtBeginDocument{% + \let\le\leqslant + \let\ge\geqslant + \let\leq\leqslant + \let\geq\geqslant + }% + \fi + \fi + \fi +} +\newcommand\ustc@set@unimath@integral@limits{% + \ifustc@integral@limits@true + \removenolimits{% + \int\iint\iiint\iiiint\oint\oiint\oiiint + \intclockwise\varointclockwise\ointctrclockwise\sumint + \intbar\intBar\fint\cirfnint\awint\rppolint + \scpolint\npolint\pointint\sqint\intlarhk\intx + \intcap\intcup\upint\lowint + }% + \else + \addnolimits{% + \int\iint\iiint\iiiint\oint\oiint\oiiint + \intclockwise\varointclockwise\ointctrclockwise\sumint + \intbar\intBar\fint\cirfnint\awint\rppolint + \scpolint\npolint\pointint\sqint\intlarhk\intx + \intcap\intcup\upint\lowint + }% + \fi +} +\newcommand\ustc@set@unimath@ellipsis{% + \ifustc@math@ellipsis@centered + \DeclareRobustCommand\mathellipsis{\mathinner{\unicodecdots}}% + \else + \DeclareRobustCommand\mathellipsis{\mathinner{\unicodeellipsis}}% + \fi +} +\newcommand\ustc@set@unimath@real@part{% + \ifustc@real@part@roman + \AtBeginDocument{% + \def\Re{\operatorname{Re}}% + \def\Im{\operatorname{Im}}% + }% + \else + \AtBeginDocument{% + \let\Re\ustc@save@Re + \let\Im\ustc@save@Im + }% + \fi +} + +\newcommand\ustc@set@unimath@style{% + \ifustc@uppercase@greek@upright + \unimathsetup{math-style = TeX}% + \else + \ifustc@uppercase@greek@italic + \unimathsetup{math-style = ISO}% + \fi + \fi + \ifustc@math@style@TeX + \unimathsetup{bold-style = TeX}% + \else + \unimathsetup{bold-style = ISO}% + \fi + \ustc@set@unimath@leq + \ustc@set@unimath@integral@limits + \ifustc@partial@upright + \unimathsetup{partial = upright}% + \else + \ifustc@partial@italic + \unimathsetup{partial = italic}% + \fi + \fi + \ustc@set@unimath@ellipsis + \ustc@set@unimath@real@part +} + +\newcommand\ustc@qed{\rule{1ex}{1ex}} +\newcommand\ustc@load@unimath{% + \@ifpackageloaded{unicode-math}{}{% + \RequirePackage{unicode-math}% + \AtBeginDocument{% + \let\ustc@save@leq\leq + \let\ustc@save@geq\geq + \let\ustc@save@Re\Re + \let\ustc@save@Im\Im + }% + % + % 兼容旧的粗体命令:\pkg{bm} 的 \cs{bm} 和 \pkg{amsmath} 的 \cs{boldsymbol}。 + \DeclareRobustCommand\bm[1]{{\symbfit{##1}}}% + \DeclareRobustCommand\boldsymbol[1]{{\symbfit{##1}}}% + % + % 兼容 \pkg{amsfonts} 和 \pkg{amssymb} 中的一些命令。 + \newcommand\square{\mdlgwhtsquare}% + \newcommand\blacksquare{\mdlgblksquare}% + \AtBeginDocument{% + \renewcommand\checkmark{\ensuremath{✓}}% + }% + % + % 兼容 \pkg{amsthm} 的 \cs{qedsymbol}。 + \renewcommand\ustc@qed{\ensuremath{\QED}}% + }% +} + +% STIX Two Math +\newcommand\ustc@set@math@font@stix{% + \ustc@load@unimath + \ustc@set@unimath@style + \ustc@set@stix@names + \setmathfont{\ustc@font@name@stix@math}[ + Extension = .otf, + Scale = MatchLowercase, + StylisticSet = \ustc@xits@integral@stylistic@set, + ]% + \setmathfont{\ustc@font@name@stix@math}[ + Extension = .otf, + Scale = MatchLowercase, + StylisticSet = 1, + range = {scr,bfscr}, + ]% +} + +% XITS Math +\newcommand\ustc@xits@integral@stylistic@set{% + \ifustc@integral@upright + 8% + \fi +} +\newcommand\ustc@set@math@font@xits{% + \ustc@load@unimath + \ustc@set@unimath@style + \ustc@set@xits@names + \setmathfont{\ustc@font@name@xits@math}[ + Extension = .otf, + StylisticSet = \ustc@xits@integral@stylistic@set, + ]% + \setmathfont{\ustc@font@name@xits@math}[ + Extension = .otf, + StylisticSet = 1, + range = {cal,bfcal}, + ]% +} + +% Libertinus Math +\newcommand\ustc@libertinus@integral@stylistic@set{% + \ifustc@integral@slanted + 8% + \fi +} +\newcommand\ustc@set@math@font@libertinus{% + \ustc@load@unimath + \ustc@set@unimath@style + \ustc@set@libertinus@names + \ustc@set@xits@names + \setmathfont{\ustc@font@name@libertinus@math}[ + Extension = .otf, + StylisticSet = \ustc@libertinus@integral@stylistic@set, + ]% + \setmathfont{\ustc@font@name@xits@math}[ + Extension = .otf, + range = {\checkmark}, + ]% +} + +% New Computer Modern Math +\newcommand\ustc@newcm@integral@stylistic@set{% + \ifustc@integral@upright + 2% + \fi +} +\newcommand\ustc@set@math@font@newcm{% + \ustc@load@unimath + \ustc@set@unimath@style + \setmathfont{NewCMMath-Book}[ + Extension = .otf, + StylisticSet = \ustc@newcm@integral@stylistic@set, + ]% + \setmathfont{NewCMMath-Book}[ + Extension = .otf, + StylisticSet = 1, + range = {scr,bfscr}, + ]% + \setmathrm{NewCM10}[ + Extension = .otf, + UprightFont = *-Book, + BoldFont = *-Bold, + ItalicFont = *-BookItalic, + BoldItalicFont = *-BoldItalic, + ]% + \setmathsf{NewCMSans10}[ + Extension = .otf, + UprightFont = *-Book, + BoldFont = *-Bold, + ItalicFont = *-BookOblique, + BoldItalicFont = *-BoldOblique, + ]% + \setmathtt{NewCMMono10}[ + Extension = .otf, + UprightFont = *-Book, + ItalicFont = *-BookItalic, + BoldFont = *-Bold, + BoldItalicFont = *-BoldOblique, + ]% +} + +% Latin Modern Math +\newcommand\ustc@set@math@font@lm{% + \ustc@load@unimath + \ustc@set@unimath@style + \setmathfont{latinmodern-math}[Extension=.otf]% + \setmathrm{lmroman10}[ + Extension = .otf, + UprightFont = *-regular, + BoldFont = *-bold, + ItalicFont = *-italic, + BoldItalicFont = *-bolditalic, + ]% + \setmathsf{lmsans10}[ + Extension = .otf, + UprightFont = *-regular, + BoldFont = *-bold, + ItalicFont = *-oblique, + BoldItalicFont = *-boldoblique, + ]% + \setmathtt{lmmonolt10}[ + Extension = .otf, + UprightFont = *-regular, + BoldFont = *-bold, + ItalicFont = *-oblique, + BoldItalicFont = *-boldoblique, + ]% +} + +% NewTX Math +% 注意 NewTX Math 是 Type 1 字体,如果正文西文使用了 OpenType 字体时需要小心处理。 +\newcommand\ustc@set@math@font@newtx{% + \ifustc@font@newtx\else + \let\ustc@save@encodingdefault\encodingdefault + \let\ustc@save@rmdefault\rmdefault + \let\ustc@save@sfdefault\sfdefault + \let\ustc@save@ttdefault\ttdefault + \RequirePackage[T1]{fontenc}% + \renewcommand{\rmdefault}{ntxtlf}% + \renewcommand{\sfdefault}{qhv}% + \renewcommand{\ttdefault}{ntxtt}% + \fi + \ifustc@uppercase@greek@italic + \PassOptionsToPackage{slantedGreek}{newtxmath}% + \fi + \ifustc@integral@upright + \PassOptionsToPackage{upint}{newtxmath}% + \fi + \RequirePackage{newtxmath} + \let\ustc@save@leq\leq + \let\ustc@save@geq\geq + \ifustc@leq@slanted + \let\le\leqslant + \let\ge\geqslant + \let\leq\leqslant + \let\geq\geqslant + \fi + \ifustc@integral@limits@true + \let\ilimits@\displaylimits + \fi + \let\ustc@save@partial\partial + \ifustc@partial@upright + \let\partial\uppartial + \fi + \ifustc@math@ellipsis@centered + \DeclareRobustCommand\mathellipsis{\mathinner{\cdotp\cdotp\cdotp}}% + \else + \DeclareRobustCommand\mathellipsis{\mathinner{\ldotp\ldotp\ldotp}}% + \fi + \let\ustc@save@Re\Re + \let\ustc@save@Im\Im + \ifustc@real@part@roman + \def\Re{\operatorname{Re}}% + \def\Im{\operatorname{Im}}% + \fi + \RequirePackage{bm}% + \ifustc@font@newtx\else + \let\encodingdefault\ustc@save@encodingdefault + \let\rmdefault\ustc@save@rmdefault + \let\sfdefault\ustc@save@sfdefault + \let\ttdefault\ustc@save@ttdefault + \fi + \DeclareRobustCommand\symup[1]{{\mathrm{##1}}}% + \DeclareRobustCommand\symbf[1]{{\bm{##1}}}% + \DeclareRobustCommand\symbfsf[1]{{\bm{##1}}}% + \let\increment\upDelta% + \renewcommand\ustc@qed{\openbox}% +} + +% Computer Modern +% 使用 LaTeX 默认的 cm 字体 +\newcommand\ustc@set@math@font@cm{% + \RequirePackage{amssymb} + \let\ustc@save@leq\leq + \let\ustc@save@geq\geq + \ifustc@leq@slanted + \let\le\leqslant + \let\ge\geqslant + \let\leq\leqslant + \let\geq\geqslant + \fi + \ifustc@integral@limits@true + \let\ilimits@\displaylimits + \fi + \ifustc@math@ellipsis@centered + \DeclareRobustCommand\mathellipsis{\mathinner{\cdotp\cdotp\cdotp}}% + \else + \DeclareRobustCommand\mathellipsis{\mathinner{\ldotp\ldotp\ldotp}}% + \fi + \let\ustc@save@Re\Re + \let\ustc@save@Im\Im + \ifustc@real@part@roman + \def\Re{\operatorname{Re}}% + \def\Im{\operatorname{Im}}% + \fi + \RequirePackage{bm}% + \DeclareRobustCommand\symup[1]{{\mathrm{##1}}}% + \DeclareRobustCommand\symbf[1]{{\bm{##1}}}% + \DeclareRobustCommand\symbfsf[1]{{\bm{##1}}}% + \let\increment\Delta + \renewcommand\ustc@qed{\openbox}% + \let\uppi\pi +} + +% 不设置数学字体,仅提供兼容支持。 +\newcommand\ustc@set@math@font@none{% + \RequirePackage{amssymb} + \RequirePackage{bm}% + \DeclareRobustCommand\symup[1]{{\mathrm{##1}}}% + \DeclareRobustCommand\symbf[1]{{\bm{##1}}}% + \DeclareRobustCommand\symbfsf[1]{{\bm{##1}}}% + \let\increment\Delta + \renewcommand\ustc@qed{\openbox}% + \let\uppi\pi +} + +\newcommand\ustc@set@math@font{% + \@nameuse{ustc@set@math@font@\ustc@math@font}% +} +\ustc@option@hook{math-font}{\g@addto@macro\ustc@setup@hook{\ustc@set@math@font}} +\newcommand\ustc@set@math@font@auto{% + \ifustc@math@font@auto + \ustcsetup{math-font=xits}% + \fi +} +\AtBeginOfPackageFile*{siunitx}{\ustc@set@math@font@auto} +\AtEndPreamble{% + \ustc@set@math@font@auto + \ifx\square\@undefined + \RequirePackage{amssymb}% + \fi +} + + + +% \subsection{纸张和页面} +% 使用 \pkg{geometry} 宏包设置纸张和页面。 + +% 纸张:A4; + +% 页面设置:上、下 2.54 cm,左、右 3.17 cm,页眉 1.5 cm,页脚 1.75 cm。 + +% 注意这里指的是页眉顶部到纸张顶部的距离为 1.5 cm, +% 所以应该是 2.54cm - 0.8cm - 0.24cm = 1.5cm + +\geometry{ + paper = a4paper, + vmargin = 2.54cm, + hmargin = 3.17cm, + headheight = 0.75cm, + headsep = 0.29cm, + footskip = 0.79cm, +} + +% 使用 \pkg{fancy} 需要先调用 |\pagestyle{fancy}| 再修改 \cs{chaptermark} 和 +% \cs{sectionmark}。 +\pagestyle{fancy} +\let\sectionmark\@gobble +\renewcommand\headrulewidth{0.4\p@} + +% 重定义默认的 |plain| page style,会显示页眉和页脚。 +\fancypagestyle{plain}{% + \fancyhf{}% + % + % 页眉与该部分的章标题相同,宋体 10.5 磅(五号)居中。 + % 页码:宋体 10.5 磅、页面下脚居中。 + \ifustc@degree@graduate + \def\ustc@hf@font{\fontsize{10.5bp}{12bp}\selectfont} + \fancyhead[C]{\ustc@hf@font\leftmark}% + \fancyfoot[C]{\ustc@hf@font\thepage}% + \let\@mkboth\markboth + \def\chaptermark##1{% + \markboth{\CTEXifname{\CTEXthechapter\quad}{}\ustc@spacetitle{##1}}{}% + }% + \let\sectionmark\@gobble + \else + % + % 本科生要求除封面、扉页外,每面上部加页眉, + % 用小 5 号字(9 bp)标注“中国科学技术大学本科毕业论文”,居中; + % 从目录页开始在每面底部居中用小五宋体(9 bp)连续编页码。 + \def\ustc@hf@font{\fontsize{9bp}{12bp}\selectfont} + \fancyhead[C]{\ustc@hf@font 中国科学技术大学本科毕业论文}% + \fancyfoot[C]{\ustc@hf@font\thepage}% + \let\@mkboth\@gobbletwo + \let\chaptermark\@gobble + \let\sectionmark\@gobble + \fi +} +\pagestyle{plain} + +% |headings| 只有页眉,没有页脚,用于研究生的符号说明和本科生的 front matter。 +\fancypagestyle{headings}{\fancyfoot{}} + +% 设置特殊的 page style 不改变任何内容,用于每章首页。 +\def\ps@chapter{} +\ctexset{chapter/pagestyle=chapter} + +% 空白页不加页眉和页码。 +\def\cleardoublepage{% + \clearpage + \if@twoside + \ifodd\c@page\else + \hbox{}% + \thispagestyle{empty}% + \newpage + \if@twocolumn + \hbox{}% + \newpage + \fi + \fi + \fi +} + +% +% 研究生要求从“中文摘要”开始页码用大写罗马数字, +% 而本科生的 frontmatter(只有致谢)不编页码,从目录开始页码用阿拉伯数字。 +\renewcommand\frontmatter{% + \cleardoublepage + \@mainmatterfalse + \pagenumbering{Roman}% + \ifustc@degree@graduate + \pagestyle{plain}% + \else + \pagestyle{headings}% + \fi +} + +% 研究生要求“第 1 章”要另页起,但是本科生要求另面起。 +\renewcommand\mainmatter{% + \ifustc@degree@graduate + \cleardoublepage + \pagenumbering{arabic}% + \else + \clearpage + \fi + \pagestyle{plain}% + \@mainmattertrue +} + +\g@addto@macro\appendix{\@mainmattertrue}% + + +% \subsection{封面} + + +% 定义用户接口: +\ustc@define@key{ + title = { + default = {论文题目}, + }, + class = { + default = {所属班级}, + }, + author = { + default = {作者姓名}, + }, + speciality = { + default = {专业}, + }, + speciality* = { + default = {Speciality}, + name = speciality@en, + }, + supervisor = { + default = {导师姓名}, + }, + advisor = { + default = {}, + }, + advisor* = { + default = {}, + name = advisor@en, + }, + date = { + default = {\the\year-\two@digits{\month}-\two@digits{\day}}, + }, + professional-type = { + name = professional@type, + }, + professional-type* = { + name = professional@type@en, + }, + department, + student-id = { + name = student@id, + }, + secret-level = { + name = secret@level, + }, + secret-level* = { + name = secret@level@en, + }, + secret-year = { + name = secret@year, + }, + keywords, + keywords* = { + name = keywords@en, + }, +} + + +% 输出日期的给定格式:\cs{ustc@format@date}\marg{format}\marg{date}, +% 其中格式 \meta{format} 接受三个参数分别对应年、月、日, +% \meta{date} 是 ISO 格式的日期(yyyy-mm-dd)。 +\newcommand\ustc@format@date[2]{% + \edef\ustc@@date{#2}% + \def\ustc@@process@date##1-##2-##3\@nil{% + #1{##1}{##2}{##3}% + }% + \expandafter\ustc@@process@date\ustc@@date\@nil +} +\newcommand\ustc@date@format@zh@small[3]{\number#1 年 \number#2 月 \number#3 日} +\newcommand\ustc@date@format@zh@big[3]{\zhdigits{#1}年\zhnumber{#2}月\zhnumber{#3}日} +\newcommand\ustc@date@month[1]{% + \ifcase\number#1\or + January\or February\or March\or April\or May\or June\or + July\or August\or September\or October\or November\or December% + \fi +} +\newcommand\ustc@date@format@zh@short[3]{\number#1 年 \number#2 月} +\newcommand\ustc@date@format@en[3]{\ustc@date@month{#2} \number#3, #1} +\newcommand\ustc@date@zh@small{\ustc@format@date{\ustc@date@format@zh@small}{\ustc@date}} +\newcommand\ustc@date@zh@big{\ustc@format@date{\ustc@date@format@zh@big}{\ustc@date}} +\newcommand\ustc@date@zh@short{\ustc@format@date{\ustc@date@format@zh@short}{\ustc@date}} +\newcommand\ustc@date@en{\ustc@format@date{\ustc@date@format@en}{\ustc@date}} + +% 版本 v3.2 开始使用 \cs{ustcsetup} 设置接口, +% 兼容旧版本的命令式设置。 +% Reserved for compatibility until 2020-07-01. +\def\ustc@define@term#1#2{% + \expandafter\gdef\csname #1\endcsname##1{% + \ustcsetup{#2 = {##1}}% + }% +} +\ustc@define@term{title}{title} +\ustc@define@term{entitle}{title*} +\ustc@define@term{author}{author} +\ustc@define@term{enauthor}{author*} +\ustc@define@term{supervisor}{supervisor} +\gdef\date#1{\renewcommand\ustc@date@zh@big{#1}} +\gdef\endate#1{\renewcommand\ustc@date@en{#1}} +\ustc@define@term{professionaltype}{professional-type} +\ustc@define@term{enprofessionaltype}{professional-type*} +\ustc@define@term{secretlevel}{secret-level} +\ustc@define@term{ensecretlevel}{secret-level*} +\ustc@define@term{secretyear}{secret-year} +\gdef\keywords#1{\renewcommand\ustc@keywords@text{#1}} +\gdef\enkeywords#1{\renewcommand\ustc@keywords@en@text{#1}} + +% 定义一些常量。 +\ifustc@degree@doctor + \newcommand\ustc@thesis@name{研究性学习报告} + \newcommand\ustc@thesis@name@en{A dissertation for doctor's degree} +\else + \ifustc@degree@master + \newcommand\ustc@thesis@name{硕士学位论文} + \newcommand\ustc@thesis@name@en{A dissertation for master's degree} + \else + \newcommand\ustc@thesis@name{学士学位论文} + \newcommand\ustc@thesis@name@en{A dissertation for bachelor's degree} + \fi +\fi +\ifustc@degree@type@academic + \newcommand\ustc@speciality@name{学科专业} +\else + \ifustc@degree@doctor + \renewcommand\ustc@thesis@name{专业博士学位论文} + \else + \renewcommand\ustc@thesis@name{专业硕士学位论文} + \fi + \ifustc@cjk@font@mac + \providecommand\lishu{\CJKfamily{zhli}} + \else + \ifustc@cjk@font@windows + \setCJKfamilyfont{zhli}{LiSu} + \providecommand\lishu{\CJKfamily{zhli}} + \else + \ustc@warning{LiShu font is required} + \providecommand\lishu{\sffamily} + \fi + \fi + \newcommand\ustc@speciality@name{专业领域} +\fi + +% 定义校徽颜色 +% +% 推迟定义颜色以避免调用 \pkg{xcolor} 时的警告 +\AtBeginDocument{ + \definecolor{ustcblue}{cmyk}{1,0.8,0,0} +} + +% 添加 PDF 书签,在 \pkg{hyperref} 载入后才有效。 +\newcommand\ustc@pdfbookmark{\@gobble} + +% 重定义 \env{titlepage} 环境,不修改页码。 +\renewenvironment{titlepage}{% + \cleardoublepage + \if@twocolumn + \@restonecoltrue\onecolumn + \else + \@restonecolfalse\newpage + \fi + \thispagestyle{empty}% +}{% + \if@restonecol\twocolumn \else \newpage \fi +} + +% 中文封面: +% 密级仿宋 14 磅; +% 论文类型黑体 56 磅; +% 论文题目黑体 26 磅加粗居中,单倍行距; +% 作者姓名宋体 16 磅,单倍行距; +% 注意这里的“单倍行距”的地方开启了“对齐到网格”,所以实际行距有所偏差, +% 所以只能使用直尺测量。 +\newcommand\ustc@speciality@sse{软件工程} +\newcommand\ustc@title@page@graduate@zh{% + \ustcsetup{language=chinese}% + \begin{titlepage}% + \ustc@pdfbookmark{封面}% + \centering + \parbox[t][0.6cm][t]{\textwidth}{% + \raggedleft\fangsong\fontsize{14bp}{14bp}\selectfont + \null\ustc@secret@level\par}\par + \vskip 0.5cm% + \includegraphics[height=1.3cm]{figures/logo-left.png}\par + \vskip 0.6cm% + {\sffamily\fontsize{56bp}{56bp}\selectfont + \ustc@thesis@name\par}% + \ifustc@degree@type@academic + \vskip 2.0cm% + \else + \vskip 0.8cm% + \begingroup + \fontsize{26bp}{26bp}\selectfont + \ifx\ustc@professional@type\@empty + \null + \else + \lishu (\ustc@professional@type )% + \fi + \par + \endgroup + \vskip 1.0cm% + \fi + \ifustc@badge@color@blue + \textcolor{ustcblue}{% + \includegraphics[height=4.1cm]{figures/hfbz-icon.pdf}}% + \else + \includegraphics[height=4.1cm]{figures/hfbz-icon.pdf}% + \fi\par + \vskip 0.9cm% + \parbox[t][3.5cm][c]{\textwidth}{% + \centering\sffamily\bfseries\fontsize{26bp}{50bp}\selectfont + \ustc@title\par}\par + \vskip 0.6cm% + {\fontsize{16bp}{31bp}\selectfont + \begin{tabular}{@{}l@{\hspace{\ccwd}}l@{}}% + \textsf{所属班级:} & \ustc@class \\ + \textsf{作者姓名:} & \ustc@author \\ + \textsf{指导教师:} & \ustc@supervisor \\ + \textsf{完成时间:} & \ustc@date@zh@big + \end{tabular}\par}% + \end{titlepage}% + \ustc@reset@main@language +} + +\newbox\ustc@title@box + +\newlength\ustc@title@page@item@width + +% 重新定义 \cs{maketitle},调用 \cs{ustc@makezhtitle}, \cs{ustc@makeentitle} +% 生成中文封面。 +\renewcommand\maketitle{ + \newgeometry{margin=2.54cm} + \pagenumbering{Alph} + \pagestyle{empty} + \ustc@title@page@graduate@zh + % \cleardoublepage + \restoregeometry + \pagestyle{plain} +} + +\newcommand\ustc@underline[2][3.2cm]{\underline{\hb@xt@ #1{\hss#2\hss}}} + +\newcommand\ustc@checkbox{% + \makebox[\z@][l]{$\square$}% + \raisebox{-0.2ex}{\hspace{0.1em}$\checkmark$}% +} + +\ifustc@degree@bachelor + \let\copyrightpage\relax +\fi +% Reserved for compatibility until 2020-07-01. +\let\makestatement\copyrightpage + + +% \subsection{章节标题} + +% 标题最多允许使用五级。 +\setcounter{secnumdepth}{5} + +% 研究生规定章题为两字时中间空两字,三字时空一字,四字时空半字,四字以上不空。 +% 这里用 \LaTeX3 的 \cs{str\_count:N} 判断字数。 +% 注意,\pkg{stringstrings} 宏包会导致范数命令 \verb+\|+ 被修改。 +\newcount\ustc@titlelength +\DeclareRobustCommand\ustc@spacetitle[1]{% + \ustc@titlelength=\csname str_count:N\endcsname{#1}% + \begingroup + \ifustc@degree@graduate + \ifcase\ustc@titlelength + \or\or + \ziju{2}% + \or + \ziju{1}% + \or + \ziju{0.5}% + \fi + \else + \if@mainmatter\else + \ifcase\ustc@titlelength + \or\or + \ziju{1}% + \or\or + \ziju{0.5}% + \fi + \fi + \fi + #1% + \endgroup +} + +% 五级节标题和脚注需要使用带圈的数字,这里使用 \cs{ustc@circlefont} : +\newcommand\ustc@textcircled[1]{% + \ifnum\value{#1}<21\relax + {\symbol{\numexpr\value{#1} + "245F\relax}}% + \else + \ustc@error{Cannot display more than 20 footnotes}% + \fi +} + +% 用 \pkg{ctex} 的接口设置全部章节标题格式。 + +% 各章标题:黑体 16 磅加粗居中,单倍行距,段前 24 磅,段后 18 磅, +% 章序号与章名间空一字。 + +% 由于 Word 模板中使用“单倍行距”,还“对齐到网格”,这在 TeX 中不容易实现。 +% 所以目前按照默认的行距。 + +% 注意 \pkg{ctex} v2.4.3 以下版本的bug会导致章节标题前后的距离的实际值偏大。 +% 另外 \pkg{ctex} v2.2 前的beforeskip的符号有特殊意义。 +\ctexset{ + chapter = { + format = \centering\sffamily\bfseries\fontsize{16bp}{26.67bp}\selectfont, + nameformat = {}, + titleformat = \ustc@spacetitle, + number = \thechapter, + aftername = \hspace{\ccwd}, + beforeskip = 24bp, + afterskip = 18bp, + fixskip = true, + }, +} + +% 一级节标题:黑体 14 磅左顶格,单倍行距,段前 24 磅,段后 6 磅, +% 序号与题名间空一字。 +\ctexset{ + section = { + format = \sffamily\fontsize{14bp}{23.33bp}\selectfont, + aftername = \hspace{\ccwd}, + beforeskip = 24bp, + afterskip = 6bp, + }, + % + % 二级节标题:黑体 13 磅,左缩进两字,单倍行距,段前 12 磅,段后 6 磅, + % 序号与题名间空一字。 + subsection = { + format = \sffamily\fontsize{13bp}{21.67bp}\selectfont, + aftername = \hspace{\ccwd}, + indent = 2\ccwd, + beforeskip = 12bp, + afterskip = 6bp, + }, + % + % 三级及以下节标题的格式没有具体规定,按照 Word 模板的格式: + % 使用黑体 12 磅,左缩进两字,行距 20 磅,段前段后 0 磅,序号与题名间空半字宽。 + subsubsection = { + format = \sffamily\fontsize{12bp}{20bp}\selectfont, + number = \arabic{subsubsection}, + aftername = .\hspace{0.5\ccwd}, + indent = 2\ccwd, + beforeskip = \z@, + afterskip = \z@, + }, + % + % 按照 Word 模板的格式,四级节标题:宋体 12 磅,左缩进两字,行距 20 磅, + % 段前段后 0 磅,序号使用全宽括号,与题名间空半字宽。 + paragraph = { + format = \rmfamily\fontsize{12bp}{20bp}\selectfont, + number = (\arabic{paragraph}), + aftername = \hspace{0.5\ccwd}, + indent = 2\ccwd, + beforeskip = \z@, + afterskip = \z@, + runin = false, + }, + % + % 按照 Word 模板的格式,五级节标题:宋体 12 磅,左缩进两字,行距 20 磅, + % 段前段后 0 磅,序号使用全宽括号,与题名间空半字宽。 + subparagraph = { + format = \rmfamily\fontsize{12bp}{20bp}\selectfont, + number = \ustc@textcircled{subparagraph}, + aftername = \hspace{0.5\ccwd}, + indent = 2\ccwd, + beforeskip = \z@, + afterskip = \z@, + runin = false, + }, +} + +\ifustc@degree@bachelor + \ifustc@main@language@english + \ustcsetup{section-style = arabic} + \fi +\fi +\ustc@option@hook{main-language}{% + \ifustc@degree@bachelor + \ifustc@main@language@english + \ustcsetup{section-style = arabic}% + \fi + \fi +} + +% 在研究生格式的基础上再设置本科生的章节标题格式。 +\ifustc@degree@bachelor + \setcounter{secnumdepth}{4} + \ctexset{ + % + % 论文的致谢、目录、摘要和参考文献等标题用小二号(18 bp)黑体字,居中, + % 这通过 \cs{if@mainmatter} 区分。 + % 正文中的标题分章、节、段三级;章、节标题居中,段标题居左, + % 分别用三号(16 bp)黑体、小三(15 bp)黑体、四号(14 bp)黑体。 + chapter = { + format = { + \centering\sffamily + \if@mainmatter + \fontsize{16bp}{29.33bp}\selectfont + \else + \fontsize{18bp}{33bp}\selectfont + \fi + }, + }, + section = { + format = \centering\sffamily\fontsize{15bp}{27.5bp}\selectfont, + }, + subsection = { + format = \sffamily\fontsize{14bp}{25.67bp}\selectfont, + indent = \z@, + }, + subsubsection = { + format = \rmfamily\fontsize{12bp}{22bp}\selectfont, + indent = \ccwd, + }, + paragraph = { + format = \rmfamily\fontsize{12bp}{22bp}\selectfont, + aftername = {}, + indent = \ccwd, + }, + } + % + % 本科生的阿拉伯数字式标题的格式与研究生几乎一致,只有中文数字式需要修改。 + \ifustc@section@style@arabic\else + \ctexset{ + chapter = { + number = \chinese{chapter}, + }, + section = { + name = {第,节}, + number = \chinese{section}, + }, + subsection = { + number = \chinese{subsection}, + aftername = {、}, + }, + } + \fi +\fi + +% 默认的 \cs{chapter*} 生成的章标题没有编号、不更改页眉, +% 也不添加进目录或 PDF 书签。 +% 然而像摘要、目录、符号说明这样的章节,它们不需要编号、不加入目录, +% 但是需要修改页眉,并且加入 PDF 标签。 +% 所以我们新定义 \cs{ustc@chapter} 用于处理这些章节。% +\NewDocumentCommand\ustc@chapter{o m}{% + \if@openright\cleardoublepage\else\clearpage\fi + \IfValueTF{#1}{% + \ustc@pdfbookmark{#1}% + \chaptermark{#1}% + }{% + \ustc@pdfbookmark{#2}% + \chaptermark{#2}% + }% + \chapter*{#2}} + + +% \subsection{摘要} + +% 中文摘要环境。 +\newcommand\ustc@keywords@text{% + \ifustc@degree@graduate + \ustc@clist@use{\ustc@keywords}{\quad}% + \else + \ustc@clist@use{\ustc@keywords}{;}% + \fi +} +\newcommand\ustc@keywords@en@text{% + \ifustc@degree@graduate + \ustc@clist@use{\ustc@keywords@en}{, }% + \else + \ustc@clist@use{\ustc@keywords@en}{; }% + \fi +} +\newenvironment{abstract}{% + \ustcsetup{language=chinese}% + \ustc@chapter{摘要}% +}{ + \par\null\par\noindent\hangindent=4\ccwd\relax + \textbf{关键词}:\ustc@keywords@text\par + \ustc@reset@main@language +} + +\newbox\ustc@keywords@box +\newlength\ustc@keywords@width + +% 英文摘要环境 +\newenvironment{abstract*}{% + \ustcsetup{language=english}% + \ifustc@degree@graduate + \ustc@chapter[Abstract]{ABSTRACT}% + \else + \begingroup + % 本科生的英文摘要使用小二号衬线体 + \ctexset{chapter/format=\centering\fontsize{18bp}{33bp}\selectfont}% + \ustc@chapter{ABSTRACT}% + \endgroup + \fi +}{ + \par\null\par\noindent + \savebox\ustc@keywords@box{\textbf{Key Words}: }% + \ustc@keywords@width=\linewidth + \advance\ustc@keywords@width-\wd\ustc@keywords@box + \textbf{Key Words}: \parbox[t]{\ustc@keywords@width}{\ustc@keywords@en@text\par}\par + \ifustc@degree@graduate + \cleardoublepage + \fi + \ustc@reset@main@language +} + +% Reserved for compatibility until 2020-07-01. +\newenvironment{enabstract}{% + \begin{abstract*}% +}{% + \end{abstract*}% +} + + +% \subsection{目录} + +% 研究生规定目录另面起; +% 本科生规定从目录开始编页码,所以必须另页起。 +\renewcommand\tableofcontents{% + \ustc@chapter{\contentsname}% + \@starttoc{toc}% + \thispagestyle{empty} +} + +% 下面用 \pkg{titletoc} 宏包设置目录内容的格式。 +% 先定义目录线: +\newcommand\ustc@leaders{% + \hspace{2bp}% + \titlerule*[4bp]{\textperiodcentered}% + \hspace{2bp}% +} + +\contentsmargin{0bp} + +% 各章目录要求宋体 14 磅,单倍行距,段前 6 磅,段后 0 磅,两端对齐, +% 页码右对齐,章序号与章名间空一字。 +% 但是 Word 模板中实际是行距 20 磅。 +\ifustc@degree@graduate + \titlecontents{chapter} + [\z@]{\addvspace{6bp}\fontsize{14bp}{20bp}\selectfont} + {\contentspush{\thecontentslabel\hspace{\ccwd}}}{} + {\fontsize{12bp}{20bp}\selectfont\ustc@leaders\thecontentspage} + % + % 一级节标题目录要求宋体 12 磅,单倍行距,左缩进一字,段前 6 磅,段后 0 磅, + % 两端对齐,页码右对齐,序号与题名间空一字。 + % Word 模板中实际是行距 20 磅,段前 0 磅。 + \titlecontents{section} + [\ccwd]{\fontsize{12bp}{20bp}\selectfont} + {\contentspush{\thecontentslabel\hspace{\ccwd}}}{} + {\ustc@leaders\thecontentspage} + % + % 二级节标题目录要求仿宋 12 磅,单倍行距,左缩进两字,段前 6 磅,段后 0 磅, + % 两端对齐,页码右对齐,序号与题名间空一字。 + % Word 模板中实际是行距 20 磅,段前 0 磅。 + \titlecontents{subsection} + [2\ccwd]{\fangsong\fontsize{12bp}{20bp}\selectfont} + {\contentspush{\thecontentslabel\hspace{\ccwd}}}{} + {\ustc@leaders\thecontentspage} + % + % 本科生的目录使用小四宋体(同正文字体),其他同研究生的格式相近。 +\else + \titlecontents{chapter} + [\z@]{\normalsize} + {\contentspush{\thecontentslabel\unskip\hspace{\ccwd}}}{} + {\ustc@leaders\thecontentspage} + \titlecontents{section} + [\ccwd]{\normalsize} + {\contentspush{\thecontentslabel\hspace{\ccwd}}}{} + {\ustc@leaders\thecontentspage} + \titlecontents{subsection} + [2\ccwd]{\normalsize} + {\contentspush{\thecontentslabel + \ifustc@section@style@arabic\hspace{\ccwd}\else 、\fi}}{} + {\ustc@leaders\thecontentspage} +\fi + +% 本科生要求目录中正文每章前多空一行,而目录、附录等章则不需要空行, +% 所以不能简单判断 \cs{if@mainmatter},需要重新定义 \cs{mainmatter} 等命令。 +\newif\ifustc@addtocspace +\ifustc@degree@bachelor + \ustc@addtocspacetrue + \g@addto@macro\frontmatter{\ustc@addtocspacefalse}% + \g@addto@macro\mainmatter{\ustc@addtocspacetrue}% + \g@addto@macro\backmatter{\ustc@addtocspacefalse}% + \g@addto@macro\appendix{\ustc@addtocspacefalse}% +\fi + +% 处理本科生在目录中添加空行。 +\renewcommand\chapter{% + \if@openright\cleardoublepage\else\clearpage\fi + \thispagestyle{\CTEX@chapter@pagestyle}% + \global\@topnum\z@ + \@afterindenttrue + \ifustc@degree@bachelor + \ifustc@addtocspace + \addtocontents{toc}{\protect\addvspace{12bp}}% + \fi + \fi + \secdef\@chapter\@schapter +} + +% 研究生要求图、表的清单须另页起。 +\newlength{\ustc@lof@label@width} +\newcommand\ustc@set@lof@format{% + \settowidth{\ustc@lof@label@width}{\figurename~9.99}% + \addtolength{\ustc@lof@label@width}{1em}% + \titlecontents{figure}% + [\ustc@lof@label@width]{\normalsize}% + {\contentslabel[\figurename~\thecontentslabel]{\ustc@lof@label@width}}{}% + {\ustc@leaders\thecontentspage}% + \titlecontents{table}% + [\ustc@lof@label@width]{\normalsize}% + {\contentslabel[\tablename~\thecontentslabel]{\ustc@lof@label@width}}{}% + {\ustc@leaders\thecontentspage}% +} +\ustc@set@lof@format +\ustc@option@hook{main-language}{\ustc@set@lof@format} +\renewcommand\listoffigures{% + \ifustc@degree@graduate + \cleardoublepage + \fi + \ustc@chapter{\listfigurename}% + \@starttoc{lof}% +} +\renewcommand\listoftables{% + \ifustc@degree@graduate + \cleardoublepage + \fi + \ustc@chapter{\listtablename}% + \@starttoc{lot}% +} + + +% \subsection{符号说明} + +% 研究生规定符号说明另页起,标题字体字号等同论文正文, +% 《撰写手册》第 9 页 1.10(2) 还规定“符号说明不加页码”。 +\newenvironment{notation}{% + \ifustc@degree@graduate + \cleardoublepage + \pagestyle{headings}% + \fi + \ustc@chapter{\ustc@notation@name}% +}{% + \ifustc@degree@graduate + \clearpage + \pagestyle{plain}% + \fi +}% +\newcommand*\notationlabel[1]{#1\hfil}% +\newenvironment{notationlist}[1]{% + \list{}{% + \itemsep 3bp% + \labelwidth #1\relax% + \labelsep 1em% + \leftmargin\labelwidth + \advance\leftmargin\labelsep + \advance\leftmargin 3em% + \rightmargin 3em% + \let\makelabel\notationlabel + }% +}{% + \endlist +} + + +% \subsection{正文} + +% \cs{sloppy} 可以减少“overfull boxes”。 +\sloppy + +% 禁止扩大段间距。(\href{https://github.com/ustctug/ustcthesis/issues/209}{ +% ustctug/ustcthesis\#209}) +\raggedbottom + +% 段间距 0 磅。 +\setlength{\parskip}{\z@} + +% 首段缩进。 +\ctexset{autoindent=2} + +% 首段缩进。 +\let\@afterindentfalse\@afterindenttrue +\@afterindenttrue + +% URL 的字体设为保持原样。 +\urlstyle{same} + +% 使用 \pkg{xurl} 宏包的方法,增加 URL 可断行的位置。 +\def\UrlBreaks{% + \do\/% + \do\a\do\b\do\c\do\d\do\e\do\f\do\g\do\h\do\i\do\j\do\k\do\l% + \do\m\do\n\do\o\do\p\do\q\do\r\do\s\do\t\do\u\do\v\do\w\do\x\do\y\do\z% + \do\A\do\B\do\C\do\D\do\E\do\F\do\G\do\H\do\I\do\J\do\K\do\L% + \do\M\do\N\do\O\do\P\do\Q\do\R\do\S\do\T\do\U\do\V\do\W\do\X\do\Y\do\Z% + \do0\do1\do2\do3\do4\do5\do6\do7\do8\do9\do=\do/\do.\do:% + \do\*\do\-\do\~\do\'\do\"\do\-} +\Urlmuskip=0mu plus 0.1mu + +% 脚注用带圈的数字: +\renewcommand\thefootnote{\ustc@textcircled{footnote}} + +% LaTeX 默认脚注按章计数,即每章的开始才重置脚注计数器;我们修改为按页计数。 +% 简单的|\@addtoreset{footnote}{page}|并不可靠, +% \footnote{\url{https://texfaq.org/FAQ-footnpp.html}} +% 所以我们使用 \pkg{footmisc} 宏包。 + +% 脚注线长为版心宽度的四分之一: +\renewcommand\footnoterule{% + \kern-3\p@ + \hrule\@width.25\textwidth + \kern2.6\p@} + % + % 注文缩进两字: +\renewcommand\@makefntext[1]{% + \parindent 2\ccwd\relax + \noindent + \hb@xt@2\ccwd{\hss\@makefnmark}#1} + + +% \subsection{列表} +% \label{sec:list} + +% 调整列表中各项之间过大的间距。 +\setlength\partopsep{\z@} +\newcommand\ustc@nolistsep{% + \parsep 0\p@ \@plus.2\p@ + \topsep 0\p@ \@plus.2\p@ + \itemsep0\p@ \@plus.2\p@ +} +\def\@listi{\leftmargin\leftmargini + \ustc@nolistsep} +\let\@listI\@listi +\@listi +\def\@listii {\leftmargin\leftmarginii + \labelwidth\leftmarginii + \advance\labelwidth-\labelsep + \ustc@nolistsep} +\def\@listiii{\leftmargin\leftmarginiii + \labelwidth\leftmarginiii + \advance\labelwidth-\labelsep + \ustc@nolistsep} + + +% \subsection{浮动体} + +% \LaTeX{} 对放置浮动体的要求比较强,这里按照 UK TeX FAQ 的建议 +% \footnote{\url{https://texfaq.org/FAQ-floats}} 对其适当放宽。 +\renewcommand\topfraction{.85} +\renewcommand\bottomfraction{.7} +\renewcommand\textfraction{.15} +\renewcommand\floatpagefraction{.66} +\renewcommand\dbltopfraction{.66} +\renewcommand\dblfloatpagefraction{.66} +\setcounter{topnumber}{9} +\setcounter{bottomnumber}{9} +\setcounter{totalnumber}{20} +\setcounter{dbltopnumber}{9} + +% 修改默认的浮动体描述符为 |h|。 +\def\fps@figure{h} +\def\fps@table{h} + +% 用 \pkg{caption} 宏包设置图、表的格式: + +% 图号、图题置于图的下方,宋体 10.5 磅居中,单倍行距,段前 6 磅,段后 12 磅, +% 图号与图题文字之间空一字,图号、图题加粗。 +% 图注位于图的下方,左缩进两字,续行悬挂缩进左对齐,两端对齐。 + +% 表号、表题置于表的上方,黑体 10.5 磅居中,单倍行距,段前 6 磅,段后 6 磅, +% 表号与表题文字之间空一字,表号、表题加粗。 +% 表注左缩进两字,续行悬挂缩进左对齐,两端对齐。 +\setlength{\floatsep}{6bp} +\setlength{\textfloatsep}{6bp} +\setlength{\intextsep}{6bp} + +\DeclareCaptionFont{ustc}{% + \ifustc@language@chinese + \fontsize{10.5bp}{13.65bp}\selectfont + \else + \fontsize{10.5bp}{12.075bp}\selectfont + \fi +} + +\captionsetup{ + font = ustc, + labelsep = quad, + skip = 6bp, + figureposition = bottom, + tableposition = top, +} +\ifustc@degree@graduate + \captionsetup{font+=bf} + \captionsetup[table]{font+=sf} +\fi +\captionsetup[figure]{ + belowskip = 6bp, +} + +% 由于 LaTeX2e kernel 的问题,图表等浮动体与文字前后的距离不一致,需要进行 patch。 +% 参考 \href{https://github.com/tuna/thuthesis/issues/614}{tuna/thuthesis/issues\#614}、 +% \url{https://www.zhihu.com/question/46618031} 和 +% \url{https://tex.stackexchange.com/a/40363/82731}。 +% \begin{macrocode} +\patchcmd{\@addtocurcol}% + {\vskip \intextsep}% + {\edef\save@first@penalty{\the\lastpenalty}\unpenalty + \ifnum \lastpenalty = \@M % hopefully the OR penalty + \unpenalty + \else + \penalty \save@first@penalty \relax % put it back + \fi + \ifnum\outputpenalty <-\@Mii + \addvspace\intextsep + \vskip\parskip + \else + \addvspace\intextsep + \fi}% + {}{\ustc@patch@error{\@addtocurcol}} +\patchcmd{\@addtocurcol}% + {\vskip\intextsep \ifnum\outputpenalty <-\@Mii \vskip -\parskip\fi}% + {\ifnum\outputpenalty <-\@Mii + \aftergroup\vskip\aftergroup\intextsep + \aftergroup\nointerlineskip + \else + \vskip\intextsep + \fi}% + {}{\ustc@patch@error{\@addtocurcol}} +\patchcmd{\@getpen}{\@M}{\@Mi} + {}{\ustc@patch@error{\@getpen}} + +% 新定义了 \cs{note} 来生成图表的附注。 +% 如果用 \cs{caption} 生成图表的附注会导致图表的序号有误; +% 如果用 \cs{bicaption} 会导致表注无法置于表后,而且对齐方式不对。 +\newcommand\note[1]{% + \begingroup + \captionsetup{ + font = ustc, + margin = 2\ccwd, + position = bottom, + }% + \caption*{#1}% + \endgroup +} + +% 表格默认字号略小 +\patchcmd\@floatboxreset{% + \normalsize +}{% + \small +}{}{\ustc@patch@error{\@floatboxreset}} + +% 对 \pkg{longtable} 跨页表格进行相同的设置。 +% +% 在 Word 模板中按照正确的设置(需要去掉文档网格), +% 中文模板每页能装下 1 行标题、1 行表头、30 行表身, +% 英文模板每页能装下 1 行标题、1 行表头、33 行表身。 +% \begin{macrocode} +\AtEndOfPackageFile*{longtable}{ + \AtBeginEnvironment{longtable}{% + \ifdim\f@size pt > 12pt\relax + \small + \fi + } +} + + +% \subsection{参考文献} + +\PassOptionsToPackage{compress}{natbib} + +\AtEndOfPackageFile*{natbib}{ + % 定义几种引用文献的标注样式。 + \newcommand\bibstyle@super{\bibpunct{[}{]}{,}{s}{,}{\textsuperscript{,}}} + \newcommand\bibstyle@inline{\bibpunct{[}{]}{,}{n}{,}{,}} + \newcommand\bibstyle@authoryear{\bibpunct{(}{)}{;}{a}{,}{,}} + \@namedef{bibstyle@author-year}{\bibstyle@authoryear} + % + % 几种种引用样式,与 \file{bst} 文件名保持一致, + % 这样在使用 \cs{bibliographystyle} 选择参考文献表的样式时也会设置对应的引用样式。 + \@namedef{bibstyle@ustcthesis-numerical}{\bibstyle@super} + \@namedef{bibstyle@ustcthesis-authoryear}{\bibstyle@authoryear} + \@namedef{bibstyle@ustcthesis-bachelor}{\bibstyle@super} + % + % 如果载入 `natbib` 前设置了 `cite-style`,这里先进行配置。 + % https://github.com/ustctug/ustcthesis/issues/327 + \ifx\ustc@cite@style\@empty\else + \citestyle{\ustc@cite@style}% + \fi + % + % 定义接口 cite-style 切换引用样式。 + \ustc@option@hook{cite-style}{% + \citestyle{\ustc@cite@style}% + } + % + % 如果文献序号作为叙述文字的一部分,需要临时将文献序号与正文平排 + \DeclareRobustCommand\inlinecite{\@inlinecite} + \def\@inlinecite#1{\begingroup\let\@cite\NAT@citenum\citep{#1}\endgroup} + % + % 修改引用的样式。 + % 这里在 filehook 中无法使用 \cs{patchcmd},所以只能手动重定义。 + % + % 将 super 式 \cs{citep} 引用的页码置于括号外。 + \renewcommand\NAT@citesuper[3]{% + \ifNAT@swa + \if*#2*\else + #2\NAT@spacechar + \fi + % \unskip\kern\p@\textsuperscript{\NAT@@open#1\NAT@@close}% + % \if*#3*\else\NAT@spacechar#3\fi\else #1\fi\endgroup} + \unskip\kern\p@ + \textsuperscript{% + \NAT@@open#1\NAT@@close + \if*#3*\else#3\fi + }% + \kern\p@ + \else + #1% + \fi + \endgroup + } + % + % 将 numbers 式 \cs{citep} 引用的页码置于括号外并改为上标。 + \renewcommand\NAT@citenum[3]{% + \ifNAT@swa + \NAT@@open + \if*#2*\else + #2\NAT@spacechar + \fi + % #1\if*#3*\else\NAT@cmt#3\fi\NAT@@close + #1\NAT@@close + \if*#3*\else + \textsuperscript{#3}% + \fi + \else + #1% + \fi + \endgroup + } + % + % 在 filehook 中无法使用 \cs{patchcmd},所以只能手动重定义。 + \def\NAT@citexnum[#1][#2]#3{% + \NAT@reset@parser + \NAT@sort@cites{#3}% + \NAT@reset@citea + \@cite{\def\NAT@num{-1}\let\NAT@last@yr\relax\let\NAT@nm\@empty + \@for\@citeb:=\NAT@cite@list\do + {\@safe@activestrue + \edef\@citeb{\expandafter\@firstofone\@citeb\@empty}% + \@safe@activesfalse + \@ifundefined{b@\@citeb\@extra@b@citeb}{% + {\reset@font\bfseries?} + \NAT@citeundefined\PackageWarning{natbib}% + {Citation `\@citeb' on page \thepage \space undefined}}% + {\let\NAT@last@num\NAT@num\let\NAT@last@nm\NAT@nm + \NAT@parse{\@citeb}% + \ifNAT@longnames\@ifundefined{bv@\@citeb\@extra@b@citeb}{% + \let\NAT@name=\NAT@all@names + \global\@namedef{bv@\@citeb\@extra@b@citeb}{}}{}% + \fi + \ifNAT@full\let\NAT@nm\NAT@all@names\else + \let\NAT@nm\NAT@name\fi + \ifNAT@swa + \@ifnum{\NAT@ctype>\@ne}{% + \@citea + \NAT@hyper@{\@ifnum{\NAT@ctype=\tw@}{\NAT@test{\NAT@ctype}}{\NAT@alias}}% + }{% + \@ifnum{\NAT@cmprs>\z@}{% + \NAT@ifcat@num\NAT@num + {\let\NAT@nm=\NAT@num}% + {\def\NAT@nm{-2}}% + \NAT@ifcat@num\NAT@last@num + {\@tempcnta=\NAT@last@num\relax}% + {\@tempcnta\m@ne}% + \@ifnum{\NAT@nm=\@tempcnta}{% + \@ifnum{\NAT@merge>\@ne}{}{\NAT@last@yr@mbox}% + }{% + \advance\@tempcnta by\@ne + \@ifnum{\NAT@nm=\@tempcnta}{% + % 在顺序编码制下,\pkg{natbib} 只有在三个以上连续文献引用才会使用连接号, + % 这里修改为允许两个引用使用连接号。 + % 参考 https://tex.stackexchange.com/a/86991/82731 。 + % + % \ifx\NAT@last@yr\relax + % \def@NAT@last@yr{\@citea}% + % \else + % \def@NAT@last@yr{--\NAT@penalty}% + % \fi + \def@NAT@last@yr{-\NAT@penalty}% + }{% + \NAT@last@yr@mbox + }% + }% + }{% + \@tempswatrue + \@ifnum{\NAT@merge>\@ne}{\@ifnum{\NAT@last@num=\NAT@num\relax}{\@tempswafalse}{}}{}% + \if@tempswa\NAT@citea@mbox\fi + }% + }% + \NAT@def@citea + \else + \ifcase\NAT@ctype + \ifx\NAT@last@nm\NAT@nm \NAT@yrsep\NAT@penalty\NAT@space\else + \@citea \NAT@test{\@ne}\NAT@spacechar\NAT@mbox{\NAT@super@kern\NAT@@open}% + \fi + \if*#1*\else#1\NAT@spacechar\fi + \NAT@mbox{\NAT@hyper@{{\citenumfont{\NAT@num}}}}% + \NAT@def@citea@box + \or + \NAT@hyper@citea@space{\NAT@test{\NAT@ctype}}% + \or + \NAT@hyper@citea@space{\NAT@test{\NAT@ctype}}% + \or + \NAT@hyper@citea@space\NAT@alias + \fi + \fi + }% + }% + \@ifnum{\NAT@cmprs>\z@}{\NAT@last@yr}{}% + \ifNAT@swa\else + % 将 numerical 式 \cs{citet} 引用的页码置于括号外并改为上标。 + % + % \@ifnum{\NAT@ctype=\z@}{% + % \if*#2*\else\NAT@cmt#2\fi + % }{}% + \NAT@mbox{\NAT@@close}% + \@ifnum{\NAT@ctype=\z@}{% + \if*#2*\else + \textsuperscript{#2}% + \fi + }{}% + \NAT@super@kern + \fi + }{#1}{#2}% + }% + % + % 将 author-year 式 \cs{citep} 引用的页码置于括号外并改为上标: + \renewcommand\NAT@cite% + [3]{\ifNAT@swa\NAT@@open\if*#2*\else#2\NAT@spacechar\fi + % #1\if*#3*\else\NAT@cmt#3\fi\NAT@@close\else#1\fi\endgroup} + #1\NAT@@close\if*#3*\else\textsuperscript{#3}\fi\else#1\fi\endgroup} + % + % 调整 author-year 式 \cs{citet} 引用的页码。 + \def\NAT@citex% + [#1][#2]#3{% + \NAT@reset@parser + \NAT@sort@cites{#3}% + \NAT@reset@citea + \@cite{\let\NAT@nm\@empty\let\NAT@year\@empty + \@for\@citeb:=\NAT@cite@list\do + {\@safe@activestrue + \edef\@citeb{\expandafter\@firstofone\@citeb\@empty}% + \@safe@activesfalse + \@ifundefined{b@\@citeb\@extra@b@citeb}{\@citea% + {\reset@font\bfseries ?}\NAT@citeundefined + \PackageWarning{natbib}% + {Citation `\@citeb' on page \thepage \space undefined}\def\NAT@date{}}% + {\let\NAT@last@nm=\NAT@nm\let\NAT@last@yr=\NAT@year + \NAT@parse{\@citeb}% + \ifNAT@longnames\@ifundefined{bv@\@citeb\@extra@b@citeb}{% + \let\NAT@name=\NAT@all@names + \global\@namedef{bv@\@citeb\@extra@b@citeb}{}}{}% + \fi + \ifNAT@full\let\NAT@nm\NAT@all@names\else + \let\NAT@nm\NAT@name\fi + \ifNAT@swa\ifcase\NAT@ctype + \if\relax\NAT@date\relax + \@citea\NAT@hyper@{\NAT@nmfmt{\NAT@nm}\NAT@date}% + \else + \ifx\NAT@last@nm\NAT@nm\NAT@yrsep + \ifx\NAT@last@yr\NAT@year + \def\NAT@temp{{?}}% + \ifx\NAT@temp\NAT@exlab\PackageWarningNoLine{natbib}% + {Multiple citation on page \thepage: same authors and + year\MessageBreak without distinguishing extra + letter,\MessageBreak appears as question mark}\fi + \NAT@hyper@{\NAT@exlab}% + \else\unskip\NAT@spacechar + \NAT@hyper@{\NAT@date}% + \fi + \else + \@citea\NAT@hyper@{% + \NAT@nmfmt{\NAT@nm}% + \hyper@natlinkbreak{% + \NAT@aysep\NAT@spacechar}{\@citeb\@extra@b@citeb + }% + \NAT@date + }% + \fi + \fi + \or\@citea\NAT@hyper@{\NAT@nmfmt{\NAT@nm}}% + \or\@citea\NAT@hyper@{\NAT@date}% + \or\@citea\NAT@hyper@{\NAT@alias}% + \fi \NAT@def@citea + \else + \ifcase\NAT@ctype + \if\relax\NAT@date\relax + \@citea\NAT@hyper@{\NAT@nmfmt{\NAT@nm}}% + \else + \ifx\NAT@last@nm\NAT@nm\NAT@yrsep + \ifx\NAT@last@yr\NAT@year + \def\NAT@temp{{?}}% + \ifx\NAT@temp\NAT@exlab\PackageWarningNoLine{natbib}% + {Multiple citation on page \thepage: same authors and + year\MessageBreak without distinguishing extra + letter,\MessageBreak appears as question mark}\fi + \NAT@hyper@{\NAT@exlab}% + \else + \unskip\NAT@spacechar + \NAT@hyper@{\NAT@date}% + \fi + \else + \@citea\NAT@hyper@{% + \NAT@nmfmt{\NAT@nm}% + \hyper@natlinkbreak{\NAT@spacechar\NAT@@open\if*#1*\else#1\NAT@spacechar\fi}% + {\@citeb\@extra@b@citeb}% + \NAT@date + }% + \fi + \fi + \or\@citea\NAT@hyper@{\NAT@nmfmt{\NAT@nm}}% + \or\@citea\NAT@hyper@{\NAT@date}% + \or\@citea\NAT@hyper@{\NAT@alias}% + \fi + \if\relax\NAT@date\relax + \NAT@def@citea + \else + \NAT@def@citea@close + \fi + \fi + }}\ifNAT@swa\else + % 将 author-year 式 \cs{citet} 引用的页码置于括号外并改为上标。 + % + % \if*#2*\else\NAT@cmt#2\fi + \if\relax\NAT@date\relax\else\NAT@@close\fi + \if*#2*\else\textsuperscript{#2}\fi + \fi}{#1}{#2}} + % + % 为了将参考文献加入目录和 pdf 书签,重新定义 \pkg{natbib} 的 \cmd{bibsection} + % 另外如果调用了 \pkg{chapterbib} 或者使用了 \opt{sectionbib} 参数, + % 需要使用节标题 \cs{section}。 + \newcommand\ustc@bib@chapter{% + \@mainmatterfalse + \chapter{\bibname}% + }% + \newcommand\ustc@bib@section{% + \begingroup + \ctexset{section/numbering=false}% + \section{\bibname}% + \endgroup + }% + \@ifpackagewith{chapterbib}{sectionbib}{% + \ustc@error{The "sectionbib" option cannot be used with chaperbib if natbib loaded}% + }{}% + \@ifpackageloaded{chapterbib}{% + \let\bibsection\ustc@bib@section + }{% + \@ifxundefined\NAT@sectionbib{% + \let\bibsection\ustc@bib@chapter + }{% + \let\bibsection\ustc@bib@section + }% + }% + % + % 参考文献列表格式:宋体 10.5 磅,行距 20 磅,续行缩进两字,左对齐。 + % 本科生依然是小四宋体。 + \renewcommand\bibfont{% + \ifustc@degree@graduate + \fontsize{10.5bp}{20bp}\selectfont + \else + \normalsize + \fi + } + \setlength{\bibsep}{0\p@ \@plus.2\p@} + \renewcommand\@biblabel[1]{[#1]\hfill} + \setlength{\bibhang}{2\ccwd} +} + + +% biblatex 宏包的配置 + +\AtEndOfPackageFile*{biblatex}{ + \DeclareRobustCommand\inlinecite{\parencite} + \defbibheading{bibliography}[\bibname]{% + \@mainmatterfalse + \chapter{\bibname}% + } + \renewcommand\bibfont{% + \ifustc@degree@graduate + \fontsize{10.5bp}{20bp}\selectfont + \else + \normalsize + \fi + } + \setlength{\bibitemsep}{0\p@ \@plus.2\p@} + \setlength{\bibhang}{2\ccwd} +} + +% \subsection{附录} + +% 定义了一个满足要求的致谢环境: +\newenvironment{acknowledgements}{% + \@mainmatterfalse + \chapter{\ustc@acknowledgements@name}% +}{ + \ifustc@degree@bachelor + \par + \null\par + \begingroup + \raggedleft + \ustc@date@zh@short\par + \endgroup + \fi +} + + +% 兼容旧版本中“acknowledgments”的拼法。 +% Reserved for compatibility until 2020-07-01. +\newenvironment{acknowledgments}{% + \begin{acknowledgements}% +}{% + \end{acknowledgements}% +} + +% 发表成果环境: +\newenvironment{publications}{% + \@mainmatterfalse + \chapter{\ustc@publication@name}% +}{} + + +% \subsection{其他宏包的设置} + +% 这些宏包并非格式要求,但是为了方便同学们使用,在这里进行简单设置。 + + +% \subsubsection{\pkg{hyperref} 宏包} + +\AtEndOfPackageFile*{hyperref}{ + \hypersetup{ + bookmarksnumbered = true, + bookmarksopen = true, + bookmarksopenlevel = 1, + linktoc = all, + unicode = true, + psdextra = true, + } + % + % 如果为 \opt{pdf} 样式,设置 hyperlink 颜色 + \ifustc@output@electronic + \hypersetup{ + colorlinks = true, + allcolors = blue, + } + \else + \hypersetup{hidelinks} + \fi + % + % 填写 PDF 元信息。 + \AtBeginDocument{ + \hypersetup{ + pdftitle = \ustc@title, + pdfauthor = \ustc@author, + } + } + % + % 添加 PDF 书签 + % + \newcounter{ustc@bookmarknumber} + \renewcommand\ustc@pdfbookmark[1]{% + \phantomsection + \stepcounter{ustc@bookmarknumber}% + \pdfbookmark[0]{#1}{ustcchapter.\theustc@bookmarknumber}% + } + % + % 在 PDF 字符串中去掉换行,以减少 \pkg{hyperref} 的警告信息。 + \pdfstringdefDisableCommands{ + \let\\\@empty + \let\hspace\@gobble + } + % + % \pkg{hyperref} 与 \pkg{unicode-math} 存在一些兼容性问题,见 + % \href{https://github.com/ustctug/ustcthesis/issues/223}{% + % ustctug/ustcthesis\#223}, + % \href{https://github.com/ho-tex/hyperref/pull/90}{ho-tex/hyperref\#90} 和 + % \href{https://github.com/ustctug/ustcthesis/issues/235}{% + % ustctug/ustcthesis/\#235}。 + \@ifpackagelater{hyperref}{2019/04/27}{}{% + \g@addto@macro\psdmapshortnames{\let\mu\textmu}% + } + % + % 设置中文的 \cs{autoref}。 + % \footnote{\url{https://tex.stackexchange.com/a/66150/82731}} + \ifustc@language@chinese + \def\equationautorefname~#1\null{公式~(#1)\null} + \def\footnoteautorefname{脚注} + \def\itemautorefname~#1\null{第~#1~项\null} + \def\figureautorefname{图} + \def\tableautorefname{表} + \def\partautorefname~#1\null{第~#1~部分\null} + \def\appendixautorefname{附录} + \def\chapterautorefname~#1\null{第~#1~章\null} + \def\sectionautorefname~#1\null{第~#1~节\null} + \def\subsectionautorefname~#1\null{第~#1~小节\null} + \def\subsubsectionautorefname~#1\null{第~#1~小小节\null} + \def\paragraphautorefname~#1\null{第~#1~段\null} + \def\subparagraphautorefname~#1\null{第~#1~小段\null} + \def\theoremautorefname{定理} + \def\HyRef@autopageref#1{\hyperref[{#1}]{第~\pageref*{#1} 页}} + \fi + % + % 本科生需要在 \tableofcontents 处切换 \pagenumbering, + % 在使用了 notoccite 后会导致 PDF 书签的页码有误(#293), + % 所以需要补充 https://tex.stackexchange.com/a/593839/82731 的 patch。 + % LuaTeX 不需要这个 patch。 + \ifXeTeX + \def\HyPL@StorePageLabel#1{% + \begingroup + \edef\Hy@tempa{\the\Hy@abspage<<#1>>}% + \immediate\write\@mainaux{% + \string\HyPL@Entry{\Hy@tempa}% + }% + \endgroup + } + \fi +} + + +% \subsubsection{\pkg{amsthm} 宏包} + +\AtEndOfPackageFile*{amsthm}{ + \newtheoremstyle{ustcplain} + {}{} + {}{2\ccwd} + {\bfseries}{} + {\ccwd}{} + \theoremstyle{ustcplain} + % 定义新的定理 + \ifustc@language@chinese + \newcommand\ustc@assertion@name{断言} + \newcommand\ustc@assumption@name{假设} + \newcommand\ustc@axiom@name{公理} + \newcommand\ustc@corollary@name{推论} + \newcommand\ustc@definition@name{定义} + \newcommand\ustc@example@name{例} + \newcommand\ustc@lemma@name{引理} + \newcommand\ustc@proof@name{证明} + \newcommand\ustc@proposition@name{命题} + \newcommand\ustc@remark@name{注} + \newcommand\ustc@theorem@name{定理} + \else + \newcommand\ustc@assertion@name{Assertion} + \newcommand\ustc@assumption@name{Assumption} + \newcommand\ustc@axiom@name{Axiom} + \newcommand\ustc@corollary@name{Corollary} + \newcommand\ustc@definition@name{Definition} + \newcommand\ustc@example@name{Example} + \newcommand\ustc@lemma@name{Lemma} + \newcommand\ustc@proof@name{Proof} + \newcommand\ustc@proposition@name{Proposition} + \newcommand\ustc@remark@name{Remark} + \newcommand\ustc@theorem@name{Theorem} + \fi + \newtheorem{theorem} {\ustc@theorem@name} [chapter] + \newtheorem{assertion} [theorem]{\ustc@assertion@name} + \newtheorem{axiom} [theorem]{\ustc@axiom@name} + \newtheorem{corollary} [theorem]{\ustc@corollary@name} + \newtheorem{lemma} [theorem]{\ustc@lemma@name} + \newtheorem{proposition}[theorem]{\ustc@proposition@name} + \newtheorem{assumption} {\ustc@assumption@name} [chapter] + \newtheorem{definition} {\ustc@definition@name} [chapter] + \newtheorem{example} {\ustc@example@name} [chapter] + \newtheorem*{remark} {\ustc@remark@name} + % \pkg{amsthm} 单独定义了 proof 环境,这里重新定义以满足格式要求。 + % 原本模仿 \pkg{amsthm} 写成 |\item[\hskip\labelsep\hskip2\ccwd #1\hskip\ccwd]|, + % 但是却会多出一些间隙。 + \renewenvironment{proof}[1][\ustc@proof@name]{\par + \pushQED{\qed}% + \normalfont \topsep6\p@\@plus6\p@\relax + \trivlist + \item\relax\hskip2\ccwd + \textbf{#1} + \hskip\ccwd\ignorespaces + }{% + \popQED\endtrivlist\@endpefalse + } + \renewcommand\qedsymbol{\ustc@qed} +} + + +% \subsubsection{\pkg{algorithm2e} 宏包} + +% 按章节编号。 +\PassOptionsToPackage{algochapter}{algorithm2e} + +\AtEndOfPackageFile*{algorithm2e}{ + \ifustc@language@chinese + \SetAlgorithmName{算法}{算法}{算法清单} + \else + \SetAlgorithmName{Algorithm}{Algorithm}{List of Algorithms} + \fi + % + % 设置算法环境的格式。 + \SetAlCapSkip{6bp} + \SetAlCapFnt{\small} + \SetAlCapNameFnt{\small} + \ifustc@degree@graduate + \SetAlCapNameSty{textbf} + \fi + \SetAlgoCaptionSeparator{\unskip\hspace*{\ccwd}} + % + % 设置算法清单的格式 + \renewcommand\listofalgocfs{% + \ifustc@degree@graduate + \cleardoublepage + \fi + \ustc@chapter{\listalgorithmcfname}% + \@starttoc{loa}% + } + \titlecontents{algocf} + [2.3em]{\normalsize} + {\contentslabel{2.3em}}{} + {\ustc@leaders\contentspage} + \contentsuse{algocf}{loa} +} + + +% \subsubsection{\pkg{mathtools} 宏包} + +% \pkg{mathtools} 会修改 \pkg{unicode-math} 的 `\underbrace` 和 `\overbrace`, +% 需要还原为 `\LaTeXunderbrace` 和 `\LaTeXoverbrace`, +% 参考 \url{https://tex.stackexchange.com/q/521394/82731}。 +\AtEndOfPackageFile*{mathtools}{ + \@ifpackageloaded{unicode-math}{ + \let\underbrace\LaTeXunderbrace + \let\overbrace\LaTeXoverbrace + }{} +} + +% \subsubsection{\pkg{nomencl} 宏包} + +\AtEndOfPackageFile*{nomencl}{ + \let\nomname\ustc@notation@name + \def\thenomenclature{% + \ifustc@degree@graduate + \cleardoublepage + \pagestyle{headings}% + \fi + \ustc@chapter{\ustc@notation@name}% + \nompreamble + \list{}{% + \labelwidth\nom@tempdim + \leftmargin\labelwidth + \advance\leftmargin\labelsep + \itemsep\nomitemsep + \let\makelabel\nomlabel}} + \def\endthenomenclature{% + \endlist + \nompostamble + \ifustc@degree@graduate + \clearpage + \pagestyle{plain}% + \fi + } +} + + +% \subsubsection{\pkg{siunitx} 宏包} + +\AtEndOfPackageFile*{siunitx}{ + \newcommand\ustc@set@siunitx@language{% + \ifustc@language@chinese + \sisetup{ + list-final-separator = { 和~}, + list-pair-separator = { 和 }, + range-phrase = {~}, + }% + \else + \sisetup{ + list-final-separator = {, and }, + list-pair-separator = { and }, + range-phrase = { to }, + }% + \fi + } + \ustc@set@siunitx@language + \ustc@option@hook{language}{\ustc@set@siunitx@language} +} + +% \subsubsection{\pkg{chapterbib} 宏包} + +\AtEndOfPackageFile*{chapterbib}{ + \@ifpackageloaded{natbib}{% + \@ifpackagewith{chapterbib}{sectionbib}{% + \ustc@error{The "sectionbib" option cannot be used with chaperbib if natbib loaded}% + }{}% + \renewcommand\bibsection{% + \begingroup + \ctexset{section/numbering=false}% + \section{\bibname}% + \endgroup + } + }{} +}